| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace HH.WCS.DaYang.core { |
| | | internal class WMSCore { |
| | | namespace HH.WCS.DaYang.core |
| | | { |
| | | internal class WMSCore |
| | | { |
| | | /// <summary> |
| | | /// 遍历定版的发货单,生产分拣单主表和子表(也可以手动调接口触发) |
| | | /// </summary> |
| | | internal static void CheckShippingOrder() { |
| | | internal static void CheckShippingOrder() |
| | | { |
| | | //1.0、获取已经定版的发货单,生产分拣单子表和主表,设置【发货单】的业务状态 N_B_STATE = 1(待分拣) |
| | | //2.0、如果发货单C_AUTO_SORTING=Y,则自动将分拣单状态设置为开始配货 |
| | | |
| | |
| | | /// <summary> |
| | | /// 开始配货创建分拣单明细(改成调接口触发) |
| | | /// </summary> |
| | | internal static void CheckSortingOrder() { |
| | | internal static void CheckSortingOrder() |
| | | { |
| | | //new SortingOrder().N_B_STATE |
| | | //1.0、获取 N_B_STATE = 1 (开始配货)状态的分拣单 |
| | | //2.0、遍历分拣单子表,创建分拣单明细,更新分拣单子表的明细汇总F_ACC_S_QTY |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 作业启动,创建子任务 |
| | | /// </summary> |
| | | internal static void Start() { |
| | | internal static void Start() |
| | | { |
| | | |
| | | List<WMSTask> list = WMSHelper.GetWaitingOperationList(); |
| | | if (list.Count > 0) { |
| | | if (list.Count > 0) |
| | | { |
| | | //空托回库任务创建 |
| | | list.ForEach(a => { |
| | | if (a.N_TYPE == 1) { |
| | | if (!string.IsNullOrEmpty(a.S_END_LOC)) |
| | | list.ForEach(a => |
| | | { |
| | | //空托回库 |
| | | if (a.N_TYPE == 1) |
| | | { |
| | | if (!string.IsNullOrEmpty(a.S_END_LOC)) |
| | | { |
| | | string JbwLoc = ""; |
| | | //创建agv搬运任务 |
| | |
| | | S_CNTR_CODE = a.S_CNTR_CODE, |
| | | |
| | | }; |
| | | if (WCSHelper.CreateTask(wcsTask1)&& WCSHelper.CreateTask(wcsTask2)) |
| | | |
| | | if (WCSHelper.CreateTask(wcsTask1) && WCSHelper.CreateTask(wcsTask2)) |
| | | { |
| | | //更新作业状态为执行 |
| | | a.N_B_STATE = 1; |
| | | a.S_B_STATE = "执行"; |
| | | LocationHelper.LockLoc(a.S_START_LOC, 2); |
| | | LocationHelper.LockLoc(a.S_END_LOC, 1); |
| | | WMSHelper.UpdateTaskState(a); |
| | | } |
| | | } |
| | | } |
| | | |
| | | else if (a.N_TYPE == 2) |
| | | { |
| | | |
| | | string JbwLoc = ""; |
| | | |
| | | //创建wcs任务 |
| | | var wcsTask1 = new WCSTask |
| | | { |
| | | S_OP_CODE = a.S_CODE, |
| | | S_OP_NAME = "出库", |
| | | S_CODE = WCSHelper.GenerateTaskNo(), |
| | | S_TYPE = "出库", |
| | | S_START_LOC = a.S_START_LOC, |
| | | S_END_LOC = JbwLoc, |
| | | N_SCHEDULE_TYPE = 2, |
| | | N_CNTR_COUNT = 1, |
| | | S_CNTR_CODE = a.S_CNTR_CODE, |
| | | |
| | | }; |
| | | //创建wcs回库任务 |
| | | var wcsTask2 = new WCSTask |
| | | { |
| | | S_OP_CODE = a.S_CODE, |
| | | S_OP_NAME = "出库", |
| | | S_CODE = WCSHelper.GenerateTaskNo(), |
| | | S_TYPE = "出库", |
| | | S_START_LOC = JbwLoc, |
| | | S_END_LOC = a.S_END_LOC, |
| | | N_SCHEDULE_TYPE = 1, |
| | | N_CNTR_COUNT = 1, |
| | | S_CNTR_CODE = a.S_CNTR_CODE, |
| | | |
| | | }; |
| | | |
| | | if (WCSHelper.CreateTask(wcsTask1) && WCSHelper.CreateTask(wcsTask2)) |
| | | { |
| | | //更新作业状态为执行 |
| | | a.N_B_STATE = 1; |
| | | a.S_B_STATE = "执行"; |
| | | LocationHelper.LockLoc(a.S_START_LOC, 2); |
| | | LocationHelper.LockLoc(a.S_END_LOC, 1); |
| | | WMSHelper.UpdateTaskState(a); |
| | | } |
| | | } |
| | | |
| | | |
| | | }); |
| | | |
| | | } |