From 96a94a59c08f55712ba04eb413e7f61739f11f66 Mon Sep 17 00:00:00 2001 From: zhanghonglin <zhanghonglin@hnkhzn.com> Date: 星期二, 19 八月 2025 17:09:31 +0800 Subject: [PATCH] 定时一周自动清楚重量厚度,不合格背景红色提示、筛选功能 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs | 183 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 157 insertions(+), 26 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs" index bf1c63c..4601aff 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs" @@ -5,6 +5,7 @@ using Microsoft.Extensions.Hosting; using Microsoft.VisualBasic.FileIO; using Newtonsoft.Json; +using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; using Quartz; using SixLabors.ImageSharp.PixelFormats; using System; @@ -24,9 +25,11 @@ using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_IWMSPart; using WIDESEAWCS_Model.Models; +using WIDESEAWCS_Model.Models.System; using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.DeviceBase; using WIDESEAWCS_QuartzJob.StackerCrane.Enum; +using WIDESEAWCS_SystemServices; using WIDESEAWCS_TaskInfoService; using WIDESEAWCS_Tasks.OHT; using static System.Collections.Specialized.BitVector32; @@ -45,6 +48,8 @@ private readonly IRepository<dt_outstockinfo> _outStockRepository; private readonly IRepository<dt_batchInfo> _batchInfoRepository; private readonly IRepository<Dt_StockInfo> _StockInfoRepository; + private readonly IRepository<dt_Thickness_hty> _dt_Thickness_hty; + private readonly IRepository<dt_Weight_hty> _dt_Weight_hty; private readonly IRepository<Dt_LocationInfo> _LocationInfoRepository; private readonly IUnitOfWorkManage _unitOfWorkManage; @@ -58,6 +63,8 @@ IRepository<dt_storagemode> storagemodeRepository, IRepository<dt_batchInfo> batchInfoRepository, IRepository<Dt_StockInfo> StockInfoRepository, + IRepository<dt_Thickness_hty> ThicknessHtyService, + IRepository<dt_Weight_hty> WeightHtyService, IRepository<Dt_LocationInfo> LocationInfoRepository, IUnitOfWorkManage unitOfWorkManage) { @@ -73,18 +80,129 @@ _StockInfoRepository = StockInfoRepository; _LocationInfoRepository = LocationInfoRepository; _unitOfWorkManage = unitOfWorkManage; + _dt_Thickness_hty = ThicknessHtyService; + _dt_Weight_hty = WeightHtyService; } + + //瀹氭椂娓呯┖涓�鍛ㄧ殑鏃堕棿 + private static int shijian = 604800; public Task Execute(IJobExecutionContext context) { - + //瀹氭椂娓呯┖閲嶉噺鍜屽帤搴﹀巻鍙茶褰� + Thread.Sleep(1000); + if(shijian > 0) + { + shijian--; + } + else + { + List<dt_Weight_hty> weights = _dt_Weight_hty.QueryData(); + _dt_Weight_hty.DeleteData(weights); + List<dt_Thickness_hty> Thickness = _dt_Thickness_hty.QueryData(); + _dt_Thickness_hty.DeleteData(Thickness); + shijian = 604800; + } + bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value); if (flag && value != null) { OtherDevice device = (OtherDevice)value; + + try + { + #region 鐢熸垚鍓旈櫎璐т綅鍏ュ簱浠诲姟 + //鍒ゆ柇鏁村舰鏈轰俊鍙� + //if (!OHTJob.oHTReadData.R_ZXJ_TC_isready && !OHTJob.oHTReadData.R_TCMode_TC) + //{ + // throw new Exception($"鏁村舰鏈烘姇鍏ヤ娇鐢ㄤ俊鍙蜂负false"); + //} + //Dt_Task task = new Dt_Task(); + //var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "鍓旈櫎鏋�"); + //task.SourceAddress = station.Row + "-" + station.Column + "-1"; + //var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress); + //if (oldhtytask == null) + //{ + // task.TargetAddress = _locationInfoService.GetInLocation(6).LocationCode; + // task.Grade = 1; + // task.Remark = (int)MateTypeEnum.ZiChan; + // task.NextAddress = "text"; + // task.Roadway = "TC01"; + // task.TaskType = (int)TaskInboundTypeEnum.Inbound; + // task.TaskState = (int)TaskInStatusEnum.InNew; + // task.PalletCode = "text"; + // task.CurrentAddress = "text"; + // task.WMSId = 2; + // _dt_taskRepositiry.AddData(task); + //} + + #endregion + } + catch (Exception ex) + { + _ErrormsginfoService.UpdateErrorMsg(ex.Message, 5); + } + + try + { + #region 鐢熸垚鍓旈櫎璐т綅鍑哄簱浠诲姟 + //if (!OHTJob.oHTReadData.R_TCMode && !OHTJob.oHTReadData.R_TC_isready) + //{ + // throw new Exception($"瑙勬暣鏈哄墧闄ゆ灦瀛愬彲鏀炬澘鎴栧墧闄や笂鏂欐ā寮忎俊鍙蜂负false"); + //} + ////鏌ヨ褰撳墠浠诲姟姹犱腑鏄惁瀛樺湪鍑哄簱浠诲姟锛屽嚭搴撲换鍔″彧鑳藉瓨鍦ㄤ竴鏉� + //var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); + //if (oldtask != null) + //{ + // throw new Exception($"褰撳墠浠诲姟姹犱腑宸插瓨鍦ㄤ竴鏉″嚭搴撲换鍔�"); + //} + ////鏌ヨ褰撳墠闇�瑕佸嚭搴撶殑鎵规鍙凤紝浠ュ強鍑哄簱鐗╂枡绫诲瀷 + //var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); + ////鏌ヨ搴撳瓨鐗╂枡搴撳瓨淇℃伅 + //var stocks = _StockInfoRepository.QueryData(v => v.Remark == 3 && v.BatchNo == batch.OutBatch && v.StockStatus == 0) + // .OrderBy(v => v.CreateDate).ToList(); + //if (stocks.Count <= 0) + //{ + // throw new Exception($"褰撳墠搴撳瓨涓病鏈夈�恵batch.materType}銆戯紙0鑷骇 1澶栬喘锛変笖鎵规涓恒�恵batch.OutBatch}銆戠殑鐗╂枡"); + //} + ////鏌ヨ璐т綅 + //var locaOne = _LocationInfoRepository.QueryFirst(v => v.LocationCode == stocks[0].LocationCode); + //locaOne.LocationStatus = (int)LocationStatusEnum.Lock; + //stocks[0].StockStatus = 1; + ////鏌ヨ缁堢偣绔欏彴淇℃伅 + //var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙"); + ////寮�濮嬪垱寤轰换鍔� + //Dt_Task outtask = new Dt_Task(); + //outtask.Roadway = "TC01"; + //outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound; + //outtask.TaskState = (int)TaskOutStatusEnum.OutNew; + //outtask.SourceAddress = stocks[0].LocationCode; + //outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; + //outtask.NextAddress = "text"; + //outtask.Grade = 1; + //outtask.WMSId = 2; + //outtask.Remark = 3; + //outtask.PalletCode = "text"; + //outtask.CurrentAddress = "text"; + + //_unitOfWorkManage.BeginTran(); + //_LocationInfoRepository.UpdateData(locaOne); + //_dt_taskRepositiry.AddData(outtask); + //_StockInfoRepository.UpdateData(stocks[0]); + //_unitOfWorkManage.CommitTran(); + #endregion + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + _ErrormsginfoService.UpdateErrorMsg(ex.Message, 6); + } + try { #region 鐢熸垚鍏ュ簱浠诲姟 + + //if (!OHTJob.oHTReadData.R_GZJ_isWork) //{ // throw new Exception($"瑙勬暣鏈烘姇鍏ヤ娇鐢ㄤ俊鍙蜂负false"); @@ -95,25 +213,22 @@ { Dt_Task task = new Dt_Task(); var storagemode = _storagemodeRepository.QueryFirst(v => v.Id == 1); - if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙� + + if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙� { - var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙"); task.SourceAddress = station.Row + "-" + station.Column + "-1"; var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress); - if (oldhtytask ==null) + if (oldhtytask == null) { task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; - var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙"); - string address = DKstation.Row + "-" + DKstation.Column + "-1"; - var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address); - if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew) + if (OHTJob.oHTReadData.R_DK_isready) { - task.Grade = 2; + task.Grade = 3; } else { - task.Grade = 1; + task.Grade = 2; } task.Remark = (int)MateTypeEnum.ZiChan; //鏌ユ壘鐩搁偦鐨勫簱浣� @@ -137,7 +252,7 @@ _dt_taskRepositiry.AddData(task); } } - if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙� + else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙� { var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙"); task.SourceAddress = station.Row + "-" + station.Column + "-1"; @@ -169,26 +284,25 @@ _dt_taskRepositiry.AddData(task); } } - if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙� + + + + if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready) { var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙"); task.SourceAddress = station.Row + "-" + station.Column + "-1"; var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress); - if (oldhtytask==null) + if (oldhtytask == null) { task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; - var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙"); - string address = XKstation.Row + "-" + XKstation.Column + "-1"; - var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address); - if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew) + if (OHTJob.oHTReadData.R_XK_isready) { - task.Grade = 2; + task.Grade = 3; } else { - task.Grade = 1; + task.Grade = 2; } - task.Grade = 1; task.Remark = (int)MateTypeEnum.WaiGou; //鏌ユ壘鐩搁偦鐨勫簱浣� Dt_LocationInfo Towlocation = new Dt_LocationInfo(); @@ -211,7 +325,7 @@ _dt_taskRepositiry.AddData(task); } } - if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙� + if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready) { var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙"); task.SourceAddress = station.Row + "-" + station.Column + "-1"; @@ -219,6 +333,17 @@ if (oldhtytask == null) { task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode; + //var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙"); + //string address = XKstation.Row + "-" + XKstation.Column + "-1"; + //var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address); + //if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew) + //{ + // task.Grade = 2; + //} + //else + //{ + // task.Grade = 1; + //} task.Grade = 1; task.Remark = (int)MateTypeEnum.WaiGou; //鏌ユ壘鐩搁偦鐨勫簱浣� @@ -242,14 +367,17 @@ _dt_taskRepositiry.AddData(task); } } - } //鐩存帴鍑哄簱 else if(Inisout.InOut == 2) { - if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork) + if (!OHTJob.oHTReadData.R_ZXJ_TCMode) { throw new Exception($"鏁村舰鏈轰笉灞炰簬澶╄溅涓婃枡妯″紡鎴栧ぉ杞︽斁鏉夸俊鍙蜂负false"); + } + if (!OHTJob.oHTReadData.R_HC_isReadyWork) + { + throw new Exception($"鏁村舰鏈哄ぉ杞︽斁鏉夸俊鍙蜂负false"); } Dt_Task outtask = new Dt_Task(); //灏忚溅涓婃枡 @@ -312,9 +440,13 @@ var isout = _outStockRepository.QueryFirst(v => v.Id == 1); if (isout.isout == 1) { - if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork) + if (!OHTJob.oHTReadData.R_ZXJ_TCMode) { throw new Exception($"鏁村舰鏈轰笉灞炰簬澶╄溅涓婃枡妯″紡鎴栧ぉ杞︽斁鏉夸俊鍙蜂负false"); + } + if (!OHTJob.oHTReadData.R_HC_isReadyWork) + { + throw new Exception($"鏁村舰鏈哄ぉ杞︽斁鏉夸俊鍙蜂负false"); } //鏌ヨ褰撳墠浠诲姟姹犱腑鏄惁瀛樺湪鍑哄簱浠诲姟锛屽嚭搴撲换鍔″彧鑳藉瓨鍦ㄤ竴鏉� var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound); @@ -325,8 +457,7 @@ //鏌ヨ褰撳墠闇�瑕佸嚭搴撶殑鎵规鍙凤紝浠ュ強鍑哄簱鐗╂枡绫诲瀷 var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); //鏌ヨ搴撳瓨鐗╂枡搴撳瓨淇℃伅 - var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus == 0) - .OrderBy(v => v.CreateDate).ToList(); + var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus == 0).OrderBy(v => v.CreateDate).ToList(); if (stocks.Count <= 0) { throw new Exception($"褰撳墠搴撳瓨涓病鏈夈�恵batch.materType}銆戯紙0鑷骇 1澶栬喘锛変笖鎵规涓恒�恵batch.OutBatch}銆戠殑鐗╂枡"); -- Gitblit v1.9.3