From fb59a056dc4ca2ed5634fe312a983a69fd0ec28a Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期二, 08 七月 2025 13:25:37 +0800
Subject: [PATCH] 职员列表 修复日期类型前端传入值为空时转换失败问题 修复数据库事务开启 回滚和提交 生命周期混乱导致的死锁问题

---
 WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs |   31 +++++++++++++++++--------------
 1 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs b/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs
index e421290..a354e80 100644
--- a/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs
@@ -279,8 +279,9 @@
         [HttpPost]
         public object ModifyByID([FromBody] JObject oMain)
         {
+
             try
-            {
+            {   
                 DAL.ClsGy_Employee_Ctl oDept = new DAL.ClsGy_Employee_Ctl();
                 DAL.ClsGy_Employee_View oDeptHlp = new DAL.ClsGy_Employee_View();
 
@@ -292,7 +293,7 @@
                 string msg4 = sArray[2].ToString();
                 //string msg4 = sArray[2].ToString();
                 //string msg5 = sArray[3].ToString();
-
+                oCN.BeginTran();
                 //缂栬緫鏉冮檺
                 if (!DBUtility.ClsPub.Security_Log_second("Gy_Employee_Edit", 1, false, msg3))
                 {
@@ -337,8 +338,8 @@
                 long HCTPrjID = list[0].HCTPrjID;
                 long HProcID = list[0].HProcID;
                 string HBasePay = list[0].HBasePay;
-                DateTime HInComDate = list[0].HInComDate;   //杩涘巶鏃ユ湡
-                DateTime HDimissionDate = list[0].HDimissionDate;   //绂昏亴鏃ユ湡 (鍏佽NULL)
+                DateTime HInComDate = list[0].HInComDate == null ? Convert.ToDateTime("1900/1/1") : list[0].HInComDate.Value;   //杩涘巶鏃ユ湡
+                DateTime HDimissionDate = list[0].HDimissionDate == null ? Convert.ToDateTime("1900/1/1") : list[0].HDimissionDate.Value;   //绂昏亴鏃ユ湡 (鍏佽NULL)
                 bool HOverType = list[0].HOverType;
                 string HEmpType = list[0].HEmpType;
                 string HOtherDeduct3 = list[0].HOtherDeduct3;
@@ -352,16 +353,16 @@
                 string HDimissionReason = list[0].HDimissionReason;
                 long HDormID = list[0].HDormID;
                 string HArchivesNo = list[0].HArchivesNo;
-                DateTime HStayCardEDate = list[0].HStayCardEDate;   //鏆備綇璇佸埌鏈熸棩
+                DateTime HStayCardEDate = list[0].HStayCardEDate == null ? Convert.ToDateTime("1900/1/1") : list[0].HStayCardEDate.Value;   //鏆備綇璇佸埌鏈熸棩
                 DateTime HCheckCardEDate = Convert.ToDateTime("1900/1/1");  //瀹℃璇佸埌鏈熸棩
                 string HJobCardNo = list[0].HJobCardNo ?? "";
                 DateTime HJobCardEDate = Convert.ToDateTime("1900/1/1");  //灏变笟璇佸埌鏈熸棩
                 string HWorkType = list[0].HWorkType;
                 long HContractYear = list[0].HContractYear;
-                DateTime HContractBDate = list[0].HContractBDate;  //鍚堝悓寮�濮嬫棩
-                DateTime HContractEDate = list[0].HContractEDate;   //鍚堝悓鍒版湡鏃�
+                DateTime HContractBDate = list[0].HContractBDate == null ?  Convert.ToDateTime("1900/1/1") : list[0].HContractBDate.Value;  //鍚堝悓寮�濮嬫棩
+                DateTime HContractEDate = list[0].HContractEDate == null ? Convert.ToDateTime("1900/1/1") : list[0].HContractEDate.Value;   //鍚堝悓鍒版湡鏃�
                 string HInsuranceNo = list[0].HInsuranceNo;
-                DateTime HInsuranceDate = list[0].HInsuranceDate;   //鍙備繚鏃ユ湡
+                DateTime HInsuranceDate = list[0].HInsuranceDate == null ? Convert.ToDateTime("1900/1/1") : list[0].HInsuranceDate.Value;   //鍙備繚鏃ユ湡
                 bool HInsuranceStatus = list[0].HInsuranceStatus;
                 DateTime HSignDate =  Convert.ToDateTime("1900/1/1");  //绛剧害鏃ユ湡
                 bool HSignStatus = list[0].HSignStatus;
@@ -372,7 +373,7 @@
                 string HSpec = list[0].HSpec ?? "";
                 string HCompLev = list[0].HCompLev ?? "";
                 string HEngLev = list[0].HEngLev ?? "";
-                DateTime HGradDate = list[0].HGradDate;  //姣曚笟鏃ユ湡
+                DateTime HGradDate = list[0].HGradDate == null ? Convert.ToDateTime("1900/1/1") : list[0].HGradDate.Value;  //姣曚笟鏃ユ湡
                 string HGradSchool = list[0].HGradSchool ?? "";
                 string HSalaryLev = list[0].HSalaryLev ?? "";
                 long HDutyID = list[0].HDutyID;
@@ -431,6 +432,7 @@
                 //    objJsonResult.data = null;
                 //    return objJsonResult;
                 //}
+
                 //鏌ヨ鏁版嵁涓槸鍚﹀瓨鍦ㄩ噸澶嶄唬鐮�
                 ds = oCN.RunProcReturn("Select HItemID from Gy_Employee  Where HItemID<>" + HItemID + " and HNumber='" + HNumber + "' and HUSEORGID=" + HUSEORGID, "Gy_Warehouse");
 
@@ -446,7 +448,7 @@
                 //淇濆瓨瀹屾瘯鍚庡鐞�
                 if (HItemID == 0)
                 {
-                    oCN.BeginTran();
+                   
                     oCN.RunProc("Insert into Gy_Employee (" +
                       "HNumber,HName,HShortNumber,HEmpRate,HExamRate" +
                       ",HLevel,HParentID,HEndflag,HHighestPay,HOverPayRate" +
@@ -508,13 +510,13 @@
                     }
                     LogService.Write(sql3);
                     oCN.RunProcReturn(sql3, "Gy_Employee_Post");
-                    oCN.Commit();
+                    
                 }
                 else
                 {
                     
                     //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
-                    oCN.BeginTran();
+                   
                     //宸插鏍镐笉鍏佽淇敼
                     DataSet dss;
                     dss = oCN.RunProcReturn("select * from Gy_Employee where HItemID=" + HItemID, "Gy_Employee");
@@ -624,8 +626,9 @@
                     }
                     LogService.Write(sql3);
                     oCN.RunProcReturn(sql3, "Gy_WorkCenterSub");
-                    oCN.Commit();
+                    
                 }
+                oCN.Commit();
                 objJsonResult.code = "0";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
@@ -635,7 +638,7 @@
             }
             catch (Exception e)
             {
-                //oCN.RollBack();
+                oCN.RollBack();
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = "Exception锛�" + e.Message;

--
Gitblit v1.9.1