From ed879c727d188cfe3e4ee2e5d18a4065f652d457 Mon Sep 17 00:00:00 2001
From: wtt <1985833171@qq.com>
Date: 星期五, 07 十一月 2025 11:16:35 +0800
Subject: [PATCH] 单品过站优化

---
 WebAPI/Controllers/数据同步/小诸葛同步/XZG_DataSynchronizationController.cs |  987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 949 insertions(+), 38 deletions(-)

diff --git "a/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs" "b/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs"
index 51c1829..245a062 100644
--- "a/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs"
+++ "b/WebAPI/Controllers/\346\225\260\346\215\256\345\220\214\346\255\245/\345\260\217\350\257\270\350\221\233\345\220\214\346\255\245/XZG_DataSynchronizationController.cs"
@@ -28,6 +28,7 @@
 using System.Security.Cryptography;
 using System.Net.Http.Headers;
 using System.Web;
+using Kingdee.BOS.WebApi.Client;
 
 namespace WebAPI.Controllers
 {
@@ -427,6 +428,118 @@
 
     #endregion
     #endregion
+
+    #region 鐢熶骇姹囨姤
+    #region 宸插鏍哥殑鎶ュ伐璁板綍淇℃伅鍒楄〃
+    public class ICMOReportListResponse
+    {
+        public string code;
+        public string msg;
+        public List<ICMOReportListResponse_Data> data;
+    }
+    public class ICMOReportListResponse_Data
+    {
+        public List<ICMOReportListResponse_Data_Data> data;
+        public string pageIndex;                
+        public string pageCount;
+    }
+    public class ICMOReportListResponse_Data_Data
+    {
+        public string produceReportId;                  //鎶ュ伐璁板綍id
+        public string machineName;                      //璁惧鍚嶇О
+        public string macId;                            //璁惧id
+        public string productName;                      //浜у搧鍚嶇О
+        public string partId;                           //浜у搧id
+        public string workTime;                         //宸ヤ綔鏃堕棿
+        public string tour;                             //鐝
+        public string productNum;                       //鐢熶骇鏁版嵁
+        public string standardNum;                      //鎶ュ悎鏍兼暟閲�
+        public string defectiveNum;                     //娆″搧鏁伴噺
+        public string remark;                           //澶囨敞
+        public string materialId;                       //
+        public string materialName;                     //鏉愭枡鍚嶇О
+        public string materialNo;                       //鏉愭枡缂栧彿
+        public string producePerson;                    //鐢熶骇浜哄憳
+        public string producePersonId;                  //鐢熶骇浜哄憳id
+        public string producePersonCode;                //鐢熶骇浜哄憳code
+        public string planNo;                           //璁″垝鍗曞彿
+        public string taskNo;                           //浠诲姟鍗曞彿
+
+        public string partNum;                          //浜у搧缂栧彿
+        public string produceRecordId;                  //鐢熶骇璁板綍鐨刬d
+        public string moldNo;                           //妯″叿缂栧彿
+        public string reportDate;                       //鎶ュ伐鏃ユ湡
+        public string reportUser;                       //鎶ュ伐浜哄憳
+        public string reportUserCode;                   //鎶ュ伐浜哄憳缂栫爜
+        public string auditUser;                        //瀹℃牳浜�
+        public string auditUserCode;                    //瀹℃牳浜哄憳缂栧彿
+        public string auditDate;                        //瀹℃牳鏃ユ湡
+        public string moldName;                         //妯″叿鍚嶇О
+        public string defectiveReasonName;              //娆″搧鏄庣粏淇℃伅
+        public string boxCodes;                         //绠辩爜
+        public string tourGroupName;                    //鐝粍
+        
+    }
+    #endregion
+
+    #region 鐢熶骇姹囨姤璇︾粏淇℃伅
+    public class ICMOReportDetailResponse
+    {
+        public string code;
+        public string msg;
+        public List<ICMOReportDetailResponse_Data> data;
+    }
+    public class ICMOReportDetailResponse_Data
+    {
+        public string produceReportId;                  //鎶ュ伐璁板綍id
+        public string machineName;                      //璁惧鍚嶇О
+        public string macId;                            //璁惧id
+        public string productName;                      //浜у搧鍚嶇О
+        public string partId;                           //浜у搧id
+        public string workTime;                         //宸ヤ綔鏃堕棿
+        public string tour;                             //鐝
+        public string productNum;                       //鐢熶骇鏁版嵁
+        public string standardNum;                      //鎶ュ悎鏍兼暟閲�
+        public string defectiveNum;                     //娆″搧鏁伴噺
+        public string stockInputNum;            
+        public string remark;                           //澶囨敞
+/*        public string materialId;     */             //
+        public string materialName;                      //鏉愭枡鍚嶇О
+        public string materialNo;                       //鏉愭枡缂栧彿
+        public string producePerson;                    //鐢熶骇浜哄憳
+        public string producePersonId;                  //鐢熶骇浜哄憳id
+        public string producePersonCode;                //鐢熶骇浜哄憳code
+        public string planNo;                           //璁″垝鍗曞彿
+        public string taskNo;                           //浠诲姟鍗曞彿
+
+        public string partNum;                          //浜у搧缂栧彿
+        public string produceRecordId;                  //鐢熶骇璁板綍鐨刬d
+        public string moldNo;                           //妯″叿缂栧彿
+        public string reportDate;                       //鎶ュ伐鏃ユ湡
+        public string reportUser;                       //鎶ュ伐浜哄憳
+        public string reportUserCode;                   //鎶ュ伐浜哄憳缂栫爜
+        public string auditUser;                        //瀹℃牳浜�
+        public string auditUserCode;                    //瀹℃牳浜哄憳缂栧彿
+        public string auditDate;                        //瀹℃牳鏃ユ湡
+
+
+        public string piceWage;                         //鍗曚环
+        public string moldName;                         //妯″叿鍚嶇О
+
+        public List<string> defectiveReasonNameList;
+        public List<string> defectiveNumList;
+
+        public string tourGroupName;            //鐝粍
+        public List<ICMOReportDetailResponse_Data_Box> boxs;
+    }
+
+    public class ICMOReportDetailResponse_Data_Box
+    {
+        public string boxCode;                  //绠辩爜
+        public string boxActQty;                //鏁伴噺
+    }
+    #endregion
+    #endregion
     #endregion
 
     #region 灏忚钁涙暟鎹悓姝�
@@ -442,6 +555,11 @@
         #region 灏忚钁涙暟鎹悓姝ュ瘑閽�
         string APPID = "1f2e019a-ff51-f115-ce59-205606c72853";
         string APPPWD = "YYLM01A";
+        #endregion
+
+        #region erp鏁版嵁搴撳悕绉�
+        //string erpDatabaseName = "AIS20210811135644..";           //47閲戣澏浜戞暟鎹簱鍚嶇О
+        string erpDatabaseName = "AIS20201117213251..";             //涓夊崌閲戣澏浜戞暟鎹簱鍚嶇О
         #endregion
 
         #region 鑾峰彇鏈嶅姟鍦板潃
@@ -524,6 +642,37 @@
         }
         #endregion
 
+        #region 鏁版嵁鍚屾
+        #region 鏁版嵁鍚屾-姹囨�诲叏閮ㄥ悓姝�
+        public async Task<json> dataAnsy()
+        {
+            try
+            {
+                //浜у搧妗f鍚屾锛坋rp->灏忚钁涳級
+                await productInfoSyncFromERPToXZG();
+                //鐢熶骇璁㈠崟鍚屾锛坋rp->灏忚钁涳級
+                await icmoInfoSyncFromERPToXZG();
+                //鐢熶骇姹囨姤鍗曞悓姝�(灏忚钁�->erp)
+                //await icmoReportInfoSyncFromXZGToERP();
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍚屾鎴愬姛!";
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch(Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍚屾澶辫触!" + e.Message;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+        #endregion
+
         #region 浜у搧妗f
         #region 鑾峰彇浜у搧鍒楄〃淇℃伅
         public async Task<MaterListResponse> getMaterListAsync()
@@ -586,10 +735,10 @@
                 {"key", DBUtility.ClsPub.isStrNull(material.key)},
                 {"productName", DBUtility.ClsPub.isStrNull(material.productName)},
                 {"partNum",DBUtility.ClsPub.isStrNull(material.partNum)},
-                {"sepc", DBUtility.ClsPub.isStrNull(material.sepc)},
+                {"Spec", DBUtility.ClsPub.isStrNull(material.sepc)},
                 {"weight", DBUtility.ClsPub.isStrNull(material.weight)},
                 {"headWeight", DBUtility.ClsPub.isStrNull(material.headWeight)},
-                {"cycletime", DBUtility.ClsPub.isStrNull(material.cycleTime)},
+                //{"cycletime", DBUtility.ClsPub.isStrNull(material.cycleTime)},
                 {"fightsPartnum", DBUtility.ClsPub.isStrNull(material.flightsPartnum)},
                 {"comments", DBUtility.ClsPub.isStrNull(material.comments)},
                 {"colorName", DBUtility.ClsPub.isStrNull(material.colorName)},
@@ -632,7 +781,7 @@
                 {"productName", DBUtility.ClsPub.isStrNull(material.productName)},
                 {"partNum",DBUtility.ClsPub.isStrNull(material.partNum)},
                 {"cycletime", DBUtility.ClsPub.isStrNull(material.cycleTime)},
-                {"sepc", DBUtility.ClsPub.isStrNull(material.sepc)},
+                {"Spec", DBUtility.ClsPub.isStrNull(material.sepc)},
                 {"weight", DBUtility.ClsPub.isStrNull(material.weight)},
                 {"headWeight", DBUtility.ClsPub.isStrNull(material.headWeight)},
                 {"fightsPartnum", DBUtility.ClsPub.isStrNull(material.flightsPartnum)},
@@ -679,20 +828,25 @@
 	                            ,'CLD-ERP瀵煎叆' HRemark
 	                            ,unit.FNAME HUnitName
                                 ,convert(varchar(100),a.FMODIFYDATE,20) HUpdateDate
-                            from AIS20210811135644..T_BD_MATERIAL a with(nolock)
-                            inner join AIS20210811135644..T_BD_MATERIAL_L l with(nolock) on a.FMATERIALID=l.FMATERIALID 
-                            inner join AIS20210811135644..T_BD_MATERIALSTOCK s with(nolock) on a.FMATERIALID=s.FMATERIALID 
-                            inner join AIS20210811135644..T_BD_Unit_L unit with(nolock) on isnull(s.FSTOREUNITID,0) = unit.FUNITID
+                            from " +  erpDatabaseName + @"T_BD_MATERIAL a with(nolock)
+                            inner join " +  erpDatabaseName + @"T_BD_MATERIAL_L l with(nolock) on a.FMATERIALID=l.FMATERIALID 
+                            inner join " +  erpDatabaseName + @"T_BD_MATERIALBASE b with(nolock) on a.FMATERIALID=b.FMATERIALID 
+                            inner join " +  erpDatabaseName + @"T_BD_MATERIALSTOCK s with(nolock) on a.FMATERIALID=s.FMATERIALID 
+                            inner join " +  erpDatabaseName + @"T_BD_MATERIALPRODUCE proce with(nolock) on a.FMATERIALID = proce.FMATERIALID
+                            inner join " +  erpDatabaseName + @"T_BD_Unit_L unit with(nolock) on isnull(s.FSTOREUNITID,0) = unit.FUNITID
                             Where l.FLOCALEID=2052
                             and unit.FLOCALEID = 2052
                             and a.FFORBIDSTATUS='A'
+                            and a.FUSEORGID = 1
+                            and proce.FWORKSHOPID = 477069                   --鐢熶骇杞﹂棿(477069锛氭敞濉戣溅闂�)
+                            and b.FErpClsID = 2                             --鐗╂枡灞炴��(2锛氳嚜鍒�)
                             and
 	                            (
-		                             convert(varchar(100),a.FCREATEDATE,23) >= convert(varchar(100),DATEADD(day,-7,getdate()),23)
+		                             convert(varchar(100),a.FCREATEDATE,23) >= convert(varchar(100),DATEADD(day,-1,getdate()),23)
 		                             or
-		                             convert(varchar(100),a.FMODIFYDATE,23) >= convert(varchar(100),DATEADD(day,-7,getdate()),23)
+		                             convert(varchar(100),a.FMODIFYDATE,23) >= convert(varchar(100),DATEADD(day,-1,getdate()),23)
 	                            )";
-                DataSet ds = oCN.RunProcReturn(sql, "AIS20210811135644..T_BD_MATERIAL");
+                DataSet ds = oCN.RunProcReturn(sql, "" +  erpDatabaseName + @"T_BD_MATERIAL");
                 if (ds != null && ds.Tables.Count > 0)
                 {
                     for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
@@ -832,29 +986,22 @@
         #region 鑾峰彇鐢熶骇璁㈠崟璇︾粏淇℃伅
         public async Task<ICMODetailResponse> getICMODetailAsync(string url, string key, string planNum)
         {
-            try
-            {
-                //璇锋眰鍦板潃
-                url = url + "/v2/GET/getPlanOrderDetail";
-                //璇锋眰鍙傛暟
-                Dictionary<string, string> queryParams = new Dictionary<string, string>
+            //璇锋眰鍦板潃
+            url = url + "/v2/GET/getPlanOrderDetail";
+            //璇锋眰鍙傛暟
+            Dictionary<string, string> queryParams = new Dictionary<string, string>
             {
                 {"key", key},
                 {"planNum",planNum }
             };
 
-                //杩斿洖缁撴灉
-                string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
+            //杩斿洖缁撴灉
+            string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
 
-                //灏嗗瓧绗︿覆杞崲涓哄璞�
-                ICMODetailResponse icmoDetailResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMODetailResponse>(responseBody);
+            //灏嗗瓧绗︿覆杞崲涓哄璞�
+            ICMODetailResponse icmoDetailResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMODetailResponse>(responseBody);
 
-                return icmoDetailResponse;
-            }catch(Exception e)
-            {
-                return new ICMODetailResponse();
-            }
-            
+            return icmoDetailResponse;
         }
         #endregion
 
@@ -955,8 +1102,8 @@
                 //鑾峰彇閲戣澏浜戠敓浜ц鍗曟暟鎹�
                 List<ICMO> icmos = new List<ICMO>();
                 string sql = @"select 
-	                            cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) 璁″垝鍗曞彿
-	                            ,cast(b.FQTY as int) 璁″垝鏁伴噺
+	                            cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) + '_' +  cast(b.FENTRYID as varchar(10)) 璁″垝鍗曞彿
+	                            ,cast(b.FQTY as int) - cast(c.FSTOCKINQUAAUXQTY as int) 璁″垝鏁伴噺
 	                            ,m.FNUMBER 浜у搧缂栧彿
 	                            ,convert(varchar(100),b.FPLANSTARTDATE,20) 璁″垝寮�宸ユ棩鏈�
 	                            ,convert(varchar(100),b.FPLANFINISHDATE,20) 璁″垝瀹屽伐鏃ユ湡
@@ -968,25 +1115,27 @@
 	                            ,'' 鑹茬矇鍚嶇О
 	                            ,'' 鏉愭枡缂栧彿
 	                            ,'' 鏉愭枡鍚嶇О
-	                            ,a.FBILLNO 璁㈠崟缂栧彿
+	                            ,ISNULL(b.F_sans_Text,'') 璁㈠崟缂栧彿
 	                            ,ISNULL(convert(varchar(100),c.FSTARTDATE ,20),'') 寮�宸ユ棩鏈�
 	                            ,convert(varchar(100),a.FMODIFYDATE,20) 淇敼鏃ユ湡
-                            from AIS20210811135644..T_PRD_MO as a
-                            inner join AIS20210811135644..T_PRD_MOENTRY as b with(nolock) on a.FID = b.FID
-                            inner join AIS20210811135644..T_PRD_MOENTRY_A as c with(nolock) on b.FID = c.FID and b.FEntryID = c.FEntryID
-                            inner join AIS20210811135644..T_BD_MATERIAL as m with(nolock) on b.FMATERIALID = m.FMATERIALID
-                            inner join AIS20210811135644..T_BD_MATERIAL_L as m_l with(nolock) on m.FMATERIALID=m_l.FMATERIALID 
+                            from " +  erpDatabaseName + @"T_PRD_MO as a
+                            inner join " +  erpDatabaseName + @"T_PRD_MOENTRY as b with(nolock) on a.FID = b.FID
+                            inner join " +  erpDatabaseName + @"T_PRD_MOENTRY_A as c with(nolock) on b.FID = c.FID and b.FEntryID = c.FEntryID
+                            inner join " +  erpDatabaseName + @"T_BD_MATERIAL as m with(nolock) on b.FMATERIALID = m.FMATERIALID
+                            inner join " +  erpDatabaseName + @"T_BD_MATERIAL_L as m_l with(nolock) on m.FMATERIALID=m_l.FMATERIALID 
                             where m_l.FLOCALEID=2052
                             and isnull(a.FAPPROVERID,0)<> 0				--宸茬粡瀹℃牳
                             and isnull(c.fstatus,0) in (4)					--涓氬姟鐘舵�侊紙1:璁″垝锛�2:璁″垝纭锛�3:涓嬭揪锛�4:寮�宸ワ紱5:瀹屽伐锛�6:缁撴锛�
+                            and b.FWORKSHOPID in (477069)                   --鐢熶骇杞﹂棿(477069锛氭敞濉戣溅闂�)
+                            --and a.FBillNo = 'MO233207'
                             and 
 	                            (
-	                            convert(varchar(100),a.fmodifydate,23) >= convert(varchar(100),dateadd(day,-7,getdate()),23)
+	                            convert(varchar(100),a.fmodifydate,23) >= convert(varchar(100),dateadd(day,-1,getdate()),23)
 	                            or
-	                            convert(varchar(100),c.fstartdate ,23) >= convert(varchar(100),dateadd(day,-7,getdate()),23)
+	                            convert(varchar(100),c.fstartdate ,23) >= convert(varchar(100),dateadd(day,-1,getdate()),23)
 	                            )
-                            and cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) = 'MO000269_1'";
-                DataSet ds = oCN.RunProcReturn(sql, "AIS20210811135644..T_PRD_MO");
+                            --and cast(a.FBILLNO as varchar(100)) + '_' + cast(b.FSEQ as varchar(10)) = 'MO000269_1'";
+                DataSet ds = oCN.RunProcReturn(sql, "" +  erpDatabaseName + @"T_PRD_MO");
                 if (ds != null && ds.Tables.Count > 0)
                 {
                     for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
@@ -1090,6 +1239,768 @@
         }
         #endregion
         #endregion
+
+        #region 鐢熶骇姹囨姤
+        #region 鑾峰彇宸插鏍哥殑鎶ュ伐璁板綍淇℃伅鍒楄〃淇℃伅
+        public async Task<ICMOReportListResponse> getICMOReportListAsync()
+        {
+            //璇锋眰鍦板潃
+            string url = await getServerAddressAsync() + "/v2/GET/getAuditedProduceReportList";
+            string token = await getTokenAsync();
+            //璇锋眰鍙傛暟
+            Dictionary<string, string> queryParams = new Dictionary<string, string>
+            {
+                {"key", token},
+                {"indexPage", "1"},
+                //{"startDate", DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd")},
+                //{"endDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
+                {"sidx", "reportDate"},
+                {"sord", "desc"},
+                //{"tour", "鐧界彮"},
+                {"type", "1"},
+                {"reportStartDate", DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss")},
+                {"reportEndDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}
+            };
+
+            //杩斿洖缁撴灉
+            string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
+
+            //灏嗗瓧绗︿覆杞崲涓哄璞�
+            ICMOReportListResponse icmoReportListResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMOReportListResponse>(responseBody);
+
+            return icmoReportListResponse;
+        }
+        #endregion
+
+        #region 鑾峰彇鐢熶骇姹囨姤璇︾粏淇℃伅
+        public async Task<ICMOReportDetailResponse> getICMOReportDetailAsync(string url, string key, string reportId)
+        {
+            //璇锋眰鍦板潃
+            url = url + "/v2/GET/getProduceRecordReport";
+            //璇锋眰鍙傛暟
+            Dictionary<string, string> queryParams = new Dictionary<string, string>
+            {
+                {"key", key},
+                {"reportId",reportId }
+            };
+
+            //杩斿洖缁撴灉
+            string responseBody = await DefinedRequestSendMethod.GetDataAsyncByGetRequest(url, queryParams);
+
+            //灏嗗瓧绗︿覆杞崲涓哄璞�
+            ICMOReportDetailResponse icmoReportDetailResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ICMOReportDetailResponse>(responseBody);
+
+            return icmoReportDetailResponse;
+        }
+        #endregion
+
+        #region 鐢熶骇姹囨姤瀹氭椂鍚屾_浠庡皬璇歌憶鍒癊RP
+        public async Task<json> icmoReportInfoSyncFromXZGToERP()
+        {
+            string sErrMsg = "";
+            try
+            {
+                //璇锋眰鍦板潃
+                string url = await getServerAddressAsync();
+                string token = await getTokenAsync();
+
+                ICMOReportListResponse iCMOReportListResponse = await getICMOReportListAsync();
+                List<ICMOReportListResponse_Data_Data> iCMOReportList = new List<ICMOReportListResponse_Data_Data>();
+                for(int i = 0; i < iCMOReportListResponse.data.Count; i++)
+                {
+                    for(int j=0;j< iCMOReportListResponse.data[i].data.Count; j++)
+                    {
+                        string sql = "select * from " +  erpDatabaseName + @"T_PRD_MORPT where FBillNo = '" + iCMOReportListResponse.data[i].data[j].produceReportId + "'";
+                        DataSet ds_erp = oCN.RunProcReturn(sql, "" +  erpDatabaseName + @"T_PRD_MORPT");
+                        if(ds_erp!=null&ds_erp.Tables[0].Rows.Count == 0)
+                        {
+                            iCMOReportList.Add(iCMOReportListResponse.data[i].data[j]);
+                        }
+                    }
+                }
+
+                ////閲戣澏浜戠敓浜ф眹鎶ュ崟锛氭壒閲忓悓姝�
+                //ICMOReportListResponse_Data_Data data = new ICMOReportListResponse_Data_Data();
+                //data.planNo = "MO000269_1_100483";
+                //data.reportDate = "2025-04-27 00:00:00";
+                //data.standardNum = "1";
+                //data.produceReportId = "1234321";
+                //iCMOReportList.Add(data);
+
+                objJsonResult = set_SaveICMOReportBillList(iCMOReportList);
+
+                //objJsonResult.code = "1";
+                //objJsonResult.count = 1;
+                //objJsonResult.Message = "鍚屾鎴愬姛!";
+                //objJsonResult.data = null;
+
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍚屾澶辫触!" + e.Message;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇姹囨姤 鎵归噺鏂板
+        public json set_SaveICMOReportBillList(List<ICMOReportListResponse_Data_Data> iCMOReportList)
+        {
+            string sErrMsg = "";
+            string sRemark = "";
+            string sRemark_errAudit = "";
+
+            try
+            {
+                for (int i = 0; i < iCMOReportList.Count; i++)
+                {
+                    objJsonResult = set_SaveICMOReportBill(iCMOReportList[i]);
+                    if (objJsonResult.code == "1" && objJsonResult.count == 1)
+                    {
+                        sRemark += objJsonResult.Message;
+                    }else if(objJsonResult.code == "1" && objJsonResult.count == 0)
+                    {
+                        sRemark_errAudit += objJsonResult.Message;
+                    }
+                    else
+                    {
+                        sErrMsg += objJsonResult.Message;
+                    }
+                }
+
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "銆愬悓姝ュ苟瀹℃牳鎴愬姛淇℃伅銆戯細" + sRemark + "锛涖�愬悓姝ユ垚鍔熶絾瀹℃牳澶辫触淇℃伅銆戯細" + sRemark_errAudit + "锛涖�愬悓姝ュけ璐ヤ俊鎭細銆戯細" + sErrMsg  ;  //鎴愬姛锛�
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鐢熶骇姹囨姤鍗曚笂浼犲け璐ワ紒" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region 鐢熶骇姹囨姤 鏂板
+        public json set_SaveICMOReportBill(ICMOReportListResponse_Data_Data data)
+        {
+            string sErrMsg = "";
+
+            //鐢ㄤ簬璁板綍杩囩▼鏁版嵁锛屼綔涓烘棩璁版暟鎹�
+            string sRemark = "";
+            try
+            {
+                try
+                {
+                    #region 浠庨厤缃枃浠惰幏鍙� CLOUD缃戝潃銆佽处濂椾俊鎭�佺櫥褰曠敤鎴枫�佺櫥褰曞瘑鐮�
+                    //鐧诲綍
+                    string HReturn;
+                    bool bLogin = false;
+                    var loginRet = InvokeHelper.LoginUser(data.reportUser);
+                    string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
+                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
+                    if (isSuccess <= 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = loginRet;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        bLogin = true;
+                        sRemark = sRemark + " 锛涜幏鍙栭獙璇丆LOUD璐﹀彿瀵嗙爜" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+                    }
+                    #endregion
+
+                    #region 鍒ゆ柇鐢熶骇璁㈠崟鐘舵�� 鏄惁涓� 瀹屽伐 鎴栫粨妗�
+                    string[] planNoSplit = data.planNo.Split('_');
+                    string HICMOBillNo = planNoSplit[0];
+                    string HICMOSEQ = planNoSplit[1];
+                    string HICMOEntryID = planNoSplit[2];
+
+                    string sql_judgeICMOStatus = @"select distinct 
+	                                                mo.FBILLNO 
+                                                from " +  erpDatabaseName + @"T_PRD_MO mo
+                                                inner join " +  erpDatabaseName + @"T_PRD_MOENTRY_A a on mo.FID=a.FID 
+                                                where a.FSTATUS in (5,6)
+                                                and mo.FBILLNO = '" + HICMOBillNo + "' " +
+                                                "and a.FENTRYID = " + HICMOEntryID;
+                    DataSet Ds2;
+                    Ds2 = oCN.RunProcReturn(sql_judgeICMOStatus, "" +  erpDatabaseName + @"T_PRD_MO");
+                    if (Ds2 != null && Ds2.Tables[0].Rows.Count > 0)
+                    {
+                        sErrMsg = "鐢熶骇璁㈠崟銆� " + HICMOBillNo + "銆戜笟鍔$姸鎬佸凡瀹屽伐涓嶅厑璁告眹鎶ワ紒";
+
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = sErrMsg;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    #endregion
+
+                    #region 鑾峰彇閲戣澏浜戠敓鎴愬崟鎹甹son
+                    string json = getErpJSON(data);
+                    sRemark = sRemark + " 锛涜幏鍙朇LOUD鍗曟嵁API閫掑叆鍊�" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+                    #endregion
+
+                    #region 鐢熸垚閲戣澏浜戝崟鎹�
+                    if (bLogin)
+                    {
+                        var result = InvokeHelper.Save("PRD_MORPT", json);
+                        sRemark = sRemark + " 锛涚敓鎴怌LOUD鍗曟嵁" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+
+                        //鑾峰彇閲戣澏浜戝崟鎹敓鎴愯繑鍥炰俊鎭�
+                        HReturn = result.ToString();
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒" + HReturn;
+                            LogService.Write("鐢熸垚鐢熶骇姹囨姤鍗曪紙婧愬崟锛氱敓浜ц鍗曪級澶辫触锛�" + HReturn + json);   //鍐欏叆txt鏂囨湰
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = sErrMsg;  //鎴愬姛锛�
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        else
+                        {
+                            sRemark = sRemark + json;
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = sErrMsg;  //鎴愬姛锛�
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    #endregion
+
+                }
+                catch (Exception e)
+                {
+                    sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒" + e.Message;
+
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = sErrMsg;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+
+                #region 瀹℃牳鍗曟嵁
+                try
+                {
+                    //鎻愪氦銆佸鏍搁噾铦朵簯鍗曟嵁
+                    #region 浠庨厤缃枃浠惰幏鍙� CLOUD缃戝潃銆佽处濂椾俊鎭�佺櫥褰曠敤鎴枫�佺櫥褰曞瘑鐮�
+                    //鐧诲綍
+                    string HReturn = "";
+                    bool bLogin = false;
+                    var loginRet = InvokeHelper.LoginUser(data.auditUser);
+                    string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117
+                    var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
+                    if (isSuccess <= 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = loginRet;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        bLogin = true;
+                        sRemark = sRemark + " 锛涜幏鍙栭獙璇丆LOUD璐﹀彿瀵嗙爜" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff");
+                    }
+                    #endregion
+
+                    if (bLogin)
+                    {
+                        ////鎻愪氦鍗曟嵁
+                        string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + data.produceReportId + "\"]}";
+                        var result2 = InvokeHelper.Submit("PRD_MORPT", sJson2);
+
+                        //瀹℃牳鍗曟嵁
+                        string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + data.produceReportId + "\"]}";
+                        var result3 = InvokeHelper.Audit("PRD_MORPT", sJson3);
+
+                        HReturn = result2.ToString() + "," + result3.ToString();
+
+                        if (HReturn.Contains("\"IsSuccess\":false") == true)
+                        {
+                            LogService.Write("瀹℃牳鍗曟嵁澶辫触" + sRemark);
+                            sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曟垚鍔燂紝瀹℃牳鍗曟嵁澶辫触锛�" + HReturn;
+
+                            objJsonResult.code = "1";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = sErrMsg;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        else
+                        {
+                            LogService.Write("鐢熸垚骞跺鏍哥敓浜ф眹鎶ュ崟锛堟簮鍗曪細鐢熶骇璁㈠崟锛夋垚鍔燂紒" + sRemark);
+                            sErrMsg = "鐢熸垚骞跺鏍哥敓浜ф眹鎶ュ崟鎴愬姛锛佸崟鎹彿涓猴細" + data.produceReportId;
+
+                            objJsonResult.code = "1";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = sErrMsg;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                    }
+                    else
+                    {
+                        sErrMsg = "瀹℃牳鐢熶骇姹囨姤鍗曞け璐ワ紒閲戣澏浜戠櫥褰曞け璐ワ紒";
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = sErrMsg;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                }
+                catch (Exception e)
+                {
+                    sErrMsg = "瀹℃牳鐢熶骇姹囨姤鍗曞け璐ワ紒" + e.Message;
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = sErrMsg;
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                #endregion
+            }catch(Exception e0)
+            {
+                sErrMsg = "鐢熸垚鐢熶骇姹囨姤鍗曞け璐ワ紒" + e0.Message;
+
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = sErrMsg;
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+        #region 鏍规嵁鑾峰彇鐨勬姤宸ヤ俊鎭紝鎷兼帴json璇彞
+        public string getErpJSON(ICMOReportListResponse_Data_Data data)
+        {
+            //try
+            //{
+                //data.planNo = "MO000269_1_100483";
+                //data.reportDate = "2025-04-27 00:00:00";
+                //data.standardNum = "1";
+                //data.produceReportId = "1234321";
+
+                // 鑾峰彇鐢熶骇姹囨姤鐨勬簮鍗曚俊鎭�
+                string[] planNoSplit = data.planNo.Split('_');
+                string HICMOBillNo = planNoSplit[0];
+                string HICMOSEQ = planNoSplit[1];
+                string HICMOEntryID = planNoSplit[2];
+
+                //鏍规嵁鎶ュ伐淇℃伅锛岃幏鍙栫浉鍏充俊鎭�
+                string sql1 = @"select 
+	                            isnull(org1.hnumber,'') FPRDORGIDNumber
+	                            ,ISNULL(org1.HItemID,0) FPRDORGID
+	                            ,isnull(moSub.FPRODUCTTYPE,'1') FPRODUCTTYPE
+	                            ,ISNULL(pr.HNumber,'') FAUXPROPNumber
+	                            ,ISNULL(unit.HNumber,'') FUNITNumber
+	                            ,ISNULL(dept.HNumber,'') FWORKSHOPNumber
+	                            ,isnull(moSub.FMTONO,'') FMTONO
+	                            ,isnull(moSubA.FCHECKPRODUCT,'false') FCHECKPRODUCT
+	                            ,isnull(mo.FISENTRUST,'false') FISENTRUST
+	                            ,isnull(moSub.FPROJECTNO,'') FPROJECTNO
+	                            ,isnull(mp.FPERUNITSTANDHOUR,0) FSTDMANHOUR
+	                            ,isnull(mp.FSTDLABORPREPARETIME,0) FHRPREPARETIME
+	                            ,isnull(mp.FSTDMACHINEPREPARETIME,0) FMACPREPARETIME
+	                            ,isnull(mo.FID,0) FSRCINTERID
+	                            ,isnull(moSub.FSEQ,0) FSRCENTRYSEQ
+	                            ,isnull(mo.FID,0) FMOID
+	                            ,isnull(moSub.FENTRYID,0) FMOENTRYID
+	                            ,isnull(unit1.HNumber,'') FBASEUNITID
+	                            ,isnull(org1.HNumber,'') FSTOCKINORGID
+	                            ,isnull(moSubA.FINSTOCKOWNERTYPEID,'') FOWNERTYPEID
+	                            ,isnull(org2.HNumber,'') FOWNERID
+	                            ,isnull(moSub.FCOSTRATE,0) FCOSTRATE
+	                            ,isnull('','') FSTOCKID
+	                            ,isnull(moSubA.FISBACKFLUSH,'false') FISBACKFLUSH
+	                            ,isnull(moSub.FENTRYID,0) FMOMAINENTRYID
+	                            ,isnull(moSubA.FQAIP,'') FQAIP
+
+	                            ,isnull(moSubA.FREQSRC,'') FREQSRC
+	                            ,isnull(moSub.FSALEORDERNO,'') FREQBILLNO
+	                            ,isnull(moSub.FSALEORDERID,0) FREQBILLID
+	                            ,isnull(moSub.FSALEORDERENTRYSEQ,0) FREQENTRYSEQ
+	                            ,isnull(moSub.FSALEORDERENTRYID,0) FREQENTRYID
+	                            ,isnull(moSubA.FINSTOCKTYPE,'1') FINSTOCKTYPE
+                            from " +  erpDatabaseName + @"T_PRD_MO mo with(nolock)
+                            left join " +  erpDatabaseName + @"T_PRD_MOENTRY moSub with(nolock) on mo.FID=moSub.FID
+                            left join " +  erpDatabaseName + @"T_PRD_MOENTRY_A moSubA with(nolock) on moSubA.FID=moSub.FID and moSubA.FENTRYID=moSub.FENTRYID
+                            left join Xt_ORGANIZATIONS org1 with(nolock) on mo.FPRDORGID=org1.HItemID			--鐢熶骇缁勭粐
+                            left join xt_ORGANIZATIONS org2 with(nolock) on moSubA.FINSTOCKOWNERID=org2.HItemID		--鍏ュ簱璐т富
+                            left join " +  erpDatabaseName + @"t_BD_MaterialProduce mp with(nolock) on moSub.FMATERIALID=mp.FMATERIALID	--鐗╂枡鐢熶骇淇℃伅
+                            left join Gy_Unit as unit with(nolock) on moSub.FUNITID = unit.HItemID
+                            left join Gy_Unit as unit1 with(nolock) on moSub.FBASEUNITID = unit1.HItemID
+                            left join Gy_Property pr on moSub.FAUXPROPID = pr.HItemID
+                            left join Gy_Department dept on moSub.FWORKSHOPID = dept.HItemID 
+                            where 
+                            mo.FBillNo = '" + HICMOBillNo + "' " +
+                                " and moSub.FENTRYID = " + HICMOEntryID;
+                DataSet jsonData = oCN.RunProcReturn(sql1, "" +  erpDatabaseName + @"T_PRD_MO");
+                if (jsonData == null || jsonData.Tables[0].Rows.Count == 0)
+                {
+                    return "";
+                }
+
+                string FBillType = "SCHBD01_SYS";                                                                               //鍗曟嵁绫诲瀷
+                string FPRDORGIDNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPRDORGIDNumber"]);             //鐢熶骇缁勭粐缂栫爜
+                string FPRDORGID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPRDORGID"]);                         //鐢熶骇缁勭粐缂栫爜
+                string FAUXPROPNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FAUXPROPNumber"]);               //杈呭姪灞炴��
+                string FIsNew = "false";                                                                                        //鏄惁鏂板琛�
+                string FPRODUCTTYPE = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPRODUCTTYPE"]);                   //浜у搧绫诲瀷
+                string FREPORTTYPE = "";                                                                                        //鐢熶骇姹囨姤绫诲瀷
+                string FUNITNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FUNITNumber"]);                     //鍗曚綅缂栫爜
+                string FWORKSHOPNumber = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FWORKSHOPNumber"]);             //閮ㄩ棬
+                string FMTONO = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMTONO"]);                               //璁″垝璺熻釜鍙�
+                string FCHECKPRODUCT = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FCHECKPRODUCT"]);                 //浜у搧妫�楠�
+                string FISENTRUST = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FISENTRUST"]);                       //缁勭粐濮旀墭鍔犲伐
+                string FSRCBILLTYPE = "PRD_MO";                                                                                 //婧愬崟绫诲瀷
+                string FPROJECTNO = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FPROJECTNO"]);                       //椤圭洰缂栧彿
+                string FSTDMANHOUR = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSTDMANHOUR"]);                     //鍗曚綅鏍囧噯宸ユ椂
+                string FHRPREPARETIME = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FHRPREPARETIME"]);               //浜哄憳鍑嗗宸ユ椂
+                string FMACPREPARETIME = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMACPREPARETIME"]);             //鏈哄櫒鍑嗗宸ユ椂
+                string FSRCINTERID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSRCINTERID"]);                     //婧愬崟鍐呯爜
+                string FSRCENTRYSEQ = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSRCENTRYSEQ"]);                   //婧愬崟琛屽彿
+                string FMOID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMOID"]);                                 //鐢熶骇璁㈠崟鍐呯爜
+                string FMOENTRYID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMOENTRYID"]);                       //鐢熶骇璁㈠崟鍒嗗綍鍙�
+                string FBASEUNITID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FBASEUNITID"]);                     //鍩烘湰鍗曚綅
+                string FSTOCKINORGID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSTOCKINORGID"]);                 //鍏ュ簱缁勭粐
+                string FBOMID = "";                               //BOM鐗堟湰
+                string FOWNERTYPEID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FOWNERTYPEID"]);                   //璐т富绫诲瀷
+                string FOWNERID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FOWNERID"]);                           //璐т富
+                string FSTOCKID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FSTOCKID"]);                           //浠撳簱
+                string FCOSTRATE = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FCOSTRATE"]);                         //鎴愭湰鏉冮噸
+                string FSNUNITID = "";                         //搴忓垪鍙峰崟浣�
+                string FISBACKFLUSH = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FISBACKFLUSH"]);                   //鍊掑啿棰嗘枡
+                string FMOMAINENTRYID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FMOMAINENTRYID"]);               //鐢熶骇璁㈠崟涓讳骇鍝佸垎褰�
+                string FQAIP = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FQAIP"]);                                 //绱ф�ユ斁琛�
+                string FREQSRC = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQSRC"]);                             //闇�姹傛潵婧�
+                string FREQBILLNO = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQBILLNO"]);                       //闇�姹傚崟鎹�
+                string FREQBILLID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQBILLID"]);                       //闇�姹傚崟鎹唴鐮�
+                string FREQENTRYSEQ = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQENTRYSEQ"]);                   //闇�姹傚崟鎹鍙�
+                string FREQENTRYID = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FREQENTRYID"]);                     //闇�姹傚崟鎹垎褰曞唴鐮�
+                string FINSTOCKTYPE = Pub_Class.ClsPub.isStrNull(jsonData.Tables[0].Rows[0]["FINSTOCKTYPE"]);                   //渚涗笅鎺ㄥ叆搴撳崟浣跨敤-鍏ュ簱绫诲瀷
+                string FEntity_Link_FFlowId = "f6e6eec3-5267-4f02-8593-b633da508a72";   //涓氬姟娴佺▼鍥�
+                string FEntity_Link_FFlowLineId = "3";                                  //鎺ㄨ繘璺嚎
+                string FEntity_Link_FRuleId = "PRD_MO2MORPT";                           //杞崲瑙勫垯 
+                string FEntity_Link_FSTableName = "T_PRD_MOENTRY";                      //婧愬崟琛� 
+                string FBFLOWID = "f6e6eec3-5267-4f02-8593-b633da508a72";             //涓氬姟娴佺▼
+
+                //鑾峰彇鐢熶骇姹囨姤绫诲瀷
+                string sql2 = @"select top(1) 
+	                            FNUMBER FREPORTTYPE 
+                            from " +  erpDatabaseName + @"T_PRD_REPORTTYPE with(nolock) 
+                            Where FUSEORGID = " + FPRDORGID +
+                                " and FISDEFREPTYPE=1";
+                DataSet jsonData2 = oCN.RunProcReturn(sql2, "T_PRD_REPORTTYPE");
+                if (jsonData2 != null && jsonData2.Tables[0].Rows.Count > 0)
+                {
+                    FREPORTTYPE = Pub_Class.ClsPub.isStrNull(jsonData2.Tables[0].Rows[0]["FREPORTTYPE"]);
+                }
+
+
+
+
+                //鏈�缁堣鍙�
+                string json = "";
+
+                string sJson_ZYMESFLAG = "";    //鐢熶骇姹囨姤鍗曞悓姝ES鏍囪
+                string sJson_MainCustom = "";   //涓昏〃鑷畾涔夊瓧娈�
+                string sJson_Date = "";         //鍗曟嵁鏃ユ湡
+
+                //sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]);
+                //鍗曟嵁鏃ユ湡
+                sJson_Date = ",\"FDATE\":\"" + data.reportDate + "\"";
+                sJson_ZYMESFLAG = "";
+
+
+                string sJson_Main =
+                    "{" +
+                        "\"Creator\":\"\"" +
+                        ",\"NeedUpDateFields\":[]" +
+                        ",\"NeedReturnFields\":[]" +
+                        ",\"IsDeleteEntry\":\"True\"" +
+                        ",\"SubSystemId\":\"\"" +
+                        ",\"IsVerifyBaseDataField\":\"false\"" +
+                        ",\"IsEntryBatchFill\":\"false\"" +
+                        ",\"ValidateFlag\":\"True\"" +
+                        ",\"NumberSearch\":\"True\"" +
+                        ",\"InterationFlags\":\"\"" +
+                        ",\"Model\": " +
+                            "{ " +
+                                "\"FBILLNO\":\"" + data.produceReportId + "\"" +
+                                //",\"FID\":\"" + oMain.HInterID.ToString() + "\"" +
+                                ",\"FBillType\":" +
+                                    "{" +
+                                        "\"FNumber\":\"" + FBillType + "\"" +
+                                    "}" +
+                                ",\"FDocumentStatus\":\"\"" +
+                                sJson_Date +
+                                ",\"FPRDORGID\":" +
+                                    "{" +
+                                        "\"FNumber\":\"" + FPRDORGIDNumber + "\"" +
+                                    "}" +
+                                //",\"FWorkshipIdH\":" +
+                                //    "{" +
+                                //        "\"FNumber\":\"\"" +
+                                //    "}" +
+                                //",\"FDescription\":\"\"" +
+                                sJson_ZYMESFLAG +
+                                sJson_MainCustom +
+                                ",\"FEntity\": [   ";
+
+                string sJson_Entry = "";
+
+                string sJson_BatchNo = "";
+                string sJson_StockPlace = "";
+                string sJson_FProduceDate = "";     //鐢熶骇鏃ユ湡
+                string sJson_FExpiryDate = "";      //鏈夋晥鏈熻嚦
+                string sJson_EntryCustom = "";
+                string sJson_FAUXPROPID = "";
+                string sJson_SubCustom = "";    //瀛愯〃鑷畾涔夊瓧娈�
+
+                //瀛愯〃鑷畾涔夊瓧娈�
+                //sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]);
+
+                ////鏄惁鍚敤鎵规绠$悊
+                //if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1")
+                //{
+                //    sJson_BatchNo = "  \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"},    \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"  , ";
+                //}
+                //else
+                //{
+                //    sJson_BatchNo = "";
+                //}
+
+                ////鏄惁鍚敤淇濊川鏈熸帶鍒�
+                //if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1")
+                //{
+                //    sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\",";
+                //    sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\",";
+                //}
+                //else
+                //{
+                //    sJson_FProduceDate = "";
+                //    sJson_FExpiryDate = "";
+                //}
+
+                //杈呭姪灞炴��
+                sJson_FAUXPROPID = ", \"FAUXPROPID\":" +
+                                        "{" +
+                                            "\"FAUXPROPID__FF100002\":" +
+                                                "{" +
+                                                    "\"FNumber\":\"" + FAUXPROPNumber + "\"" +
+                                                "}" +
+                                        "}";
+
+
+                ////浠撲綅
+                //if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKLOCID"]) == "")
+                //{
+                //    sJson_StockPlace = "";
+                //}
+                //else
+                //{
+                //    sJson_StockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKLOCID"]) + "\"}},";
+                //}
+
+                //鑷畾涔夊瓧娈靛鐞�
+                sJson_EntryCustom = "";
+
+                sJson_Entry = sJson_Entry +
+                    " {" +
+                        //"\"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) + "," +
+                        " \"FSRCENTRYID\":" + HICMOEntryID + "" +
+                        ", \"FIsNew\":" + FIsNew + "" +
+                        ", \"FMATERIALID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + data.partNum + "\"" +
+                            "}" +
+                        ", \"FPRODUCTTYPE\":\"" + FPRODUCTTYPE + "\"" +
+                        ", \"FREPORTTYPE\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FREPORTTYPE + "\"" +
+                            "}" +
+                        ", \"FUNITID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FUNITNumber + "\"" +
+                            "}" +
+                        ", \"FWORKSHIPID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FWORKSHOPNumber + "\"" +
+                            "}" +
+                        //", \"FShiftGroupId\":{\"FNumber\":\"\"}" +
+                        sJson_BatchNo +
+                        //\"FDeptId\":{\"FNumber\":\"\"},
+                        //sJson_StockPlace +          //浠撲綅绉诲埌涓嬫柟
+                        ",  \"FMTONO\":\"" + FMTONO + "\"" +
+                        ", \"FCHECKPRODUCT\":" + FCHECKPRODUCT + "" +
+                        ", \"FISENTRUST\":" + FISENTRUST + "" +
+                        ", \"FSRCBILLTYPE\":\"" + FSRCBILLTYPE + "\"" +
+                        ", \"FMOBILLNO\":\"" + HICMOBillNo + "\"" +
+                        //", \"FAUXPROPID\":" +
+                        //    "{" +
+                        //        "\"FAUXPROPID__FF100002\":" +
+                        //            "{" +
+                        //                "\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"" +
+                        //            "}" +
+                        //    "}" +
+                        sJson_FAUXPROPID +
+                        //", \"FHumanQty\":\"0\"" +
+                        ", \"FSRCBILLNO\":\"" + HICMOBillNo + "\"" +
+                        //", \"FMachineQty\":\"0\"" +
+                        //", \"FMaterialUnitID\":" +
+                        //    "{" +
+                        //        "\"FNumber\":\"\"" +
+                        //    "}" +
+                        //", \"FStartTime\":\"1900-01-01\"" +
+                        //", \"FEndTime\":\"1900-01-01\"" +
+                        //", \"FTimeUnitId\":\"\"" +
+                        ", \"FMOENTRYSEQ\":" + HICMOSEQ + "" +
+                        //", \"FSTANDHOURUNITID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTANDHOURUNITID"]) + "\"" +
+                        ", \"FPROJECTNO\":\"" + FPROJECTNO + "\"" +
+                        ", \"FSTDMANHOUR\":" + FSTDMANHOUR + "" +
+                        ", \"FHRPREPARETIME\":" + FHRPREPARETIME + "" +
+                        //", \"FHrWorkTime\":\"0\"" +
+                        ", \"FMACPREPARETIME\":" + FMACPREPARETIME + "" +
+                        //",\"FMacWorkTime\":\"0\"" +
+                        //",\"FDescriptionE\":\"\"" +
+                        ", \"FSRCINTERID\":" + FSRCINTERID + "" +
+                        ", \"FSRCENTRYSEQ\":" + FSRCENTRYSEQ + "" +
+                        ", \"FMOID\":" + FMOID + "" +
+                        ", \"FMOENTRYID\":" + FMOENTRYID + "" +
+                        ", \"FBASEUNITID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FBASEUNITID + "\"" +
+                            "}" +
+                        ", \"FSTOCKINORGID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FSTOCKINORGID + "\"" +
+                            "}" +
+                        ", \"FBOMID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FBOMID + "\"" +
+                            "}" +
+                        ", \"FOWNERTYPEID\":\"" + FOWNERTYPEID + "\"" +
+                        ", \"FOWNERID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FOWNERID + "\"" +
+                            "}" +
+                        ", \"FSTOCKID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FSTOCKID + "\"" +
+                            "}" +
+                        ", \"FCOSTRATE\":" + FCOSTRATE + "" +
+                        ", \"FSNUNITID\":" +
+                            "{" +
+                                "\"FNumber\":\"" + FSNUNITID + "\"" +
+                            "}" +
+                        //", \"FSNQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNQty"]) + "" +
+                        sJson_FProduceDate +
+                        sJson_FExpiryDate +
+                        ", \"FISBACKFLUSH\":" + FISBACKFLUSH + "" +
+                        ", \"FMOMAINENTRYID\":" + FMOMAINENTRYID + "" +
+                        ", \"FQAIP\":\"" + FQAIP + "\"" +
+                        ", \"FREQSRC\":\"" + FREQSRC + "\"" +
+                        ", \"FREQBILLNO\":\"" + FREQBILLNO + "\"" +
+                        ", \"FREQBILLID\":" + FREQBILLID + "" +
+                        ", \"FREQENTRYSEQ\":" + FREQENTRYSEQ + "" +
+                        ", \"FREQENTRYID\":" + FREQENTRYID + "" +
+                        ", \"FBASEQUAQTY\":" + data.standardNum + "" +
+                        ", \"FQUAQTY\":" + data.standardNum + "" +
+                        ", \"FBASEFINISHQTY\":" + data.standardNum + "" +
+                        ", \"FFINISHQTY\":" + data.standardNum + "" +
+                        ", \"FInStockType\":\"" + FINSTOCKTYPE + "\"" +
+                        sJson_StockPlace +
+                        sJson_EntryCustom +
+                        sJson_SubCustom +
+
+                        //",\"FSerialSubEntity\":" +
+                        //    "[" +
+                        //        "{" +
+                        //            "\"FDetailID\":\"0\"" +
+                        //            ",\"FQCMaterialId\":" +
+                        //                "{" +
+                        //                    "\"FNUMBER\":\"\"" +
+                        //                "}" +
+                        //            ",\"FInspectResult\":\"\"" +
+                        //            ",\"FQcAuxPropId\":" +
+                        //                "{" +
+                        //                    "\"FQCAUXPROPID__FF100002\":" +
+                        //                        "{" +
+                        //                            "\"FNumber\":\"\"" +
+                        //                        "}" +
+                        //                "}" +
+                        //            ",\"FQCQty\":\"0\"" +
+                        //            ",\"FSerialNo\":\"\"" +
+                        //            ",\"FSerialId\":" +
+                        //                "{" +
+                        //                    "\"FNUMBER\":\"\"" +
+                        //                "}" +
+                        //            ",\"FQCStockInSelQty\":\"0\"" +
+                        //            ",\"FSerialNote\":\"\"" +
+                        //            ",\"FBaseQCQty\":\"0\"" +
+                        //            ",\"FBaseQCStockInSelQty\":\"0\"" +
+                        //        "}" +
+                        //    "]"
+
+                        ", \"FEntity_Link\": " +
+                            "[" +
+                                "{" +
+                                    " \"FEntity_Link_FFlowId\":\"" + FEntity_Link_FFlowId + "\"" +
+                                    ", \"FEntity_Link_FFlowLineId\":\"" + FEntity_Link_FFlowLineId + "\"" +
+                                    ", \"FEntity_Link_FRuleId\":\"" + FEntity_Link_FRuleId + "\"" +
+                                    ", \"FEntity_Link_FSTableName\":\"" + FEntity_Link_FSTableName + "\"" +
+                                    ", \"FEntity_Link_FSBillId\":\"" + FMOID + "\"" +
+                                    ", \"FEntity_Link_FSId\":\"" + FMOENTRYID + "\"" +
+                                " }" +
+                            " ]" +
+                        ", \"FBFLOWID\":" +
+                            "{" +
+                                "\"FID\":\"" + FBFLOWID + "\"" +
+                            "}" +
+                    "}";
+
+
+                string sJson_End = "  ]  }}";
+
+
+                json = sJson_Main + sJson_Entry + sJson_End;
+
+
+                return json;
+            //}catch(Exception e)
+            //{
+            //    return e.Message;
+            //}
+        }
+        #endregion
+        #endregion
     }
     #endregion
 

--
Gitblit v1.9.1