Program.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
api/ApiHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
api/ApiModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
core/Monitor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
core/WCSCore.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/TN_CG_Detail.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
models/TN_TN_SPE.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
process/TaskProcess.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
wms/LocationHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Program.cs
@@ -138,17 +138,19 @@ tasks.Add(GetTask(Monitor.CheckCntAndBoard));//同步 TN_Container 均要实时显示 tasks.Add(GetTask(Monitor.CheckNoOkCg));//检测满托缓存库区不合格的物品,满托出库复检 tasks.Add(GetTask(Monitor.CheckNoOkCg));//检测满托缓存库区不合格的物品,满托出库到复检区,替代了拆盘出库 //根据S7/Modbus协议判断输送线的信号 原材料产线库区=>满托缓存库区,空托缓存库区=>原材料产线库区 tasks.Add(GetTask(Monitor.CheckS7Devices)); tasks.Add(GetTask(Monitor.SynchronizationEquipPro));//同步 TN_EquipProDetail TN_InventoryM 年月日重量表 tasks.Add(GetTask(Monitor.FullOutTime));//满托过期出库 过期合格回库,过期次品回炉 //tasks.Add(GetTask(Monitor.FullOutTime));//满托过期出库 过期合格回库,过期次品回炉 tasks.Add(GetTask(Monitor.CGOkCheck));// 在复检区检测物品合格,合格的物品自动回库 tasks.Add(GetTask(Monitor.CGNGCheck));// 在复检区检测物品回炉胶还是报废 //tasks.Add(GetTask(Monitor.XBChekcFull));//线边满托货位自动解绑 Task.WaitAll(tasks.ToArray()); api/ApiHelper.cs
@@ -202,10 +202,10 @@ && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//查询合适的终点货位 } else if (model.cgState == 6)//一级料二级料回库 else if (model.cgState == 6)//E级料二级料回库 { cG_Detail.N_ITEM_STATE = 6; cG_Detail.S_ITEM_STATE = "一级料"; cG_Detail.S_ITEM_STATE = "E级料"; endLoc = db.Queryable<TN_Location>(). Where(o => o.S_AREA_CODE == Settings.Areas[2] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无" @@ -213,7 +213,7 @@ && o.C_ENABLE == "Y" && o.N_CURRENT_NUM == 0). OrderBy(o => o.T_MODIFY, OrderByType.Asc).First();//查询合适的终点货位 } else if (model.cgState == 7)//一级料二级料回库 else if (model.cgState == 7)//E级料二级料回库 { cG_Detail.N_ITEM_STATE = 7; cG_Detail.S_ITEM_STATE = "二级料"; @@ -227,7 +227,7 @@ else { result.resultCode = 6; result.resultMsg = $"物料状态只能为0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料,如果为其他值,则不处理"; result.resultMsg = $"物料状态只能为0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6E级料、7二级料,如果为其他值,则不处理"; LogHelper.Info(result.resultMsg); return result; } @@ -421,7 +421,7 @@ if ( db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_CURRENT_NUM, it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() == 1 && db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() == 1 && db.Insertable<TN_Loc_Container>(locCntList).ExecuteCommand() == 1 && db.Insertable<TN_Loc_Container>(locCntList).ExecuteCommand() == locCntList.Count && db.Insertable<TN_Task>(task).ExecuteCommand() == 1 ) { @@ -1828,7 +1828,7 @@ if (model.new_IsOK == model.old_IsOK) { result.resultCode = 19; result.resultMsg = $"人工拆盘入库,物料需要一个待检一个不合格"; result.resultMsg = $"人工拆盘入库,物料需要一个合格 和 一个不合格(回炉胶或废料)"; LogHelper.Info(result.resultMsg); return result; } @@ -1857,6 +1857,8 @@ LogHelper.Info(result.resultMsg); return result; } cG_old_Detail.S_ITEM_SPEC = model.old_Spec; cG_old_Detail.S_SPE = model.old_Spec; var startLoc_Old = db.Queryable<TN_Location>(). First(o => o.S_CODE == model.old_StartLoc && o.N_CURRENT_NUM == 0 && o.S_AREA_CODE == Settings.Areas[5] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无"); @@ -1920,13 +1922,12 @@ { S_CNTR_CODE = model.new_CntIds, S_BATCH_NO = cG_old_Detail.S_BATCH_NO, S_ITEM_SPEC = cG_old_Detail.S_ITEM_SPEC, S_SPE = cG_old_Detail.S_SPE, S_ITEM_SPEC = model.new_Spec, S_SPE = model.new_Spec, S_ITEM_STATE = LocationHelper.GetStrByOk(model.new_IsOK), N_ITEM_STATE = model.new_IsOK, S_CAR_CODE = cG_old_Detail.S_CAR_CODE, T_MODIFY = System.DateTime.Now, //C_ITEM_MERGE = model.new_CntIds, S_ITEM_CODE = cG_old_Detail.S_ITEM_CODE, S_Separate_ID = cG_old_Detail.S_Separate_ID }; @@ -1936,7 +1937,7 @@ if (db.Queryable<TN_Task>().Count(a => a.N_B_STATE < 3 && a.S_END_LOC == weightPoint) > 2) { result.resultCode = 11; result.resultMsg = $"终点称重货位{weightPoint}的正在执行的任务数量大于2"; result.resultMsg = $"终点称重货位{weightPoint}的正在执行的任务数量大于2,繁忙,请等待"; LogHelper.Info(result.resultMsg); return result; } @@ -1945,11 +1946,6 @@ First(o => o.S_AREA_CODE == Settings.Areas[9] && o.S_CODE == weightPoint);//查询合适的终点货位,去称重 var endLoc_NG = db.Queryable<TN_Location>(). Where(o => o.S_AREA_CODE == Settings.Areas[8] && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无" && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == o.S_CODE).NotAny()//不能有货 && o.N_CURRENT_NUM == 0).First();//查询合适的终点货位 if (endLoc_Ok == null) { @@ -1959,53 +1955,48 @@ return result; } if (endLoc_NG == null) { result.resultCode = 16; result.resultMsg = $"不合格的物料未找到合适的拆盘不合格区终点货位{Settings.Areas[8]}"; LogHelper.Info(result.resultMsg); return result; } var taskLog1_Old = $"旧容器号{model.old_CntId},旧容器号的起点{startLoc_Old.S_CODE},终点{endLoc_Ok.S_CODE}"; var taskLog_New = $"新容器号{model.new_CntIds},新容器号的起点{model.new_StartLoc},终点{endLoc_NG.S_CODE}"; var taskLog_New = $"新容器号{model.new_CntIds},新容器号的起点{model.new_StartLoc}"; List<CreateTasks> modesCreateTask = new List<CreateTasks>(); var newTaskCreate = new CreateTasks() if (model.new_IsOK == 0) { taskNo = WCSHelper.GenerateTaskNo(), from = model.new_StartLoc, fromArea = startLoc_New.S_AREA_CODE, to = (model.new_IsOK == 2) ? endLoc_NG.S_CODE : endLoc_Ok.S_CODE, toArea = (model.new_IsOK == 2) ? endLoc_NG.S_AREA_CODE : endLoc_Ok.S_AREA_CODE, taskType = (model.new_IsOK == 2) ? "人工拆盘回不合格区" : "人工拆盘回库", pri = 3, cntrInfo = model.new_CntIds, spec = cG_new_Detail_Ins.S_SPE, }; modesCreateTask.Add(newTaskCreate); var oldTaskCreate = new CreateTasks() var newTaskCreate = new CreateTasks() { taskNo = WCSHelper.GenerateTaskNo(), from = model.new_StartLoc, fromArea = startLoc_New.S_AREA_CODE, to = endLoc_Ok.S_CODE, toArea = endLoc_Ok.S_AREA_CODE, taskType = "人工拆盘合格回库", pri = 3, cntrInfo = model.new_CntIds, spec = cG_new_Detail_Ins.S_SPE, }; modesCreateTask.Add(newTaskCreate); } else if (model.old_IsOK == 1) { taskNo = WCSHelper.GenerateTaskNo(), from = startLoc_Old.S_CODE, fromArea = startLoc_Old.S_AREA_CODE, to = (model.old_IsOK == 2) ? endLoc_NG.S_CODE : endLoc_Ok.S_CODE, toArea = (model.old_IsOK == 2) ? endLoc_NG.S_AREA_CODE : endLoc_Ok.S_AREA_CODE, taskType = (model.old_IsOK == 2) ? "人工拆盘回不合格区" : "人工拆盘回库", pri = 3, cntrInfo = model.old_CntId, spec = cG_old_Detail.S_SPE, }; modesCreateTask.Add(oldTaskCreate); var newTaskCreate = new CreateTasks() { taskNo = WCSHelper.GenerateTaskNo(), from = model.old_StartLoc, fromArea = startLoc_Old.S_AREA_CODE, to = endLoc_Ok.S_CODE, toArea = endLoc_Ok.S_AREA_CODE, taskType = "人工拆盘合格回库", pri = 3, cntrInfo = model.old_CntId, spec = cG_old_Detail.S_SPE, }; modesCreateTask.Add(newTaskCreate); } startLoc_Old.N_LOCK_STATE = 2; startLoc_Old.S_LOCK_STATE = "出库锁"; startLoc_Old.N_CURRENT_NUM = 1; startLoc_New.N_LOCK_STATE = 2; startLoc_New.S_LOCK_STATE = "出库锁"; @@ -2041,49 +2032,11 @@ if (WCSHelper.CreateTask(modesCreateTask))//创建搬送任务,起点终点容器 { tran.CommitTran(); LogHelper.Info($"生成人工拆盘入库任务成功," + taskLog_New + taskLog1_Old); LogHelper.Info($"生成人工拆盘合格回库任务成功," + taskLog_New + taskLog1_Old); Task task1 = Task.Run(() => { WMSHelper.InsertOpInfo(model.staff, "人工拆盘入库", model.new_CntIds + "," + model.old_CntId); }); Task task2 = Task.Run(() => { if (model.old_IsOK == 1) { var target = new TN_RemeltDetail() { TASKNO = oldTaskCreate.taskNo, CNTCODE = cG_old_Detail.S_CNTR_CODE, STARTLOC = startLoc_Old.S_CODE, LOGINNAME = model.staff, ITEMCODE = cG_old_Detail.S_ITEM_CODE, SPEC = cG_old_Detail.S_SPE, CARCODE = cG_old_Detail.S_CAR_CODE, WEIGHT = cG_old_Detail.F_QTY, REMELTTIME = DateTime.Now, SHIFT = model.shift, }; SpecHelper.InsertRemeltDetail(target); } if (model.new_IsOK == 1) { var target = new TN_RemeltDetail() { TASKNO = newTaskCreate.taskNo, CNTCODE = cG_new_Detail_Ins.S_CNTR_CODE, STARTLOC = startLoc_New.S_CODE, LOGINNAME = model.staff, ITEMCODE = cG_new_Detail_Ins.S_ITEM_CODE, SPEC = cG_new_Detail_Ins.S_SPE, CARCODE = cG_new_Detail_Ins.S_CAR_CODE, WEIGHT = cG_new_Detail_Ins.F_QTY, REMELTTIME = DateTime.Now, SHIFT = model.shift, }; SpecHelper.InsertRemeltDetail(target); } WMSHelper.InsertOpInfo(model.staff, "人工拆盘合格回库", model.new_CntIds + "," + model.old_CntId); }); Task task27 = Task.Run(() => @@ -2126,7 +2079,7 @@ { tran.RollbackTran(); result.resultCode = 17; result.resultMsg = $"生成人工拆盘入库任务失败," + taskLog_New + taskLog1_Old; result.resultMsg = $"生成人工拆盘合格回库任务失败," + taskLog_New + taskLog1_Old; LogHelper.Info(result.resultMsg); return result; } @@ -2135,7 +2088,7 @@ { tran.RollbackTran(); result.resultCode = 18; result.resultMsg = $"生成人工拆盘入库任务失败," + taskLog_New + taskLog1_Old; result.resultMsg = $"生成人工拆盘合格回库任务失败," + taskLog_New + taskLog1_Old; LogHelper.Info(result.resultMsg); return result; } api/ApiModel.cs
@@ -431,18 +431,27 @@ { public string old_CntId { get; set; }//旧容器ID,被拆的 public string old_StartLoc { get; set; }//旧容器的起点 /// <summary> /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6E级料、7二级料、8回炉胶、9废料 /// </summary> public int old_IsOK { get; set; }//旧容器ID,旧容器的货品的 public string old_Spec { get; set; }//旧容器的货品的规格 public string old_CarCode { get; set; }//旧容器的货品的车号 public string new_CntIds { get; set; }//拆后的新容器ID public string new_StartLoc { get; set; }//新容器ID起点 /// <summary> /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6E级料、7二级料、8回炉胶、9废料 /// </summary> public int new_IsOK { get; set; }//新容器ID的货品的 public string new_Spec { get; set; }//新容器的货品的规格 public string new_CarCode { get; set; }//新容器的货品的车号 public string staff { get; set; } = "None";//操作人 public string shift { get; set; } = "None";//班次 } core/Monitor.cs
@@ -469,22 +469,38 @@ var startLoc = db.Queryable<TN_Location>() .LeftJoin<TN_Loc_Container>((o, i) => o.S_CODE == i.S_LOC_CODE) .LeftJoin<TN_CG_Detail>((o, i, s) => i.S_CNTR_CODE == s.S_CNTR_CODE) .Where((o, i, s) => s.N_ITEM_STATE == 0 && s.S_ITEM_STATE == "合格" .Where((o, i, s) => s.N_ITEM_STATE == 6 && s.S_ITEM_STATE == "E级料" && o.S_AREA_CODE == Settings.Areas[7] && o.N_CURRENT_NUM > 0 && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无").First(); var typename = "复检E级料自动回库"; if (startLoc == null) { startLoc = db.Queryable<TN_Location>() .LeftJoin<TN_Loc_Container>((o, i) => o.S_CODE == i.S_LOC_CODE) .LeftJoin<TN_CG_Detail>((o, i, s) => i.S_CNTR_CODE == s.S_CNTR_CODE) .Where((o, i, s) => s.N_ITEM_STATE == 0 && s.S_ITEM_STATE == "合格" && o.S_AREA_CODE == Settings.Areas[7] && o.N_CURRENT_NUM > 0 && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无").First(); typename = "复检合格自动回库"; } if (startLoc== null) { LogHelper.Info("复检区没有合格的物品,无需自动返回"); LogHelper.Info("复检区没有合格的或E级料的物品,无需自动返回"); return; } var endLoc = db.Queryable<TN_Location>() .OrderBy(a => a.N_LAYER, OrderByType.Asc) .First(a => a.S_AREA_CODE == Settings.Areas[1] .Where(a => a.S_AREA_CODE == Settings.Areas[1] && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "无" && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == a.S_CODE).NotAny()//不能有货 ); ).OrderBy(a => a.N_LAYER, OrderByType.Asc).First(); if (endLoc == null) { @@ -496,15 +512,15 @@ .LeftJoin<TN_Loc_Container>((o, i) => o.S_CNTR_CODE == i.S_CNTR_CODE) .Where((o, i) => i.S_LOC_CODE == startLoc.S_CODE).First(); if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, "复检合格自动回库", 3, cginfo.S_CNTR_CODE, out string taskNo, cginfo.S_SPE))//创建搬送任务,起点终点容器 if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, typename, 3, cginfo.S_CNTR_CODE, out string taskNo, cginfo.S_SPE))//创建搬送任务,起点终点容器 { LocationHelper.LockLoc(startLoc.S_CODE, 2);//起点出库锁, LocationHelper.LockLoc(endLoc.S_CODE, 1);//终点入库锁 LogHelper.Info($"生成复检合格自动回库任务成功,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}"); LogHelper.Info($"生成{typename}任务成功,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}"); Task task99 = Task.Run(() => { WMSHelper.InsertOpInfo("自动轮询", "复检合格自动回库", cginfo.S_CNTR_CODE); WMSHelper.InsertOpInfo("自动轮询", typename, cginfo.S_CNTR_CODE); }); Task task27 = Task.Run(() => @@ -528,7 +544,7 @@ } else { LogHelper.Info($"生成复检合格自动回库任务失败,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}"); LogHelper.Info($"生成{typename}任务失败,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}"); return; } @@ -536,6 +552,100 @@ catch(Exception ex) { LogHelper.Error("CGOkCheck发生了异常", ex); } } /// <summary> /// 在复检区检测物品回炉胶还是报废 /// </summary> public static void CGNGCheck() { var db = new SqlHelper<object>().GetInstance(); try { // 废料直接删除 var locCntFeiLiao = db.Queryable<TN_CG_Detail>() .LeftJoin<TN_Loc_Container>((o, i) => o.S_CNTR_CODE == i.S_CNTR_CODE) .LeftJoin<TN_Location>((o, i, s) => i.S_LOC_CODE == s.S_CODE) .Where((o, i, s) => o.N_ITEM_STATE == 9 && o.S_ITEM_STATE == "废料" && s.S_AREA_CODE == Settings.Areas[7] && s.N_CURRENT_NUM > 0 && s.N_LOCK_STATE == 0 && s.S_LOCK_STATE == "无").First(); if (locCntFeiLiao != null) { var reuslt1 = db.Deleteable<TN_CG_Detail>().Where(a => a.S_CNTR_CODE == locCntFeiLiao.S_CNTR_CODE).ExecuteCommand(); var reuslt2 = db.Deleteable<TN_Loc_Container>().Where(a => a.S_CNTR_CODE == locCntFeiLiao.S_CNTR_CODE).ExecuteCommand(); LogHelper.Info($"删除了废料{locCntFeiLiao.S_CNTR_CODE},影响的行数:{reuslt1}、{reuslt2}"); } var startLoc = db.Queryable<TN_Location>() .LeftJoin<TN_Loc_Container>((o, i) => o.S_CODE == i.S_LOC_CODE) .LeftJoin<TN_CG_Detail>((o, i, s) => i.S_CNTR_CODE == s.S_CNTR_CODE) .Where((o, i, s) => s.N_ITEM_STATE == 8 && s.S_ITEM_STATE == "回炉胶" && o.S_AREA_CODE == Settings.Areas[7] && o.N_CURRENT_NUM > 0 && o.N_LOCK_STATE == 0 && o.S_LOCK_STATE == "无").First(); var typename = "复检区回炉胶自动回炉"; if (startLoc == null) { LogHelper.Info("复检区没有回炉胶,无需自动返回"); return; } var cginfo = db.Queryable<TN_CG_Detail>() .LeftJoin<TN_Loc_Container>((o, i) => o.S_CNTR_CODE == i.S_CNTR_CODE) .Where((o, i) => i.S_LOC_CODE == startLoc.S_CODE).First(); if (cginfo == null) { LogHelper.Info($"未找到起点{startLoc.S_CODE}的物料信息"); return; } var endArea = db.Queryable<TN_TN_SPE>().First(a => a.S_SPE == cginfo.S_SPE || a.S_SPE == cginfo.S_ITEM_SPEC); if (endArea == null || string.IsNullOrWhiteSpace(endArea.S_RETURN_AREA)) { LogHelper.Info($"未找到规格{cginfo.S_SPE}、{cginfo.S_ITEM_SPEC}的规格配置信息,报该物料未配置回炉库区"); return; } var endLoc = db.Queryable<TN_Location>() .Where(a => a.S_AREA_CODE == endArea.S_RETURN_AREA && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "无" && SqlFunc.Subqueryable<TN_Loc_Container>().Where(b => b.S_LOC_CODE == a.S_CODE).NotAny()//不能有货 ).OrderBy(a => a.N_LAYER, OrderByType.Asc).First(); if (endLoc == null) { LogHelper.Info($"回炉终点库区{endArea.S_RETURN_AREA}已满或者已全部锁住"); return; } if (WCSHelper.CreateTask(startLoc.S_CODE, endLoc.S_CODE, typename, 3, cginfo.S_CNTR_CODE, out string taskNo, cginfo.S_SPE))//创建搬送任务,起点终点容器 { LocationHelper.LockLoc(startLoc.S_CODE, 2);//起点出库锁, LocationHelper.LockLoc(endLoc.S_CODE, 1);//终点入库锁 LogHelper.Info($"生成{typename}任务成功,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}"); Task task99 = Task.Run(() => { WMSHelper.InsertOpInfo("自动轮询", typename, cginfo.S_CNTR_CODE); }); return; } else { LogHelper.Info($"生成{typename}任务失败,容器号{cginfo.S_CNTR_CODE},起点{startLoc.S_CODE},终点{endLoc.S_CODE}"); return; } } catch (Exception ex) { LogHelper.Error("CGNGCheck发生了异常", ex); } } @@ -643,7 +753,7 @@ { var cntCode = db.Queryable<TN_Loc_Container>().First(a => a.S_LOC_CODE == startLoc_3.S_CODE); var outTimeCg = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == cntCode.S_CNTR_CODE); if (WCSHelper.CreateTask(startLoc_3.S_CODE, endLoc_3.S_CODE, "过期次品回炉", 3, outTimeCg.S_CNTR_CODE,out string taskno, outTimeCg.S_SPE)) if (WCSHelper.CreateTask(startLoc_3.S_CODE, endLoc_3.S_CODE, "过期次品回炉", 3, outTimeCg.S_CNTR_CODE, out string taskno, outTimeCg.S_SPE)) { LocationHelper.LockLoc(startLoc_3.S_CODE, 2);//起点出库锁, LocationHelper.LockLoc(endLoc_3.S_CODE, 1);//终点入库锁 @@ -1002,7 +1112,7 @@ } /// <summary> /// 检测满托缓存库区不合格的物品,满托出库复检 /// 检测满托缓存库区不合格的物品,满托出库到复检区,替代了拆盘出库 /// </summary> internal static void CheckNoOkCg() { core/WCSCore.cs
@@ -69,7 +69,11 @@ WCSHelper.Begin(tN_Task, model.forklift_no);//已推送的任务的状态改成执行 Task task4 = Task.Run(() => { if (tN_Task.S_TYPE.Contains("点对点") || tN_Task.S_TYPE.Contains("满托出库上线") || tN_Task.S_TYPE.Contains("满托出库复检")) if (tN_Task.S_TYPE.Contains("点对点") || tN_Task.S_TYPE.Contains("满托出库上线") || tN_Task.S_TYPE.Contains("满托出库复检") || tN_Task.S_TYPE.Contains("空托") ) { //不开启扫码 } models/TN_CG_Detail.cs
@@ -27,12 +27,12 @@ public string S_SPE { get; set; }//货品规格 /// <summary> /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6E级料、7二级料、8回炉胶、9废料 /// </summary> public string S_ITEM_STATE { get; set; }//货品状态 /// <summary> ///0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 ///0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6E级料、7二级料、8回炉胶、9废料 /// </summary> public int N_ITEM_STATE { get; set; }//货品状态_字典 public string S_BATCH_NO { get; set; }//批次号 models/TN_TN_SPE.cs
@@ -19,6 +19,11 @@ public string S_SPE { get; set; } /// <summary> /// 对应的回炉区 /// </summary> public string S_RETURN_AREA { get; set; } /// <summary> /// 过期时间,单位:小时 /// </summary> public int? N_EXPIRE_TIME { get; set; } process/TaskProcess.cs
@@ -155,7 +155,11 @@ dic.Add(new param() { name = "IKey", value = "IKey" }); dic.Add(new param() { name = "From", value = start.ToString() }); if (mst.S_TYPE.Contains("点对点") || mst.S_TYPE.Contains("满托出库上线") || mst.S_TYPE.Contains("满托出库复检")) if (mst.S_TYPE.Contains("点对点") || mst.S_TYPE.Contains("满托出库上线") || mst.S_TYPE.Contains("满托出库复检") || mst.S_TYPE.Contains("空托") ) { dic.Add(new param() { name = "FUNC", value = "0" }); } wms/LocationHelper.cs
@@ -522,7 +522,7 @@ } /// <summary> /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6一级料、7二级料 /// 0合格1待检2不合格,下线即待检,3过期,4技术判定,5混合,6E级料、7二级料 /// </summary> /// <param name="state"></param> /// <returns></returns> @@ -554,7 +554,7 @@ } if (state == 6) { return "一级料"; return "E级料"; } if (state == 7) { @@ -610,7 +610,7 @@ public string rfId { get; set; }//容器号 /// <summary> /// 0合格1待检2不合格,3过期,4技术判定,5混合,6一级料、7二级料 /// 0合格1待检2不合格,3过期,4技术判定,5混合,6E级料、7二级料 /// </summary> public int cgState { get; set; }//物料状态