Example #1
0
    def POST(self):
        flag = True
        runData = {"runFlag": True, "showMsg": "OK"}

        req = web.input()

        # 检查必填项是否都有值
        mustName = ["report_type", "filename"]
        for name in mustName:
            if req.has_key(name):
                flag = True
            else:
                flag = False

        if not flag:
            msg = "输入参数不正确,请按照正常流程使用系统。"
            runData["showMsg"] = msg
            return render.err(runData)

        # 取出所有的excel表中的列和数据库中的field的对应关系
        fld_data_col = []
        fld_data_col.append(req["fld_data_col_1"])
        fld_data_col.append(req["fld_data_col_2"])
        fld_data_col.append(req["fld_data_col_3"])
        fld_data_col.append(req["fld_data_col_4"])
        fld_data_col.append(req["fld_data_col_5"])
        fld_data_col.append(req["fld_data_col_6"])
        fld_data_col.append(req["fld_data_col_7"])
        fld_data_col.append(req["fld_data_col_8"])
        fld_data_col.append(req["fld_data_col_9"])
        fld_data_col.append(req["fld_data_col_10"])
        fld_data_col.append(req["fld_data_col_11"])
        fld_data_col.append(req["fld_data_col_12"])
        fld_data_col.append(req["fld_data_col_13"])
        fld_data_col.append(req["fld_data_col_14"])
        print (fld_data_col)
        report_type = req["report_type"]

        # 读出excel文件中的数据,并取出第一个sheet
        filename = req["filename"]
        data = xlsUtil.getExcelData(filename)
        tables = data["tables"]
        table1 = tables[0]
        sheet1 = table1["t_data"]

        strInsertTail = ""
        iCount = 0
        cx = getConn()
        cu = cx.cursor()

        for row in sheet1:
            """ 第一条数据是标题,不需要导入,所以把第 0 条跳过 """
            if iCount > 0:

                strInsertTail = ""
                for strIndex in fld_data_col:
                    if strIndex == u"":
                        strInsertTail = strInsertTail + ",''"
                    else:
                        iIndex = int(strIndex)
                        strText = row[iIndex - 1]
                        strInsertTail = strInsertTail + ",'" + unicode(strText) + "'"

                data_no = getYmdhms() + "_" + str(iCount)
                strInsertHead = (
                    "INSERT INTO temp_data (data_no, data_type, use_flag, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14 ) VALUES  ( '"
                    + data_no
                    + "', '"
                    + report_type
                    + "', '0'"
                )
                strSql = strInsertHead + strInsertTail + ")"
                print strSql
                cu.execute(strSql)
            iCount = iCount + 1
        cx.commit()
        cu.close()
        cx.close()

        # 检查机型名称能否对应到机型代码,如果不能,去机型名称出错页面。
        invalidPhone = findInvalidPhoneName()
        if len(invalidPhone) == 0:
            print "机型名称检查合格。"
        else:
            runData["showMsg"] = "某些机型名称无法找到对应的机型代码,请先检查上传文件是否正确,或者维护好机型信息再进行制单操作。"
            runData["invalidPhone"] = invalidPhone
            return render.phoneNameLost(runData)

        reportType = req["report_type"]

        if reportType == "fld":
            saveFld()
        elif reportType == "sld":
            saveSld()
        elif reportType == "jld":
            saveJld()
        elif reportType == "lyd":
            saveLyd()
        elif reportType == "nbdbd":
            saveNbdbd()
        elif reportType == "rkd":
            saveRkd()
        else:
            msg = "报表类型不正确"
            runData["showMsg"] = msg
            return render.err(runData)

        msg = "导入操作执行成功,共导入数据" + str(iCount) + "条。"
        runData["showMsg"] = msg
        return render.msg(runData)
Example #2
0
    def GET(self):
        flag = True
        runData = {'runFlag':True,'showMsg':'OK'}
        
        req = web.input()

        #检查机型名称能否对应到机型代码,如果不能,去机型名称出错页面。
        invalidPhone = findInvalidPhoneName();
        if len(invalidPhone) == 0 :
            #print '机型名称检查合格。'
            allPhoneInfo = getAllPhoneInfo()
        else:
            runData['showMsg']='某些机型名称无法找到对应的机型代码,请先检查上传文件是否正确,或者维护好机型信息再进行制单操作。'
            runData['invalidPhone']=invalidPhone
            return render.phoneNameLost(runData)

                
        cx = getConn()
        cu = cx.cursor()

        strSql = "SELECT data_no, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14 from temp_data WHERE data_type='fld' and use_flag='0' ORDER BY c1,c5" 
        print strSql
        cu.execute(strSql)

        dataCount = 0
        prevNo = 'abcdefghijklmn'
        thisNo = ''
        for sqlrow in cu:
            dataCount = dataCount + 1
            runData['c0_' +  str(dataCount) ] = sqlrow[0]
            runData['c1_' +  str(dataCount) ] = sqlrow[1]
            runData['c2_' +  str(dataCount) ] = sqlrow[2]
            runData['c3_' +  str(dataCount) ] = sqlrow[3]
            runData['c4_' +  str(dataCount) ] = sqlrow[4]
            thisNo = sqlrow[5]
            runData['c5_' +  str(dataCount) ] = thisNo
            runData['c6_' +  str(dataCount) ] = sqlrow[6]
            runData['c7_' +  str(dataCount) ] = sqlrow[7]
            runData['c8_' +  str(dataCount) ] = sqlrow[8]
            
            # 机型代码通过机型名称查表得到
            phoneName = sqlrow[9]
            runData['c9_' +  str(dataCount) ] = phoneName
            #runData['c10_'+  str(dataCount) ] = sqlrow[10]
            runData['c10_'+  str(dataCount) ] = allPhoneInfo[phoneName]

            runData['c11_'+  str(dataCount) ] = sqlrow[11]
            runData['c12_'+  str(dataCount) ] = sqlrow[12]
            runData['c13_'+  str(dataCount) ] = sqlrow[13]
            runData['c14_'+  str(dataCount) ] = sqlrow[14]

            #print "thisNo=" + thisNo
            #print "prevNo=" + prevNo
            if cmp(prevNo, 'abcdefghijklmn')==0:
                prevNo = thisNo
            elif cmp(prevNo, thisNo) != 0 :
                dataCount = dataCount - 1
                break
            elif dataCount == 10 :
                break

        cu.close()
        cx.close()

        if dataCount < 10 :
            for loopCount in range(dataCount+1,11):
                #print "tian chong kong bai hang"
                runData['c0_'+  str(loopCount) ] = '' 
                runData['c9_'+  str(loopCount) ] = ''
                runData['c10_'+ str(loopCount) ] = ''
                runData['c11_'+ str(loopCount) ] = ''
                runData['c12_'+ str(loopCount) ] = ''
                runData['c13_'+ str(loopCount) ] = ''
                runData['c14_'+ str(loopCount) ] = ''



        if dataCount == 0 :
            runData['showMsg'] = "太好了,所有发料单都已经生成了。"
            return render.msg(runData)        
            
        #runData['fld_no'] = getFldNo()
        runData['fld_no'] = 'Auto'
        #print runData

        pageCookie = web.cookies(automode='n')
        if cmp(pageCookie.automode, 'y') == 0:
            runData['automodeChecked'] = 'checked'
        else:
            runData['automodeChecked'] = ''

        return render.makeFld(runData)
Example #3
0
    def POST(self):
        flag = True
        runData = {'runFlag':True,'showMsg':'OK'}
        
        req = web.input()

        # 检查必填项是否都有值
        mustName = ['report_type','filename']
        for name in mustName:
            if req.has_key(name) :
                flag = True
            else:
                flag = False

        if not flag :
            msg = "输入参数不正确,请按照正常流程使用系统。"
            runData['showMsg'] = msg
            return render.err(runData)
        
        # 取出所有的excel表中的列和数据库中的field的对应关系
        fld_data_col = []
        fld_data_col.append( req['fld_data_col_1'])
        fld_data_col.append( req['fld_data_col_2'])
        fld_data_col.append( req['fld_data_col_3'])
        fld_data_col.append( req['fld_data_col_4'])
        fld_data_col.append( req['fld_data_col_5'])
        fld_data_col.append( req['fld_data_col_6'])
        fld_data_col.append( req['fld_data_col_7'])
        fld_data_col.append( req['fld_data_col_8'])
        fld_data_col.append( req['fld_data_col_9'])
        fld_data_col.append( req['fld_data_col_10'])
        fld_data_col.append( req['fld_data_col_11'])
        fld_data_col.append( req['fld_data_col_12'])
        fld_data_col.append( req['fld_data_col_13'])
        fld_data_col.append( req['fld_data_col_14'])
        print( fld_data_col )
        report_type =  req["report_type"]

        # 读出excel文件中的数据,并取出第一个sheet
        filename = req["filename"]
        data = xlsUtil.getExcelData(filename)
        tables = data['tables']
        table1 = tables[0]
        sheet1 = table1['t_data']

        strInsertTail = ''
        iCount = 0
        cx = getConn()
        cu = cx.cursor()

        for row in sheet1:
            """ 第一条数据是标题,不需要导入,所以把第 0 条跳过 """
            if iCount > 0 :
                

                strInsertTail = ''
                for strIndex in fld_data_col :
                    if strIndex == u'' :
                        strInsertTail = strInsertTail + ",''"
                    else:
                        iIndex = int(strIndex)
                        strText = row[iIndex-1]
                        strInsertTail = strInsertTail + ",'" + unicode(strText) + "'"
                
                data_no = getYmdhms() + "_" + str(iCount)
                strInsertHead = "INSERT INTO temp_data (data_no, data_type, use_flag, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14 ) VALUES  ( '" + data_no + "', '" + report_type + "', '0'"
                strSql = strInsertHead + strInsertTail + ")"
                print strSql
                cu.execute(strSql)
            iCount = iCount + 1 
        cx.commit()
        cu.close()
        cx.close()

        #检查机型名称能否对应到机型代码,如果不能,去机型名称出错页面。
        invalidPhone = findInvalidPhoneName();
        if len(invalidPhone) == 0 :
            print '机型名称检查合格。'
        else:
            runData['showMsg']='某些机型名称无法找到对应的机型代码,请先检查上传文件是否正确,或者维护好机型信息再进行制单操作。'
            runData['invalidPhone']=invalidPhone
            return render.phoneNameLost(runData)


        reportType =  req["report_type"]

        if reportType == "fld" :
            saveFld()
        elif reportType == "sld" :
            saveSld()
        elif reportType == "jld" :
            saveJld()
        elif reportType == "lyd" :
            saveLyd()
        elif reportType == "nbdbd" :
            saveNbdbd()
        elif reportType == "rkd" :
            saveRkd()
        else :
            msg = "报表类型不正确"
            runData['showMsg'] = msg
            return render.err(runData)

        msg = "导入操作执行成功,共导入数据" + str(iCount) + "条。"
        runData['showMsg'] = msg
        return render.msg(runData)
Example #4
0
    def GET(self):
        flag = True
        runData = {'runFlag': True, 'showMsg': 'OK'}

        req = web.input()

        #检查机型名称能否对应到机型代码,如果不能,去机型名称出错页面。
        invalidPhone = findInvalidPhoneName()
        if len(invalidPhone) == 0:
            #print '机型名称检查合格。'
            allPhoneInfo = getAllPhoneInfo()
        else:
            runData[
                'showMsg'] = '某些机型名称无法找到对应的机型代码,请先检查上传文件是否正确,或者维护好机型信息再进行制单操作。'
            runData['invalidPhone'] = invalidPhone
            return render.phoneNameLost(runData)

        cx = getConn()
        cu = cx.cursor()

        strSql = "SELECT data_no, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14 from temp_data WHERE data_type='fld' and use_flag='0' ORDER BY c1,c5"
        print strSql
        cu.execute(strSql)

        dataCount = 0
        prevNo = 'abcdefghijklmn'
        thisNo = ''
        for sqlrow in cu:
            dataCount = dataCount + 1
            runData['c0_' + str(dataCount)] = sqlrow[0]
            runData['c1_' + str(dataCount)] = sqlrow[1]
            runData['c2_' + str(dataCount)] = sqlrow[2]
            runData['c3_' + str(dataCount)] = sqlrow[3]
            runData['c4_' + str(dataCount)] = sqlrow[4]
            thisNo = sqlrow[5]
            runData['c5_' + str(dataCount)] = thisNo
            runData['c6_' + str(dataCount)] = sqlrow[6]
            runData['c7_' + str(dataCount)] = sqlrow[7]
            runData['c8_' + str(dataCount)] = sqlrow[8]

            # 机型代码通过机型名称查表得到
            phoneName = sqlrow[9]
            runData['c9_' + str(dataCount)] = phoneName
            #runData['c10_'+  str(dataCount) ] = sqlrow[10]
            runData['c10_' + str(dataCount)] = allPhoneInfo[phoneName]

            runData['c11_' + str(dataCount)] = sqlrow[11]
            runData['c12_' + str(dataCount)] = sqlrow[12]
            runData['c13_' + str(dataCount)] = sqlrow[13]
            runData['c14_' + str(dataCount)] = sqlrow[14]

            #print "thisNo=" + thisNo
            #print "prevNo=" + prevNo
            if cmp(prevNo, 'abcdefghijklmn') == 0:
                prevNo = thisNo
            elif cmp(prevNo, thisNo) != 0:
                dataCount = dataCount - 1
                break
            elif dataCount == 10:
                break

        cu.close()
        cx.close()

        if dataCount < 10:
            for loopCount in range(dataCount + 1, 11):
                #print "tian chong kong bai hang"
                runData['c0_' + str(loopCount)] = ''
                runData['c9_' + str(loopCount)] = ''
                runData['c10_' + str(loopCount)] = ''
                runData['c11_' + str(loopCount)] = ''
                runData['c12_' + str(loopCount)] = ''
                runData['c13_' + str(loopCount)] = ''
                runData['c14_' + str(loopCount)] = ''

        if dataCount == 0:
            runData['showMsg'] = "太好了,所有发料单都已经生成了。"
            return render.msg(runData)

        #runData['fld_no'] = getFldNo()
        runData['fld_no'] = 'Auto'
        #print runData

        pageCookie = web.cookies(automode='n')
        if cmp(pageCookie.automode, 'y') == 0:
            runData['automodeChecked'] = 'checked'
        else:
            runData['automodeChecked'] = ''

        return render.makeFld(runData)