| | |
| | | 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}"); |
| | | LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList(),mst.S_TYPE); |
| | | if (mst.S_TYPE.Contains("满托上线")) |
| | | { |
| | | //解绑物料 |
| | | new SqlHelper<object>().GetInstance().Deleteable<CntrItemRel>().Where(a => mst.S_CNTR_CODE.Contains(a.S_CNTR_CODE)).ExecuteCommand(); |
| | | new SqlHelper<object>().GetInstance().Updateable<Container>().SetColumns(a => a.N_DETAIL_COUNT == 0).Where(a => mst.S_CNTR_CODE.Contains(a.S_CODE)).ExecuteCommand(); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | else |
| | | { |
| | | //查询后面当前货位后一个 |
| | | result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && a.N_CURRENT_NUM < a.N_CAPACITY && b.S_LOCK_STATE == "无").OrderBy(b => b.N_COL).First(); |
| | | result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && b.N_CURRENT_NUM < b.N_CAPACITY && b.S_LOCK_STATE == "无").OrderBy(b => b.N_COL).First(); |
| | | } |
| | | if (result != null) |
| | | { |
| | |
| | | LogHelper.Info($"出库算法04:当前货位绑定的托盘码为:{cntrInfo.S_CNTR_CODE}"); |
| | | string endItemCode = ""; |
| | | var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First(); |
| | | if (itemInfo != null && itemInfo.S_ITEM_CODE == itemCode) |
| | | if (itemInfo != null) |
| | | { |
| | | endItemCode = itemInfo.S_ITEM_CODE; |
| | | } |
| | |
| | | { |
| | | var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode, S_SRC = deviceName }; |
| | | if (db.Insertable<LocCntrRel>(cir).ExecuteCommand() > 0) LogHelper.Info($"货位容器表绑定成功,货位号:{loc},托盘号:{cntrCode}"); |
| | | var Con = db.Queryable<Container>().Where(a => a.S_CODE == cntrCode).First(); |
| | | if(Con == null) |
| | | { |
| | | int detallCount = 0; |
| | | if (!string.IsNullOrEmpty(itemCode)) |
| | | { |
| | | detallCount = 1; |
| | | } |
| | | if(db.Insertable<Container>(new Container |
| | | { |
| | | S_CODE = cntrCode, |
| | | N_TYPE = 1, |
| | | N_DETAIL_COUNT = detallCount |
| | | }).ExecuteCommand() > 0) |
| | | { |
| | | LogHelper.Info($"容器表绑定成功,托盘号:{cntrCode}"); |
| | | } |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(itemCode)) |
| | | { |
| | | BindCntrItem(cntrCode, itemCode, batchNo, itemlayer, itemName); |
| | |
| | | try |
| | | { |
| | | db.BeginTran(); |
| | | |
| | | var Con = db.Queryable<Container>().Where(a => a.S_CODE == trayCode).First(); |
| | | if (Con == null) |
| | | { |
| | | int detallCount = 1; |
| | | if (db.Insertable<Container>(new Container |
| | | { |
| | | S_CODE = trayCode, |
| | | N_TYPE = 1, |
| | | N_DETAIL_COUNT = detallCount |
| | | }).ExecuteCommand() > 0) |
| | | { |
| | | LogHelper.Info($"容器表绑定成功,托盘号:{trayCode}"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Con.N_DETAIL_COUNT = 1; |
| | | db.Updateable(Con).UpdateColumns(a => new { a.N_DETAIL_COUNT }).ExecuteCommand(); |
| | | } |
| | | //db.Updateable(cntr).UpdateColumns(it => new { it.S_DEST }).ExecuteCommand(); |
| | | //1.将原有容器物料信息删除 |
| | | //db.Deleteable<CntrItemRel>().Where(it => it.S_CNTR_CODE == cntr.S_CNTR_CODE.Trim()).ExecuteCommand(); |
| | |
| | | var op = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE); |
| | | if (op != null) |
| | | { |
| | | if (op.N_B_STATE == 0) |
| | | { |
| | | //等待直接修改状态为取消 |
| | | op.N_B_STATE = 3; |
| | | } |
| | | else if (op.N_B_STATE == 1) |
| | | { |
| | | if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4)) |
| | | { |
| | | op.N_B_STATE = 2; |
| | | } |
| | | else |
| | | { |
| | | op.N_B_STATE = 3; |
| | | } |
| | | } |
| | | |
| | | op.N_B_STATE = 2; |
| | | WMSHelper.UpdateTaskState(op); |
| | | } |
| | | NDCApi.CancelOrder(TN_Task.S_CODE.Trim()); |