From da2e87c2a05debbcc7dac5efb5d13c92d533782f Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 26 三月 2025 08:54:10 +0800
Subject: [PATCH] 111

---
 项目代码/WIDESEAWCS_Server 正式/SerialPortService/PutakeServer.cs |  168 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 124 insertions(+), 44 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/PutakeServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/PutakeServer.cs"
index a39bdfd..82cd6af 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/PutakeServer.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/PutakeServer.cs"
@@ -3,68 +3,162 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
 using WIDESEA_ISerialPortRepository;
+using WIDESEA_SerialPortRepository;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseRepository;
 using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 
 namespace WIDESEAWCS_TaskInfoService
 {
-    public class Putake : ServiceBase<Dt_Putake, IPutakeRepository>, IPutakeServer
+    public class PutakeServer : ServiceBase<Dt_Putake, IPutakeRepository>, IPutakeServer
     {
         private IUnitOfWorkManage _uniUnitOfWorkManage;
         private INjTaskRepository _iNjTaskRepository;
+        
 
-        public Putake(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository) : base(BaseDal)
+        public PutakeServer(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository ) : base(BaseDal)
         {
             _uniUnitOfWorkManage = uniUnitOfWorkManage;//鏁版嵁搴撲簨鍔�
             _iNjTaskRepository= iNjTaskRepository;
+          
+            
+        }
+        public override PageGridData<Dt_Putake> GetPageData(PageDataOptions options)
+        {
+            OrderByParameters = new Dictionary<string, SqlSugar.OrderByType>
+            {
+                   { nameof(Dt_Putake.Pustatus),SqlSugar.OrderByType.Asc },
+                  // { nameof(Dt_Putake.CreateDate),SqlSugar.OrderByType.Asc }//鎸夌姸鎬佸拰鍒涘缓鏃堕棿鍗囧簭鎺掑簭
+            };
+            return base.GetPageData(options);
         }
 
         private enum cond
         {
-            寰呴绛�=1,
-            寰呬綔涓�=2,
-            寰呭綊绛�=3,
-            寰呰川妫�=4,
-            宸插畬鎴�=5
+            寰呴绛�=0,
+            寰呬綔涓�=1,
+            寰呭綊绛�=2,
+            寰呰川妫�=3,
+            宸插畬鎴�=4
         }
 
 
         //淇敼涓嬪彂浠诲姟琛ㄧ殑浠诲姟鐘舵��
-        public WebResponseContent ChangeStatus(int id)
+        public WebResponseContent ChangeStatus(string id,string gruops)
         {
             try
             {
-                var putake = BaseDal.QueryData(i => i.ID == id).FirstOrDefault();
+                var putakeList = BaseDal.QueryData(i => i.Grouptype == gruops && i.Pustatus != (int)cond.宸插畬鎴�).ToList();
+                var putake = putakeList.Where(i => i.Njtakeid == id).FirstOrDefault();
+                var nj = _iNjTaskRepository.QueryData(i => i.NJtaskID == id).FirstOrDefault();
                 if (putake == null)
                 {
                     return new WebResponseContent { Status = false, Message = "鏈壘鍒拌浠诲姟" };
                 }
 
-                //putake.Pustatus鏄瓧绗︿覆,闇�瑕佸厛杞崲鎴� cond 鏋氫妇锛�
-                if (!Enum.TryParse(putake.Pustatus, out cond currentStatus))
+                //鎶婃暟鎹簱涓殑 int 鍊艰浆鎹负 `cond` 鏋氫妇锛�
+                if (!Enum.IsDefined(typeof(cond), putake.Pustatus))
                 {
                     return new WebResponseContent { Status = false, Message = "褰撳墠鐘舵�佷笉鍚堟硶锛屾棤娉曟洿鏂�" };
                 }
 
+                cond currentStatus = (cond)putake.Pustatus;  // int -> 鏋氫妇杞崲
+
                 switch (currentStatus)
                 {
-                    case cond.寰呴绛�:
-                        putake.Pustatus = cond.寰呬綔涓�.ToString();
-                        //_iNjTaskRepository
+                    
+                    case cond.寰呴绛�: //
+                        if(putakeList.Where(a=>a.Pustatus== (int)cond.寰呬綔涓�).Count() > 0)
+                        {
+                            return new WebResponseContent { Status = false, Message = "褰撳墠鏈変綔涓氭湭瀹屾垚锛岃鍏堝畬鎴愭鍦ㄦ墽琛岀殑浣滀笟" };
+                        }
+                        putake.Pustatus = (int)cond.寰呬綔涓�; // 鏋氫妇杞� int
+                        if (gruops=="鏈烘")
+                        {
+
+                        }
+                        if (gruops == "鐢垫皵")
+                        {
+
+                        }
+                        if (gruops == "鍦版矡")
+                        {
+
+                        }
                         break;
-                    case cond.寰呬綔涓�:
-                        putake.Pustatus = cond.寰呭綊绛�.ToString();
+                    case cond.寰呬綔涓�://寮�濮嬩綔涓氾紝寮�濮嬫椂闂�
+                        putake.Pustatus = (int)cond.寰呭綊绛�;
+                        if (gruops == "鏈烘")
+                        {
+                            nj.startTime_LC = DateTime.Now;//寮�濮嬫椂闂�
+                            nj.createTime = DateTime.Now;
+                        }
+                        if (gruops == "鐢垫皵")
+                        {
+                            nj!.startTime_DQ = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
+                        if (gruops == "鍦版矡")
+                        {
+                            nj!.startTime_DG = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
                         break;
-                    case cond.寰呭綊绛�:
-                        putake.Pustatus = cond.寰呰川妫�.ToString();
+                    case cond.寰呭綊绛�://纭褰掕繕锛屽畬鎴愭椂闂�
+                        putake.Pustatus = (int)cond.寰呰川妫�;
+                        if (gruops == "鏈烘")
+                        {
+                            nj.endTime_LC = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
+                        if (gruops == "鐢垫皵")
+                        {
+                            nj.endTime_DQ = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
+                        if (gruops == "鍦版矡")
+                        {
+                            nj.endTime_DG = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
                         break;
-                    case cond.寰呰川妫�:
-                        putake.Pustatus=cond.宸插畬鎴�.ToString();
+                    case cond.寰呰川妫�: // 瀹屾垚璐ㄦ鏃堕棿
+                        putake.Pustatus = (int)cond.宸插畬鎴�;
+
+                        //DateTime latestTime = new DateTime(1900, 1, 1, 0, 0, 0);
+
+                        if (gruops == "鏈烘")
+                        {
+                            nj!.confirmTime_LC = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
+                        if (gruops == "鐢垫皵")
+                        {
+                            nj!.confirmTime_DQ = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
+                        if (gruops == "鍦版矡")
+                        {
+                            nj!.confirmTime_DG = DateTime.Now;
+                            nj.createTime = DateTime.Now;
+                        }
+
+                        // 鑾峰彇鏈�鍚庝竴娆″畬鎴愮殑鏃堕棿
+                        // latestTime = (DateTime)new[] { nj.confirmTime_LC, nj.confirmTime_DQ, nj.confirmTime_DG }.Max(); // 鍙栨渶鏂扮殑鏃堕棿
+
+                        DateTime? latestTime = new[] { nj.confirmTime_LC, nj.confirmTime_DQ, nj.confirmTime_DG }
+                                .Where(t => t.HasValue)  // 杩囨护鎺� null
+                                .Select(t => t.Value)    // 鍙栧嚭闈炵┖鐨勫��
+                                .DefaultIfEmpty(DateTime.Now) // 鑻ユ暟缁勪负绌猴紝浣跨敤褰撳墠鏃堕棿
+                                .Max();  // 鍙栨渶澶ф椂闂�
+                        nj.endTime = latestTime; // 璧嬪�兼渶鏂版椂闂�
                         putake.Finishedtime = DateTime.Now;
                         break;
                     case cond.宸插畬鎴�:
@@ -72,20 +166,15 @@
                     default:
                         return new WebResponseContent { Status = false, Message = "鏈煡鐘舵�侊紝鏃犳硶鏇存柊" };
                 }
-                //寮�鍚簨鍔�
-                _uniUnitOfWorkManage.BeginTran();
 
-                // 鏇存柊鏁版嵁搴�
+
+                _iNjTaskRepository.UpdateData(nj);
                 BaseDal.UpdateData(putake);
 
-                //鎻愪氦浜嬪姟
-                _uniUnitOfWorkManage.CommitTran();
-                return new WebResponseContent { Status = true,Data= putake };
+                return new WebResponseContent { Status = true, Data = putake };
             }
             catch (Exception ex)
             {
-                //鍥炴粴浜嬪姟
-                _uniUnitOfWorkManage.RollbackTran();
                 return new WebResponseContent { Status = false, Message = "鏇存柊澶辫触锛�" + ex.Message };
             }
         }
@@ -95,38 +184,26 @@
         {
             try
             {
-                //寮�鍚簨鍔�
-                _uniUnitOfWorkManage.BeginTran();
-
                 var dg = BaseDal.QueryData(i=>i.Grouptype== group);
 
-                //鎻愪氦浜嬪姟
-                _uniUnitOfWorkManage.CommitTran();
                 return new WebResponseContent { Status = true, Data = dg };
             }
             catch (Exception ex)
             {
-                // 鍥炴粴浜嬪姟
-                _uniUnitOfWorkManage.RollbackTran();
                 return new WebResponseContent { Status = false, Message = $"鏌ョ湅澶辫触:{ex}" };
             }
         }
 
-
-        //鏌ョ湅杩欎釜涓嬪彂浠诲姟鐨勪腑浠诲姟琛ㄤ腑鐨勮鎯呮暟鎹�
+        //鏌ョ湅杩欎釜涓嬪彂浠诲姟鐨勪腑浠诲姟琛ㄤ腑鐨勮鎯呮暟鎹紙鍜宯jtaskServe涓竴鏍凤級
         public WebResponseContent GetNjtake(string njid)
         {
             try
             {
-                //寮�鍚簨鍔�
-                _uniUnitOfWorkManage.BeginTran();
-
                 var Nj = _iNjTaskRepository.QueryData(i => i.NJtaskID == njid).FirstOrDefault();
 
                 if (Nj != null)
                 {
-                    //鎻愪氦浜嬪姟
-                    _uniUnitOfWorkManage.CommitTran();
+                    
                     return new WebResponseContent { Status = true, Data = Nj };
                 }
                 else {
@@ -139,10 +216,13 @@
             catch (Exception ex)
             {
 
-                //鍥炴粴浜嬪姟
-                _uniUnitOfWorkManage.RollbackTran();
+             
                 return new WebResponseContent { Status = false, Message = "鏇存柊澶辫触锛�" + ex.Message };
             }
         }
+
+
+      
+
     }
 }

--
Gitblit v1.9.3