From 1e5c4412216cdba315ab37ebc8e85644f39a7df1 Mon Sep 17 00:00:00 2001
From: yxj <yxj@hz-kingdee.com>
Date: 星期五, 11 七月 2025 16:50:02 +0800
Subject: [PATCH] PDA校验扫描物料条码方法修改,增加校验模块免扫物料条码系统参数

---
 WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs |  155 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 136 insertions(+), 19 deletions(-)

diff --git a/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs b/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs
index 2dfbf7c..a354e80 100644
--- a/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_EmployeeController.cs
@@ -10,6 +10,7 @@
 using System.Web;
 using System.Web.Http;
 using WebAPI.Models;
+using WebAPI.Models.鍩虹璧勬枡;
 using WebAPI.Service;
 
 namespace WebAPI.Controllers
@@ -38,7 +39,7 @@
             {
                 List<object> columnNameList = new List<object>();
                 //缂栬緫鏉冮檺
-                if (!DBUtility.ClsPub.Security_Log_second("Gy_Employee", 1, false, user))
+                if (!DBUtility.ClsPub.Security_Log_second("Gy_Employee_Query", 1, false, user))
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -49,11 +50,11 @@
                 string sql1 = string.Format(@"select * from h_v_IF_EmployeeList where 缁勭粐鍚嶇О='" + Organization + "'");
                 if (sWhere == null || sWhere.Equals(""))
                 {
-                    ds = oCN.RunProcReturn(sql1 + sWhere + " order by 鑱屽憳浠g爜", "h_v_IF_EmployeeList");
+                    ds = oCN.RunProcReturn(sql1 + sWhere, "h_v_IF_EmployeeList");
                 }
                 else
                 {
-                    string sql = sql1 + sWhere + " order by 鑱屽憳浠g爜";
+                    string sql = sql1 + sWhere;
                     ds = oCN.RunProcReturn(sql, "h_v_IF_EmployeeList");
                 }
 
@@ -278,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();
 
@@ -288,9 +290,10 @@
                 string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                 string msg2 = sArray[0].ToString();
                 string msg3 = sArray[1].ToString();
+                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))
                 {
@@ -304,6 +307,7 @@
                 //鍙嶅簭鍒楀寲
                 msg2 = "[" + msg2.ToString() + "]";
                 List<Gy_Employee> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_Employee>>(msg2);
+                List<ClsGy_EmployeeSub> list1 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsGy_EmployeeSub>>(msg4);
 
                 long HItemID = list[0].HItemID;
                 string HNumber = list[0].HNumber;
@@ -334,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;
@@ -349,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;
@@ -369,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;
@@ -428,11 +432,23 @@
                 //    objJsonResult.data = null;
                 //    return objJsonResult;
                 //}
+
+                //鏌ヨ鏁版嵁涓槸鍚﹀瓨鍦ㄩ噸澶嶄唬鐮�
+                ds = oCN.RunProcReturn("Select HItemID from Gy_Employee  Where HItemID<>" + HItemID + " and HNumber='" + HNumber + "' and HUSEORGID=" + HUSEORGID, "Gy_Warehouse");
+
+                if (ds.Tables[0].Rows.Count > 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佷唬鐮侀噸澶嶏紒";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }
                 //淇濆瓨
                 //淇濆瓨瀹屾瘯鍚庡鐞�
                 if (HItemID == 0)
                 {
-                    oCN.BeginTran();
+                   
                     oCN.RunProc("Insert into Gy_Employee (" +
                       "HNumber,HName,HShortNumber,HEmpRate,HExamRate" +
                       ",HLevel,HParentID,HEndflag,HHighestPay,HOverPayRate" +
@@ -450,7 +466,7 @@
                       ",HEmpType,HPayType,HOverType,HNoBrushFlag,HShiftFlag,HStopwagesFlag" +
                       ",HPostalCode,HBank,HBasePay,HExamLevPostMoney,HBSTDeptID" +
                       ",HOtherDeduct3,HInsurance,HMedicare,HDrydock" +
-                      ",HBankAccount,HGroupID,HDeptID,HWorkTypeID,HCTPrjID,HUSEORGID,HAddress" +
+                      ",HBankAccount,HGroupID,HDeptID,HWorkTypeID,HCTPrjID,HUSEORGID,HAddress,HMakeEmp" +
                       ") " +
                    " Values('" + HNumber + "','" + HName + "','" + HShortNumber + "','" + HEmpRate.ToString() + "','" + HExamRate.ToString() +
                       "','" + HLevel + "','" + HParentID + "','" + Convert.ToString(HEndFlag ? 1 : 0) + "','" + HHighestPay.ToString() + "','" + HOverPayRate.ToString() +
@@ -468,15 +484,52 @@
                       "','" + HEmpType + "'" + ",'" + HPayType + "'" + ",'" + DBUtility.ClsPub.BoolToString(HOverType) + "','" + DBUtility.ClsPub.BoolToString(HNoBrushFlag) + "','" + DBUtility.ClsPub.BoolToString(HShiftFlag) + "','" + DBUtility.ClsPub.BoolToString(HStopwagesFlag) +
                       "','" + HPostalCode + "','" + HBank + "','" + HBasePay.ToString() + "','" + HExamLevPostMoney.ToString() + "','" + HBSTDeptID + "'" +
                       ",'" + HOtherDeduct3.ToString() + "','" + HInsurance.ToString() + "','" + HMedicare.ToString() + "','" + HDrydock.ToString() +
-                      "','" + HBankAccount + "'" + ",'" + HGroupID.ToString() + "','" + HDeptID.ToString() + "','" + HWorkTypeID.ToString() + "','" + HCTPrjID.ToString() + "','" + HUSEORGID + "','" + HAddress + "')", ref DBUtility.ClsPub.sExeReturnInfo);
+                      "','" + HBankAccount + "'" + ",'" + HGroupID.ToString() + "','" + HDeptID.ToString() + "','" + HWorkTypeID.ToString() + "','" + HCTPrjID.ToString() + "','" + HUSEORGID + "','" + HAddress + "','"+ msg3 + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                     //淇敼涓婄骇涓洪潪鏈骇浠g爜
                     oCN.RunProc("Update Gy_Employee set HStopflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
-                    oCN.Commit();
+
+                    DataSet temp_ds = oCN.RunProcReturn("select top 1 HItemID from Gy_Employee where HNumber = N'" + HNumber + "'", "Gy_Employee");
+
+                    if (temp_ds.Tables[0].Rows.Count < 1)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "淇濆瓨澶辫触!鍘熷洜锛氭彃鍏ユ暟鎹け璐�";
+                        objJsonResult.data = null;
+                        oCN.RollBack();
+                        return objJsonResult;
+                    }
+
+                    int itemID = int.Parse(temp_ds.Tables[0].Rows[0]["HItemID"].ToString());
+                    string sql3 = "";
+                    foreach (ClsGy_EmployeeSub listOne in list1)
+                    {
+                        sql3 += "insert into Gy_Employee_Post(HEmpID, HPostID, HRemark) Values("
+                        + itemID + "," + listOne.HPostID +",N'" + listOne.HRemark + "');";
+
+                    }
+                    LogService.Write(sql3);
+                    oCN.RunProcReturn(sql3, "Gy_Employee_Post");
+                    
                 }
                 else
                 {
+                    
                     //鑻AINDI閲嶅鍒欓噸鏂拌幏鍙�
-                    oCN.BeginTran();
+                   
+                    //宸插鏍镐笉鍏佽淇敼
+                    DataSet dss;
+                    dss = oCN.RunProcReturn("select * from Gy_Employee where HItemID=" + HItemID, "Gy_Employee");
+                    //鍒ゆ柇鏄惁鍙紪杈�
+                    if (dss.Tables[0].Rows[0]["HCheckEmp"].ToString() != "")
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "姝ゅ崟鎹姸鎬佸凡缁忓鏍革紝涓嶅厑璁镐慨鏀癸紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
                     oCN.RunProc("Update Gy_Employee set " +
                     " HNumber='" +  HNumber + "'" +
                     ",HName='" +  HName + "'" +
@@ -562,8 +615,20 @@
 
                     ",HAddress='" +  HAddress.ToString() + "'" +
                     ",HDeptID= '" +  HDeptID + "' Where HItemID=" + HItemID);
-                    oCN.Commit();
+
+                    oCN.RunProcReturn("delete from Gy_Employee_Post where HEmpID = " + HItemID, "Gy_Employee_Post");
+
+                    string sql3 = "";
+                    foreach (ClsGy_EmployeeSub listOne in list1)
+                    {
+                        sql3 += "insert into Gy_Employee_Post(HEmpID, HPostID, HRemark) Values("
+                       + HItemID + "," + listOne.HPostID  + ",N'" + listOne.HRemark + "');";
+                    }
+                    LogService.Write(sql3);
+                    oCN.RunProcReturn(sql3, "Gy_WorkCenterSub");
+                    
                 }
+                oCN.Commit();
                 objJsonResult.code = "0";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
@@ -573,7 +638,7 @@
             }
             catch (Exception e)
             {
-                //oCN.RollBack();
+                oCN.RollBack();
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = "Exception锛�" + e.Message;
@@ -815,7 +880,52 @@
         //    }
         //}
 
+        /// <summary>
+        /// 鏌ヨ瀛愯〃鏂规硶
+        /// </summary>
+        [Route("Gy_Employee/listSub")]
+        [HttpGet]
+        public object listSub(string sWhere, string user)
+        {
+            try
+            {
+                List<object> columnNameList = new List<object>();
+                //鏌ョ湅鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Gy_Employee_Query", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犳煡鐪嬫潈闄愶紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
 
+                ds = oCN.RunProcReturn("select * from h_v_IF_EmployeeSubList where 1 = 1 " + sWhere + " order by HItemID ", "h_v_IF_EmployeeSubList");
+
+                //娣诲姞鍒楀悕
+                foreach (DataColumn col in ds.Tables[0].Columns)
+                {
+                    Type dataType = col.DataType;
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "Sucess锛�";
+                objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = columnNameList;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
 
         /// <summary>
         /// 鑱屽憳璁剧疆鑾峰彇淇℃伅
@@ -870,6 +980,13 @@
                     objJsonResult.Message = "娌℃湁鏁版嵁锛屾棤娉曞垹闄わ紒";
                     objJsonResult.data = null;
                     return objJsonResult; ;
+                }else if (ds.Tables[0].Rows[0]["HCheckEmp"] !=null && ds.Tables[0].Rows[0]["HCheckEmp"].ToString() != "")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鑱屽憳宸茬粡瀹℃牳涓嶈兘鍒犻櫎锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult; ;
                 }
                 else
                 {

--
Gitblit v1.9.1