| | |
| | | else |
| | | { |
| | | Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}"); |
| | | LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,起点解绑容器{mst.S_CNTR_CODE}"); |
| | | LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}"); |
| | | LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); |
| | | } |
| | | |
| | |
| | | LogHelper.Info($"没找到任务{no},交互请求失败", "安全交互"); |
| | | } |
| | | } |
| | | else if (state == 1105) |
| | | else if (state == 1003) |
| | | { |
| | | var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE); |
| | | |
| | |
| | | //开关关门申请 |
| | | DeviceProcess.Door(mst, forkliftNo, state); |
| | | } |
| | | else if (state == 1002) { |
| | | else if (state == 1004) { |
| | | LogHelper.Info($"等待交互,任务号={mst.S_CODE}", "安全交互"); |
| | | |
| | | var wcsCode = mst.S_CODE.Replace(@"_1", "_2"); |
| | | |
| | | LogHelper.Info($"等待交互,查询校验任务号={wcsCode}", "安全交互"); |
| | | //等待rfid校验 |
| | | var rfidFlag = TaskHelper.GetRfid(mst.S_CODE); |
| | | var rfidFlag = TaskHelper.GetRfid(wcsCode); |
| | | |
| | | LogHelper.Info($"等待交互,任务号={mst.S_CODE},RFID校验信息"+JsonConvert.SerializeObject(rfidFlag), "安全交互"); |
| | | if (rfidFlag!=null) |
| | |
| | | |
| | | //查找给定终点 |
| | | var end = LocationHelper.GetLoc(kt.Location_To); |
| | | //LogHelper.Info($"当前任务{task.S_CODE}改道终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | //if (end == null || end.S_LOCK_STATE != "无") |
| | | //{ |
| | | // LogHelper.Info($"当前任务{task.S_CODE}改道终点失败,终点:{kt.Location_To},没找到或有锁", "改道安全交互"); |
| | | //} |
| | | TaskHelper.Fail(wcsTask); |
| | | TaskProcess.OperateStatus(wcsTask, 7); |
| | | LocationHelper.LockLoc(end.S_CODE, "入库锁", 1); |
| | | db.BeginTran(); |
| | | //改一段任务终点 |
| | | task.S_END_LOC = end.S_CODE; |
| | | task.S_END_AREA = end.S_AREA_CODE; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC,it.S_END_AREA}).ExecuteCommand(); |
| | | kt.Status = "Y"; |
| | | db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | var site = LocationHelper.GetAgvSiteZc(end.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | return; |
| | | if (end.S_LOCK_STATE=="无" && end.N_CURRENT_NUM==0) |
| | | { |
| | | //LogHelper.Info($"当前任务{task.S_CODE}改道终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | //if (end == null || end.S_LOCK_STATE != "无") |
| | | //{ |
| | | // LogHelper.Info($"当前任务{task.S_CODE}改道终点失败,终点:{kt.Location_To},没找到或有锁", "改道安全交互"); |
| | | //} |
| | | TaskHelper.Fail(wcsTask); |
| | | TaskProcess.OperateStatus(wcsTask, 7); |
| | | LocationHelper.LockLoc(end.S_CODE, "入库锁", 1); |
| | | db.BeginTran(); |
| | | //改一段任务终点 |
| | | task.S_END_LOC = end.S_CODE; |
| | | task.S_END_AREA = end.S_AREA_CODE; |
| | | db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand(); |
| | | kt.Status = "Y"; |
| | | db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | var site = LocationHelper.GetAgvSiteZc(end.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1,4为0", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "0"); |
| | | return; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First(); |
| | | if (rowdwa == null) |
| | | { |
| | | LogHelper.Info($"判断巷道可用,当前库区{wcsTask.S_END_AREA}当前巷道{loc1.N_ROADWAY}可用,不需要改道", "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE}判断巷道可用,当前库区{wcsTask.S_END_AREA}当前巷道{loc1.N_ROADWAY}可用,不需要改道", "改道安全交互"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"当前巷道不可用,需要改道", "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE}当前巷道不可用,需要改道", "改道安全交互"); |
| | | var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC); |
| | | List<Location> endList; |
| | | if (!string.IsNullOrEmpty(workFlow.ZONECODE)) |
| | | { |
| | | endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); |
| | | } |
| | | else |
| | | { |
| | | endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); |
| | | } |
| | | |
| | | var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA); |
| | | |
| | | var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY); |
| | | LogHelper.Info($"当前巷道不可用,需要改道,新终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE},当前巷道不可用,需要改道,新终点信息" + JsonConvert.SerializeObject(end), "改道安全交互"); |
| | | if (end == null) |
| | | { |
| | | LogHelper.Info($"当前巷道不可用,终点库区{workFlow.ENDAREA},没找到终点", "改道安全交互"); |
| | |
| | | { |
| | | |
| | | flag = false; |
| | | LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1", "改道安全交互"); |
| | | LogHelper.Info($"当前任务{task.S_CODE}接驳位{con.S_CODE}可用,不需要改道,直接修改参数6为1,4为1024", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); |
| | | break; |
| | | } |
| | | } |
| | |
| | | db.CommitTran(); |
| | | |
| | | var site = LocationHelper.GetAgvSiteZc(loc.S_CODE); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1", "改道安全交互"); |
| | | LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1,4为1024", "改道安全交互"); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 2, site); |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 6, "1"); |
| | | |
| | | |
| | | NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024"); |
| | | |
| | | //} else if (workFlow.FLOWNAME.Contains("出库")) { |
| | | // var endLoc = LocationHelper.GetLocOne(task.S_START_LOC); |
| | | // endLoc.N_LOCK_STATE = 3; |
| | |
| | | |
| | | LogHelper.Info($"推送任务{mst.S_CODE}", "NDC"); |
| | | |
| | | |
| | | if (mst.S_TYPE.Contains("出库")) |
| | | { |
| | | var wcsTask = TaskHelper.GetTaskByWork("wcs", mst.S_OP_CODE); |
| | | if (wcsTask == null) { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},没找到作业:{mst.S_OP_CODE}对应的出库任务", "NDC"); |
| | | return false; |
| | | } |
| | | |
| | | if (wcsTask.S_B_STATE=="未执行") |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},对应的Wcs出库任务未执行,暂不推送", "NDC"); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | start = LocationHelper.GetAgvSiteZc(mst.S_START_LOC); |
| | | end = LocationHelper.GetAgvSiteZc(mst.S_END_LOC); |
| | | |
| | |
| | | var ndcParme = new List<param>(); |
| | | ndcParme.Add(new param() { name = "From", value = start.ToString() }); |
| | | ndcParme.Add(new param() { name = "To", value = end.ToString() }); |
| | | ndcParme.Add(new param() { name = "FUNC", value = "0" }); |
| | | |
| | | |
| | | var work = TaskHelper.GetWmsWork(mst.S_OP_CODE); |
| | | if (work==null) |
| | | { |
| | | LogHelper.Info($"推送任务{mst.S_CODE},没找到作业:{mst.S_OP_CODE}", "NDC"); |
| | | return false; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(work.CONNECTION)) |
| | | { |
| | | ndcParme.Add(new param() { name = "DATA", value = "0" }); |
| | | } |
| | | else { |
| | | ndcParme.Add(new param() { name = "DATA", value = "768" }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | ndcParme.Add(new param() { name = "Ctype", value = "0" }); |
| | | |
| | | |
| | | var res = NDCApi.AddOrderNew(1, mst.N_PRIORITY, mst.S_CODE, ndcParme); |
| | | |
| | |
| | | } |
| | | db.CommitTran(); |
| | | LogHelper.Info("绑定解绑", "结束"); |
| | | result.errMsg = "解绑完成"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | return result; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | |
| | | LogHelper.Info("物料绑定解绑异常:" + e.Message, "物料绑定解绑"); |
| | | result.errMsg = "物料绑定解绑异常"; |
| | | result.errCode = 1; |
| | | result.success = false; |
| | | return result; |
| | | } |
| | | return result; |
| | |
| | | result.success = false; |
| | | return result; |
| | | } |
| | | var endTask = TaskHelper.GetTaskByStartLoc(zd); |
| | | var endTask = TaskHelper.GetTaskByEndLoc(zd); |
| | | if (endTask != null) |
| | | { |
| | | result.errMsg = "终点有执行中任务"; |
| | |
| | | /// </summary> |
| | | internal static Result addMesTask(ZcInWorkAreaParme model) { |
| | | var result = new Result(); |
| | | |
| | | //保存到mes任务记录 |
| | | MesTask mesRes = new MesTask() |
| | | { |
| | | task_no = model.task_no, |
| | | Task_type = model.Task_type, |
| | | TurnCardNum = model.TurnCardNum, |
| | | PROD_NO = model.PROD_NO, |
| | | PROD_TECH = model.PROD_TECH, |
| | | PROD_SPEC = model.PROD_SPEC, |
| | | PROD_BOM = model.PROD_BOM, |
| | | PROD_Feature = model.PROD_Feature, |
| | | TOOLS_NO = model.TOOLS_NO, |
| | | ST_AMOUNT = model.ST_AMOUNT, |
| | | CURRENT_AMOUNT = model.CURRENT_AMOUNT, |
| | | Location_From = model.Location_From, |
| | | Location_To = model.Location_To, |
| | | PRODUCE_TIME = model.PRODUCE_TIME, |
| | | SHELF_LIFE_TIME = model.SHELF_LIFE_TIME, |
| | | EXPIRED_TIME = model.EXPIRED_TIME, |
| | | SHELF_REP = model.SHELF_REP, |
| | | EXPIRED_REP = model.EXPIRED_REP, |
| | | CHECK_CODE = model.CHECK_CODE, |
| | | CHECK_INFO = model.CHECK_INFO, |
| | | Priority = model.Priority, |
| | | Data_status = model.Data_status, |
| | | CreateDate = DateTime.Now, |
| | | standardWeight = model.standardWeight, |
| | | BUSI_TYPE = model.BUSI_TYPE, |
| | | TOOLS_TPYE = model.TOOLS_TPYE, |
| | | }; |
| | | |
| | | try |
| | | { |
| | |
| | | |
| | | //如果需要下发wcs立库,则需要寻找可用接驳位 |
| | | if (workFlow.SENDWCS == "Y") { |
| | | |
| | | //测试默认取一个接驳位 |
| | | //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION); |
| | | //foreach (var item in connectionList) |
| | | //{ |
| | | // if (item.S_LOCK_STATE == "无" && item.N_CURRENT_NUM < 2) |
| | | // { |
| | | // connection = item.S_CODE; |
| | | // LogHelper.Info($"ZCSendTask入库任务下发寻找到可用接驳位{connection}", "Mes任务下发"); |
| | | // } |
| | | //} |
| | | |
| | | //if (connection=="") |
| | | //{ |
| | | // LogHelper.Info($"ZCSendTask任务下发寻找接驳位失败", "Mes任务下发"); |
| | | // throw new Exception($"ZCSendTask任务下发寻找接驳位失败"); |
| | | //} |
| | | |
| | | //正式代码,调用接口寻找可用接驳位 |
| | | var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); |
| | |
| | | result.errMsg = "入库作业创建成功"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | mesRes.errCode = result.errCode; |
| | | mesRes.errMsg = result.errMsg; |
| | | //保存mes记录 |
| | | CreatMesRes(mesRes); |
| | | return result; |
| | | } |
| | | else { |
| | |
| | | LogHelper.Info($"ZCSendTask出库任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发"); |
| | | |
| | | |
| | | if (end == null || end.S_LOCK_STATE != "无") |
| | | if (end == null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To},没找到或有锁", "Mes任务下发"); |
| | | throw new Exception($"终点:{model.Location_To},没找到或有锁"); |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To},没找到", "Mes任务下发"); |
| | | throw new Exception($"终点:{model.Location_To},没找到"); |
| | | } |
| | | |
| | | |
| | | var unlimitedLocation = TaskHelper.GetMesKtLoc(); |
| | | |
| | | //标记终点货位是否可以无限制下任务 |
| | | var endLocFlag = true; |
| | | |
| | | foreach (var item in unlimitedLocation) |
| | | { |
| | | //出库终点货位在配置里 可以无限制下任务 |
| | | if (item.Loc.Contains(model.Location_To)) |
| | | { |
| | | endLocFlag = false; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (endLocFlag) |
| | | { |
| | | var endTask = TaskHelper.GetTaskByEndLoc(model.Location_To); |
| | | if (endTask != null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,终点:{model.Location_To}有任务执行中,任务号:{endTask.S_CODE}", "Mes任务下发"); |
| | | throw new Exception($"终点:{model.Location_To}有任务执行中,任务号:{endTask.S_CODE}"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | //查找起点 |
| | | var strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); |
| | | List<Location> strrtList; |
| | | |
| | | Location start = null; |
| | | |
| | | |
| | | if (!string.IsNullOrEmpty(workFlow.ZONECODE)) |
| | | { |
| | | strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE); |
| | | } |
| | | else |
| | | { |
| | | strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); |
| | | } |
| | | |
| | | |
| | | |
| | | if (workFlow.FLOWCODE == "9") |
| | | { |
| | | if (TOOLSTYPE == "85" || TOOLSTYPE == "95") |
| | |
| | | result.errMsg = "满托出库作业有库存但设备报警"; |
| | | result.errCode = 2001; |
| | | result.success = true; |
| | | mesRes.errCode = result.errCode; |
| | | mesRes.errMsg = result.errMsg; |
| | | //保存mes记录 |
| | | CreatMesRes(mesRes); |
| | | return result; |
| | | } |
| | | } |
| | |
| | | } |
| | | else if (workFlow.FLOWCODE == "7") { |
| | | //寻找立库区空托 |
| | | start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA); |
| | | if (start == null) |
| | | { |
| | | strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); |
| | | var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA); |
| | | LogHelper.Info($"ZCSendTask空托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发"); |
| | | //start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA); |
| | | //if (start == null) |
| | | //{ |
| | | // strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA); |
| | | // var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA); |
| | | // LogHelper.Info($"ZCSendTask空托出库任务没找到起点,校验是否有库存但是设备报警{itemFlag}", "Mes任务下发"); |
| | | |
| | | if (itemFlag) |
| | | // if (itemFlag) |
| | | // { |
| | | // result.errMsg = "空托出库作业有库存但设备报警"; |
| | | // result.errCode = 2001; |
| | | // result.success = true; |
| | | // return result; |
| | | // } |
| | | //} |
| | | |
| | | //空托出先缓存到空托表 |
| | | |
| | | //先查询有没有同终点缓存的记录 |
| | | |
| | | if (endLocFlag) { |
| | | var ktTask = TaskHelper.GetMesKtTask(end.S_CODE); |
| | | if (ktTask != null) |
| | | { |
| | | result.errMsg = "空托出库作业有库存但设备报警"; |
| | | result.errCode = 2001; |
| | | result.success = true; |
| | | return result; |
| | | LogHelper.Info($"ZCSendTask空托出缓存失败,终点{end.S_CODE}已有缓存", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask空托出缓存失败,终点{end.S_CODE}已有缓存"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发"); |
| | | |
| | | if (workFlow.FLOWCODE == "7" && start == null) |
| | | { |
| | | //空托出没找到起点,先缓存到空托表 |
| | | |
| | | |
| | | MesKtTask req = new MesKtTask() |
| | | { |
| | |
| | | Priority = model.Priority, |
| | | CreateDate = DateTime.Now, |
| | | BUSI_TYPE = model.BUSI_TYPE, |
| | | TOOLS_TPYE = model.TOOLS_TPYE, |
| | | TOOLS_TPYE = TOOLSTYPE, |
| | | task_no=model.task_no, |
| | | Status = "N" |
| | | }; |
| | | |
| | |
| | | result.errMsg = "空托出库缓存成功"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | mesRes.errCode = result.errCode; |
| | | mesRes.errMsg = result.errMsg; |
| | | //保存mes记录 |
| | | CreatMesRes(mesRes); |
| | | return result; |
| | | } |
| | | else |
| | |
| | | LogHelper.Info($"ZCSendTask空托出缓存失败", "Mes任务下发"); |
| | | throw new Exception($"ZCSendTask空托出缓存失败"); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | else { |
| | | |
| | | |
| | | LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发"); |
| | | |
| | | if (start == null) |
| | | { |
| | | LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发"); |
| | | throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | if (workFlow.SENDWCS == "Y") |
| | | { |
| | | //测试默认取一个接驳位 |
| | | //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION); |
| | | //foreach (var item in connectionList) |
| | | //{ |
| | | // if (item.S_LOCK_STATE == "无" && item.N_CURRENT_NUM < 2) |
| | | // { |
| | | // connection = item.S_CODE; |
| | | // LogHelper.Info($"ZCSendTask入库任务下发寻找到可用接驳位{connection}", "Mes任务下发"); |
| | | // } |
| | | //} |
| | | |
| | | //if (connection == "") |
| | | //{ |
| | | // LogHelper.Info($"ZCSendTask任务下发寻找接驳位失败", "Mes任务下发"); |
| | | // throw new Exception($"ZCSendTask任务下发寻找接驳位失败"); |
| | | //} |
| | | |
| | | |
| | | //正式代码,调用接口寻找可用接驳位 |
| | | var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION); |
| | |
| | | //创建作业 |
| | | if (WMSHelper.CreateWmsWork(operation)) |
| | | { |
| | | if (connection!="") |
| | | { |
| | | LocationHelper.LockLoc(operation.S_START_LOC, "出库锁", 2); |
| | | LocationHelper.LockLoc(operation.S_END_LOC, "入库锁", 1); |
| | | LocationHelper.LockLoc(operation.CONNECTION, "入库锁", 1); |
| | | } |
| | | |
| | | |
| | | LogHelper.Info($"ZCSendTask出库作业创建成功{operation.S_CODE}", "Mes任务下发"); |
| | | result.errMsg = "出库作业创建成功"; |
| | | result.errCode = 0; |
| | | result.success = true; |
| | | mesRes.errCode = result.errCode; |
| | | mesRes.errMsg = result.errMsg; |
| | | //保存mes记录 |
| | | CreatMesRes(mesRes); |
| | | return result; |
| | | } |
| | | else { |
| | |
| | | } |
| | | |
| | | |
| | | //参数校验完成保存到mes任务记录 |
| | | //MesTask req = new MesTask() |
| | | //{ |
| | | // task_no = model.task_no, |
| | | // Task_type = model.Task_type, |
| | | // TurnCardNum = model.TurnCardNum, |
| | | // PROD_NO = model.PROD_NO, |
| | | // PROD_TECH = model.PROD_TECH, |
| | | // PROD_SPEC = model.PROD_SPEC, |
| | | // PROD_BOM = model.PROD_BOM, |
| | | // PROD_Feature = model.PROD_Feature, |
| | | // TOOLS_NO = model.TOOLS_NO, |
| | | // ST_AMOUNT = model.ST_AMOUNT, |
| | | // CURRENT_AMOUNT = model.CURRENT_AMOUNT, |
| | | // Location_From = model.Location_From, |
| | | // Location_To = model.Location_To, |
| | | // PRODUCE_TIME = model.PRODUCE_TIME, |
| | | // SHELF_LIFE_TIME = model.SHELF_LIFE_TIME, |
| | | // EXPIRED_TIME = model.EXPIRED_TIME, |
| | | // SHELF_REP = model.SHELF_REP, |
| | | // EXPIRED_REP = model.EXPIRED_REP, |
| | | // CHECK_CODE = model.CHECK_CODE, |
| | | // CHECK_INFO = model.CHECK_INFO, |
| | | // Priority = model.Priority, |
| | | // Data_status = model.Data_status, |
| | | // CreateDate = DateTime.Now, |
| | | // standardWeight = model.standardWeight, |
| | | // BUSI_TYPE = model.BUSI_TYPE, |
| | | // TOOLS_TPYE = model.TOOLS_TPYE, |
| | | //}; |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | |
| | | result.errMsg = "ZCSendTask任务下发异常"+ex.Message; |
| | | result.errCode = 1; |
| | | result.success = false; |
| | | mesRes.errCode = result.errCode; |
| | | mesRes.errMsg = result.errMsg; |
| | | //保存mes记录 |
| | | CreatMesRes(mesRes); |
| | | return result; |
| | | } |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | internal static bool CreatMesRes(MesTask model) |
| | | { |
| | | var newDb = new SqlHelper<object>().GetInstance(); |
| | | return newDb.Insertable(model).ExecuteCommand()>0; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | internal static void inPri(WMSTask mst) |
| | | { |
| | | LogHelper.Info($"任务{mst.S_CODE}进入inpri", "入库优先级"); |
| | | var inprilist = TaskHelper.GetInPri(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | foreach (var item in inprilist) |
| | | { |
| | | |
| | | LogHelper.Info("入库优先级记录信息"+JsonConvert.SerializeObject(item), "入库优先级"); |
| | | |
| | | if (item.Type=="0" && mst.S_TYPE.Contains("空托出")) |
| | | { |
| | | if (mst.S_END_LOC.Contains(item.OutEndLoc)) |
| | | { |
| | | |
| | | var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "已推送" && a.S_SCHEDULE_TYPE.Contains("agv") && !a.S_TYPE.Contains("空托") && (a.S_TYPE.Contains("入库")|| a.S_TYPE.Contains("回库")) && a.S_START_LOC.Contains(item.InStartLoc)).First(); |
| | | |
| | | LogHelper.Info($"查找起点{item.InStartLoc}满托入库任务信息:" + JsonConvert.SerializeObject(task), "入库优先级"); |
| | | if (task != null) |
| | | { |
| | | NDCApi.ChangeOrderPri(task.S_CODE, item.Pri); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | if (item.Type == "1" && !mst.S_TYPE.Contains("空托") && mst.S_TYPE.Contains("出库")) |
| | | { |
| | | if (mst.S_END_LOC.Contains(item.OutEndLoc)) |
| | | { |
| | | var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "已推送" && a.S_SCHEDULE_TYPE.Contains("agv") && a.S_TYPE.Contains("空托入库") && a.S_START_LOC.Contains(item.InStartLoc)).First(); |
| | | LogHelper.Info($"查找起点{item.InStartLoc}空托入库任务信息:" + JsonConvert.SerializeObject(task), "入库优先级"); |
| | | if (task != null) |
| | | { |
| | | NDCApi.ChangeOrderPri(task.S_CODE, item.Pri); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | LogHelper.Info($"任务{mst.S_CODE},结束inpri", "入库优先级"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public class signalInfo |