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'
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)
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)
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)
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)
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)
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
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": "批记录模板删除报错"})
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)
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)
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)
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)
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': '删除成功'})
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)
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": "后端报错"})
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)
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}})
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': '更新成功'})
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 } })
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)
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': '更新成功'})
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)
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)
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'
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": "后端报错"})
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)
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)
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': '删除成功'})
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接口报错!")
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接口报错!")