| | |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core.LogHelper; |
| | | using WIDESEAWCS_DTO.MES; |
| | | using WIDESEAWCS_DTO.Stock; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | //å åæºè®¾å¤ç¶æ |
| | | int sc = comm.GETR_TaskStatus(); |
| | | //è¿æ¥è®¾å¤ |
| | | bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); |
| | | if (flag && value != null) |
| | |
| | | OtherDevice device = (OtherDevice)value; |
| | | List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).Distinct().ToList(); |
| | | List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode); |
| | | //å
·ä½è®¾å¤ |
| | | foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode))) |
| | | try |
| | | { |
| | | i++; |
| | | //读åä¿¡å· |
| | | DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | //DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode ).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | if (deviceProRead != null) |
| | | //å
·ä½è®¾å¤ |
| | | foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode))) |
| | | { |
| | | ConveyorLineCommand conveyorLineInfoRead = device.Communicator.ReadCustomer<ConveyorLineCommand>(deviceProRead.DeviceProAddress); |
| | | //空桶å
¥åºä»»å¡ |
| | | if (item.StationName == "空桶å
¥") |
| | | i++; |
| | | //读åä¿¡å· |
| | | DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | //DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode ).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | if (deviceProRead != null) |
| | | { |
| | | comm.R_StatusA((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickA((short)conveyorLineInfoRead.R_Pick); |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1) |
| | | ConveyorLineCommand conveyorLineInfoRead = device.Communicator.ReadCustomer<ConveyorLineCommand>(deviceProRead.DeviceProAddress); |
| | | //空桶å
¥åºä»»å¡ |
| | | if (item.StationName == "空桶å
¥") |
| | | { |
| | | try |
| | | comm.R_StatusA((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickA((short)conveyorLineInfoRead.R_Pick); |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1 && sc == 2) |
| | | { |
| | | //夿任塿¯å¦éå¤ |
| | | Dt_Task task = _TaskRepository.QueryFirst(x => x.TaskType == (int)TaskTypeEnum.InEmpty); |
| | | if (task == null) |
| | | { |
| | | LogLock.OutLogAOP("è¾éçº¿ä»»å¡æ¥å¿", new string[] { device.DeviceCode, $"{"空桶å
¥åºä»»å¡çæ" + "ç³è¯·å(æ¾)æï¼" + conveyorLineInfoRead.R_Pick + "设å¤ç¶æï¼" + conveyorLineInfoRead.R_State}" }); |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(address)) |
| | |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //åå
¥æ¥å¿ |
| | | WriteInfo(device.DeviceCode, $"{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | //满桶å
¥åºä»»å¡ |
| | | if (item.StationName == "满桶å
¥") |
| | | { |
| | | comm.R_StatusC((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickC((short)conveyorLineInfoRead.R_Pick); |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1) |
| | | //满桶å
¥åºä»»å¡ |
| | | if (item.StationName == "满桶å
¥") |
| | | { |
| | | try |
| | | comm.R_StatusC((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickC((short)conveyorLineInfoRead.R_Pick); |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1 && sc == 2) |
| | | { |
| | | //æ¸
ç©ºç©æç¼å· |
| | | if (k) |
| | |
| | | Stock.MaterialCode4 = conveyorLineInfoRead.R_NumberD; |
| | | |
| | | //夿任塿¯å¦éå¤ |
| | | Dt_Task task = _TaskRepository.QueryFirst(x => x.TaskType == (int)TaskTypeEnum.Infull); |
| | | Dt_Task task = _TaskRepository.QueryFirst(x => x.TaskType == (int)TaskTypeEnum.Infull || x.TaskType == (int)TaskTypeEnum.OutDirect); |
| | | if (task == null) |
| | | { |
| | | LogLock.OutLogAOP("è¾éçº¿ä»»å¡æ¥å¿", new string[] { device.DeviceCode, $"{"满桶å
¥åºä»»å¡çæ" + "ç³è¯·å(æ¾)æï¼" + conveyorLineInfoRead.R_Pick + "设å¤ç¶æï¼" + conveyorLineInfoRead.R_State + "//" + conveyorLineInfoRead.R_NumberA + "/" + conveyorLineInfoRead.R_NumberB + "/" + conveyorLineInfoRead.R_NumberC + "/" + conveyorLineInfoRead.R_NumberD}" }); |
| | | Stock.location = item.location; |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | |
| | | k = true; |
| | | |
| | | //åMESå鿥工å |
| | | if (Stock.MaterialCode1 != null && !Stock.MaterialCode1.Equals("")) |
| | | { |
| | | MESReport(Stock.MaterialCode1); |
| | | } |
| | | if (Stock.MaterialCode2 != null && !Stock.MaterialCode2.Equals("")) |
| | | { |
| | | MESReport(Stock.MaterialCode2); |
| | | } |
| | | if (Stock.MaterialCode3 != null && !Stock.MaterialCode3.Equals("")) |
| | | { |
| | | MESReport(Stock.MaterialCode3); |
| | | } |
| | | if (Stock.MaterialCode4 != null && !Stock.MaterialCode4.Equals("")) |
| | | { |
| | | MESReport(Stock.MaterialCode4); |
| | | } |
| | | //if (Stock.MaterialCode1 != null && !Stock.MaterialCode1.Equals("")) |
| | | //{ |
| | | // MESReport(Stock.MaterialCode1); |
| | | //} |
| | | //if (Stock.MaterialCode2 != null && !Stock.MaterialCode2.Equals("")) |
| | | //{ |
| | | // MESReport(Stock.MaterialCode2); |
| | | //} |
| | | //if (Stock.MaterialCode3 != null && !Stock.MaterialCode3.Equals("")) |
| | | //{ |
| | | // MESReport(Stock.MaterialCode3); |
| | | //} |
| | | //if (Stock.MaterialCode4 != null && !Stock.MaterialCode4.Equals("")) |
| | | //{ |
| | | // MESReport(Stock.MaterialCode4); |
| | | //} |
| | | } |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //åå
¥æ¥å¿ |
| | | WriteInfo(device.DeviceCode, $"{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | //ç©ºæ¡¶åº |
| | | if (item.StationName == "空桶åº") |
| | | { |
| | | comm.R_StatusB((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickB((short)conveyorLineInfoRead.R_Pick); |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1) |
| | | //ç©ºæ¡¶åº |
| | | if (item.StationName == "空桶åº") |
| | | { |
| | | try |
| | | comm.R_StatusB((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickB((short)conveyorLineInfoRead.R_Pick); |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1 && sc == 2) |
| | | { |
| | | |
| | | //夿任塿¯å¦éå¤ |
| | | Dt_Task task = _TaskRepository.QueryFirst(x => x.TaskType == (int)TaskTypeEnum.OutEmpty); |
| | | if (task == null) |
| | | { |
| | | LogLock.OutLogAOP("è¾éçº¿ä»»å¡æ¥å¿", new string[] { device.DeviceCode, $"{"空桶åºåºä»»å¡çæ" + "ç³è¯·å(æ¾)æï¼" + conveyorLineInfoRead.R_Pick + "设å¤ç¶æï¼" + conveyorLineInfoRead.R_State}" }); |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(address)) |
| | |
| | | HttpHelper.Post($"{address}/api/Task/addOutEmptyTask/?location={item.location}", ""); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //åå
¥æ¥å¿ |
| | | WriteInfo(device.DeviceCode, $"{ex.Message}"); |
| | | |
| | | } |
| | | } |
| | | } |
| | | //æ»¡æ¡¶åº |
| | | if (item.StationName == "满桶åº") |
| | | { |
| | | comm.R_StatusD((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickD((short)conveyorLineInfoRead.R_Pick); |
| | | //åè¯WMSå¯ä»¥åºåº |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1) |
| | | //æ»¡æ¡¶åº |
| | | if (item.StationName == "满桶åº") |
| | | { |
| | | if (m) |
| | | comm.R_StatusD((short)conveyorLineInfoRead.R_State); |
| | | comm.R_PickD((short)conveyorLineInfoRead.R_Pick); |
| | | //åè¯WMSå¯ä»¥åºåº |
| | | if (conveyorLineInfoRead.R_Pick == 1 && conveyorLineInfoRead.R_State == 1) |
| | | { |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(address)) |
| | | if (m) |
| | | { |
| | | HttpHelper.Post($"{address}/api/Task/WCSSignal/?k=1", ""); |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(address)) |
| | | { |
| | | HttpHelper.Post($"{address}/api/Task/WCSSignal/?k=1", ""); |
| | | } |
| | | m = false; |
| | | n = true; |
| | | //åå
¥æ¥å¿ |
| | | LogLock.OutLogAOP("è¾éçº¿ä»»å¡æ¥å¿", new string[] { device.DeviceCode, $"{"满桶åºåºä»»å¡çæ" + "ç³è¯·å(æ¾)æï¼" + conveyorLineInfoRead.R_Pick + "设å¤ç¶æï¼" + conveyorLineInfoRead.R_State}" }); |
| | | } |
| | | m = false; |
| | | n = true; |
| | | } |
| | | } |
| | | //åè¯WMSä¸å¯ä»¥åºåº |
| | | else |
| | | { |
| | | if (n) |
| | | //åè¯WMSä¸å¯ä»¥åºåº |
| | | else |
| | | { |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(address)) |
| | | if (n) |
| | | { |
| | | HttpHelper.Post($"{address}/api/Task/WCSSignal/?k=0", ""); |
| | | //WMSçæä»»å¡ |
| | | string address = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(address)) |
| | | { |
| | | HttpHelper.Post($"{address}/api/Task/WCSSignal/?k=0", ""); |
| | | } |
| | | n = false; |
| | | m = true; |
| | | //åå
¥æ¥å¿ |
| | | LogLock.OutLogAOP("è¾éçº¿ä»»å¡æ¥å¿", new string[] { device.DeviceCode, $"{"满桶åºåºä»»å¡çæ" + "ç³è¯·å(æ¾)æï¼" + conveyorLineInfoRead.R_Pick + "设å¤ç¶æï¼" + conveyorLineInfoRead.R_State}" }); |
| | | } |
| | | n = false; |
| | | m = true; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | i = 0; |
| | | } |
| | | i = 0; |
| | | catch (Exception ex) |
| | | { |
| | | //åå
¥æ¥å¿ |
| | | WriteInfo(device.DeviceCode, $"{ex.Message}"); |
| | | } |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | //MESæ¥å·¥ |
| | | public void MESReport(string MaterialCode) |
| | | { |
| | | try |
| | | { |
| | | Reports reports = new Reports(); |
| | | //public void MESReport(string MaterialCode) |
| | | //{ |
| | | // try |
| | | // { |
| | | // Reports reports = new Reports(); |
| | | |
| | | //æ¥è¯¢äºç»´ç |
| | | Dt_FillingOrder FillingOrder = _FillingOrderRepository.QueryFirst(x => x.BarCode == MaterialCode); |
| | | // //æ¥è¯¢äºç»´ç |
| | | // Dt_FillingOrder FillingOrder = _FillingOrderRepository.QueryFirst(x => x.BarCode == MaterialCode); |
| | | |
| | | reports.report.Qty = FillingOrder.BarNum; |
| | | reports.report.DispatchID = FillingOrder.WorkID + ""; |
| | | reports.barcodeSN[0].Barcode = FillingOrder.BarCode; |
| | | reports.barcodeSN[0].BatchNum = int.Parse(FillingOrder.batchNum); |
| | | reports.barcodeSN[0].Id = FillingOrder.BarCodeID; |
| | | reports.barcodeSN[0].MaterialId = FillingOrder.ArticleNumID; |
| | | reports.barcodeSN[0].Quantity = (int)FillingOrder.BarNum; |
| | | reports.barcodeSN[0].DispatchId = FillingOrder.WorkID; |
| | | // reports.report.Qty = FillingOrder.BarNum; |
| | | // reports.report.DispatchID = FillingOrder.WorkID + ""; |
| | | // reports.barcodeSN[0].Barcode = FillingOrder.BarCode; |
| | | // reports.barcodeSN[0].BatchNum = int.Parse(FillingOrder.batchNum); |
| | | // reports.barcodeSN[0].Id = FillingOrder.BarCodeID; |
| | | // reports.barcodeSN[0].MaterialId = FillingOrder.ArticleNumID; |
| | | // reports.barcodeSN[0].Quantity = (int)FillingOrder.BarNum; |
| | | // reports.barcodeSN[0].DispatchId = FillingOrder.WorkID; |
| | | |
| | | string mes = AppSettings.Get("WMSApiAddress"); |
| | | if (!string.IsNullOrEmpty(mes)) |
| | | { |
| | | HttpHelper.Post($"{mes}/Task/SaveReportRaw/", reports.Serialize()); |
| | | } |
| | | } |
| | | catch (Exception ex) { |
| | | WriteInfo( "MESæ¥å·¥é误", $"{ex.Message}"); |
| | | } |
| | | } |
| | | // string mes = AppSettings.Get("MSE"); |
| | | // if (!string.IsNullOrEmpty(mes)) |
| | | // { |
| | | // HttpHelper.Post($"{mes}/Task/SaveReportRaw/", reports.Serialize()); |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // WriteInfo("MESæ¥å·¥é误", $"{ex.Message}"); |
| | | // } |
| | | //} |
| | | } |
| | | } |