| | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 自动补充空工装到接驳位 |
| | | /// 自动补空工装到固定空工装出库站台 |
| | | /// </summary> |
| | | public static void AutoReplenishEmptyPallet() |
| | | { |
| | | var logicConfigs = WMSHelper.getLogicConfigByTaskType("3"); |
| | | if (logicConfigs != null && logicConfigs.Count > 0) |
| | | var emptyFixedOutLocList = WMSHelper.GetEmptyFixedOutLocList(); |
| | | foreach (var emptyLoc in emptyFixedOutLocList) |
| | | { |
| | | foreach (var item in logicConfigs) |
| | | var wmsTask = WMSHelper.GetWmsTaskByEnd(emptyLoc.S_CODE); |
| | | if (wmsTask == null ) |
| | | { |
| | | var jbLoc = LocationHelper.GetLoc(item.S_LKKTJBLOC); |
| | | var wmsTask = WMSHelper.GetWmsTaskByEnd(item.S_LKKTJBLOC); |
| | | if (wmsTask == null && jbLoc.N_CURRENT_NUM == 0) |
| | | LogHelper.Info($"固定空工装出库站台:{emptyLoc.S_CODE}补充空工装", "WMS"); |
| | | var areaRelevance = Settings.areaRelevanceList.Where(a => a.jbAreaCode == emptyLoc.S_AREA_CODE).First(); |
| | | if (areaRelevance != null) |
| | | { |
| | | LogHelper.Info($"非直连接驳位:{jbLoc.S_CODE},需要补充空工装", "WMS"); |
| | | Location startLoc = WMSHelper.getOutStockStartLoc(item.S_AREA_CODE, null); |
| | | Location startLoc = WMSHelper.getOutStockStartLoc(areaRelevance.areaCode, null); |
| | | if (startLoc != null) |
| | | { |
| | | var locCntrRels = LocationHelper.GetLocCntr(startLoc.S_CODE); |
| | |
| | | S_CODE = WMSHelper.GenerateTaskNo(), |
| | | S_START_LOC = startLoc.S_CODE, |
| | | S_START_AREA = startLoc.S_AREA_CODE, |
| | | S_END_LOC = jbLoc.S_CODE, |
| | | S_END_AREA = jbLoc.S_AREA_CODE, |
| | | S_TYPE = "空工装自动出库任务", |
| | | S_OP_DEF_NAME = "自动补充空工装到接驳位", |
| | | S_END_LOC = emptyLoc.S_CODE, |
| | | S_END_AREA = emptyLoc.S_AREA_CODE, |
| | | S_TYPE = "空工装出库任务", |
| | | S_OP_DEF_NAME = "自动补充空工装到固定出库站台", |
| | | T_START_TIME = DateTime.Now, |
| | | }; |
| | | if (WMSHelper.CreateWmsTask(wmsTask)) |
| | |
| | | S_TYPE = wmsTask.S_TYPE, |
| | | S_START_LOC = startLoc.S_CODE, |
| | | S_START_AREA = startLoc.S_AREA_CODE, |
| | | S_END_LOC = jbLoc.S_CODE, |
| | | S_END_AREA = jbLoc.S_AREA_CODE, |
| | | S_END_LOC = emptyLoc.S_CODE, |
| | | S_END_AREA = emptyLoc.S_AREA_CODE, |
| | | S_SCHEDULE_TYPE = "WCS", |
| | | N_PRIORITY = 10, |
| | | T_START_TIME = DateTime.Now, |
| | |
| | | } |
| | | else |
| | | { |
| | | WMSHelper.addAlarmRecord("流程异常", "高", $"非直连接驳位:{jbLoc.S_CODE}补充空工装失败,原因:库区:{item.S_AREA_CODE}没有空工装"); |
| | | WMSHelper.addAlarmRecord("流程异常", "高", $"固定空工装出库站台:{emptyLoc.S_CODE}补充空工装失败,原因:库区:{areaRelevance.areaCode}没有空工装"); |
| | | } |
| | | } |
| | | } |
| | |
| | | public static void UpdateInventoryRegularly() |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var areaCodeList = Settings.areaPropertyList.Select(a => a.areaCode).ToList(); |
| | | var areaCodeList = Settings.areaRelevanceList.Select(a => a.areaCode).ToList(); |
| | | var locations = db.Queryable<Location>() |
| | | .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE) |
| | | .Where((a,b) => a.N_CURRENT_NUM > 0 && b.S_CNTR_CODE != null && areaCodeList.Contains(a.S_AREA_CODE) ) |