| | |
| | | { |
| | | if (item.SQL_State != "完成") |
| | | { |
| | | ROW_LOCK(LocationHelper.GetLocList(x => x.S_AREA_CODE == item.start_area && x.N_ROW == srow).FirstOrDefault(), LocationHelper.GetLocList(x => x.S_AREA_CODE == item.end_area && x.N_ROW == erow).FirstOrDefault(), "", 0, string.IsNullOrEmpty(item.FROM_NO),item.SQL_WorkNo); |
| | | ROW_LOCK(LocationHelper.GetLocList(x => x.S_AREA_CODE == item.start_area && x.N_ROW == srow).FirstOrDefault(), LocationHelper.GetLocList(x => x.S_AREA_CODE == item.end_area && x.N_ROW == erow).FirstOrDefault(), "", 0, string.IsNullOrEmpty(item.FROM_NO), item.SQL_WorkNo); |
| | | WCSHelper.Do(db => |
| | | { |
| | | LogHelper.Info("移库工单数量完成" + item.SQL_WorkNo); |
| | |
| | | |
| | | static void ROW_LOCK(Location startBit, Location EndBit, string msg, int sign, bool up = true, string WorkNo = "") |
| | | { |
| | | LogHelper.Info("dooooooooooooooooooooooooooooooooooooooooooooo" + msg + "---" + sign); |
| | | LogHelper.Info("移库解锁 doo" + msg + "---" + sign + "--" + WorkNo); |
| | | LogHelper.Info(JsonConvert.SerializeObject(startBit)); |
| | | LogHelper.Info(JsonConvert.SerializeObject(EndBit)); |
| | | bool j解锁起点库区排 = true; |
| | |
| | | //解锁时,有工单号。 查查除了这个工单号以外的其他 指定出库排执行 |
| | | var orders = WCSHelper.GetWorkOrder2(); |
| | | var thisOrder = orders.Find(x => x.SQL_WorkNo == WorkNo); |
| | | LogHelper.Info("移库解锁 --当前工单 sid:" + thisOrder?.S_ID); |
| | | if (thisOrder != null) |
| | | { |
| | | var other = orders.Find(x => x.SQL_WorkNo != WorkNo && x.start_area == thisOrder.start_area && x.start_row == thisOrder.start_row); |
| | | LogHelper.Info($"移库解锁 --其他工单 x.start_area == {thisOrder.start_area} start_row == {thisOrder.start_row} SID:" + other?.S_ID); |
| | | if (other != null) |
| | | j解锁起点库区排 = false; |
| | | } |
| | |
| | | var locS = LocationHelper.GetAreaNormalLocList(ODs.Key); |
| | | foreach (var od in ODs) |
| | | { |
| | | LogHelper.Info($"from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 开始 》》》"); |
| | | if (string.IsNullOrEmpty(od.S_ZZ_AREA) || string.IsNullOrEmpty(od.S_END_AREA)) |
| | | LogHelper.Info($"YWL_ZX_Turn from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 开始 》》》"); |
| | | if (string.IsNullOrEmpty(od.S_ZZ_AREA) && string.IsNullOrEmpty(od.S_END_AREA)) |
| | | { |
| | | LogHelper.CError($"from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 数据缺失。无法完成移库。"); |
| | | LogHelper.CError($"YWL_ZX_Turn from{od.S_START_AREA} to{od.S_END_AREA} 数据缺失。无法完成移库。"); |
| | | continue; |
| | | } |
| | | var rows = locS.FindAll(x => x.N_ROW == od.N_START_ROW); |
| | |
| | | var lastful = rows.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault(); |
| | | if (lastful != null) |
| | | { |
| | | LogHelper.Info($"from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 找到移库起点》{lastful.S_LOC_CODE}。"); |
| | | LogHelper.Info($"YWL_ZX_Turn from{od.S_START_AREA}to{od.S_END_AREA} 找到移库起点》{lastful.S_LOC_CODE}。"); |
| | | var crs = LocationHelper.GetLocCntrRel(lastful.S_LOC_CODE); |
| | | var cntritems = ContainerHelper.GetCntrItemRel(crs.FirstOrDefault()?.S_CNTR_CODE); |
| | | if (!cntritems.Any()) |
| | | continue; |
| | | LogHelper.Info($"from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 找到移库起点》{lastful.S_LOC_CODE}。接驳是否被锁?:{InworkLock}"); |
| | | LogHelper.Info($"YWL_ZX_Turn from{od.S_START_AREA}to{od.S_END_AREA} 找到移库起点》{lastful.S_LOC_CODE}。接驳是否被锁?:{InworkLock}"); |
| | | var cir1 = cntritems.First(); |
| | | |
| | | if (!string.IsNullOrEmpty(od.S_ITEM_CODE)) |
| | | { |
| | | ///给移库单 写上转运的物料数据。 |
| | | od.S_ITEM_CODE = cir1.S_ITEM_CODE; |
| | | od.S_ITEM_NAME = cir1.S_ITEM_NAME; |
| | | od.S_CJ_NAME = cir1.S_CJ_NAME; |
| | | WCSHelper.Do(db => db.Updateable(od).UpdateColumns(it => new { it.S_ITEM_NAME, it.S_ITEM_CODE, it.S_CJ_NAME }).ExecuteCommand()); |
| | | } |
| | | |
| | | if (od.S_ZZ_AREA == "YWLWJJB") |
| | | { |
| | | if (InworkLock) |
| | |
| | | Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0)); |
| | | if (Endbit != null) |
| | | { |
| | | LogHelper.Info($"入中转区{od.S_ZZ_AREA}使用{Endbit.S_LOC_CODE}"); |
| | | LogHelper.Info($"入中转区{nextarea}使用{Endbit.S_LOC_CODE}"); |
| | | break; |
| | | } |
| | | } |
| | | LogHelper.Info($"from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 找到移库终点》{Endbit?.S_LOC_CODE}"); |
| | | LogHelper.Info($"YWL_ZX_Turn from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 找到移库终点》{Endbit?.S_LOC_CODE}"); |
| | | if (Endbit != null) |
| | | { |
| | | //生成接驳区任务,标记为终点库区。 |
| | | var b = TaskProcess.CreateTransport(od.S_ID, lastful.S_LOC_CODE, Endbit.S_LOC_CODE, "原物料搬运-纸箱", crs.Select(x => x.S_CNTR_CODE).ToList(), 1, 1, crs.Count, 50, nextarea == od.S_END_AREA ? "" : od.S_END_AREA); |
| | | if (od.S_ZZ_AREA == "YWLWJJB") InworkLock = false; |
| | | if (!string.IsNullOrEmpty(od.S_ITEM_CODE)) |
| | | { |
| | | ///给移库单 写上转运的物料数据。 |
| | | od.S_ITEM_CODE = cir1.S_ITEM_CODE; |
| | | od.S_ITEM_NAME = cir1.S_ITEM_NAME; |
| | | od.S_CJ_NAME = cir1.S_CJ_NAME; |
| | | WCSHelper.Do(db => db.Updateable(od).UpdateColumns(it => new { it.S_ITEM_NAME, it.S_ITEM_CODE, it.S_CJ_NAME }).ExecuteCommand()); |
| | | } |
| | | break; |
| | | } |
| | | else if (od.S_ZZ_AREA == "YWLWJJB") InworkLock = false; |