Ejemplo n.º 1
0
def createZYPlanZYtask():
    '''生产确认'''
    if request.method == 'POST':
        data = request.values  # 返回请求中的参数和form
        try:
            jsonstr = json.dumps(data.to_dict())
            if len(jsonstr) > 10:
                PlanStatus = data.get("PlanStatus")
                if PlanStatus == "待备料":
                    IDs = json.loads(data.get("IDs"))
                    for ID in IDs:
                        returnmsg = makeZYPlanZYTask(ID)
                        if (returnmsg == False):
                            return json.dumps({
                                "code": "500",
                                "message": "生产确认失败!"
                            })
                        oclassplan = db_session.query(PlanManager).filter_by(
                            ID=ID).first()
                        oclassplan.PlanStatus = Global.PlanStatus.PreMaterial.value
                        db_session.commit()
                        insertAuditTrace(
                            "生产确认计划", "批次号是:" + oclassplan.BatchID + "的" +
                            oclassplan.BrandName + "在" +
                            datetime.datetime.now().strftime(
                                '%Y-%m-%d %H:%M:%S') + "生产确认计划操作",
                            "PlanManager", current_user.Name, "")
                    return json.dumps({"code": "200", "message": "生产确认成功!!"})
                else:
                    return json.dumps({"code": "200", "message": "批次计划状态不正确!"})
        except Exception as e:
            print(e)
            logger.error(e)
            insertSyslog("error", "生产确认报错Error:" + str(e), current_user.Name)
            return 'NO'
Ejemplo n.º 2
0
 def ModifyModel(self, AFilename, ATableName):
     currentPath = os.path.abspath('.')
     model_path = PATH(currentPath + r'\\' + AFilename)
     i = 0
     tmp = ""
     try:
         if not os.path.exists(model_path):
             print("不存在!")
         else:
             # print("存在!!")
             with open(AFilename, 'r', encoding='UTF-8') as f:
                 lines = f.readlines()
                 i = 0
                 strTbStart = "#" + ATableName + "_START"
                 strTbEnd = "#" + ATableName + "_END"
                 strExecStart = "# 生成表单的执行语句_START"
                 strExecEnd = "# 生成表单的执行语句_END"
                 isExist = "FLASE"
                 for line in lines:
                     iposstart = line.find(strTbStart)
                     iposend = line.find(strTbEnd)
                     istart = line.find(strExecStart)
                     iend = line.find(strExecEnd)
                     if iposstart >= 0:
                         isExist = "TRUE"
                         i = 1
                         continue
                     elif iposend >= 0:
                         i = 0
                         continue
                     elif istart >= 0:
                         i = 1
                         continue
                     elif iend >= 0:
                         i = 0
                         continue
                     elif i == 1:
                         continue
                     tmp += line
             if tmp is "":
                 tmp += self.makeDevNotes()
                 tmp += self.makeImportNotes()
                 tmp += self.makeDBNotes()
                 tmp += self.makeBaseModel()
                 tmp += self.makeEndImplement()
             if isExist == "TRUE":
                 ATableNameNew = ATableName + datetime.datetime.now(
                 ).strftime('%Y-%m-%d %H:%M:%S')
                 sql = "EXEC sp_rename '" + ATableName + "', '" + ATableNameNew + "'"
                 db_session.execute(sql)
                 db_session.commit()
         f = open(AFilename, 'w', encoding='utf-8')
         f.write(tmp)
         f.close()
         return tmp
     except Exception as e:
         print(e)
         os.remove("make_model_test.txt")
         db_session.rollback()
         logger.error(e)
Ejemplo n.º 3
0
def checkPlanManagerSingle():
    '''
    单条审核计划
    :return:
    '''
    if request.method == 'POST':
        data = request.values  # 返回请求中的参数和form
        try:
            PlanStatus = data.get("PlanStatus")
            Description = data.get("Describtion")
            ID = data.get("ID")
            oclassplan = db_session.query(PlanManager).filter_by(ID=ID).first()
            oclassplan.PlanStatus = PlanStatus
            oclassplan.Description = Description
            db_session.commit()
            insertAuditTrace(
                "审核计划",
                "批次号是:" + oclassplan.BatchID + "的" + oclassplan.BrandName +
                "在" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') +
                "进行计划审核操作", "PlanManager", current_user.Name, "")
            return json.dumps({"code": "200", "message": "OK"})
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "审核计划报错Error:" + str(e), current_user.Name)
            return json.dumps([{
                "status": "Error:" + str(e)
            }],
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
Ejemplo n.º 4
0
 def WMS_ZYPlanStatus(self, name, json_data):
     '''
     投料段计划开始结束状态回传接口
     '''
     try:
         dic = []
         jso = json.loads(json_data)
         for i in jso:
             PlanNo = i.get("PlanNo")
             BatchID = i.get("BatchID")
             BrandCode = i.get("BrandCode")
             status = i.get("status")
             if PlanNo != None:
                 # oclas = db_session.query(PlanManager).filter(PlanManager.ID == PlanNo).first()
                 zy = db_session.query(ZYPlan).filter(
                     ZYPlan.ID == PlanNo).first()
                 if zy != None:
                     if status == "Start":
                         zy.ZYPlanStatus = common.Global.ZYPlanStatus.Feeding.value
                         zy.ActBeginTime = datetime.datetime.now().strftime(
                             '%Y-%m-%d %H:%M:%S')
                     elif status == "End":
                         zy.ZYPlanStatus = common.Global.ZYPlanStatus.FeedingFinish.value
                         zy.ActEndTime = datetime.datetime.now().strftime(
                             '%Y-%m-%d %H:%M:%S')
                 db_session.commit()
             else:
                 continue
         return json.dumps("SUCCESS")
     except Exception as e:
         print("WMS调用WMS_ZYPlanStatus接口报错!")
         return json.dumps(e)
Ejemplo n.º 5
0
 def WMS_TrayNumber(self, name, json_data):
     '''
     WMS托盘信息回传
     '''
     try:
         dic = []
         jso = json.loads(json_data)
         for i in jso:
             BatchNo = i.get("BatchNo")
             TrayNum = i.get("TrayNum")
             MID = i.get("MID")
             PalletID = i.get("PalletID")
             FormulaID = i.get("FormulaID")
             MWeight = i.get("MWeight")
             zy = db_session.query(WMSTrayNumber).filter(
                 WMSTrayNumber.BatchNo == BatchNo,
                 WMSTrayNumber.TrayNum == TrayNum,
                 WMSTrayNumber.MID == MID).first()
             if zy == None:
                 tn = WMSTrayNumber()
                 tn.BatchNo = BatchNo
                 tn.TrayNum = TrayNum
                 tn.MID = MID
                 tn.PalletID = PalletID
                 tn.FormulaID = FormulaID
                 tn.MWeight = MWeight
                 tn.UpdateTime = datetime.datetime.now().strftime(
                     '%Y-%m-%d %H:%M:%S')
                 db_session.commit()
             else:
                 continue
         return json.dumps("SUCCESS")
     except Exception as e:
         print("WMS调用WMS_TrayNumber接口报错!")
         return json.dumps(e)
Ejemplo n.º 6
0
def PermissionsSave():
    if request.method == 'POST':
        data = request.values
        try:
            datastr = json.loads(data.get("data"))
            #删除之前的权限
            perss = db_session.query(Permission).filter(
                Permission.WorkNumber == datastr[0].get("WorkNumber")).all()
            for pe in perss:
                db_session.delete(pe)
            db_session.commit()
            for i in datastr:
                per = Permission()
                per.MenuName = i.get("MenuName")
                per.MenuType = i.get("MenuType")
                per.MenuCode = i.get("MenuCode")
                per.Name = i.get("Name")
                per.WorkNumber = i.get("WorkNumber")
                db_session.add(per)
            db_session.commit()
            return 'OK'
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "添加用户报错Error:" + str(e), current_user.Name)
            return json.dumps([{
                "status": "Error:" + str(e)
            }],
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
Ejemplo n.º 7
0
def getTaskNo():
    bReturn = True
    qry = db_session.query(func.max(TaskNoGenerator.TaskNoInt)).all()
    intTaskNo = int(qry[0][0])
    varTaskNo = str(intTaskNo + 1)
    if len(varTaskNo) == 1:
        varTaskNo = "00000" + varTaskNo
    elif len(varTaskNo) == 2:
        varTaskNo = "0000" + varTaskNo
    if len(varTaskNo) == 3:
        varTaskNo = "000" + varTaskNo
    if len(varTaskNo) == 4:
        varTaskNo = "00" + varTaskNo
    if len(varTaskNo) == 5:
        varTaskNo = "0" + varTaskNo
    else:
        varTaskNo = varTaskNo
    try:
        db_session.add(
            TaskNoGenerator(TaskNoInt=intTaskNo + 1,
                            TaskNoVar=varTaskNo,
                            Description=""))
        db_session.commit()
        return bReturn, varTaskNo
    except Exception as e:
        bReturn = False
        print(e)
        logger.error(e)
        return bReturn, varTaskNo
Ejemplo n.º 8
0
def ManualDelete():
    '''批记录模板删除'''
    if request.method == 'POST':
        data = request.values  # 返回请求中的参数和form
        try:
            jsonstr = json.dumps(data.to_dict())
            if len(jsonstr) > 10:
                jsonnumber = re.findall(r"\d+\.?\d*", jsonstr)
                for key in jsonnumber:
                    id = int(key)
                    try:
                        oclass = db_session.query(BatchModel).filter(
                            BatchModel.ID == id).first()
                        if oclass:
                            db_session.delete(oclass)
                            os.remove(oclass.FilePath)
                    except Exception as ee:
                        db_session.rollback()
                        print(ee)
                        logger.error(ee)
                        return json.dumps({
                            "code": "500",
                            "message": "批记录模板删除报错"
                        })
                db_session.commit()
                return json.dumps({"code": "200", "message": "删除成功!"})
            else:
                return json.dumps({"code": "200", "message": "id为空!"})
        except Exception as e:
            print(e)
            logger.error(e)
            insertSyslog("error", "路由:/ManualDelete,说明书删除Error:" + str(e),
                         current_user.Name)
            return json.dumps({"code": "500", "message": "批记录模板删除报错"})
Ejemplo n.º 9
0
def userloginauthentication():
    '''
    用户登陆认证
    :return:
    '''
    try:
        if request.method == 'POST':
            data = request.values
            WorkNumber = data.get('WorkNumber')
            password = data.get('password')
            # 验证账户与密码
            user = db_session.query(User).filter_by(
                WorkNumber=WorkNumber).first()
            resp = make_response()
            if user and (user.confirm_password(password)
                         or user.Password == password):
                login_user(
                    user)  # login_user(user)调用user_loader()把用户设置到db_session中
                user.session_id = str(time.time())
                user.LastLoginTime = datetime.datetime.now().strftime(
                    '%Y-%m-%d %H:%M:%S')
                db_session.commit()
                return json.dumps({"code": "200", "message": "OK"})
            else:
                return json.dumps({"code": "300", "message": "用户名密码错误"})
    except Exception as e:
        print(e)
        db_session.rollback()
        logger.error(e)
        return json.dumps([{
            "status": "Error:" + str(e)
        }],
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
Ejemplo n.º 10
0
def addUpdateEletronicBatchDataStore(BrandCode, PUCode, BatchID, ke, val):
    try:
        oc = db_session.query(EletronicBatchDataStore).filter(
            EletronicBatchDataStore.BrandID == BrandCode,
            EletronicBatchDataStore.PUCode == PUCode,
            EletronicBatchDataStore.BatchID == BatchID,
            EletronicBatchDataStore.Content == ke).first()
        if oc == None:
            db_session.add(
                EletronicBatchDataStore(BrandCode=BrandCode,
                                        BatchID=BatchID,
                                        PUCode=PUCode,
                                        Content=ke,
                                        OperationpValue=val,
                                        Operator=current_user.Name))
        else:
            oc.Content = ke
            oc.OperationpValue = val
            oc.Operator = current_user.Name
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        print(e)
        logger.error(e)
        insertSyslog("error", "保存更新EletronicBatchDataStore报错:" + str(e),
                     current_user.Name)
        return json.dumps("保存更新EletronicBatchDataStore报错",
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
Ejemplo n.º 11
0
 def makeModel(self, AModifyString, tableName):
     try:
         import os, configparser
         BASE_DIR = os.path.dirname(
             os.path.dirname(os.path.abspath(__file__)))
         pythonFileName = os.path.join(BASE_DIR, r'common\core.py')
         tpl = ''
         # tpl += self.makeDevNotes()
         # tpl += self.makeImportNotes()
         # tpl += self.makeDBNotes()
         # tpl += self.makeBaseModel()
         tpl += self.makeORMFrontModel(tableName)
         tpl += self.makeGeneralKeyModel("ID", "ID", "Integer", "True",
                                         "True", "False", "")
         ocs = db_session.query(FieldSet).filter(
             FieldSet.TableName == tableName).all()
         for i in ocs:
             tpl += self.makeGeneralKeyModel(i.comment, i.FieldName, i.type,
                                             i.primarykey, i.autoincrement,
                                             i.nullable, i.length)
             i.Status = "使用中"
             db_session.commit()
         tpl += '\n'
         tpl += '#' + tableName + '_END:\n'
         if len(tpl) > 10:
             tpl += self.makeEndImplement()
             notes = AModifyString + tpl
             self.makeModelPythonFile(pythonFileName, notes)
     except Exception as e:
         os.remove("make_model_test.txt")
         print(e)
         logger.error(e)
Ejemplo n.º 12
0
 def WMS_OrderStatus(self, name, json_data):
     '''
    投料明细状态便跟接口
     '''
     try:
         dic = []
         jso = json.loads(json_data)
         for i in jso:
             BatchMaterialInfoID = i.get("BatchMaterialInfoID")
             EQPCode = i.get("EQPCode")
             EQPName = i.get("EQPName")
             status = i.get("status")
             if BatchMaterialInfoID != None:
                 zy = db_session.query(BatchMaterialInfo).filter(
                     BatchMaterialInfo.ID == BatchMaterialInfoID).first()
                 if zy:  #批次明细增加完成时间
                     if status == "End":
                         status = "投料系统已投料"
                     zy.ExcuteStatus = status
                     zy.FinishDate = datetime.datetime.now().strftime(
                         '%Y-%m-%d %H:%M:%S')
                     db_session.commit()
                 else:
                     return json.dumps("没有此物料明细ID!")
             else:
                 continue
         return json.dumps("SUCCESS")
     except Exception as e:
         print("WMS调用WMS_OrderStatus接口报错!")
         return json.dumps(e)
Ejemplo n.º 13
0
def delete_role():
    rid = request.headers.get('rid')
    role = db_session.query(Role).filter(Role.ID == rid).first()
    user_query = db_session.query(RoleUser).filter(
        RoleUser.RoleName == role.RoleName).all()
    for item in user_query:
        db_session.delete(item)
    db_session.delete(role)
    db_session.commit()
    return json.dumps({'code': 10004, 'msg': '删除成功'})
Ejemplo n.º 14
0
def addscheduledates():
    '''
    添加工作日休息日
    :return:
    '''
    if request.method == 'GET':
        data = request.values
        try:
            month = data['month']
            count = db_session.query(scheduledate).filter(
                scheduledate.WorkDate.like("%" + month + "%")).count()
            if count < 20:
                mou = month.split("-")
                monthRange = calendar.monthrange(int(mou[0]), int(mou[1]))
                re = timeChange(mou[0], str(int(mou[1])), monthRange[1])
                lis = [
                    '星期一',
                    '星期二',
                    '星期三',
                    '星期四',
                    '星期五',
                    '星期六',
                    '星期日',
                ]
                dic = dict(enumerate(lis))
                for i in re:
                    ymr = i.split("-")
                    w = datetime.date(int(ymr[0]), int(ymr[1]), int(ymr[2]))
                    xq = dic[w.weekday()]
                    if xq == "星期六" or xq == "星期日":
                        # dc = db_session.query(scheduleDateType).filter(scheduleDateType.DateTypeName == "周末").first()
                        DateType = "周末"
                        color = "#FA7D00"
                    else:
                        DateType = "工作日"
                        color = "#00CAFA"
                    sc = scheduledate()
                    sc.WorkDate = i
                    sc.DateType = DateType
                    sc.comment = xq
                    sc.color = color
                    db_session.add(sc)
                    db_session.commit()
                db_session.close_all()
            return 'OK'
        except Exception as e:
            db_session.rollback()
            logger.error(e)
            insertSyslog("error", "添加工作日休息日报错Error:" + str(e),
                         current_user.Name)
            return json.dumps("添加工作日休息日报错",
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
Ejemplo n.º 15
0
def batchusemodelselect():
    '''查询批记录使用模版'''
    if request.method == 'GET':
        data = request.values
        try:
            PUCode = data.get("PUCode")
            BrandCode = data.get("BrandCode")
            PUIDName = data.get("PUIDName")
            BrandName = data.get("BrandName")
            BatchID = data.get("BatchID")
            oclass = db_session.query(BatchUseModel).filter(
                BatchUseModel.BrandCode == BrandCode,
                BatchUseModel.PUCode == PUCode,
                BatchUseModel.BatchID == BatchID).first()
            dir = {}
            if not oclass:  #初始化批记录模板
                bum = BatchUseModel()
                bum.BatchID = BatchID
                bum.BrandCode = BrandCode
                bum.BrandName = BrandName
                bum.PUCode = PUCode
                bum.PUIDName = PUIDName
                oclass = db_session.query(BatchModel).filter(
                    BatchModel.BrandCode == BrandCode,
                    BatchModel.PUCode == PUCode).first()
                bum.UseParameter = oclass.Parameter
                db_session.add(bum)
                db_session.commit()
                oc = db_session.query(BatchUseModel).filter(
                    BatchUseModel.BrandCode == BrandCode,
                    BatchUseModel.PUCode == PUCode,
                    BatchUseModel.BatchID == BatchID).first()
                dir["ID"] = oc.ID
                dir["BrandCode"] = oc.FileName
                dir["BrandName"] = oc.FileName
                dir["PUIDName"] = oc.FileName
                dir["PUCode"] = oc.PUCode
                dir["UseParameter"] = oc.Parameter
            else:
                dir["ID"] = oclass.ID
                dir["BrandCode"] = oclass.FileName
                dir["BrandName"] = oclass.FileName
                dir["PUIDName"] = oclass.FileName
                dir["PUCode"] = oclass.PUCode
                dir["UseParameter"] = oclass.UseParameter
            return json.dumps({"code": "200", "message": dir})
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "查询批记录使用模版报错Error:" + str(e),
                         current_user.Name)
            return json.dumps({"code": "500", "message": "后端报错"})
Ejemplo n.º 16
0
def paiban():
    if request.method == 'GET':
        data = request.values
        try:
            dir = {}
            StartClass = data.get("StartClass")
            Month = data.get("Month")
            sfs = db_session.query(ShiftsClass).filter().order_by(
                ("ShiftsClassNum")).all()
            sum = None
            new_list = ""
            for sf in sfs:
                if sf.ShiftsClassName == StartClass:
                    sum = None if sf.ShiftsClassNum is None else float(
                        sf.ShiftsClassNum)
            if sum:
                for i in sfs:
                    if (0 if sf.ShiftsClassNum is None else float(
                            sf.ShiftsClassNum)) >= sum:
                        if i == 1:
                            new_list = i.ShiftsClassName
                        else:
                            new_list = new_list + "," + i.ShiftsClassName
                for i in sfs:
                    if (0 if sf.ShiftsClassNum is None else float(
                            sf.ShiftsClassNum)) < sum:
                        new_list = new_list + "," + i.ShiftsClassName
            re_date = getMonthFirstDayAndLastDay(Month[0:4], int(Month[5:7]))
            for t in range(1, int(re_date[1][8:10])):
                rest = db_session.query(plantCalendarScheduling).filter(
                    plantCalendarScheduling.start == Month + "-" +
                    ("0" + str(t) if t < 10 else str(t)),
                    plantCalendarScheduling.title == "休息")
                if rest:
                    continue
                if t == 1:
                    pcs = plantCalendarScheduling()
                    pcs.color = "#FFA500"
                    pcs.title = new_list
                    pcs.start = Month + "-" + ("0" +
                                               str(t) if t < 10 else str(t))
                    pcs.end = ""
                    db_session.commit()
            return json.dumps(dir, cls=AlchemyEncoder, ensure_ascii=False)
        except Exception as e:
            print(e)
            insertSyslog("error", "日历排班报错Error:" + str(e), current_user.Name)
            return json.dumps([{
                "status": "Error:" + str(e)
            }],
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
Ejemplo n.º 17
0
def add_role():
    rcode = request.json.get('role_code')
    did = request.json.get('did')
    rname = request.json.get('role_name')
    rdes = request.json.get('role_description')
    department = db_session.query(DepartmentManager).filter(
        DepartmentManager.ID == int(did)).first()
    role = Role(RoleCode=rcode,
                RoleName=rname,
                Description=rdes,
                ParentNode=department.DepartCode)
    db_session.add(role)
    db_session.commit()
    return json.dumps({'code': 10003, 'msg': '新增成功', 'data': {'rid': role.ID}})
Ejemplo n.º 18
0
def update_role():
    rid = request.json.get('rid')
    code = request.json.get('role_code')
    role_name = request.json.get('role_name')
    rdes = request.json.get('role_description')
    role = db_session.query(Role).filter(Role.ID == rid).first()
    user_query = db_session.query(RoleUser).filter(
        RoleUser.RoleName == role.RoleName).all()
    for item in user_query:
        item.RoleName = role_name
    role.RoleCode = code
    role.RoleName = role_name
    role.Description = rdes
    db_session.commit()
    return json.dumps({'code': 10005, 'msg': '更新成功'})
Ejemplo n.º 19
0
def add_department():
    did = request.json.get('department_code')
    dname = request.json.get('department_name')
    fname = request.json.get('factory_name')
    depart = DepartmentManager(DepartCode=did,
                               DepartName=dname,
                               DepartLoad=fname)
    db_session.add(depart)
    db_session.commit()
    return json.dumps({
        'code': 10000,
        'msg': '新增成功',
        'data': {
            'Did': depart.ID
        }
    })
Ejemplo n.º 20
0
def saveuserusershiftsgroup():
    '''
    用户添加班组
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            userID = data.get("userID")
            shiftsgroupIDs = data.get("shiftsgroupIDs")
            if shiftsgroupIDs:
                shiftsgroupIDs = eval(shiftsgroupIDs)
            userclass = db_session.query(User).filter(
                User.ID == int(userID)).first()
            sql = "delete from usershiftsgroup where UserID = " + userID
            db_session.execute(sql)
            db_session.commit()
            for pid in shiftsgroupIDs:
                shiftsgroupcalss = db_session.query(ShiftsGroup).filter(
                    ShiftsGroup.ID == int(pid)).first()
                rpclas = db_session.query(UserShiftsGroup).filter(
                    UserShiftsGroup.UserID == userclass.ID,
                    UserShiftsGroup.ShiftsGroupID ==
                    shiftsgroupcalss.ID).first()
                if not rpclas:
                    rp = UserShiftsGroup()
                    rp.UserID = userclass.ID
                    rp.Name = userclass.Name
                    rp.ShiftsGroupID = shiftsgroupcalss.ID
                    rp.ShiftsGroupName = shiftsgroupcalss.ShiftsGroupName
                    db_session.add(rp)
                    db_session.commit()
            return json.dumps({
                "code": "200",
                "message": "请求成功"
            },
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "角色添加权限Error:" + str(e), current_user.Name)
Ejemplo n.º 21
0
def update_department():
    did = request.json.get('did')
    code = request.json.get('department_code')
    department_name = request.json.get('department_name')
    department = db_session.query(DepartmentManager).filter(
        DepartmentManager.ID == int(did)).first()
    role_query = db_session.query(Role).filter(
        Role.ParentNode == department.DepartCode).all()
    for item in role_query:
        item.ParentNode = code
    department.DepartCode = code
    department.DepartName = department_name
    db_session.commit()
    user_query = db_session.query(User).filter(
        User.OrganizationName == department.DepartName).all()
    for user in user_query:
        user.OrganizationName = department_name
    db_session.commit()
    return json.dumps({'code': 10002, 'msg': '更新成功'})
Ejemplo n.º 22
0
def saveroleuser():
    '''
    用户添加角色
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            UserID = data.get("UserID")
            RoleIDs = data.get("RoleIDs")
            if RoleIDs:
                RoleIDs = eval(RoleIDs)
            userclass = db_session.query(User).filter(
                User.ID == int(UserID)).first()
            sql = "delete from RoleUser where UserID = " + UserID
            db_session.execute(sql)
            db_session.commit()
            for pid in RoleIDs:
                rolecalss = db_session.query(Role).filter(
                    Role.ID == int(pid)).first()
                rpclas = db_session.query(RoleUser).filter(
                    RoleUser.UserID == userclass.ID,
                    RoleUser.RoleID == rolecalss.ID).first()
                if not rpclas:
                    rp = RoleUser()
                    rp.UserID = userclass.ID
                    rp.UserName = userclass.Name
                    rp.RoleID = rolecalss.ID
                    rp.RoleName = rolecalss.RoleName
                    db_session.add(rp)
                    db_session.commit()
            return json.dumps({
                "code": "200",
                "message": "请求成功"
            },
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "用户添加角色Error:" + str(e), current_user.Name)
Ejemplo n.º 23
0
def saverolepermission():
    '''
    角色添加权限
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            roleID = data.get("roleID")
            permissionIDs = data.get("permissionIDs")
            if permissionIDs:
                permissionIDs = eval(permissionIDs)
            roleclass = db_session.query(Role).filter(
                Role.ID == int(roleID)).first()
            sql = "delete from RolePermission where RoleID = " + roleID
            db_session.execute(sql)
            db_session.commit()
            for pid in permissionIDs:
                permissioncalss = db_session.query(Permission).filter(
                    Permission.ID == int(pid)).first()
                rpclas = db_session.query(RolePermission).filter(
                    RolePermission.RoleID == roleclass.ID,
                    RolePermission.PermissionID == permissioncalss.ID).first()
                if not rpclas:
                    rp = RolePermission()
                    rp.RoleID = roleclass.ID
                    rp.RoleName = roleclass.RoleName
                    rp.PermissionID = permissioncalss.ID
                    rp.PermissionName = permissioncalss.PermissionName
                    db_session.add(rp)
                    db_session.commit()
            return json.dumps({
                "code": "200",
                "message": "请求成功"
            },
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "角色添加权限Error:" + str(e), current_user.Name)
Ejemplo n.º 24
0
def PlanManagerRealse():
    '''计划下发'''
    if request.method == 'POST':
        data = request.values  # 返回请求中的参数和form
        try:
            jsonstr = json.dumps(data.to_dict())
            if len(jsonstr) > 10:
                PlanStatus = data.get("PlanStatus")
                if PlanStatus == "待执行":
                    IDs = json.loads(data.get("IDs"))
                    for ID in IDs:
                        oclass = db_session.query(PlanManager).filter(
                            PlanManager.ID == ID).first()
                        oclass.PlanStatus = PlanStatus
                        db_session.commit()
                        insertAuditTrace(
                            "计划下发",
                            "批次号是:" + oclass.BatchID + "的" + oclass.BrandName +
                            "在" + datetime.datetime.now().strftime(
                                '%Y-%m-%d %H:%M:%S') + "计划下发操作", "PlanManager",
                            current_user.Name, "")
                    return json.dumps({"code": "200", "message": "生产确认成功!!"})
                elif PlanStatus == "撤回":
                    ID = data.get("ID")
                    oclassplan = db_session.query(PlanManager).filter_by(
                        ID=ID).first()
                    oclassplan.PlanStatus = Global.PlanStatus.Recall.value
                    db_session.commit()
                    insertAuditTrace(
                        "撤回计划", "批次号是:" + oclassplan.BatchID + "的" +
                        oclassplan.BrandName + "在" +
                        datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') +
                        "进行撤回计划操作", "PlanManager", current_user.Name, "")
                    return json.dumps({"code": "200", "message": "成功!!"})
                else:
                    return json.dumps({"code": "200", "message": "批次计划状态不正确!"})
        except Exception as e:
            print(e)
            logger.error(e)
            insertSyslog("error", "生产确认报错Error:" + str(e), current_user.Name)
            return 'NO'
Ejemplo n.º 25
0
def batchmodelinsert():
    '''批记录模板名称路径储存'''
    if request.method == 'POST':
        data = request.values
        try:
            BrandName = data.get("BrandName")
            PUCode = data.get("PUCode")
            BrandCode = data.get("BrandCode")
            PUIDName = data.get("PUIDName")
            FileName = data.get("FileName")
            Parameter = data.get("Parameter")
            #删除之前存的
            oclass = db_session.query(BatchModel).filter(
                BatchModel.PUCode == PUCode).all()
            for oc in oclass:
                db_session.delete(oc)
                os.remove(oc.FilePath)
            db_session.commit()
            #新添加的
            bm = BatchModel()
            bm.BrandName = BrandName
            bm.PUCode = PUCode
            bm.BrandCode = BrandCode
            bm.PUIDName = PUIDName
            bm.FileName = FileName
            bm.FilePath = os.path.join(
                os.path.realpath(r"system_backend\SystemManagement\files"),
                FileName)
            bm.UserName = current_user.Name
            bm.Parameter = Parameter
            db_session.add(bm)
            db_session.commit()
            return json.dumps({"code": "200", "message": "上传成功!"})
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "批记录模板导入报错Error:" + str(e),
                         current_user.Name)
            return json.dumps({"code": "500", "message": "后端报错"})
Ejemplo n.º 26
0
def taskSaveEqpCheckReview():
    '''
    任务审核复核(选择设备)
    :return:
    '''
    if request.method == 'POST':
        data = request.values
        try:
            ZYPlanStatus = data.get("ZYPlanStatus")
            ocalss = db_session.query(ZYPlan).filter(
                ZYPlan.ID == data.get("ID")).first()
            # datalist = json.loads(data.get("datalist"))
            # iTaskSeq = 0
            # for i in datalist:
            #     ocalss = db_session.query(ZYTask).filter(ZYTask.ID == i.get("ID")).first()
            #     ocalss.EQPCode = i.get("EQPCode")
            #     ocalss.EQPName = i.get("EQPName")
            #     db_session.commit()
            ocalss.ZYPlanStatus = ZYPlanStatus
            db_session.commit()
            insertAuditTrace(
                "任务审核复核(选择设备)", "批次号是:" + ocalss.BatchID + "的" +
                ocalss.BrandName + "在" + ocalss.PUName + "段的" +
                datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') +
                "进行计划审核操作", "PlanManager", current_user.Name, "")
            return json.dumps({
                "code": "200",
                "message": "任务选择设备成功!",
                "data": "OK"
            })
        except Exception as e:
            db_session.rollback()
            print(e)
            logger.error(e)
            insertSyslog("error", "任务审核复核报错Error:" + str(e), current_user.Name)
            return json.dumps("任务审核复核报错",
                              cls=AlchemyEncoder,
                              ensure_ascii=False)
Ejemplo n.º 27
0
def getTreeChildrenMap(id, ParentCode, tableName, Name, Code):
    sz = []
    try:
        db_session.commit()
        newTable = Table(tableName,
                         metadata,
                         autoload=True,
                         autoload_with=engine)
        orgs = db_session.query(newTable).filter(
            newTable.columns._data[ParentCode] == int(id)).all()
        dir = []
        for i in orgs:
            a = 0
            divi = {}
            for j in newTable.columns._data:
                divi[str(j)] = str(i[a])
                a = a + 1
            dir.append(divi)
        for obj in dir:
            if int(obj.get(ParentCode)) == int(id):
                sz.append({
                    "label":
                    obj.get(Name),
                    "value":
                    obj.get(Code),
                    "children":
                    getTreeChildrenMap(obj.get("ID"), ParentCode, tableName,
                                       Name, Code)
                })
        return sz
    except Exception as e:
        print(e)
        return json.dumps([{
            "status": "Error:" + str(e)
        }],
                          cls=AlchemyEncoder,
                          ensure_ascii=False)
Ejemplo n.º 28
0
def delete_department():
    code = request.headers.get('department_code')
    department = db_session.query(DepartmentManager).filter(
        DepartmentManager.DepartCode == code).first()
    role_query = db_session.query(Role).filter(
        Role.ParentNode == department.DepartCode).all()
    for item in role_query:
        item.ParentNode = ''
    db_session.commit()
    user_query = db_session.query(User).filter(
        User.OrganizationName == department.DepartName).all()
    for item in user_query:
        item.OrganizationName = ''
    db_session.commit()
    db_session.delete(department)
    db_session.commit()
    return json.dumps({'code': 10001, 'msg': '删除成功'})
Ejemplo n.º 29
0
def WMS_SendPlan():
    '''发送投料任务和桶对应提取罐信息到投料系统'''
    if request.method == 'POST':
        data = request.values
        try:
            jsonstr = json.dumps(data.to_dict())
            if len(jsonstr) > 10:
                dic = []
                PlanID = data.get("PlanID")
                pmoc = db_session.query(PlanManager).filter(
                    PlanManager.ID == PlanID).first()
                zypl = db_session.query(ZYPlan).filter(
                    ZYPlan.BatchID == pmoc.BatchID,
                    ZYPlan.BrandCode == pmoc.BrandCode,
                    ZYPlan.PUName.like("%提%")).first()
                if zypl == None:
                    zypl = db_session.query(ZYPlan).filter(
                        ZYPlan.BatchID == pmoc.BatchID,
                        ZYPlan.BrandCode == pmoc.BrandCode,
                        ZYPlan.PUName.like("%渗%")).first()
                dic.append({
                    "PlanNo": zypl.ID,
                    "BrandCode": pmoc.BrandCode,
                    "BrandName": pmoc.BrandName,
                    "BatchID": pmoc.BatchID,
                    "Weight": pmoc.PlanQuantity,
                    "Unit": pmoc.Unit
                })
                url = Global.WMSurl + "api/WbeApi/RecvTransInfon"
                dir = {}
                dir["zyplan_list"] = dic
                dir = json.dumps(dir)
                resp = requests.post(url, json=dir, headers=headers)
                responjson = json.loads(resp.content)
                responjson = eval(responjson)
                if responjson.get("code") != "0":
                    db_session.rollback()
                    return json.dumps({
                        "code":
                        "500",
                        "message":
                        "调用WMS_SendPlan接口报错!" + responjson.get("msg")
                    })
                oclass = db_session.query(BatchMaterialInfo).filter(
                    BatchMaterialInfo.BrandCode == pmoc.BrandCode,
                    BatchMaterialInfo.BatchID == pmoc.BatchID).all()
                dic = []
                for oc in oclass:
                    dic.append({
                        "PlanNo": zypl.ID,
                        "BatchMaterialInfoID": oc.ID,
                        "BrandCode": pmoc.BrandCode,
                        "BrandName": pmoc.BrandName,
                        "BatchID": oc.BatchID,
                        "FlagCode": oc.BucketNum,
                        "Weight": oc.BucketWeight,
                        "Unit": oc.Unit,
                        "Flag": oc.Flag,
                        "FeedingSeq": oc.FeedingSeq,
                        "EQPCode": oc.EQPCode,
                        "EQPName": oc.EQPName,
                        "TYPE": "投料"
                    })
                if len(dic) > 0:
                    url = Global.WMSurl + "api/WbeApi/RecvContanerInfon"
                    dir = {}
                    dir["batchmaterial_list"] = dic
                    dir = json.dumps(dir)
                    resp = requests.post(url, json=dir, headers=headers)
                    responjson = json.loads(resp.content)
                    responjson = eval(responjson)
                    if responjson.get("code") != "0":
                        return json.dumps({
                            "code":
                            "500",
                            "message":
                            "调用WMS_SendPlan接口报错!" + responjson.get("msg")
                        })
                for oc in oclass:
                    oc.SendFlag = "投料系统已接收"
                    oc.OperationDate = datetime.datetime.now().strftime(
                        '%Y-%m-%d %H:%M:%S')
                    db_session.commit()
                # pmoc.PlanStatus = Global.PlanStatus.FSMWMSed.value
                # db_session.commit()
                insertSyslog(
                    "调用投料计划发送接口", "发送品名:" + pmoc.BrandName + " 批次:" +
                    pmoc.BatchID + "的投料计划到投料系统", current_user.Name)
                return json.dumps({"code": "200", "message": "OK"})
        except Exception as e:
            db_session.rollback()
            print("调用WMS_SendPlan接口报错!")
            insertSyslog("error", "调用WMS_SendPlan接口报错Error" + str(e),
                         current_user.Name)
            return json.dumps("调用WMS_SendPlan接口报错!")
Ejemplo n.º 30
0
def WMS_SendMatils():
    '''备料明细发送投料系统接口'''
    if request.method == 'POST':
        data = request.values
        try:
            jsonstr = json.dumps(data.to_dict())
            if len(jsonstr) > 10:
                jsonnumber = re.findall(r"\d+\.?\d*", data.get("sendData"))
                PlanID = data.get("PlanID")
                pmoc = db_session.query(PlanManager).filter(
                    PlanManager.ID == PlanID).first()
                dic = []
                for key in jsonnumber:
                    id = int(key)
                    oclass = db_session.query(BatchMaterialInfo).filter(
                        BatchMaterialInfo.ID == id).first()
                    zypla = db_session.query(ZYPlan).filter(
                        ZYPlan.BatchID == oclass.BatchID,
                        ZYPlan.BrandCode == oclass.BrandCode,
                        ZYPlan.PUName.like("%提%")).first()
                    if zypla == None:
                        zypla = db_session.query(ZYPlan).filter(
                            ZYPlan.BatchID == oclass.BatchID,
                            ZYPlan.BrandCode == oclass.BrandCode,
                            ZYPlan.PUName.like("%渗%")).first()
                    dic.append({
                        "PlanNo": zypla.ID,
                        "BatchMaterialInfoID": oclass.ID,
                        "BrandCode": pmoc.BrandCode,
                        "BrandName": pmoc.BrandName,
                        "BatchID": oclass.BatchID,
                        "FlagCode": oclass.BucketNum,
                        "Weight": oclass.BucketWeight,
                        "Unit": oclass.Unit,
                        "Flag": oclass.Flag,
                        "FeedingSeq": oclass.FeedingSeq,
                        "EQPCode": oclass.EQPCode,
                        "EQPName": oclass.EQPName,
                        "TYPE": "备料"
                    })
                if len(dic) > 0:
                    url = Global.WMSurl + "api/WbeApi/RecvContanerInfon"
                    dir = {}
                    dir["batchmaterial_list"] = dic
                    dir = json.dumps(dir)
                    resp = requests.post(url, json=dir, headers=headers)
                    responjson = json.loads(resp.content)
                    responjson = eval(responjson)
                    if responjson.get("code") != "0":
                        return json.dumps({
                            "code":
                            "500",
                            "message":
                            "调用WMS_SendPlan接口报错!" + responjson.get("msg")
                        })
                for key in jsonnumber:
                    oclass = db_session.query(BatchMaterialInfo).filter(
                        BatchMaterialInfo.ID == key).first()
                    oclass.SendFlag = "投料系统已接收"
                    oclass.OperationDate = datetime.datetime.now().strftime(
                        '%Y-%m-%d %H:%M:%S')
                    # zypla.TaskStatus = "已发送"
                    db_session.commit()
                pmoc.PlanStatus = data.get("PlanStatus")
                db_session.commit()
                insertSyslog(
                    "投料物料明细发送接口", "发送品名:" + pmoc.BrandName + " 批次:" +
                    pmoc.BatchID + "的备料明细到投料系统", current_user.Name)
                return json.dumps({"code": "200", "message": "OK"})
        except Exception as e:
            db_session.rollback()
            print("调用WMS_SendPlan接口报错!")
            insertSyslog("error", "调用WMS_SendPlan接口报错Error" + str(e),
                         current_user.Name)
            return json.dumps("调用WMS_SendPlan接口报错!")