| | |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IdentityModel.Protocols.WSTrust; |
| | | using System.Linq; |
| | | using System.Net.NetworkInformation; |
| | | using System.Security.Policy; |
| | | using System.Threading.Tasks; |
| | | using static HH.WCS.JiaTong.api.ApiModel; |
| | | using static HH.WCS.JiaTong.util.Settings; |
| | | |
| | |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | } |
| | | UpdateWait(TN_Task); |
| | | break; |
| | | #endregion |
| | | case 2: |
| | |
| | | { |
| | | LogHelper.Info("原材料任务回报,根据id=14未找到地址配置文件,请检查配置文件"); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卸货完成如果有相邻库区的回库任务 推送任务 |
| | | /// </summary> |
| | | internal static void UpdateWait(WCSTask mst) |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | try |
| | | { |
| | | var area = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == mst.S_END_AREA).First(); |
| | | if (area != null) |
| | | { |
| | | if (!string.IsNullOrEmpty(area.S_GROUP)) |
| | | { |
| | | int code = int.Parse(area.S_GROUP.Substring(1, 1)); |
| | | string areaName = area.S_GROUP.Substring(0, 1); |
| | | string[] AreaList = new string[] { areaName + (code - 1), areaName + (code + 1), area.S_GROUP }; |
| | | LogHelper.Info($"任务{mst.S_CODE},终点区域{JsonConvert.SerializeObject(AreaList)}"); |
| | | var AreasByGroup = db.Queryable<Area>().Where(a => AreaList.Contains(a.S_GROUP)).ToList(); |
| | | if (AreasByGroup.Count > 0) |
| | | { |
| | | var AreaCodes = AreasByGroup.Select(a => a.S_CODE).ToList(); |
| | | LogHelper.Info($"任务{mst.S_CODE},根据终点区域获取库区编码:{JsonConvert.SerializeObject(AreaCodes)}"); |
| | | var updateMst = db.Queryable<WCSTask>().Where(a => AreaCodes.Contains(a.S_END_AREA.Trim()) && a.S_B_STATE == "等待推送").OrderBy(a=>a.T_CREATE).First(); |
| | | updateMst.S_B_STATE = "等待"; |
| | | db.Updateable(updateMst).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务{mst.S_CODE},终点区域{JsonConvert.SerializeObject(AreaList)},未找到对于分组库区,请检查库区表"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务{mst.S_CODE},终点库区{mst.S_END_AREA}分组为空"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务{mst.S_CODE},终点库区{mst.S_END_AREA}未找到对于库区,请检查库区表"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info($"UpdateWait Error:{ex}"); |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 任务分发,根据调度类型发给不同的调度系统 |
| | | /// </summary> |
| | | internal static void Dispatch() |
| | |
| | | } |
| | | |
| | | }); |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 任务分发,根据调度类型发给不同的调度系统 |
| | | /// </summary> |
| | | internal static void DispatchWait() |
| | | { |
| | | //查询任务 |
| | | //获取所有等待的任务 |
| | | // Console.WriteLine("开始任务推送"); |
| | | var list = WCSHelper.GetTaskListByState("等待推送"); |
| | | |
| | | if (list.Count > 0) |
| | | { |
| | | list.ForEach(task => |
| | | { |
| | | TaskProcess.WaitSend(task); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |