From d8fc6ac36336cb02a00f1e5f4e90b7bdfb34fb85 Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期一, 07 十月 2024 11:30:45 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API

---
 WebAPI/Controllers/生产管理/报工台工序/Sc_MESBeginStepWorkBillController.cs |  348 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 311 insertions(+), 37 deletions(-)

diff --git "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs" "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs"
index a0338de..73764e2 100644
--- "a/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs"
+++ "b/WebAPI/Controllers/\347\224\237\344\272\247\347\256\241\347\220\206/\346\212\245\345\267\245\345\217\260\345\267\245\345\272\217/Sc_MESBeginStepWorkBillController.cs"
@@ -41,11 +41,13 @@
 
         [Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkBill")]
         [HttpGet]
-        public object GetMESBeginStepWorkBill(string sWhere,string user)
+        public object GetMESBeginStepWorkBill(string sWhere, string user)
         {
             try
             {
+                List<object> a = new List<object>();
                 LogService.Write("鎵ц浜�0");
+             
                 //鍒ゆ柇鏄惁鏈夋煡璇㈡潈闄�
                 if (!DBUtility.ClsPub.Security_Log("MES_MESBeginWorkBill_Query", 1, false, user))
                 {
@@ -57,11 +59,18 @@
                 }
                 LogService.Write("鎵ц浜�");
                 ds = Sc_GetMESBeginStepWorkBill(sWhere);
+                foreach (DataColumn col in ds.Tables[0].Columns)//閬嶅巻ds涓涓�涓〃锛圱ables[0]锛夌殑鎵�鏈夊垪锛圕olumns锛夋瘡娆″惊鐜腑锛宑ol鍙橀噺浼氭寔鏈夊綋鍓嶅垪鐨勫紩鐢�
+                {
+                    Type dataType = col.DataType; //鑾峰彇褰撳墠鏁版嵁绫诲瀷浼犲叆 鑷畾涔夊彉閲廳atadataType
+                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //瀛楃涓叉嫾鎺�         // 灏嗗垪鍚嶅拰鏁版嵁绫诲瀷淇℃伅鎷兼帴鎴愪竴涓狫SON鏍煎紡鐨勫瓧绗︿覆
+                    a.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+                }
 
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
                 objJsonResult.Message = "杩斿洖璁板綍鎴愬姛锛�";
                 objJsonResult.data = ds.Tables[0];
+                objJsonResult.list = a;
                 return objJsonResult;
             }
             catch (Exception ex)
@@ -84,7 +93,7 @@
             {
                 LogService.Write("鎵ц浜�1");
                 string sql1 = "select * from h_v_Sc_MESBeginWorkBillList_NEW where 1 = 1 ";
-                string sql = sql1 + sWhere+ " order by hmainid desc ";
+                string sql = sql1 + sWhere + " order by hmainid desc ";
                 return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Sc_MESBeginWorkBillList_NEW");
             }
 
@@ -101,7 +110,7 @@
                 return new ApiResult<DataSet> { code = -1, msg = "ID涓嶈兘涓虹┖" };
             SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
 
-            var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_MESBeginWorkBillList_NEW  where hmainid= " + HID + " ", "h_v_Sc_MESBeginWorkBillList_NEW");
+            var dataSet = oCN.RunProcReturn("select  * from h_v_Sc_MESBeginWorkBillList_Edit  where hmainid= " + HID + " ", "h_v_Sc_MESBeginWorkBillList_Edit");
             if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                 return new ApiResult<DataSet> { code = -1, msg = "涓嶅瓨鍦ㄥ紑宸ュ崟鍙�" };
 
@@ -160,9 +169,39 @@
                     return objJsonResult;
                 }
 
-                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
+                oCN.BeginTran();//寮�濮嬩簨鍔�
+
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                DataSet Ds;
+
+                string sql1 = "exec h_p_Sc_MESBeginWorkBill_BeforeDelCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + UserName + "'";
+                Ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESBeginWorkBill_BeforeDelCtrl");
+                if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==================================================================================    
+
+                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterDelCtrl", UserName, ref DBUtility.ClsPub.sExeReturnInfo);
                 if (IsDete)
                 {
+                    oCN.Commit();//鎻愪氦浜嬪姟
+
                     objJsonResult.code = "0";
                     objJsonResult.count = 1;
                     objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
@@ -176,6 +215,7 @@
                     objJsonResult.count = 0;
                     objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                     objJsonResult.data = null;
+                    oCN.RollBack();
                     return objJsonResult;
                 }
             }
@@ -185,6 +225,7 @@
                 objJsonResult.count = 0;
                 objJsonResult.Message = "鍗曟嵁鏈壘鍒�";
                 objJsonResult.data = null;
+                oCN.RollBack();
                 return objJsonResult;
             }
         }
@@ -204,6 +245,7 @@
         {
             string ModRightNameCheck = "MES_MESBeginWorkBill_Check";
             DBUtility.ClsPub.CurUserName = CurUserName;
+            string sql = "";
             try
             {
                 //瀹℃牳鏉冮檺
@@ -246,7 +288,7 @@
                         return objJsonResult;
                     }
                     if (IsAudit == 0)  //瀹℃牳鍒ゆ柇
-                    {
+                    {                        
                         if (oBill.omodel.HChecker.Trim() != "")
                         {
                             objJsonResult.code = "0";
@@ -278,8 +320,30 @@
                 }
                 if (IsAudit == 0) //瀹℃牳鎻愪氦
                 {
+                    //瀹℃牳鍓嶆帶鍒�===============================================Begin===================================================================
+                    sql = "exec h_p_Sc_MESBeginWorkBill_BeforeCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_MESBeginWorkBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝鏃犺繑鍥炰俊鎭紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //瀹℃牳鍓嶆帶鍒�===============================================End===================================================================
+
                     //瀹℃牳鎻愪氦
-                    if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CheckBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -298,8 +362,30 @@
                 }
                 if (IsAudit == 1) //鍙嶅鏍告彁浜�
                 {
+                    //鍙嶅鏍稿墠鎺у埗===============================================Begin===================================================================
+                    sql = "exec h_p_Sc_MESBeginWorkBill_BeforeUnCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_MESBeginWorkBill_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛屾棤杩斿洖淇℃伅锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //鍙嶅鏍稿墠鎺у埗===============================================End===================================================================
+
                     //鍙嶅鏍告彁浜bandonCheck
-                    if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.AbandonCheck(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -387,8 +473,9 @@
             string msg1 = _value.ToString();
             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
-            string UserName = sArray[1].ToString();
-            string refSav = sArray[2].ToString();
+            string msg3 = sArray[1].ToString();
+            string UserName = sArray[2].ToString();
+            string refSav = sArray[3].ToString();
             DBUtility.ClsPub.CurUserName = UserName;
             //淇濆瓨鏉冮檺
             if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Edit", 1, false, DBUtility.ClsPub.CurUserName))
@@ -487,6 +574,27 @@
                         return objJsonResult;
                     }
                     oBill.omodel = oItem;
+                }
+
+                // 琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                List<Models.ClsSc_MESBeginWorkBillSub_RelationBill> ls = new List<Models.ClsSc_MESBeginWorkBillSub_RelationBill>();
+                ls = oListModels.getObjectByJson_Sc_MESBeginWorkBillSub_RelationBill(msg3);
+                int i = 0;
+                foreach (Models.ClsSc_MESBeginWorkBillSub_RelationBill oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+
+
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailCol2.Add(oItemSub);
+
                 }
 
                 //淇濆瓨
@@ -802,7 +910,7 @@
                     oItemSub.HOtherItem4 = "";
                     oItemSub.HOtherItem5 = "";
                     oItemSub.HPackType = "";
-                    oItemSub.HBatchNo="";
+                    oItemSub.HBatchNo = "";
                     //oItemSub.HRelationMoney = 0;   //鍏宠仈閲戦
                     //oItemSub.HRepairID = 0;       //缁翠慨椤圭洰
                     //oItemSub.HRepairExplanation ="";   //缁翠慨瑕佹眰
@@ -1026,29 +1134,93 @@
                     return objJsonResult;
                 }
 
+                ds = oCN.RunProcReturn("select * from Sc_ICMOBillWorkQtyStatus_Tmp where HInterID=" + HInterID + " and HSourceInterID=" + HICMOInterID + " and HSourceEntryID=" + HICMOEntryID, "Sc_ICMOBillWorkQtyStatus_Tmp");
+                string HBillNo = "";
+                if (ds.Tables[0].Rows.Count == 0) {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏌ユ棤鏁版嵁!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                else
+                {
+                    HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                }
+
+
                 oCN.BeginTran();
-                //鍒犻櫎宸ュ簭姹囨姤瀛愯〃
-                string sql1 = string.Format(@"delete Sc_ProcessReportSub  where HInterID='"+HInterID+"' and   HICMOInterID='" + HICMOInterID + "' and HICMOEntryID='" + HICMOEntryID + "'");
-                oCN.RunProc(sql1);
-                //鍒犻櫎宸ュ簭姹囨姤涓昏〃
-                string sql = string.Format(@"delete Sc_ProcessReportMain  where HInterID='" + HInterID + "'");
+
+                //鍒犻櫎鍓嶆帶鍒�=========================================      
+                DataSet Ds;
+
+                string sql1 = "exec h_p_Sc_ICMOBillWorkQtyStatus_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + UserName + "'";
+                Ds = oCN.RunProcReturn(sql1, "h_p_Sc_ICMOBillWorkQtyStatus_BeforeDelCtrl");
+                if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:鍒犻櫎鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+
+                if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + Ds.Tables[0].Rows[0]["HRemark"].ToString(); 
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==================================================================================      
+
+                //鍒犻櫎浜ч噺姹囨姤琛�
+                string sql = string.Format(@"delete Sc_ICMOBillWorkQtyStatus_Tmp  where HInterID='" + HInterID + "'");
                 oCN.RunProc(sql);
+                double sumqty = double.Parse(ds.Tables[0].Rows[0]["HQty"].ToString()) + double.Parse(ds.Tables[0].Rows[0]["HBadQty"].ToString()) + double.Parse(ds.Tables[0].Rows[0]["HWasterQty"].ToString());  //姹囨姤鏁伴噺+涓嶈壇+鎶ュ簾
+                //鍥炲啓鐢熶骇鐘舵�佷复鏃惰〃Sc_ICMOBillStatus_Tmp鎷嗗垎姹囨姤鏁伴噺 HSplitRelationQty
+                oCN.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty-" + sumqty + "  where HICMOBillNo='" + ds.Tables[0].Rows[0]["HICMOBillNo"].ToString() + "'  and HSourceID='" + ds.Tables[0].Rows[0]["HSourceID"].ToString() + "' and  HICMOInterID='" + ds.Tables[0].Rows[0]["HICMOInterID"].ToString() + "' and HICMOEntryID='" + ds.Tables[0].Rows[0]["HICMOEntryID"].ToString() + "' and HInterID=" + ds.Tables[0].Rows[0]["HSourceInterID"].ToString());
+
+                //鍒犻櫎鍚庢帶鍒�==================================================================================      
+                string sql2 = "exec h_p_Sc_ICMOBillWorkQtyStatus_AfterDelCtrl " + HInterID + ",'" + HBillNo + "','" + UserName + "'";
+                Ds = oCN.RunProcReturn(sql2, "h_p_Sc_ICMOBillWorkQtyStatus_AfterDelCtrl");
+                if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍒犻櫎澶辫触!鍘熷洜:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
+                    objJsonResult.data = null;
+                    oCN.RollBack();
+                    return objJsonResult;
+                }
+                //==============================================================================================
 
                 oCN.Commit();
                 objJsonResult.code = "1";
                 objJsonResult.count = 1;
-                objJsonResult.Message = "鍒犻櫎璧勬簮鎴愬姛锛�";
+                objJsonResult.Message = "鍒犻櫎浜ч噺姹囨姤鍗曟垚鍔燂紒";
                 objJsonResult.data = ds;
                 return objJsonResult;
             }
             catch (Exception e)
             {
-
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
                 objJsonResult.Message = e.Message.ToString();
                 objJsonResult.data = null;
-
+                oCN.RollBack();
             }
             return objJsonResult;
         }
@@ -1057,7 +1229,7 @@
         #region 鎶ュ伐骞冲彴鎶ユ鐢宠淇濆瓨
         [Route("Sc_MESBeginStepWorkBill/SaveGetMESProductReportBillList")]
         [HttpGet]
-        public object SaveGetMESProductReportBillList(string ScMaxWork, string HSourceBillType, string workcode, int HSourceID, int HICMOInterID, int HICMOEntryID, string HMaker, string Czybm,string HProcID)
+        public object SaveGetMESProductReportBillList(string ScMaxWork, string HSourceBillType, string workcode, int HSourceID, int HICMOInterID, int HICMOEntryID, string HMaker, string Czybm, string HProcID)
         {
             ListModels oListModels = new ListModels();
             try
@@ -1125,7 +1297,7 @@
                 //model.HPRDORGID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HPRDORGID"]);
                 model.HMainSourceInterID = HICMOInterID;
                 model.HMainSourceEntryID = HICMOEntryID;
-                
+
 
                 //oWebs.Timeout = 30000;
                 bool flag = oWebs.set_SaveICMOProductReportBill_LayuiYqn(model, workcode, HSourceID, sHSourceType, HProcID, ref DBUtility.ClsPub.sErrInfo);
@@ -1182,7 +1354,7 @@
             try
             {
                 //鍒ゆ柇鏄惁鏈夌紪杈戞潈闄�
-                if (!DBUtility.ClsPub.Security_Log("MES_ProcExchReport_Edit",1,false,user))
+                if (!DBUtility.ClsPub.Security_Log("MES_ProcExchReport_Edit", 1, false, user))
                 {
                     objJsonResult.code = "0";
                     objJsonResult.count = 0;
@@ -1333,6 +1505,7 @@
         {
             string ModRightNameCheck = "MES_ProcExchReport_Check";
             DBUtility.ClsPub.CurUserName = CurUserName;
+            string sql = "";
             try
             {
                 string StrMessage = "";
@@ -1408,8 +1581,30 @@
                 }
                 if (IsAudit == 0) //瀹℃牳鎻愪氦
                 {
+                    //瀹℃牳鍓嶆帶鍒�===============================================Begin===================================================================
+                    sql = "exec h_p_Sc_ICMOBillWorkQtyStatus_BeforeCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ICMOBillWorkQtyStatus_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝鏃犺繑鍥炰俊鎭紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //瀹℃牳鍓嶆帶鍒�===============================================End===================================================================
+
                     //瀹℃牳鎻愪氦
-                    if (oBill.CheckBill(HSourceID, HSourceInterID, HSourceEntryID, HSourceBillNo, HICMOInterID, HICMOEntryID, lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.CheckBill(HSourceID, HSourceInterID, HSourceEntryID, HSourceBillNo, HICMOInterID, HICMOEntryID, lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_ICMOBillWorkQtyStatus_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -1428,8 +1623,30 @@
                 }
                 if (IsAudit == 1) //鍙嶅鏍告彁浜�
                 {
+                    //鍙嶅鏍稿墠鎺у埗===============================================Begin===================================================================
+                    sql = "exec h_p_Sc_ICMOBillWorkQtyStatus_BeforeUnCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ICMOBillWorkQtyStatus_BeforeUnCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:鍙嶅鏍稿墠鍒ゆ柇澶辫触锛屾棤杩斿洖淇℃伅锛岃涓庣綉缁滅鐞嗕汉鍛樿仈绯�";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+
+                    }
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //鍙嶅鏍稿墠鎺у埗===============================================End===================================================================
+
                     //鍙嶅鏍告彁浜bandonCheck
-                    if (oBill.AbandonCheck(HSourceID, HSourceInterID, HSourceEntryID, HSourceBillNo, HICMOInterID, HICMOEntryID, lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
+                    if (oBill.AbandonCheck(HSourceID, HSourceInterID, HSourceEntryID, HSourceBillNo, HICMOInterID, HICMOEntryID, lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_ICMOBillWorkQtyStatus_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
@@ -1507,8 +1724,9 @@
             string msg1 = _value.ToString();
             string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
             string msg2 = sArray[0].ToString();
-            string UserName = sArray[1].ToString();
-            string refSav = sArray[2].ToString();
+            string msg3 = sArray[1].ToString();
+            string UserName = sArray[2].ToString();
+            string refSav = sArray[3].ToString();
             DBUtility.ClsPub.CurUserName = UserName;
             //淇濆瓨鏉冮檺
             if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Edit", 1, false, DBUtility.ClsPub.CurUserName))
@@ -1526,6 +1744,7 @@
             string BillNo = "";
             long MainId = 0;
             string EntyID = "";
+
             if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
             {
                 objJsonResult.code = "0";
@@ -1557,7 +1776,7 @@
                             return objJsonResult;
                         }
                     }
-
+                    //鐢熶骇璁㈠崟缂栧彿銆佺敓浜ц鍗曚富ID銆佺敓浜ц鍗曚富ID+瀛怚D
                     BillNo = oItem.HMainSourceBillNo;
                     MainId = oItem.HMainSourceInterID;
                     EntyID = oItem.HMainSourceEntryID;
@@ -1579,12 +1798,51 @@
                     oBill.omodel = oItem;
                 }
 
-                //淇濆瓨
-                //淇濆瓨瀹屾瘯鍚庡鐞�
+                // 琛ㄤ綋鏁版嵁
+                //鎸� },{鏉ユ媶鍒嗘暟缁� //鍘绘帀銆愬拰銆�
+                msg3 = msg3.Substring(1, msg3.Length - 2);
+                msg3 = msg3.Replace("\\", "");
+                msg3 = msg3.Replace("\n", "");  //\n
+                List<Models.ClsSc_MESBeginWorkBillSub_RelationBill> ls = new List<Models.ClsSc_MESBeginWorkBillSub_RelationBill>();
+                ls = oListModels.getObjectByJson_Sc_MESBeginWorkBillSub_RelationBill(msg3);
+                int i = 0;
+                foreach (Models.ClsSc_MESBeginWorkBillSub_RelationBill oItemSub in ls)
+                {
+                    i++;
+                    oItemSub.HEntryID = i;
+
+
+                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
+                    oItemSub.HCloseType = false;   //鍏抽棴绫诲瀷
+
+                    oBill.DetailCol2.Add(oItemSub);
+
+                }
+
                 bool bResult;
                 if (oBill.omodel.HInterID == 0)
                 {
                     oCN.BeginTran();
+
+                    //鏍规嵁鐢熶骇璁㈠崟瀛怚D鎵惧搴旂殑鐢熶骇鐢ㄦ枡娓呭崟
+                    DataSet Ds = oCN.RunProcReturn("select b.FID,b.FBILLNO,b.FDOCUMENTSTATUS from  Sc_ICMOBillSub a left join AIS20200908101915zs..T_PRD_PPBOM b on a.HERPEntryID=b.FMOENTRYID where a.HEntryID=" + (EntyID).Split('-')[1], "Sc_ICMOBillSub");
+                    //鏌ユ壘褰撳墠鐢熶骇璁㈠崟鏄庣粏鐘舵��
+                    DataSet Dss = oCN.RunProcReturn("select FSTATUS from AIS20200908101915zs..T_PRD_MOENTRY_A where FENTRYID=" + (EntyID).Split('-')[1], "AIS20200908101915zs..T_PRD_MOENTRY_A");
+                    //鍒ゆ柇閲戣澏鐢熶骇鍗曠殑鐘舵�佷笉涓�4鍒欐墽琛屽紑宸�
+                    if (Dss.Tables[0].Rows[0][0].ToString() != "4")
+                    {
+                        oCN.RunProc("update AIS20200908101915zs..T_PRD_MOENTRY_A set FSTATUS=4,FCONVEYDATE=getdate() where FENTRYID=" + (EntyID).Split('-')[1]);
+                    }
+                    else
+                    {
+                        oCN.RollBack();
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鍗曟嵁宸插紑宸ワ紒";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
                     //璁块棶閲戣澏
                     var loginRet = InvokeHelper.Login();
                     var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
@@ -1599,22 +1857,38 @@
                     var json = new
                     {
                         //CreateOrgId = 0,
-                        Numbers = BillNo,
-                        //Ids = (EntyID).Split('-')[0],
-                        PkEntryIds = (EntyID).Split('-')[1]
+                        //Numbers = BillNo,
+                        Ids = Ds.Tables[0].Rows[0][0].ToString(),
+                        //PkEntryIds = (EntyID).Split('-')[1]
                     };
-                    Console.Write("json="+json);
-                    var result = InvokeHelper.ExcuteOperation("PRD_MO", "ToStart", JsonConvert.SerializeObject(json));
-                    if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
+                    //LogService.Write("json=" + json);
+                    string result1 = string.Empty;
+                    string result2 = string.Empty;
+
+                    //鍒ゆ柇褰撳墠鐢ㄧ敓浜ф枡娓呭崟鍗曠姸鎬佲�斺�斿凡鍒涘缓鍒欏厛鎻愪氦鍐嶅鏍搞�佷互鎻愪氦鍒欏彧瀹℃牳--A:鍒涘缓锛孊:鎻愪氦,C:瀹℃牳,D:閲嶆柊瀹℃牳
+                    if (Ds.Tables[0].Rows[0][2].ToString() == "A"|| Ds.Tables[0].Rows[0][2].ToString() == "D")
+                    {
+                        result1 = InvokeHelper.Submit("PRD_PPBOM", JsonConvert.SerializeObject(json));
+                        result2 = InvokeHelper.Audit("PRD_PPBOM", JsonConvert.SerializeObject(json));
+                    }
+                    if (Ds.Tables[0].Rows[0][2].ToString() == "B")
+                    {
+                        result2 = InvokeHelper.Audit("PRD_PPBOM", JsonConvert.SerializeObject(json));
+                    }
+                    LogService.Write("result2=" + result2);
+                    //鍒ゆ柇瀹℃牳鏄惁鎴愬姛
+                    if (JObject.Parse(result2)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
                     {
                         oCN.RollBack();
                         objJsonResult.code = "0";
                         objJsonResult.count = 0;
-                        objJsonResult.Message = "瀵瑰簲閲戣澏浜戠敓浜ц鍗曟洿鏀瑰紑宸ョ姸鎬佸け璐ワ紒" + result;
+                        objJsonResult.Message = $"瀵瑰簲鐢熶骇鐢ㄦ枡娓呭崟,鍗曞彿{Ds.Tables[0].Rows[0][1].ToString()},瀹℃牳澶辫触锛�" + result2;
                         objJsonResult.data = null;
                         return objJsonResult;
                     }
-                    //鎵ц淇濆瓨
+
+                    //淇濆瓨
+                    ////鎵ц淇濆瓨
                     bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                     if (bResult)
                     {
@@ -1653,4 +1927,4 @@
         }
         #endregion
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.1