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 |  186 ++++++++++++++++++++++++++-------------------
 1 files changed, 107 insertions(+), 79 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 b6c9f94..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"
@@ -25,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;
@@ -46,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;
 
@@ -59,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)
         {
@@ -74,42 +80,61 @@
             _StockInfoRepository = StockInfoRepository;
             _LocationInfoRepository = LocationInfoRepository;
             _unitOfWorkManage = unitOfWorkManage;
+            _dt_Thickness_hty = ThicknessHtyService;
+            _dt_Weight_hty = WeightHtyService;
         }
+
+        //瀹氭椂娓呯┖涓�鍛ㄧ殑鏃堕棿
+        private static int shijian = 604800;
 
         public Task Execute(IJobExecutionContext context)
         {
-            //return Task.CompletedTask;
+            //瀹氭椂娓呯┖閲嶉噺鍜屽帤搴﹀巻鍙茶褰�
+            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);
-                    }
+                    //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
                 }
@@ -121,61 +146,62 @@
                 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";
+                    //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();
+                    //_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)
                     //{
@@ -187,22 +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;
                                 if (OHTJob.oHTReadData.R_DK_isready)
                                 {
-                                    task.Grade = 2;
+                                    task.Grade = 3;
                                 }
                                 else
                                 {
-                                    task.Grade = 1;
+                                    task.Grade = 2;
                                 }
                                 task.Remark = (int)MateTypeEnum.ZiChan;
                                 //鏌ユ壘鐩搁偦鐨勫簱浣�
@@ -226,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";
@@ -258,6 +284,9 @@
                                 _dt_taskRepositiry.AddData(task);
                             }
                         }
+                        
+
+
                         if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
@@ -268,11 +297,11 @@
                                 task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                                 if (OHTJob.oHTReadData.R_XK_isready)
                                 {
-                                    task.Grade = 2;
+                                    task.Grade = 3;
                                 }
                                 else
                                 {
-                                    task.Grade = 1;
+                                    task.Grade = 2;
                                 }
                                 task.Remark = (int)MateTypeEnum.WaiGou;
                                 //鏌ユ壘鐩搁偦鐨勫簱浣�
@@ -411,7 +440,7 @@
                     var isout = _outStockRepository.QueryFirst(v => v.Id == 1);
                     if (isout.isout == 1)
                     {
-                        if (!OHTJob.oHTReadData.R_ZXJ_TCMode )
+                        if (!OHTJob.oHTReadData.R_ZXJ_TCMode)
                         {
                             throw new Exception($"鏁村舰鏈轰笉灞炰簬澶╄溅涓婃枡妯″紡鎴栧ぉ杞︽斁鏉夸俊鍙蜂负false");
                         }
@@ -428,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