| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Security.Policy; |
| | | using static HH.WCS.JiaTong.api.ApiModel; |
| | | using static HH.WCS.JiaTong.util.Settings; |
| | | |
| | | namespace HH.WCS.JiaTong.core |
| | | { |
| | |
| | | { |
| | | if (model.state <= 7) |
| | | { |
| | | |
| | | //有任务号请求 |
| | | switch (model.state) |
| | | { |
| | |
| | | break; |
| | | #region MyRegion |
| | | case 3: |
| | | WCSHelper.UpdateAgvNo(TN_Task, model.forklift_no); |
| | | WCSHelper.UpdateStatus(TN_Task, "开始取货"); |
| | | break; |
| | | case 4: |
| | |
| | | break; |
| | | case 6: |
| | | WCSHelper.UpdateStatus(TN_Task, "卸货完成"); |
| | | if (TN_Task.S_NOTE != "入库" && TN_Task.S_NOTE != "空托回库") |
| | | if (!string.IsNullOrEmpty(TN_Task.S_NOTE) && (TN_Task.S_NOTE.Trim() == "入库" || TN_Task.S_NOTE.Trim() == "空托回库")) |
| | | { |
| | | LocationHelper.UnlockLoc(TN_Task.S_END_LOC); |
| | | } |
| | | else |
| | | { |
| | | TaskProcess.OperateStatus(TN_Task, 6); |
| | | } |
| | |
| | | break; |
| | | } |
| | | WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | //调用第三方接口(如果有) |
| | | |
| | | //物料到位通知 |
| | | if ((TN_Task.S_TYPE == "出平库" || TN_Task.S_TYPE == "余料返回") && model.state == 2) |
| | | if ((TN_Task.S_TYPE == "出平库" || TN_Task.S_TYPE == "余料返回") && model.state == 6) |
| | | { |
| | | string urlitem = Settings.tableUrls.Find(a => a.id == 5).url; |
| | | TaskProcess.MESIteminfoback(TN_Task, urlitem); |
| | | } |
| | | if ((TN_Task.S_NOTE == "出库" || TN_Task.S_NOTE == "异常库区入库") && !string.IsNullOrEmpty(TN_Task.S_MES_NO) && model.state == 2) |
| | | if ((TN_Task.S_NOTE == "出库" || TN_Task.S_NOTE == "异常库区入库") && !string.IsNullOrEmpty(TN_Task.S_MES_NO) && model.state == 6) |
| | | { |
| | | string urlitem = Settings.tableUrls.Find(a => a.id == 5).url; |
| | | TaskProcess.MESIteminfoback(TN_Task, urlitem); |
| | |
| | | //任务回报 任务来源 1.钢丝立库 2.胶片库 3.预备库 5.mes下发 |
| | | if (TN_Task.Z_TYPE == 5) |
| | | { |
| | | //TN_Task = WCSHelper.GetTask(TN_Task.S_CODE); |
| | | string urlstate = Settings.tableUrls.Find(a => a.id == 4).url; |
| | | TaskProcess.MESReportback(TN_Task, model.state, urlstate); |
| | | } |
| | | else |
| | | { |
| | | string url = ""; |
| | | if (TN_Task.Z_TYPE == 1) |
| | | //立库与wms任务回报 |
| | | TableUrl url = null; |
| | | switch (TN_Task.Z_TYPE) |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 1).url; |
| | | } |
| | | else if (TN_Task.Z_TYPE == 3) |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 9).url; |
| | | } |
| | | else if (TN_Task.Z_TYPE == 4) |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 11).url; |
| | | } |
| | | else if (TN_Task.Z_TYPE == 6)//wms室内到货回报 |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 14).url; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务回报:任务类型错误"); |
| | | } |
| | | if (TN_Task.S_TYPE.Contains("电梯")) |
| | | { |
| | | if (TN_Task.S_TYPE == "电梯1") |
| | | { |
| | | if (TN_Task.S_CODE == "1" || TN_Task.S_CODE == "3" || TN_Task.S_CODE == "4") |
| | | |
| | | case 1: |
| | | url = Settings.tableUrls.Find(a => a.id == 1); |
| | | if (url != null) |
| | | { |
| | | TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url); |
| | | } |
| | | } |
| | | else if (TN_Task.S_TYPE == "电梯2") |
| | | { |
| | | if (TN_Task.S_CODE == "5" || TN_Task.S_CODE == "6" || TN_Task.S_CODE == "2") |
| | | { |
| | | TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url); |
| | | } |
| | | } |
| | | } |
| | | //原材料接口需要加上token |
| | | else if (TN_Task.Z_TYPE == 4) |
| | | { |
| | | Console.WriteLine($"原材料任务回报{TN_Task.S_EQ_NO}"); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO.Trim() == TN_Task.S_EQ_NO).ToList(); |
| | | //分档任务回报,任务1只回报1 3 4 任务2只回报 5 6 2 |
| | | |
| | | TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url); |
| | | } |
| | | else |
| | | { |
| | | if (!string.IsNullOrEmpty(url)) |
| | | { |
| | | if (TN_Task.S_TYPE == "电梯2" && TN_Task.S_CODE == "2") |
| | | { |
| | | |
| | | TaskProcess.WmsReportback(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url); |
| | | |
| | | TaskProcess.Reportback(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url.url,"ML"); |
| | | } |
| | | else |
| | | { |
| | | TaskProcess.Reportback(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url); |
| | | LogHelper.Info("原材料任务回报,根据id=1未找到地址配置文件,请检查配置文件"); |
| | | } |
| | | break; |
| | | case 3: |
| | | url = Settings.tableUrls.Find(a => a.id == 9); |
| | | if (url != null) |
| | | { |
| | | TaskProcess.Reportback(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url.url,"YBK"); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("原材料任务回报,根据id=9未找到地址配置文件,请检查配置文件"); |
| | | } |
| | | break; |
| | | case 4: |
| | | url = Settings.tableUrls.Find(a => a.id == 11); |
| | | if (url != null) |
| | | { |
| | | Console.WriteLine($"原材料任务回报{TN_Task.S_EQ_NO}"); |
| | | if (TN_Task.S_TYPE.Contains("电梯")) |
| | | { |
| | | if (TN_Task.S_TYPE == "电梯1") |
| | | { |
| | | if (TN_Task.S_CODE == "1" || TN_Task.S_CODE == "3" || TN_Task.S_CODE == "4") |
| | | { |
| | | TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url.url); |
| | | } |
| | | } |
| | | else if (TN_Task.S_TYPE == "电梯2") |
| | | { |
| | | if (TN_Task.S_CODE == "5" || TN_Task.S_CODE == "6" || TN_Task.S_CODE == "2") |
| | | { |
| | | TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url.url); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info($"任务回报:未找到回报地址,请检查配置文件==>{JsonConvert.SerializeObject(Settings.tableUrls)}"); |
| | | } |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO.Trim() == TN_Task.S_EQ_NO).ToList(); |
| | | TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url.url); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("原材料任务回报,根据id=11未找到地址配置文件,请检查配置文件"); |
| | | } |
| | | break; |
| | | case 6: |
| | | url = Settings.tableUrls.Find(a => a.id == 14); |
| | | if (url != null) |
| | | { |
| | | TaskProcess.WmsReportback(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url.url); |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("原材料任务回报,根据id=14未找到地址配置文件,请检查配置文件"); |
| | | } |
| | | break; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | var db = new SqlHelper<TaskAction>().GetInstance(); |
| | | var taskAction = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == model.task_no && a.N_ACTION_CODE == model.state).First(); |
| | | if (taskAction == null) |
| | | { |
| | | WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); |
| | | } |
| | | |
| | | //安全请求等 |
| | | string url = ""; |
| | | string name = ""; |
| | | if (TN_Task.Z_TYPE == 1) |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 2).url; |
| | | name = "ML"; |
| | | } |
| | | else if (TN_Task.Z_TYPE == 3) |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 10).url; |
| | | name = "YBK"; |
| | | } |
| | | else if (TN_Task.Z_TYPE == 4) |
| | | { |
| | | url = Settings.tableUrls.Find(a => a.id == 11).url; |
| | | name = "YCL"; |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | if (!string.IsNullOrEmpty(url)) |
| | | { |
| | | TaskProcess.OperateReq(model, url, TN_Task); |
| | | TaskProcess.OperateReq(model, url, TN_Task,name); |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | //查询任务 |
| | | //获取所有等待的任务 |
| | | |
| | | Console.WriteLine("开始任务推送"); |
| | | var list = WCSHelper.GetTaskListByState("等待"); |
| | | |
| | | if (list.Count > 0) |