| | |
| | | S_CNTR_CODE = task.S_CNTR_CODE, |
| | | S_BATCH_NO = item.S_BATCH_NO, |
| | | S_SERIAL_NO = item.S_SERIAL_NO, |
| | | D_PRD_DATE = item.D_PRD_DATE, |
| | | F_QTY = item.F_QTY |
| | | }; |
| | | db.Insertable(info).ExecuteCommand(); |
| | |
| | | //修改作业状态 重新启动 |
| | | wmsTask.N_B_STATE = 2; |
| | | WMSHelper.UpdateTaskState(wmsTask); |
| | | WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 4); |
| | | //WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 4); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | public static bool CreateOpTask(string startLoc, string endLoc, string sType, string taskType, string trayCode,string note = "") |
| | | public static bool CreateOpTask(string startLoc, string endLoc, string sType, string taskType, string trayCode, string note = "", string trayType = "", string workNo = "", string itemCode = "") |
| | | { |
| | | bool result = false; |
| | | int nType = sType == "入库" ? 1 : 2; |
| | |
| | | S_TYPE = sType, |
| | | S_OP_DEF_CODE = "", |
| | | S_OP_DEF_NAME = taskType, |
| | | S_NOTE = note |
| | | S_NOTE = note, |
| | | S_TRAY_TYPE = trayType, |
| | | S_WORK_NO = workNo, |
| | | S_ITEM_CODE = itemCode, |
| | | }; |
| | | result = WMSHelper.CreateWmsTask(wmsTask); |
| | | if (result) |
| | |
| | | if (a.N_TYPE == 2) |
| | | { |
| | | LogHelper.Info($"作业终点不为接驳位 查找库区{a.S_END_AREA} 可用货位"); |
| | | |
| | | |
| | | |
| | | //其他库区 |
| | | var endlist = db.Queryable<Location>() |
| | | .Where(it => it.S_AREA_CODE == a.S_END_AREA && it.N_CURRENT_NUM < it.N_CAPACITY) |
| | | .OrderBy(it => it.N_COL) |
| | | .PartitionBy(it => it.N_ROW) |
| | | .Take(1) |
| | | .ToList(); |
| | | LogHelper.Info($"符合条件的数量{endlist.Count}"); |
| | | foreach (var item in endlist) |
| | | { |
| | | var lockinfo = db.Queryable<Location>().Where(it => it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW).First(); |
| | | if (lockinfo == null) |
| | | { |
| | | result = item; |
| | | a.S_END_LOC = item.S_CODE; |
| | | break; |
| | | } |
| | | else LogHelper.Info($"货位{lockinfo.S_CODE} 有锁 当前排不可使用"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"入库任务 计算终点,任务类型:{a.S_OP_DEF_NAME}"); |
| | | if (a.S_OP_DEF_NAME == "瓶盖转运" || a.S_OP_DEF_NAME == "接驳位移库") |
| | | if (a.S_OP_DEF_NAME == "接驳位入库" || a.S_OP_DEF_NAME == "瓶盖空托入库" || a.S_OP_DEF_NAME == "瓶坯非即产空框入库" || a.S_OP_DEF_NAME == "瓶坯接驳位入库") |
| | | { |
| | | result = TaskProcess.BCPInOrOut(db, true, a.S_START_LOC,a.S_NOTE + "库区"); |
| | | string itemCode = ""; |
| | | var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_START_LOC).First(); |
| | | if(cntrInfo != null) |
| | | { |
| | | var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First(); |
| | | if(itemInfo != null) |
| | | { |
| | | itemCode = itemInfo.S_ITEM_CODE + itemInfo.S_BATCH_NO; |
| | | } |
| | | } |
| | | if (a.S_NOTE.Contains("指定库区")) |
| | | { |
| | | string areaName = a.S_NOTE.Split('-')[1]; |
| | | result = TaskProcess.BCPInOrOut(db, true, areaName, itemCode); |
| | | } |
| | | else |
| | | { |
| | | result = TaskProcess.BCPInOrOut(db, true, a.S_NOTE + "库区", itemCode); |
| | | } |
| | | } |
| | | if (a.S_OP_DEF_NAME.Contains("注塑") && a.S_OP_DEF_NAME.Contains("满托下线(瓶坯)")) |
| | | { |
| | | result = TaskProcess.BCPFullOut(db,a.S_OP_DEF_NAME,a.S_START_LOC); |
| | | var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_START_LOC).First(); |
| | | if (cntrInfo != null) |
| | | { |
| | | var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First(); |
| | | if (itemInfo != null) |
| | | { |
| | | result = TaskProcess.BCPFullOut(db, a.S_OP_DEF_NAME, itemInfo.S_ITEM_CODE); |
| | | } |
| | | } |
| | | } |
| | | if (a.S_OP_DEF_NAME.Contains("空托下线")) |
| | | { |
| | | result = TaskProcess.BCPEmptyOut(db,a.S_OP_DEF_NAME); |
| | | result = TaskProcess.BCPEmptyOut(db, a.S_OP_DEF_NAME); |
| | | } |
| | | |
| | | |
| | | //其他库区 |
| | | //var endlist = db.Queryable<Location>() |
| | | //.Where(it => it.S_AREA_CODE == a.S_END_AREA && it.N_CURRENT_NUM < it.N_CAPACITY) |