| | |
| | | using HH.WCS.JiaTong.core; |
| | | using HH.WCS.JiaTong.device; |
| | | using HH.WCS.JiaTong.dispatch; |
| | | using HH.WCS.JiaTong.LISTA.models; |
| | | using HH.WCS.JiaTong.LISTA.process; |
| | | using HH.WCS.JiaTong.util; |
| | | using HH.WCS.JiaTong.wms; |
| | |
| | | |
| | | if (!string.IsNullOrEmpty(mst.S_CNTR_CODE)) |
| | | { |
| | | LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,起点解绑容器{mst.S_CNTR_CODE}"); |
| | | LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}"); |
| | | LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); |
| | | } |
| | | else |
| | |
| | | } |
| | | else |
| | | { |
| | | ModbusHelper.WriteSingleRegister(40089, EndLoc.N_LAYER, device.address, 1024); |
| | | int layerValue = 0; |
| | | if (EndLoc.N_LAYER == 1) layerValue = 1; |
| | | else if (EndLoc.N_LAYER == 2) layerValue = 3; |
| | | else if (EndLoc.N_LAYER == 3) layerValue = 5; |
| | | ModbusHelper.WriteSingleRegister(40089, layerValue, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40101, 2, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40003, 2, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); |
| | |
| | | } |
| | | else |
| | | { |
| | | int layerValue = 0; |
| | | if (startloc.N_LAYER == 1) layerValue = 1; |
| | | else if (startloc.N_LAYER == 2) layerValue = 3; |
| | | else if (startloc.N_LAYER == 3) layerValue = 5; |
| | | ModbusHelper.WriteSingleRegister(40101, 2, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40003, 2, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40089, startloc.N_LAYER, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40089, layerValue, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); |
| | | } |
| | | |
| | |
| | | { |
| | | LogHelper.Info($"根据任务终点:{mstbyEqno.S_END_LOC},未找到对应货位"); |
| | | } |
| | | ModbusHelper.WriteSingleRegister(40089, Endloc.N_LAYER, device.address, 1024); |
| | | int value = 0; |
| | | if (Endloc.N_LAYER == 1) value = 1; |
| | | else if (Endloc.N_LAYER == 2) value = 3; |
| | | else if (Endloc.N_LAYER == 3) value = 5; |
| | | ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); |
| | | |
| | | } |
| | |
| | | { |
| | | var result = true; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | //根据起点仓库编码判断是否可以推送 |
| | | var taskLimit = db.Queryable<TASK_LIMIT>().Where(a => a.S_WH_CODE == mst.S_START_WH && a.OPEN == "1").First(); |
| | | if (taskLimit != null) |
| | | { |
| | | Console.WriteLine($"任务:{mst.S_CODE},起点仓库:{mst.S_START_WH}已经禁用推送"); |
| | | return false; |
| | | } |
| | | |
| | | var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO == mst.S_EQ_NO).ToList(); |
| | | if (mstbyEqno.Count() == 1) |
| | | { |
| | |
| | | { |
| | | LogHelper.Info($"根据任务起点:{mst.S_START_LOC},未找到对应货位"); |
| | | } |
| | | ModbusHelper.WriteSingleRegister(40089, loc.N_LAYER, device.address, 1024); |
| | | int value = 0; |
| | | if (loc.N_LAYER == 1) value = 1; |
| | | else if (loc.N_LAYER == 2) value = 3; |
| | | else if (loc.N_LAYER == 3) value = 5; |
| | | |
| | | ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024); |
| | | ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024); |
| | | |
| | | |
| | |
| | | var time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); |
| | | statusarrive.RequestId = "杭叉AGV" + time; |
| | | |
| | | int flag = 0; |
| | | if (mst.S_NOTE == "粉料") |
| | | { |
| | | flag = 1; |
| | | } |
| | | //List<StatusArrive> statusArrives = new List<StatusArrive>(); |
| | | StatusArrive statusArrive = new StatusArrive(); |
| | | statusarrive.UseToken = "iFQ5fExGrLYLXliHYWzs"; |
| | |
| | | statusArrive.LocationNum = mst.S_END_LOC; |
| | | statusArrive.Time = DateTime.Now.ToString(); |
| | | statusArrive.Status = status.ToString(); |
| | | statusArrive.Rfid = mst.S_CNTR_CODE; |
| | | statusArrive.Flag = flag; |
| | | |
| | | //statusArrives.Add(statusArrive); |
| | | statusarrive.data = statusArrive; |
| | | //开始回报 |
| | |
| | | mesItemBackModel.Rfid = mst.S_CNTR_CODE; |
| | | mesItemBackModel.LocationNum = mst.S_END_LOC; |
| | | mesItemBackModel.Result = "1"; |
| | | mesItemBackModel.ArricalTime = DateTime.Now.ToString("yyyy-MM-dd"); |
| | | mesItemBackModel.ArricalTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); |
| | | |
| | | if (cntritem != null) |
| | | { |
| | | list.Add(new MesItemBackInfoModel() |