From 0dae686350cf50e3295852ca610b64e1ef422382 Mon Sep 17 00:00:00 2001
From: zrg <z1873@LAPTOP-EAVL132E>
Date: 星期六, 09 五月 2026 09:54:59 +0800
Subject: [PATCH] 1

---
 WebAPI/ZPLTemplate/物料条码 80×60.zpl                               |  113 ++--
 /dev/null                                                       |    0 
 WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs |   14 
 WebAPI/ZPLTemplate/测试.zpl                                       |   72 +++
 WebAPI/Controllers/条码管理/WEBSController.cs                       |  821 ++++++++++++++++++++++++++++++++++++-
 WebAPI/ZPLTemplate/物料条码 100×60.zpl                              |   32 
 WebAPI/Controllers/WebAPIController.cs                          |  186 +++++++
 WebAPI/WebAPI.csproj                                            |    1 
 WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user  |   58 +-
 9 files changed, 1,150 insertions(+), 147 deletions(-)

diff --git a/DAL/bin/Release/DAL.dll b/DAL/bin/Release/DAL.dll
deleted file mode 100644
index 466dd78..0000000
--- a/DAL/bin/Release/DAL.dll
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/DAL.pdb b/DAL/bin/Release/DAL.pdb
deleted file mode 100644
index 3aa15b0..0000000
--- a/DAL/bin/Release/DAL.pdb
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/DBUtility.dll b/DAL/bin/Release/DBUtility.dll
deleted file mode 100644
index 0e4c9f5..0000000
--- a/DAL/bin/Release/DBUtility.dll
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/DBUtility.pdb b/DAL/bin/Release/DBUtility.pdb
deleted file mode 100644
index f132dbf..0000000
--- a/DAL/bin/Release/DBUtility.pdb
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/Model.dll b/DAL/bin/Release/Model.dll
deleted file mode 100644
index 69b15e4..0000000
--- a/DAL/bin/Release/Model.dll
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/Model.pdb b/DAL/bin/Release/Model.pdb
deleted file mode 100644
index 0e4ebc2..0000000
--- a/DAL/bin/Release/Model.pdb
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/Pub_Class.dll b/DAL/bin/Release/Pub_Class.dll
deleted file mode 100644
index 140ab5f..0000000
--- a/DAL/bin/Release/Pub_Class.dll
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/Pub_Class.pdb b/DAL/bin/Release/Pub_Class.pdb
deleted file mode 100644
index 2b72683..0000000
--- a/DAL/bin/Release/Pub_Class.pdb
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/Pub_Control.dll b/DAL/bin/Release/Pub_Control.dll
deleted file mode 100644
index 3e553b4..0000000
--- a/DAL/bin/Release/Pub_Control.dll
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/Pub_Control.pdb b/DAL/bin/Release/Pub_Control.pdb
deleted file mode 100644
index ae7f914..0000000
--- a/DAL/bin/Release/Pub_Control.pdb
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/SQLHelper.dll b/DAL/bin/Release/SQLHelper.dll
deleted file mode 100644
index 02f62e7..0000000
--- a/DAL/bin/Release/SQLHelper.dll
+++ /dev/null
Binary files differ
diff --git a/DAL/bin/Release/SQLHelper.pdb b/DAL/bin/Release/SQLHelper.pdb
deleted file mode 100644
index dac673b..0000000
--- a/DAL/bin/Release/SQLHelper.pdb
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/DBUtility.dll b/DBUtility/bin/Release/DBUtility.dll
deleted file mode 100644
index 0e4c9f5..0000000
--- a/DBUtility/bin/Release/DBUtility.dll
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/DBUtility.pdb b/DBUtility/bin/Release/DBUtility.pdb
deleted file mode 100644
index f132dbf..0000000
--- a/DBUtility/bin/Release/DBUtility.pdb
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Class.dll b/DBUtility/bin/Release/Pub_Class.dll
deleted file mode 100644
index 140ab5f..0000000
--- a/DBUtility/bin/Release/Pub_Class.dll
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Class.pdb b/DBUtility/bin/Release/Pub_Class.pdb
deleted file mode 100644
index 2b72683..0000000
--- a/DBUtility/bin/Release/Pub_Class.pdb
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Control.dll b/DBUtility/bin/Release/Pub_Control.dll
deleted file mode 100644
index 3e553b4..0000000
--- a/DBUtility/bin/Release/Pub_Control.dll
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/Pub_Control.pdb b/DBUtility/bin/Release/Pub_Control.pdb
deleted file mode 100644
index ae7f914..0000000
--- a/DBUtility/bin/Release/Pub_Control.pdb
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/SQLHelper.dll b/DBUtility/bin/Release/SQLHelper.dll
deleted file mode 100644
index 02f62e7..0000000
--- a/DBUtility/bin/Release/SQLHelper.dll
+++ /dev/null
Binary files differ
diff --git a/DBUtility/bin/Release/SQLHelper.pdb b/DBUtility/bin/Release/SQLHelper.pdb
deleted file mode 100644
index dac673b..0000000
--- a/DBUtility/bin/Release/SQLHelper.pdb
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/DBUtility.dll b/Model/bin/Release/DBUtility.dll
deleted file mode 100644
index 0e4c9f5..0000000
--- a/Model/bin/Release/DBUtility.dll
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/DBUtility.pdb b/Model/bin/Release/DBUtility.pdb
deleted file mode 100644
index f132dbf..0000000
--- a/Model/bin/Release/DBUtility.pdb
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/Model.dll b/Model/bin/Release/Model.dll
deleted file mode 100644
index 69b15e4..0000000
--- a/Model/bin/Release/Model.dll
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/Model.pdb b/Model/bin/Release/Model.pdb
deleted file mode 100644
index 0e4ebc2..0000000
--- a/Model/bin/Release/Model.pdb
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/Pub_Class.dll b/Model/bin/Release/Pub_Class.dll
deleted file mode 100644
index 140ab5f..0000000
--- a/Model/bin/Release/Pub_Class.dll
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/Pub_Class.pdb b/Model/bin/Release/Pub_Class.pdb
deleted file mode 100644
index 2b72683..0000000
--- a/Model/bin/Release/Pub_Class.pdb
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/Pub_Control.dll b/Model/bin/Release/Pub_Control.dll
deleted file mode 100644
index 3e553b4..0000000
--- a/Model/bin/Release/Pub_Control.dll
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/Pub_Control.pdb b/Model/bin/Release/Pub_Control.pdb
deleted file mode 100644
index ae7f914..0000000
--- a/Model/bin/Release/Pub_Control.pdb
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/SQLHelper.dll b/Model/bin/Release/SQLHelper.dll
deleted file mode 100644
index 02f62e7..0000000
--- a/Model/bin/Release/SQLHelper.dll
+++ /dev/null
Binary files differ
diff --git a/Model/bin/Release/SQLHelper.pdb b/Model/bin/Release/SQLHelper.pdb
deleted file mode 100644
index dac673b..0000000
--- a/Model/bin/Release/SQLHelper.pdb
+++ /dev/null
Binary files differ
diff --git a/Pub_Class/bin/Release/Pub_Class.dll b/Pub_Class/bin/Release/Pub_Class.dll
deleted file mode 100644
index 140ab5f..0000000
--- a/Pub_Class/bin/Release/Pub_Class.dll
+++ /dev/null
Binary files differ
diff --git a/Pub_Class/bin/Release/Pub_Class.pdb b/Pub_Class/bin/Release/Pub_Class.pdb
deleted file mode 100644
index 2b72683..0000000
--- a/Pub_Class/bin/Release/Pub_Class.pdb
+++ /dev/null
Binary files differ
diff --git a/Pub_Class/bin/Release/SyntacticSugar.dll b/Pub_Class/bin/Release/SyntacticSugar.dll
deleted file mode 100644
index 874230f..0000000
--- a/Pub_Class/bin/Release/SyntacticSugar.dll
+++ /dev/null
Binary files differ
diff --git a/Pub_Class/bin/Release/SyntacticSugar.pdb b/Pub_Class/bin/Release/SyntacticSugar.pdb
deleted file mode 100644
index 32b7fb9..0000000
--- a/Pub_Class/bin/Release/SyntacticSugar.pdb
+++ /dev/null
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Class.dll b/Pub_Control/bin/Release/Pub_Class.dll
deleted file mode 100644
index 140ab5f..0000000
--- a/Pub_Control/bin/Release/Pub_Class.dll
+++ /dev/null
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Class.pdb b/Pub_Control/bin/Release/Pub_Class.pdb
deleted file mode 100644
index 2b72683..0000000
--- a/Pub_Control/bin/Release/Pub_Class.pdb
+++ /dev/null
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Control.dll b/Pub_Control/bin/Release/Pub_Control.dll
deleted file mode 100644
index 3e553b4..0000000
--- a/Pub_Control/bin/Release/Pub_Control.dll
+++ /dev/null
Binary files differ
diff --git a/Pub_Control/bin/Release/Pub_Control.pdb b/Pub_Control/bin/Release/Pub_Control.pdb
deleted file mode 100644
index ae7f914..0000000
--- a/Pub_Control/bin/Release/Pub_Control.pdb
+++ /dev/null
Binary files differ
diff --git a/SQLHelper/bin/Release/Pub_Class.dll b/SQLHelper/bin/Release/Pub_Class.dll
deleted file mode 100644
index 140ab5f..0000000
--- a/SQLHelper/bin/Release/Pub_Class.dll
+++ /dev/null
Binary files differ
diff --git a/SQLHelper/bin/Release/Pub_Class.pdb b/SQLHelper/bin/Release/Pub_Class.pdb
deleted file mode 100644
index 2b72683..0000000
--- a/SQLHelper/bin/Release/Pub_Class.pdb
+++ /dev/null
Binary files differ
diff --git a/SQLHelper/bin/Release/SQLHelper.dll b/SQLHelper/bin/Release/SQLHelper.dll
deleted file mode 100644
index 02f62e7..0000000
--- a/SQLHelper/bin/Release/SQLHelper.dll
+++ /dev/null
Binary files differ
diff --git a/SQLHelper/bin/Release/SQLHelper.pdb b/SQLHelper/bin/Release/SQLHelper.pdb
deleted file mode 100644
index dac673b..0000000
--- a/SQLHelper/bin/Release/SQLHelper.pdb
+++ /dev/null
Binary files differ
diff --git a/SyntacticSugar/bin/Release/SyntacticSugar.dll b/SyntacticSugar/bin/Release/SyntacticSugar.dll
deleted file mode 100644
index 874230f..0000000
--- a/SyntacticSugar/bin/Release/SyntacticSugar.dll
+++ /dev/null
Binary files differ
diff --git a/SyntacticSugar/bin/Release/SyntacticSugar.pdb b/SyntacticSugar/bin/Release/SyntacticSugar.pdb
deleted file mode 100644
index 32b7fb9..0000000
--- a/SyntacticSugar/bin/Release/SyntacticSugar.pdb
+++ /dev/null
Binary files differ
diff --git a/WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs b/WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs
index 91ad16c..a62e502 100644
--- a/WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs
+++ b/WebAPI/Controllers/PM_ProjectCommunicationBillListController.cs
@@ -160,7 +160,7 @@
                     [HCusID], [HPMEmpID], [HWorkEmpID], [HProSituation], [HProRisk], [HProProgramme], 
                     [HReportEmpID], [HOrgID]
                 ) 
-                VALUES ({DateTime.Now.Year}, {DateTime.Now.Month},  '{list[0].HBillType}',  '{list[0].HBillSubType}', {list[0].HInterID},  '{list[0].HDate}',  '{list[0].HBillNo}',  1, 0,  0, 0, '{list[0].HRemark ?? ""}',  '{list[0].HBacker ?? ""}',  '{(list[0].HBackDate)}',  '{list[0].HBackRemark ?? ""}', '{list[0].HChecker ?? ""}',  '{(list[0].HCheckDate)}',  '{list[0].HMaker ?? ""}',  '{(list[0].HMakeDate)}',  '{list[0].HUpDater ?? ""}',  '{(list[0].HUpDateDate)}',  '{list[0].HCloseMan ?? ""}',  '{(list[0].HCloseDate)}',  '{list[0].HCloseType }',  '{list[0].HDeleteMan ?? ""}',  '{(list[0].HDeleteDate)}',  '{list[0].HMainSourceBillType ?? ""}',  '{list[0].HMainSourceInterID}',  '{list[0].HMainSourceEntryID}',  '{list[0].HMainSourceBillNo ?? ""}',  '{list[0].HPrintQty}',   {list[0].HProjectID },  '{list[0].HProNumber ?? ""}',  '{list[0].HProName ?? ""}',  {list[0].HCusID },  {list[0].HPMEmpID }, {list[0].HWorkEmpID }, '{list[0].HProSituation ?? ""}', '{list[0].HProRisk ?? ""}', '{list[0].HProProgramme ?? ""}', {list[0].HReportEmpID}, {100038} );";
+                VALUES ({DateTime.Now.Year}, {DateTime.Now.Month},  '{list[0].HBillType}',  '{list[0].HBillSubType}', {list[0].HInterID},  '{list[0].HDate}',  '{list[0].HBillNo}',  1, 0,  0, 0, '{list[0].HRemark ?? ""}',  '{list[0].HBacker ?? ""}',  '{(list[0].HBackDate)}',  '{list[0].HBackRemark ?? ""}', '{ ""}',  '{(list[0].HCheckDate)}',  '{list[0].HMaker ?? ""}',  '{(list[0].HMakeDate)}',  '{list[0].HUpDater ?? ""}',  '{(list[0].HUpDateDate)}',  '{list[0].HCloseMan ?? ""}',  '{(list[0].HCloseDate)}',  '{list[0].HCloseType }',  '{list[0].HDeleteMan ?? ""}',  '{(list[0].HDeleteDate)}',  '{list[0].HMainSourceBillType ?? ""}',  '{list[0].HMainSourceInterID}',  '{list[0].HMainSourceEntryID}',  '{list[0].HMainSourceBillNo ?? ""}',  '{list[0].HPrintQty}',   {list[0].HProjectID },  '{list[0].HProNumber ?? ""}',  '{list[0].HProName ?? ""}',  {list[0].HCusID },  {list[0].HPMEmpID }, {list[0].HWorkEmpID }, '{list[0].HProSituation ?? ""}', '{list[0].HProRisk ?? ""}', '{list[0].HProProgramme ?? ""}', {list[0].HReportEmpID}, {100038} );";
                     oCN.RunProc(sql);
                     objJsonResult.code = "0";
                     objJsonResult.count = 1;
@@ -180,6 +180,8 @@
                     ",HProRisk='" + list[0].HProRisk + "'" +
                     ",HProProgramme='" + list[0].HProProgramme + "'" +
                     ",HReportEmpID=" + list[0].HReportEmpID +
+                    ",HUpDater='" + UserName +"'"+
+                    ",HUpDateDate='" + DateTime.Now +"'"+
                     " Where HInterID=" + list[0].HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
 
 
@@ -268,7 +270,15 @@
                     objJsonResult.data = null;
                     return objJsonResult;
                 }
-
+                DataSet ds=oCN.RunProcReturn("select HChecker from PM_ProjectCommunicationBillMain where HInterID=" + HInterID, "PM_ProjectCommunicationBillMain");
+                if (ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁宸插鏍革紝涓嶈兘鍒犻櫎锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
                 oCN.BeginTran();
 
                 oCN.RunProc("delete from PM_ProjectCommunicationBillMain where HInterID = " + HInterID);
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 0bba5be..0d2b7ca 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -23569,7 +23569,7 @@
                 {
                     objjson.code = "0";
                     objjson.count = 0;
-                    objjson.Message = "鑾峰彇澶辫触, 鍗曟嵁鏃犺繑鍥炲��!";
+                    objjson.Message = "鏃犲緟涓婃ā鍗曟嵁!";
                     objjson.data = null;
                     return objjson;
                 }else
@@ -23624,7 +23624,7 @@
                 {
                     objjson.code = "0";
                     objjson.count = 0;
-                    objjson.Message = "鑾峰彇澶辫触, 鍗曟嵁鏃犺繑鍥炲��!";
+                    objjson.Message = "鏃犲緟寮�宸ュ崟鎹�!";
                     objjson.data = null;
                     return objjson;
                 }
@@ -23681,7 +23681,7 @@
                 {
                     objjson.code = "0";
                     objjson.count = 0;
-                    objjson.Message = "鑾峰彇澶辫触, 鍗曟嵁鏃犺繑鍥炲��!";
+                    objjson.Message = "鏃犲緟涓嬫ā鍗曟嵁!";
                     objjson.data = null;
                     return objjson;
                 }
@@ -24127,7 +24127,12 @@
             string suffix = ".txt";
             string folder = "ptTemplate";
             // 鍖归厤 {{ 瀛楁鍚� }} 鎵�闇�姝e垯琛ㄨ揪寮� 鏀寔涓枃
-            var regex = new Regex(@"{{\s*([\u4e00-\u9fa5a-zA-Z0-9_\s]+?)\s*}}", RegexOptions.Compiled);
+            var regex = new Regex(@"{{\s*([\u4e00-\u9fa5a-zA-Z0-9_\s]+?)\s*}}", RegexOptions.Singleline);
+
+            // 鍖归厤 鐭╁舰妗� 浣嶇疆 瀹介珮 鎵�闇�姝e垯琛ㄨ揪寮�
+            var RectRegex = new Regex(@"^\^FO(\d+),(\d+)\^GB(\d+),(\d+)", RegexOptions.Singleline);
+            // 鍖归厤 妯℃澘瀛楃涓� 鎵�鍦ㄨ 浣嶇疆 瀹介珮 鎵�闇�姝e垯琛ㄨ揪寮� 鏀寔涓枃
+            var fieldRegex = new Regex(@"\^FO(\d+),(\d+)\^A[A-Z]+,(\d+),(\d+).*?\{\{\s*([\u4e00-\u9fa5a-zA-Z0-9_\s]+?)\s*\}\}", RegexOptions.Singleline);
 
             if (ptMode == "ZPL")
             {
@@ -24168,9 +24173,45 @@
                 {
                     if(JOneKVP is JObject item)
                     {
-                        foreach (var line in lines)
+                        //foreach (var line in lines)
+                        //{
+                            //string currentLine = line;
+
+                            //// 璺宠繃娉ㄩ噴琛� //
+                            //if (currentLine.TrimStart().StartsWith("//"))
+                            //{
+                                //continue;
+                            //}
+
+
+                            //// 姝e垯琛ㄨ揪寮忓尮閰� {{ 瀛楁鍚� }} 鎵�鍦ㄨ鐨勫瓧娈碉紝濡傛灉鏈夛紝鍒欒繘琛屾浛鎹紝娌℃湁锛屽垯榛樿涓虹┖瀛楃涓�
+                            //currentLine = regex.Replace(currentLine, match =>
+                            //{
+                                ////鍒ゆ柇涓婁竴琛屾槸鍚︿负鐭╁舰琛岋紝濡傛灉鏄煩褰㈣锛屽垯鏍规嵁鐭╁舰琛岀殑瀹介珮鍒ゆ柇瀛楃鏄惁闇�瑕佹崲琛�
+
+                                //string fieldName = match.Groups[1].Value.Trim();
+                                //if (msg != null && item.ContainsKey(fieldName))
+                                //{
+                                    //return item[fieldName]?.ToString() ?? "";
+                                //}
+                                //return "";
+                            //});
+                            //// 灏嗘墍鏈� \n 鐨勬崲琛岀 鏇挎崲涓� \r\n
+
+                            //sb.Append(currentLine);
+                            //sb.Append("\r\n"); // 鏍囧噯鎹㈣
+                        //}
+
+                        for(int i = 0; i<lines.Length; i++)
                         {
-                            string currentLine = line;
+                            string currentLine = lines[i];
+                            string preLine = "";
+                            string concatStr = "";
+                            if(i>0)
+                            {
+                                // 鑾峰彇褰撳墠琛岀殑涓婁竴琛岋紝鐢ㄤ簬鍒ゆ柇鏄惁鏄煩褰㈡
+                                preLine = lines[i - 1];
+                            }
 
                             // 璺宠繃娉ㄩ噴琛� //
                             if (currentLine.TrimStart().StartsWith("//"))
@@ -24178,19 +24219,32 @@
                                 continue;
                             }
 
-                            // 姝e垯琛ㄨ揪寮忓尮閰� {{ 瀛楁鍚� }} 鎵�鍦ㄨ鐨勫瓧娈碉紝濡傛灉鏈夛紝鍒欒繘琛屾浛鎹紝娌℃湁锛屽垯榛樿涓虹┖瀛楃涓�
-                            currentLine = regex.Replace(currentLine, match =>
+                            // 鍒ゆ柇鐭╁舰妗嗭紝濡傛灉鍓嶄竴琛屾槸鐭╁舰妗嗭紝鍒欓渶鍒ゆ柇璇ヨ瀛楃涓查暱搴︽槸鍚﹁秴闀�
+                            if(!getConcatStr(rectRegex: RectRegex, fieldRegex: fieldRegex,
+                                PreLine: preLine, CurrLine: currentLine, fieldObject: item,
+                                templateRegex: regex,
+                                ref concatStr))
                             {
-                                string fieldName = match.Groups[1].Value.Trim();
-                                if (msg != null && item.ContainsKey(fieldName))
+                                // 姝e垯琛ㄨ揪寮忓尮閰� {{ 瀛楁鍚� }} 鎵�鍦ㄨ鐨勫瓧娈碉紝濡傛灉鏈夛紝鍒欒繘琛屾浛鎹紝娌℃湁锛屽垯榛樿涓虹┖瀛楃涓�
+                                concatStr = regex.Replace(currentLine, match =>
                                 {
-                                    return item[fieldName]?.ToString() ?? "";
-                                }
-                                return "";
-                            });
-                            // 灏嗘墍鏈� \n 鐨勬崲琛岀 鏇挎崲涓� \r\n
+                                    string fieldName = match.Groups[1].Value.Trim();
+                                    if (msg != null && item.ContainsKey(fieldName))
+                                    {
+                                        return item[fieldName]?.ToString() ?? "";
+                                    }
+                                    return "";
+                                });
+                            }
 
-                            sb.Append(currentLine);
+                            if(string.IsNullOrWhiteSpace(concatStr))
+                            {
+                                concatStr = currentLine;
+                            }
+
+                            
+                            // 灏嗘墍鏈� \n 鐨勬崲琛岀 鏇挎崲涓� \r\n
+                            sb.Append(concatStr);
                             sb.Append("\r\n"); // 鏍囧噯鎹㈣
                         }
                     }
@@ -24209,12 +24263,109 @@
             {
                 objJsonResult.code = "0";
                 objJsonResult.count = 0;
-                objJsonResult.Message = $"妯℃澘娓叉煋澶辫触锛歿ex.Message}";
+                objJsonResult.Message = $"妯℃澘娓叉煋澶辫触锛歿ex}";
                 objJsonResult.data = null;
                 return objJsonResult;
             }
 
         }
+
+        private bool getConcatStr(Regex rectRegex, Regex fieldRegex,
+            string PreLine, string CurrLine, JObject fieldObject, Regex templateRegex, ref string concatStr)
+        {
+            var rectRegexResult = rectRegex.Match(PreLine);
+            var fieldRegexResult = fieldRegex.Match(CurrLine);
+            var templateRegexResult = templateRegex.Match(CurrLine);
+            if (!rectRegexResult.Success)
+            {
+                return false;
+            }
+
+            if(!fieldRegexResult.Success)
+            {
+                return false;
+            }
+
+            if(!templateRegexResult.Success)
+            {
+                return false;
+            }
+            
+
+            // 鐭╁舰 浣嶇疆 瀹介珮
+            int rectLocationX = int.Parse(rectRegexResult.Groups[1].Value);
+            int rectLocationY = int.Parse(rectRegexResult.Groups[2].Value);
+            int rectWidth = int.Parse(rectRegexResult.Groups[3].Value);
+            int rectHeight = int.Parse(rectRegexResult.Groups[4].Value);
+
+            var fiEnum = fieldRegexResult.Groups;
+
+            // 妯℃澘瀛楃涓� 浣嶇疆 瀛楃瀹介珮
+            int fieldLocationX = int.Parse(fieldRegexResult.Groups[1].Value);
+            int fieldLocationY = int.Parse(fieldRegexResult.Groups[2].Value);
+            int fieldWidth = int.Parse(fieldRegexResult.Groups[3].Value);
+            int fieldHeight = int.Parse(fieldRegexResult.Groups[4].Value);
+            var fieldName = fieldRegexResult.Groups[5].Value;
+            
+            
+            JToken fieldValueToken = "";
+            fieldObject.TryGetValue(fieldName, out fieldValueToken);
+
+            if (string.IsNullOrWhiteSpace(fieldValueToken?.ToString()))
+            {
+                return false;
+            }
+            string fieldValue = fieldValueToken.ToString();
+            if (fieldValue.Length * fieldWidth > rectWidth)
+            {
+                // 瀛楃涓查暱搴﹀ぇ浜庣煩褰㈢殑鏈�澶ч暱搴� 鍒欐枃鏈渶瑕佷粠鐭╁舰鐨刌浣嶇疆寮�濮嬫覆鏌�
+                fieldLocationY = rectLocationY;
+                // 鑾峰彇鎹㈣鎵�闇�鐨勮鏁�
+                int lineCount = int.Parse(Math.Ceiling((float)fieldValue.Length / fieldWidth).ToString());
+                
+                // 璁$畻鎹㈣鍚庣殑鏈�澶ц鏁� * 瀛楃楂樺害 鏄惁澶т簬鐭╁舰鏈�澶ч珮搴�
+                if(lineCount * fieldHeight > rectHeight)
+                {
+                    
+                    fieldHeight = int.Parse(Math.Floor((float)rectHeight / lineCount).ToString());
+                    fieldWidth = fieldHeight;
+                }
+
+                // 璁$畻姣忚搴旇鏀惧灏戝瓧绗︼紙姝g‘绠楁硶锛�
+                int maxCharsPerLine = (int)Math.Ceiling((double)fieldValue.Length / lineCount);
+
+                for (int i = 0; i < lineCount; i++)
+                {
+                    // 璧峰浣嶇疆
+                    int start = i * maxCharsPerLine;
+
+                    // 鍓╀綑澶氬皯瀛楃锛堟牳蹇冿細淇濊瘉涓嶈秺鐣岋級
+                    int remaining = fieldValue.Length - start;
+
+                    if (remaining <= 0)
+                        break;
+
+                    // 鏈鍙栧嚑涓瓧绗︼紙缁濆瀹夊叏锛�
+                    int take = Math.Min(maxCharsPerLine, remaining);
+
+                    // 鎴彇褰撳墠琛屾枃鏈�
+                    string lineText = fieldValue.Substring(start, take);
+
+                    // 璁$畻鏂拌鍧愭爣
+                    int newY = fieldLocationY + i * fieldHeight;
+
+                    // 鏇挎崲鎷兼帴
+                    concatStr += fieldRegex.Replace(CurrLine, m =>
+                        $"^FO{fieldLocationX},{newY}^AJN,{fieldWidth},{fieldHeight}^CI28^FD{lineText}^FS"
+                    );
+                }
+                return true;
+            }
+
+            return false;
+
+        }
+        #endregion
         [HttpGet]
         [Route("Web/getSysParameter")]
         public object getSysParameter(string HClientID)
@@ -24260,4 +24411,3 @@
         }
     }
 }
-#endregion
\ No newline at end of file
diff --git "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs" "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
index 3059d3f..596c8ae 100644
--- "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
+++ "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
@@ -15582,6 +15582,41 @@
 
         #region 璋冪敤閲戣澏webapi鎺ュ彛鍚屾鍩虹璧勬枡鏂规硶
 
+        #region 灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+        public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys)
+        {
+            // <param name="rawJson">API 杩斿洖鐨勫師濮� JSON 瀛楃涓诧紙濡� [[...],[...]]锛�</param>
+            // <param name="fieldKeys">鏌ヨ鏃朵紶鍏ョ殑 FieldKeys 瀛楃涓诧紙閫楀彿鍒嗛殧锛�</param>
+
+            // 1. 瑙f瀽鍘熷鏁版嵁涓� JArray锛堜簩缁存暟缁勶級
+            JArray rawData = JArray.Parse(rawJson);
+
+            // 2. 鎷嗗垎瀛楁鍚嶆暟缁�
+            string[] fieldNames = fieldKeys.Split(',')
+                                           .Select(f => f.Trim())
+                                           .ToArray();
+
+            // 3. 鍒涘缓缁撴灉鏁扮粍
+            JArray result = new JArray();
+
+            // 4. 閬嶅巻姣忎竴琛屾暟鎹�
+            foreach (JArray row in rawData)
+            {
+                JObject obj = new JObject();
+
+                // 5. 鎸夌储寮曚綅缃槧灏勫瓧娈靛悕鍜屽��
+                for (int i = 0; i < fieldNames.Length && i < row.Count; i++)
+                {
+                    obj[fieldNames[i]] = row[i];
+                }
+
+                result.Add(obj);
+            }
+
+            return result;
+        }
+        #endregion
+
         #region 鐗╂枡鍩虹璧勬枡鍚屾
         [Route("WEBSController/MaterialDataToLocalByKDWebApi")]
         [HttpGet]
@@ -15689,41 +15724,775 @@
 
         #endregion
 
-        #region 灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
-        public static JArray ConvertKingdeeResultToObjects(string rawJson, string fieldKeys)
+        #region 閮ㄩ棬鍩虹璧勬枡鍚屾
+        [Route("WEBSController/DepartmentDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object DepartmentDataToLocalByKDWebApi(string HDate, int limit)
         {
-            // <param name="rawJson">API 杩斿洖鐨勫師濮� JSON 瀛楃涓诧紙濡� [[...],[...]]锛�</param>
-            // <param name="fieldKeys">鏌ヨ鏃朵紶鍏ョ殑 FieldKeys 瀛楃涓诧紙閫楀彿鍒嗛殧锛�</param>
-
-            // 1. 瑙f瀽鍘熷鏁版嵁涓� JArray锛堜簩缁存暟缁勶級
-            JArray rawData = JArray.Parse(rawJson);
-
-            // 2. 鎷嗗垎瀛楁鍚嶆暟缁�
-            string[] fieldNames = fieldKeys.Split(',')
-                                           .Select(f => f.Trim())
-                                           .ToArray();
-
-            // 3. 鍒涘缓缁撴灉鏁扮粍
-            JArray result = new JArray();
-
-            // 4. 閬嶅巻姣忎竴琛屾暟鎹�
-            foreach (JArray row in rawData)
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
             {
-                JObject obj = new JObject();
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
 
-                // 5. 鎸夌储寮曚綅缃槧灏勫瓧娈靛悕鍜屽��
-                for (int i = 0; i < fieldNames.Length && i < row.Count; i++)
+                if (!bLogin)
                 {
-                    obj[fieldNames[i]] = row[i];
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FDEPTID,FNumber,FName,FFORBIDSTATUS,FCREATEORGID,FUSEORGID";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_Department\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_Department where HItemID = {item["FDEPTID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_Department on");
+
+                        //閲嶆柊鍐欏叆琛�
+                        oCn.RunProc("Insert Into Gy_Department " +
+              "(HItemID,HNumber,HShortNumber,HName,HParentID" +
+              ",HLevel,HEndFlag,HRemark,HStopFlag,HUseFlag" +
+              ",HCREATEORGID,HUSEORGID,HERPItemID" +
+              ") " +
+              " values('" + item["FDEPTID"] + "','" + item["FNumber"] + "','" + item["FNumber"] + "','" + item["FName"] + "',0" +
+              ",'',0,'" + "CLD-ERP瀵煎叆" + "',0,''" +
+              "," + item["FCREATEORGID"] + "," + item["FCREATEORGID"] + "," + item["FDEPTID"] +
+            ") ");
+
+                        oCn.RunProc("set identity_insert Gy_Department off");
+                    }
                 }
 
-                result.Add(obj);
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "閮ㄩ棬淇℃伅鍚屾鎴愬姛";
+                objJsonResult.data = "";
+                return objJsonResult;
             }
-
-            return result;
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ閮ㄩ棬淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
         }
-        #endregion
 
         #endregion
+
+        #region 浠撳簱鍩虹璧勬枡鍚屾
+        [Route("WEBSController/StockDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object StockDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FSTOCKID,FNumber,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FIsOpenLocation,FAllowMinusQty,FSTOCKPROPERTY";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_STOCK\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_Warehouse where HItemID = {item["FSTOCKID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_Warehouse on");
+
+                        //閲嶆柊鍐欏叆琛�
+                        oCn.RunProc("Insert into Gy_Warehouse  " +
+                        " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
+                        ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID,HCREATEORGID,HSPFlag,HSPGroupID,HUnderStock,HSTOCKPROPERTY,HERPItemID) " +
+                        " Values('" + item["FSTOCKID"] + "','" + item["FNumber"] + "','" + item["FName"] + "','" +0 + "','" + item["FNumber"] + "'," + 1 +
+                        "," + 1 + "," + "'true'" + "," + Convert.ToString(item["FFORBIDSTATUS"].ToString()=="A" ? 0 : 1) + ",'" + "CLD-ERP瀵煎叆" + "'," + 0 + ",'" + item["FAddress"] + "','" + item["FTel"] + "','" + item["FUSEORGID"] + "','" + item["FUSEORGID"] + "','" + item["FIsOpenLocation"] + "','" + item["FSTOCKID"] + "','" + item["FAllowMinusQty"] + "','" + item["FSTOCKPROPERTY"] + "'," + item["FSTOCKID"] + ")", ref DBUtility.ClsPub.sExeReturnInfo);
+
+                        oCn.RunProc("set identity_insert Gy_Warehouse off");
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "浠撳簱淇℃伅鍚屾鎴愬姛";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ浠撳簱淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+
+        #region 渚涘簲鍟嗗熀纭�璧勬枡鍚屾
+        [Route("WEBSController/SupplierDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object SupplierDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FSUPPLIERID,FNumber,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FAddress,FContact,FMobile,FLocNewContact ,FFax,FEMail ,FBankCode ,FBankHolder,FTaxType,FTaxRateId ,FCountry ,FPayCurrencyId";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_Supplier\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_Supplier where HItemID = {item["FSUPPLIERID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_Supplier on");
+
+                        oCn.RunProc("Insert Into Gy_Supplier " +
+                         "(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
+                             ",HLevel,HEndFlag,HStopflag,HRemark" +
+                             ",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
+                             ",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
+                             ",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
+                             ",HEnglishAddress,HCurID,HSSID,HAreaID,HMaterClass,HERPItemID,HUseOrgID,HCreateOrgID) " +
+                         " values('" + item["FSUPPLIERID"] + "','" + item["FNumber"] + "','" + item["FName"] + "','" + 1 + "','" + item["FNumber"] + "','" + 1 + "'" +
+                         "," + 1+ ",0,'" + (item["FFORBIDSTATUS"].ToString() == "A" ? 0 : 1) + "','" + "CLD-ERP瀵煎叆" + "'" +
+                         ",'" + item["FName"] + "','" + item["FAddress"] + "','" + item["FLocNewContact"] + "','" + item["FMobile"] + "','" + item["FMobile"] + "'" +
+                         ",'" + item["FFax"] + "','" + 0 + "','" + item["FEMail "] + "','" + item["FBankHolder"] + "','" + item["FBankCode"] + "'" +
+                         ",'" + item["FTaxType"] + "','" + item["FTaxRateId  "] + "','" + item["FCountry "] + "','" + "" + "','" + "" + "'" +
+                         ",'" + item["FAddress"] + "'," + item["FPayCurrencyId"] + "," + 0 + "," + 0 + ",'" + 0 +
+                         "'," + item["FSUPPLIERID"] + ",'" + item["FCREATEORGID"] + "','" + item["FCREATEORGID"] +
+                          "') ");
+                        oCn.RunProc("set identity_insert Gy_Supplier off");
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "渚涘簲鍟嗕俊鎭悓姝ユ垚鍔�";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ渚涘簲鍟嗕俊鎭彂鐢熷紓甯革紒" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+        #region 鍗曚綅鎹㈢畻鍩虹璧勬枡鍚屾
+        [Route("WEBSController/UnitConvertRateDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object UnitConvertRateDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FUNITCONVERTRATEID,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FBILLNO,FMATERIALID,FCURRENTUNITID,FDESTUNITID,FCONVERTTYPE,FCONVERTNUMERATOR,FCONVERTDENOMINATOR,FCREATORID,FCREATEDATE,FAPPROVERID,FAPPROVEDATE,FMODIFIERID,FMODIFYDATE,FFORBIDDERID,FFORBIDDATE";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_MATERIALUNITCONVERT\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FApproveDate   >= '{HDate}'\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_UnitConvertRate where HItemID = {item["FUNITCONVERTRATEID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_UnitConvertRate on");
+
+                       string sql = "Insert into Gy_UnitConvertRate " +
+                   "(HItemID,HNumber,HName,HShortNumber,HParentID,HLevel," +
+                   "HEndFlag,HStopflag,HRemark,HUseFlag,HUSEORGID,HCREATEORGID," +
+                   "HBILLNO,HMATERID,HCURRENTUNITID,HDESTUNITID,HCONVERTTYPE,HCONVERTNUMERATOR," +
+                   "HCONVERTDENOMINATOR,HFORBIDSTATUS,HUnitID,HMaterNumber," +
+                   "HMakeEmp,HMakeTime,HCheckEmp,HCheckTime,HModifyEmp,HModifyTime,HStopEmp,HStopTime) " +
+                   "values('" + item["FUNITCONVERTRATEID"] + "','"  + "','"  + "','"  + "'," + 1 + "," + 1 + ",'" +
+                   "true" + "','" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "','CLD-ERP瀵煎叆','宸蹭娇鐢�','" + item["FUSEORGID"] + "','" + item["FUSEORGID"] + "'" +
+                   ",'" + item["FBILLNO"] + "','" + item["FMATERIALID"] + "','" + item["FCURRENTUNITID"] + "','" + item["FDESTUNITID"] + "','" + item["FCONVERTTYPE"] + "','" + item["FCONVERTNUMERATOR"] + "'" +
+                   ",'" + item["FCONVERTDENOMINATOR"] + "','" + item["FFORBIDSTATUS"] + "','" + 0 + "','"  + "'" +
+                   ",'" + item["FCREATORID"] + "','" + item["FCREATEDATE"] + "','" + item["FAPPROVERID"] + "','" + item["FAPPROVEDATE"] + "','" +
+                   item["FMODIFIERID"] + "','" + item["FMODIFYDATE"] + "','" + item["FFORBIDDERID"] + "','" + item["FFORBIDDATE"] + "')";
+                        oCn.RunProc(sql);
+                        oCn.RunProc("set identity_insert Gy_UnitConvertRate off");
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍗曚綅鎹㈢畻淇℃伅鍚屾鎴愬姛";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ鍗曚綅鎹㈢畻淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+        #region 鍛樺伐鍩虹璧勬枡鍚屾
+        [Route("WEBSController/StaffDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object StaffDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FPERSONID,FNumber,FName,FUSEORGID,FCREATEORGID,FPOSTID,FFIRSTCARDID,FSTAFFNUMBER";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_Empinfo\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAuditDate  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_Staff where HItemID = {item["FPERSONID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_Staff on");
+
+                        oCn.RunProc($@"insert into Gy_Staff(HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID
+                            ,HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HUSEORGID
+                            ,HCREATEORGID,HPERSONID,HPOSTID,HFIRSTCARDID,HDEPTID,HSTAFFNUMBER)
+                  values({item["FPERSONID"]},'{item["FNUMBER"]}','{item["FNAME"]}','{""}','{item["FNUMBER"]}',
+                        {1},{1},{"'true'"},{ 0 },
+                        '{"CLD-ERP"}','{""}',{item["FUSEORGID"]},{item["FCREATEORGID"]},{item["FPERSONID"]},
+                        {item["FPOSTID"]},{item["FFIRSTCARDID"]},{0},'{item["FSTAFFNUMBER"]}')", ref DBUtility.ClsPub.sExeReturnInfo);
+
+                        oCn.RunProc("set identity_insert Gy_Staff off");
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "鍛樺伐淇℃伅鍚屾鎴愬姛";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ鍛樺伐淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+
+        #region 瀹㈡埛鍩虹璧勬枡鍚屾
+        [Route("WEBSController/CustomerDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object CustomerDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FCUSTID,FNUMBER,FName,FUSEORGID,FCREATEORGID,FFORBIDSTATUS,FLOCATIONSTATUS,FADDRESS,FTContact,FMOBILE ,FTAXRATE1,FZIP,FTEL,FEMail ,FINVOICEBANKNAME,FINVOICEBANKACCOUNT,FTaxRate ,FTAXREGISTERCODE ,FCOUNTRY ,FTRADINGCURRID ,FSETTLETYPEID ,FSELLER ,FCustTypeId ";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_Customer\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAPPROVEDATE  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_Customer where HItemID = {item["FCUSTID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_Customer on");
+
+                        oCn.RunProc("Insert into Gy_Customer " +
+                    " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
+                    ",HLevel,HEndFlag,HStopflag,HRemark" +
+                    ",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
+                    ",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
+                    ",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
+                    ",HEnglishAddress,HCurID,HSSID,HAreaID,HCusStatus" +
+                    ",HEmpID,HCreditDate,HCreditRatingDate,HMaxCreditRatingDate" +
+                    ",HMonthUseQty,HForecastCreditRating,HCreditLevelID,HCountAccrualRating" +
+                    ",HSubsidyAccrualRating,HCreditRating,HMaxCreditRating" +
+                    ",HCusTypeID,HERPItemID,HUseOrgID,HCreateOrgID) " +
+                    " Values('" + item["FCUSTID"] + "','" + item["FNUMBER"] + "','" + item["FName"] + "','" + 1 + "','" + item["FNUMBER"] + "'," + 1 +
+                    ", " + 1 + ",0,'" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "','" + "ERP瀵煎叆" + "'" +
+                    ",'" + item["FName"] + "','" + item["FADDRESS"] + "','" + item["FTContact"] + "','" + item["FMOBILE"] + "','" + item["FTEL"] + "'" +
+                    ",'" + item["FTAXRATE1"] + "','" + item["FZIP"] + "','" + item["FEMail"] + "','" + item["FINVOICEBANKNAME"] + "','" + item["FINVOICEBANKACCOUNT"] + "'" +
+                    ",'" + item["FTAXREGISTERCODE"] + "'," + item["FTaxRate"] + ",'" + item["FCOUNTRY"] + "','','','','" + item["FTRADINGCURRID"] + "','" + item["FSETTLETYPEID"] + "'," + 0 + ",'" + "鍚堟牸" + "'" +
+                    ",'" + 0+ "'," + 0 + "," + 0 + "," + 0 +
+                    "," + 0 + "," + 0 + "," + 0+ "," + 0 +
+                    "," + 0 + "," + 0 + "," + 0 +
+                    ", '" + 0 + "','" + item["FCUSTID"] + "','" + item["FUSEORGID"] + "','" + item["FCREATEORGID"] + "')");
+                        string sql = "set identity_insert gy_Customer off";
+                        oCn.RunProc(sql);
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "瀹㈡埛淇℃伅鍚屾鎴愬姛";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ瀹㈡埛淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+
+        #region 缁勭粐鍩虹璧勬枡鍚屾
+        [Route("WEBSController/ORGANIZATIONSDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object ORGANIZATIONSDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FORGID,FNUMBER,FName,FParentid,FFORBIDSTATUS";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"ORG_Organizations\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"FAUDITDATE  >= '{HDate}' and FLOCALEID = 2052\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Xt_ORGANIZATIONS where HItemID = {item["FORGID"]?.ToString()}");
+
+                       // oCn.RunProc("set identity_insert Xt_ORGANIZATIONS on");
+
+                        string sql = "Insert into Xt_ORGANIZATIONS  (HItemID,HNumber,HName,HParentID,HStopflag,HMakeTime,HRemark)" +
+                          " values('" + item["FORGID"] + "','" + item["FNUMBER"] + "','" + item["FNAME"] + "','" + item["FParentid"] + "','" + (item["FFORBIDSTATUS"].ToString()=="A"?0:1) + "'," +
+                         "getdate(),'" + "CLD瀵煎叆" +
+                          "') ";
+                        oCn.RunProc(sql);
+                        //oCn.RunProc("set identity_insert Xt_ORGANIZATIONS off");
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "缁勭粐淇℃伅鍚屾鎴愬姛";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ缁勭粐淇℃伅鍙戠敓寮傚父锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+
+
+        #region 杈呭姪灞炴�у熀纭�璧勬枡鍚屾
+        [Route("WEBSController/PropertyDataToLocalByKDWebApi")]
+        [HttpGet]
+        public object PropertyDataToLocalByKDWebApi(string HDate, int limit)
+        {
+            bool hasMore = true;//鏄惁寰幆鏌ヨ
+            try
+            {
+                //璁块棶閲戣澏
+                string sCLOUDUseName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName");
+                string sCLOUDPsd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord");
+                string dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId");
+                ApiClient client = new ApiClient(Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "KDApiUrl"));
+                bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052);
+                string HReturn;
+                int startRow = 0;//鍒嗛〉锛屼粠绗�1鏉″紑濮嬫煡璇�               
+                List<JObject> allData = new List<JObject>();//鎺ユ敹瀛樺偍鎵�鏈夋煡璇㈠埌鐨勬暟鎹�
+
+                if (!bLogin)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍚屾鍩虹璧勬枡澶辫触,閲戣澏璐﹀彿鐧诲綍寮傚父銆�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瑕侀�氳繃鎺ュ彛鏌ヨ鐨勫瓧娈�
+                string fieldKeys = "FAuxPtyValueID,FAuxPtyNumber,FAuxPtyName,FBillNo,FFORBIDSTATUS";
+
+                oCn.BeginTran();//寮�濮嬩簨鍔�
+
+                while (hasMore) //寰幆鍒嗙粍鏌ヨ锛岄伩鍏嶆紡鍚屾
+                {
+                    //鎷兼帴鍗曟嵁鏌ヨ鎺ュ彛鍙傛暟
+                    string sJson = $"{{\"FormId\":\"BD_AuxPtyValue\",\"FieldKeys\":\"{fieldKeys}\",\"FilterString\":\"\",\"Limit\":{limit},\"StartRow\":{startRow},\"TopRowCount\":0}}";
+
+                    //璋冪敤閲戣澏webapi鍗曟嵁鏌ヨ鎺ュ彛
+                    var HReurnData = client.Execute<string>("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery",
+                    new object[] { sJson });
+
+                    //灏嗛噾铦跺崟鎹煡璇EBAPI鎺ュ彛杩斿洖鐨勭函鏁扮粍杞崲涓哄甫瀛楁鍚嶇殑瀵硅薄鍒楄〃
+                    JArray formattedData = ConvertKingdeeResultToObjects(HReurnData, fieldKeys);
+
+                    if (formattedData.Count < limit)
+                    {
+                        hasMore = false; // 濡傛灉鏈杩斿洖鐨勬暟閲忓皯浜庤姹傜殑 limit锛岃鏄庡凡缁忔槸鏈�鍚庝竴椤典簡
+                    }
+                    else
+                    {
+                        startRow += limit; // 鍚﹀垯锛屽鍔犺捣濮嬭绱㈠紩锛屽噯澶囪姹備笅涓�椤�
+                    }
+
+                    foreach (JObject item in formattedData)
+                    {
+                        //鍒犻櫎鍘熸湁璁板綍
+                        oCn.RunProc($"delete from Gy_Property where HItemID = {item["FAuxPtyValueID"]?.ToString()}");
+
+                        oCn.RunProc("set identity_insert Gy_Property on");
+
+                        oCn.RunProc($@"insert into Gy_Property(HItemID,HNumber,HShortNumber,HName,HHelpCode,HParentID
+                    ,HLevel,HEndFlag,HStopflag,HRemark,HPropertyTypeID,HUseFlag,HERPItemID,HMakeTime)
+                  values({item["FAuxPtyValueID"]},'{item["FAuxPtyNumber"]}','{item["FAuxPtyNumber"]}','{item["FAuxPtyName"]}','{1}',{1},{1}
+           ,{ 1},{Convert.ToString(item["FFORBIDSTATUS"].ToString()=="A" ? 0 : 1) },'{"ERP瀵煎叆"}',{1},'{1}',{item["FAuxPtyValueID"]},{"getdate()"})", ref DBUtility.ClsPub.sExeReturnInfo);
+
+                        oCn.RunProc("set identity_insert Gy_Property off");
+                    }
+                }
+
+                oCn.Commit(); //鎻愪氦浜嬪姟
+
+                objJsonResult.code = "1";
+                objJsonResult.count = 1;
+                objJsonResult.Message = "杈呭姪灞炴�т俊鎭悓姝ユ垚鍔�";
+                objJsonResult.data = "";
+                return objJsonResult;
+            }
+            catch (Exception e)
+            {
+                hasMore = false;
+                oCn.RollBack();//鍥炴粴浜嬪姟
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鍗曟嵁鏌ヨ杈呭姪灞炴�т俊鎭彂鐢熷紓甯革紒" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+
+        #endregion
+        #endregion
+
     }
 }
diff --git a/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user b/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user
index eb058c5..e9e8eb3 100644
--- a/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user
@@ -5,11 +5,14 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
-    <History>True|2026-04-29T08:47:04.9171448Z;True|2026-04-29T16:25:33.4958449+08:00;True|2026-04-29T15:34:29.5741739+08:00;True|2026-04-29T14:10:33.3160064+08:00;True|2026-04-29T14:06:31.3760141+08:00;False|2026-04-29T14:05:58.0158818+08:00;True|2026-04-29T10:25:30.7181581+08:00;True|2026-04-29T10:24:32.8331581+08:00;False|2026-04-29T10:23:37.9949570+08:00;True|2026-04-28T11:12:41.1993974+08:00;True|2026-04-28T10:59:28.3932572+08:00;True|2026-04-28T10:46:16.5971815+08:00;True|2026-04-28T09:38:04.9793088+08:00;False|2026-04-28T09:37:19.4255018+08:00;True|2026-04-27T15:09:44.0897608+08:00;True|2026-04-27T14:54:06.6458560+08:00;True|2026-04-27T14:44:18.2209820+08:00;True|2026-04-27T14:13:14.4765480+08:00;True|2026-04-27T14:04:25.5419561+08:00;True|2026-04-27T13:49:53.0044534+08:00;True|2026-04-27T13:16:28.0509184+08:00;True|2026-04-27T13:06:51.0405801+08:00;True|2026-04-27T12:49:54.6907285+08:00;True|2026-04-27T10:18:33.7985393+08:00;True|2026-04-27T10:08:12.8438152+08:00;True|2026-04-27T09:59:55.6118412+08:00;False|2026-04-27T09:58:35.5433131+08:00;True|2026-04-22T13:46:35.7999639+08:00;True|2026-04-22T13:37:33.3595562+08:00;False|2026-04-22T13:36:44.6163941+08:00;True|2026-04-20T17:23:12.3696160+08:00;True|2026-04-20T17:11:49.7671685+08:00;True|2026-04-20T17:01:26.9990531+08:00;True|2026-04-20T16:54:12.4433947+08:00;True|2026-04-20T16:46:57.6462699+08:00;True|2026-04-20T16:42:57.8307232+08:00;True|2026-04-20T16:28:39.7476167+08:00;True|2026-04-20T16:21:44.4281083+08:00;True|2026-04-20T15:54:54.0650372+08:00;False|2026-04-20T15:53:16.9752154+08:00;True|2026-04-20T09:38:00.7302296+08:00;False|2026-04-20T09:35:50.0193777+08:00;True|2026-04-16T13:47:52.4189071+08:00;True|2026-04-16T12:55:27.8047391+08:00;True|2026-04-15T15:25:13.5585076+08:00;True|2026-04-15T15:18:40.0113998+08:00;True|2026-04-15T13:40:25.2393656+08:00;False|2026-04-15T13:39:38.6236889+08:00;True|2026-04-14T14:31:30.6734754+08:00;False|2026-04-14T14:30:41.4516757+08:00;True|2026-04-13T16:44:08.4642937+08:00;True|2026-04-13T16:36:02.3077110+08:00;True|2026-04-13T14:59:21.0103174+08:00;True|2026-04-13T14:39:45.1257225+08:00;True|2026-04-13T14:33:54.7926295+08:00;True|2026-04-13T14:28:29.8919092+08:00;True|2026-04-13T14:23:44.7319904+08:00;True|2026-04-13T14:19:18.5894161+08:00;True|2026-04-13T14:13:07.6590290+08:00;True|2026-04-13T14:08:38.6545470+08:00;True|2026-04-13T13:42:48.7331271+08:00;True|2026-04-13T13:28:28.6092259+08:00;True|2026-04-13T13:22:20.9710518+08:00;False|2026-04-13T13:21:10.4412531+08:00;True|2026-04-10T12:36:37.6936108+08:00;False|2026-04-10T12:35:40.0121010+08:00;True|2026-04-09T16:54:43.8820523+08:00;True|2026-04-09T16:45:33.9913393+08:00;True|2026-04-09T16:05:37.9135976+08:00;True|2026-04-09T15:59:59.0415690+08:00;True|2026-04-09T14:40:06.6317662+08:00;True|2026-04-09T14:33:57.7268880+08:00;True|2026-04-09T14:29:06.9748272+08:00;True|2026-04-09T14:15:35.2357549+08:00;True|2026-04-09T13:55:15.7398283+08:00;True|2026-04-09T10:49:39.1474349+08:00;False|2026-04-09T10:48:56.4483129+08:00;True|2026-04-08T15:52:56.0654175+08:00;True|2026-04-08T15:51:48.5362330+08:00;True|2026-04-08T15:38:55.9430240+08:00;True|2026-04-08T14:28:05.8170952+08:00;True|2026-04-08T10:04:26.1290532+08:00;True|2026-04-08T09:54:42.7091796+08:00;True|2026-04-08T09:47:39.4265409+08:00;True|2026-04-08T09:31:33.9940810+08:00;True|2026-04-08T09:25:48.8335042+08:00;True|2026-04-08T09:18:49.2340416+08:00;True|2026-04-08T09:05:38.1946058+08:00;True|2026-04-08T08:51:42.9648664+08:00;False|2026-04-08T08:50:29.4049907+08:00;True|2026-04-07T16:38:07.0366622+08:00;True|2026-04-07T16:30:02.5849908+08:00;True|2026-04-07T10:34:01.7729330+08:00;True|2026-04-07T09:48:28.6594815+08:00;True|2026-04-07T08:27:08.5467426+08:00;</History>
+    <History>True|2026-05-07T07:08:38.0367089Z;True|2026-05-07T15:04:45.6064347+08:00;True|2026-05-07T15:01:54.3752696+08:00;True|2026-05-07T14:48:57.8233763+08:00;True|2026-05-07T14:42:59.9667945+08:00;True|2026-05-07T14:39:04.9344650+08:00;True|2026-05-07T14:35:21.2358006+08:00;True|2026-05-07T14:31:03.3942679+08:00;False|2026-05-07T14:30:07.9957551+08:00;True|2026-05-07T14:28:17.9178211+08:00;True|2026-05-07T14:23:52.3968718+08:00;True|2026-05-07T14:16:18.6690603+08:00;True|2026-05-07T14:08:24.2477705+08:00;True|2026-05-07T14:07:20.1361212+08:00;True|2026-05-07T13:58:16.6134288+08:00;True|2026-05-07T13:56:45.4214674+08:00;True|2026-05-07T13:53:03.1271717+08:00;True|2026-05-07T13:47:57.8901747+08:00;True|2026-05-07T13:38:51.9817839+08:00;True|2026-05-07T13:31:10.4849161+08:00;True|2026-05-07T13:21:02.8232018+08:00;True|2026-05-07T13:20:07.6389859+08:00;True|2026-05-07T13:06:15.0699419+08:00;True|2026-05-07T11:27:40.0012763+08:00;True|2026-05-07T10:59:44.5944208+08:00;True|2026-05-07T10:39:17.2999911+08:00;True|2026-05-07T09:08:08.7432630+08:00;False|2026-05-07T09:07:51.8174857+08:00;True|2026-05-06T13:11:25.9234523+08:00;False|2026-05-06T13:11:03.9982193+08:00;True|2026-04-30T10:18:53.7822827+08:00;False|2026-04-30T10:17:13.6682179+08:00;True|2026-04-29T16:47:04.9171448+08:00;True|2026-04-29T16:25:33.4958449+08:00;True|2026-04-29T15:34:29.5741739+08:00;True|2026-04-29T14:10:33.3160064+08:00;True|2026-04-29T14:06:31.3760141+08:00;False|2026-04-29T14:05:58.0158818+08:00;True|2026-04-29T10:25:30.7181581+08:00;True|2026-04-29T10:24:32.8331581+08:00;False|2026-04-29T10:23:37.9949570+08:00;True|2026-04-28T11:12:41.1993974+08:00;True|2026-04-28T10:59:28.3932572+08:00;True|2026-04-28T10:46:16.5971815+08:00;True|2026-04-28T09:38:04.9793088+08:00;False|2026-04-28T09:37:19.4255018+08:00;True|2026-04-27T15:09:44.0897608+08:00;True|2026-04-27T14:54:06.6458560+08:00;True|2026-04-27T14:44:18.2209820+08:00;True|2026-04-27T14:13:14.4765480+08:00;True|2026-04-27T14:04:25.5419561+08:00;True|2026-04-27T13:49:53.0044534+08:00;True|2026-04-27T13:16:28.0509184+08:00;True|2026-04-27T13:06:51.0405801+08:00;True|2026-04-27T12:49:54.6907285+08:00;True|2026-04-27T10:18:33.7985393+08:00;True|2026-04-27T10:08:12.8438152+08:00;True|2026-04-27T09:59:55.6118412+08:00;False|2026-04-27T09:58:35.5433131+08:00;True|2026-04-22T13:46:35.7999639+08:00;True|2026-04-22T13:37:33.3595562+08:00;False|2026-04-22T13:36:44.6163941+08:00;True|2026-04-20T17:23:12.3696160+08:00;True|2026-04-20T17:11:49.7671685+08:00;True|2026-04-20T17:01:26.9990531+08:00;True|2026-04-20T16:54:12.4433947+08:00;True|2026-04-20T16:46:57.6462699+08:00;True|2026-04-20T16:42:57.8307232+08:00;True|2026-04-20T16:28:39.7476167+08:00;True|2026-04-20T16:21:44.4281083+08:00;True|2026-04-20T15:54:54.0650372+08:00;False|2026-04-20T15:53:16.9752154+08:00;True|2026-04-20T09:38:00.7302296+08:00;False|2026-04-20T09:35:50.0193777+08:00;True|2026-04-16T13:47:52.4189071+08:00;True|2026-04-16T12:55:27.8047391+08:00;True|2026-04-15T15:25:13.5585076+08:00;True|2026-04-15T15:18:40.0113998+08:00;True|2026-04-15T13:40:25.2393656+08:00;False|2026-04-15T13:39:38.6236889+08:00;True|2026-04-14T14:31:30.6734754+08:00;False|2026-04-14T14:30:41.4516757+08:00;True|2026-04-13T16:44:08.4642937+08:00;True|2026-04-13T16:36:02.3077110+08:00;True|2026-04-13T14:59:21.0103174+08:00;True|2026-04-13T14:39:45.1257225+08:00;True|2026-04-13T14:33:54.7926295+08:00;True|2026-04-13T14:28:29.8919092+08:00;True|2026-04-13T14:23:44.7319904+08:00;True|2026-04-13T14:19:18.5894161+08:00;True|2026-04-13T14:13:07.6590290+08:00;True|2026-04-13T14:08:38.6545470+08:00;True|2026-04-13T13:42:48.7331271+08:00;True|2026-04-13T13:28:28.6092259+08:00;True|2026-04-13T13:22:20.9710518+08:00;False|2026-04-13T13:21:10.4412531+08:00;True|2026-04-10T12:36:37.6936108+08:00;False|2026-04-10T12:35:40.0121010+08:00;True|2026-04-09T16:54:43.8820523+08:00;True|2026-04-09T16:45:33.9913393+08:00;True|2026-04-09T16:05:37.9135976+08:00;True|2026-04-09T15:59:59.0415690+08:00;True|2026-04-09T14:40:06.6317662+08:00;True|2026-04-09T14:33:57.7268880+08:00;True|2026-04-09T14:29:06.9748272+08:00;True|2026-04-09T14:15:35.2357549+08:00;True|2026-04-09T13:55:15.7398283+08:00;True|2026-04-09T10:49:39.1474349+08:00;False|2026-04-09T10:48:56.4483129+08:00;True|2026-04-08T15:52:56.0654175+08:00;True|2026-04-08T15:51:48.5362330+08:00;True|2026-04-08T15:38:55.9430240+08:00;True|2026-04-08T14:28:05.8170952+08:00;True|2026-04-08T10:04:26.1290532+08:00;True|2026-04-08T09:54:42.7091796+08:00;True|2026-04-08T09:47:39.4265409+08:00;True|2026-04-08T09:31:33.9940810+08:00;True|2026-04-08T09:25:48.8335042+08:00;True|2026-04-08T09:18:49.2340416+08:00;True|2026-04-08T09:05:38.1946058+08:00;True|2026-04-08T08:51:42.9648664+08:00;False|2026-04-08T08:50:29.4049907+08:00;True|2026-04-07T16:38:07.0366622+08:00;True|2026-04-07T16:30:02.5849908+08:00;True|2026-04-07T10:34:01.7729330+08:00;True|2026-04-07T09:48:28.6594815+08:00;True|2026-04-07T08:27:08.5467426+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="apiapp.json">
       <publishTime>04/21/2025 11:46:17</publishTime>
+    </File>
+    <File Include="bin/Alex.Kingdee.Cloud.WebAPI.Client.dll">
+      <publishTime>09/28/2018 16:28:36</publishTime>
     </File>
     <File Include="bin/AlibabaCloud.EndpointUtil.dll">
       <publishTime>04/07/2020 16:33:48</publishTime>
@@ -45,28 +48,28 @@
       <publishTime>02/22/2013 16:43:40</publishTime>
     </File>
     <File Include="bin/BLL.dll">
-      <publishTime>04/29/2026 16:46:17</publishTime>
+      <publishTime>05/07/2026 15:08:08</publishTime>
     </File>
     <File Include="bin/BLL.pdb">
-      <publishTime>04/29/2026 16:46:17</publishTime>
+      <publishTime>05/07/2026 15:08:08</publishTime>
     </File>
     <File Include="bin/BouncyCastle.Crypto.dll">
       <publishTime>12/18/2020 05:32:28</publishTime>
     </File>
     <File Include="bin/DAL.dll">
-      <publishTime>04/29/2026 16:46:15</publishTime>
+      <publishTime>05/07/2026 15:08:07</publishTime>
     </File>
     <File Include="bin/DAL.pdb">
-      <publishTime>04/29/2026 16:46:15</publishTime>
+      <publishTime>05/07/2026 15:08:07</publishTime>
     </File>
     <File Include="bin/Dapper.dll">
       <publishTime>07/22/2016 22:52:40</publishTime>
     </File>
     <File Include="bin/DBUtility.dll">
-      <publishTime>04/29/2026 16:46:10</publishTime>
+      <publishTime>05/07/2026 15:08:02</publishTime>
     </File>
     <File Include="bin/DBUtility.pdb">
-      <publishTime>04/29/2026 16:46:10</publishTime>
+      <publishTime>05/07/2026 15:08:02</publishTime>
     </File>
     <File Include="bin/Fleck.dll">
       <publishTime>04/22/2021 11:48:12</publishTime>
@@ -150,10 +153,10 @@
       <publishTime>07/25/2012 19:48:56</publishTime>
     </File>
     <File Include="bin/Model.dll">
-      <publishTime>04/29/2026 16:46:11</publishTime>
+      <publishTime>05/07/2026 15:08:03</publishTime>
     </File>
     <File Include="bin/Model.pdb">
-      <publishTime>04/29/2026 16:46:11</publishTime>
+      <publishTime>05/07/2026 15:08:03</publishTime>
     </File>
     <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
       <publishTime>04/21/2025 11:46:16</publishTime>
@@ -189,34 +192,34 @@
       <publishTime>11/13/2012 20:19:34</publishTime>
     </File>
     <File Include="bin/Pub_Class.dll">
-      <publishTime>04/29/2026 16:46:09</publishTime>
+      <publishTime>05/07/2026 15:08:00</publishTime>
     </File>
     <File Include="bin/Pub_Class.pdb">
-      <publishTime>04/29/2026 16:46:09</publishTime>
+      <publishTime>05/07/2026 15:08:00</publishTime>
     </File>
     <File Include="bin/Pub_Control.dll">
-      <publishTime>04/29/2026 16:46:10</publishTime>
+      <publishTime>05/07/2026 15:08:01</publishTime>
     </File>
     <File Include="bin/Pub_Control.pdb">
-      <publishTime>04/29/2026 16:46:10</publishTime>
+      <publishTime>05/07/2026 15:08:01</publishTime>
     </File>
     <File Include="bin/RestSharp.dll">
       <publishTime>08/31/2012 06:22:50</publishTime>
     </File>
     <File Include="bin/SQLHelper.dll">
-      <publishTime>04/29/2026 16:46:10</publishTime>
+      <publishTime>05/07/2026 15:08:01</publishTime>
     </File>
     <File Include="bin/SQLHelper.pdb">
-      <publishTime>04/29/2026 16:46:10</publishTime>
+      <publishTime>05/07/2026 15:08:01</publishTime>
     </File>
     <File Include="bin/Swashbuckle.Core.dll">
       <publishTime>02/16/2015 01:57:08</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.dll">
-      <publishTime>04/29/2026 16:46:06</publishTime>
+      <publishTime>05/07/2026 15:07:57</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.pdb">
-      <publishTime>04/29/2026 16:46:06</publishTime>
+      <publishTime>05/07/2026 15:07:57</publishTime>
     </File>
     <File Include="bin/System.Buffers.dll">
       <publishTime>07/19/2017 18:01:28</publishTime>
@@ -330,22 +333,22 @@
       <publishTime>05/09/2023 10:43:40</publishTime>
     </File>
     <File Include="bin/TopSdk.dll">
-      <publishTime>04/29/2026 16:46:12</publishTime>
+      <publishTime>05/07/2026 15:08:03</publishTime>
     </File>
     <File Include="bin/TopSdk.pdb">
-      <publishTime>04/29/2026 16:46:12</publishTime>
+      <publishTime>05/07/2026 15:08:03</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>04/29/2026 16:46:25</publishTime>
+      <publishTime>05/07/2026 15:08:16</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>04/29/2026 16:46:25</publishTime>
+      <publishTime>05/07/2026 15:08:16</publishTime>
     </File>
     <File Include="bin/WebAPI.XmlSerializers.dll">
-      <publishTime>04/29/2026 16:46:42</publishTime>
+      <publishTime>05/07/2026 15:08:30</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
@@ -450,7 +453,7 @@
       <publishTime>04/21/2025 11:46:16</publishTime>
     </File>
     <File Include="packages.config">
-      <publishTime>03/24/2026 16:14:20</publishTime>
+      <publishTime>05/06/2026 17:10:37</publishTime>
     </File>
     <File Include="Properties/PublishProfiles/JFAPI.pubxml.user">
       <publishTime>12/07/2025 12:01:10</publishTime>
@@ -570,13 +573,16 @@
       <publishTime>04/21/2025 11:46:17</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>04/29/2026 16:47:03</publishTime>
+      <publishTime>05/07/2026 15:08:36</publishTime>
+    </File>
+    <File Include="ZPLTemplate/娴嬭瘯.zpl">
+      <publishTime>05/07/2026 10:57:35</publishTime>
     </File>
     <File Include="ZPLTemplate/鐗╂枡鏉$爜 100脳60.zpl">
-      <publishTime>04/28/2026 17:03:29</publishTime>
+      <publishTime>05/06/2026 08:26:31</publishTime>
     </File>
     <File Include="ZPLTemplate/鐗╂枡鏉$爜 80脳60.zpl">
-      <publishTime>04/28/2026 09:32:53</publishTime>
+      <publishTime>05/07/2026 14:00:46</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 24309d2..d131f85 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -420,6 +420,7 @@
     </Content>
     <Content Include="ZPLTemplate\鐗╂枡鏉$爜 80脳60.zpl" />
     <Content Include="ZPLTemplate\鐗╂枡鏉$爜 100脳60.zpl" />
+    <Content Include="ZPLTemplate\娴嬭瘯.zpl" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="App_Start\BundleConfig.cs" />
diff --git "a/WebAPI/ZPLTemplate/\346\265\213\350\257\225.zpl" "b/WebAPI/ZPLTemplate/\346\265\213\350\257\225.zpl"
new file mode 100644
index 0000000..cb6539f
--- /dev/null
+++ "b/WebAPI/ZPLTemplate/\346\265\213\350\257\225.zpl"
@@ -0,0 +1,72 @@
+^XA
+^LL480
+^PW640
+^FO0,0^GB640,480,2^FS
+
+^SEE:UNICODE.DAT^FS
+^CWJ,E:simsun-18030.ttf^FS
+
+// 绗�1琛� 缂栫爜(P)
+^FO0,0^GB120,53,1^FS
+^FO10,16^AJN,20,20^CI28^FD缂栫爜(P)^FS
+^FO120,0^GB300,53,1^FS
+^FO130,16^AJN,20,20^CI28^FD{{ 鐗╂枡浠g爜 }}^FS
+
+// 绗�2琛� 鐢熶骇鏃ユ湡
+^FO0,53^GB120,53,1^FS
+^FO10,69^AJN,20,20^CI28^FD鐢熶骇鏃ユ湡^FS
+^FO120,53^GB300,53,1^FS
+^FO130,69^AJN,20,20^CI28^FD{{ 鐢熶骇鏃ユ湡 }}^FS
+
+// 绗�3琛� 瀹㈡埛璁㈠崟鍙�
+^FO0,106^GB120,53,1^FS
+^FO10,122^AJN,20,20^CI28^FD瀹㈡埛璁㈠崟鍙穅FS
+^FO120,106^GB300,53,1^FS
+^FO130,122^AJN,20,20^CI28^FD{{ 瀹㈡埛璁㈠崟鍙� }}^FS
+
+// 绗�4琛� 閲囪喘璺熻釜鍙�
+^FO0,159^GB120,53,1^FS
+^FO10,175^AJN,20,20^CI28^FD閲囪喘璺熻釜鍙穅FS
+^FO120,159^GB300,53,1^FS
+^FO130,175^AJN,20,20^CI28^FD{{ 閲囪喘璺熻釜鍙� }}^FS
+
+// QR鐮� 浣嶇疆涓嶅彉
+^FO465,35^BQN,2,5^CI28^FDQA,{{ 鏉$爜缂栧彿 }}^FS
+
+// 绗�5琛� 鍚嶇О/鏁伴噺/鍗曚綅
+^FO0,212^GB120,53,1^FS
+^FO10,228^AJN,20,20^CI28^FD鍚嶇О(N)^FS
+^FO120,212^GB300,53,1^FS
+^FO130,228^AJN,20,20^CI28^TBN,300,53^FD{{ 鐗╂枡鍚嶇О }}^FS
+^FO420,212^GB60,53,1^FS
+^FO430,228^AJN,20,20^CI28^FD鏁伴噺^FS
+^FO480,212^GB80,53,1^FS
+^FO470,228^AJN,20,20^CI28^FD{{ 鏁伴噺 }}^FS
+^FO560,212^GB80,53,1^FS
+^FO570,228^AJN,20,20^CI28^FD{{ 璁¢噺鍗曚綅 }}^FS
+
+// 绗�6琛� 瑙勬牸鍨嬪彿
+^FO0,265^GB120,53,1^FS
+^FO10,281^AJN,20,20^CI28^FD瑙勬牸鍨嬪彿^FS
+^FO120,265^GB520,53,1^FS
+^FO130,281^AJN,20,20^CI28^FD{{ 瑙勬牸鍨嬪彿 }}^FS
+
+// 绗�7琛� 浜у搧鍨嬪彿
+^FO0,318^GB120,53,1^FS
+^FO10,334^AJN,20,20^CI28^FD浜у搧鍨嬪彿^FS
+^FO120,318^GB520,53,1^FS
+^FO130,334^AJN,20,20^CI28^FD{{ 浜у搧鍨嬪彿 }}^FS
+
+// 绗�8琛� 渚涘簲鍟�
+^FO0,371^GB120,53,1^FS
+^FO10,387^AJN,20,20^CI28^FD渚涘簲鍟哵FS
+^FO120,371^GB520,53,1^FS
+^FO130,387^AJN,20,20^CI28^FD{{ 渚涘簲鍟� }}^FS
+
+// 绗�9琛� UPN 搴曢儴椤舵弧480
+^FO0,424^GB120,56,1^FS
+^FO10,444^AJN,20,20^CI28^FDUPN^FS
+^FO120,424^GB520,56,1^FS
+^FO130,444^AJN,20,20^CI28^FD{{ 鏉$爜缂栧彿 }}^FS
+
+^XZ
\ No newline at end of file
diff --git "a/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 100\303\22760.zpl" "b/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 100\303\22760.zpl"
index 2a316f7..5fe8c60 100644
--- "a/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 100\303\22760.zpl"
+++ "b/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 100\303\22760.zpl"
@@ -6,60 +6,58 @@
 ^SEE:UNICODE.DAT^FS
 ^CWJ,E:simsun-18030.ttf^FS
 
-^FO0,0^GB540,60,1^FS
 ^FO0,0^GB120,60,1^FS
 ^FO10,24^AJN,20,20^CI28^FD缂栫爜(P)^FS
+^FO120,0^GB420,60,1^FS
 ^FO130,24^AJN,20,20^CI28^FD{{ 鐗╂枡浠g爜 }}^FS
 
-^FO0,60^GB540,60,1^FS
 ^FO0,60^GB120,60,1^FS
 ^FO10,84^AJN,20,20^CI28^FD鐢熶骇鏃ユ湡^FS
+^FO120,60^GB420,60,1^FS
 ^FO130,84^AJN,20,20^CI28^FD{{ 鐢熶骇鏃ユ湡 }}^FS
 
-^FO0,120^GB540,60,1^FS
 ^FO0,120^GB120,60,1^FS
 ^FO10,144^AJN,20,20^CI28^FD瀹㈡埛璁㈠崟鍙穅FS
+^FO120,120^GB420,60,1^FS
 ^FO130,144^AJN,20,20^CI28^FD{{ 瀹㈡埛璁㈠崟鍙� }}^FS
 
-^FO0,180^GB540,60,1^FS
 ^FO0,180^GB120,60,1^FS
 ^FO10,204^AJN,20,20^CI28^FD閲囪喘璺熻釜鍙穅FS
+^FO120,180^GB420,60,1^FS
 ^FO130,204^AJN,20,20^CI28^FD{{ 閲囪喘璺熻釜鍙� }}^FS
 
 // 浜岀淮鐮侊細淇濇寔浣犲師鏉ュぇ灏忋�佷綅缃� 涓嶅彉
 ^FO600,40^BQN,2,5^CI28^FDQA,{{ 鏉$爜缂栧彿 }}^FS
 
-^FO0,240^GB800,60,1^FS
 ^FO0,240^GB120,60,1^FS
-
-
-^FO460,240^GB100,60,1^FS
-^FO680,240^GB120,60,1^FS
-
 ^FO10,260^AJN,20,20^CI28^FD鍚嶇О(N)^FS
+^FO120,240^GB420,60,1^FS
 ^FO130,260^AJN,20,20^CI28^FD{{ 鐗╂枡鍚嶇О }}^FS
-^FO480,260^AJN,20,20^CI28^FD鏁伴噺^FS
-^FO580,260^AJN,20,20^CI28^FD{{ 鏁伴噺 }}^FS
-^FO680,260^AJN,20,20^CI28^FD{{ 璁¢噺鍗曚綅 }}^FS
+^FO540,240^GB80,60,1^FS
+^FO550,260^AJN,20,20^CI28^FD鏁伴噺^FS
+^FO620,240^GB100,60,1^FS
+^FO630,260^AJN,20,20^CI28^FD{{ 鏁伴噺 }}^FS
+^FO720,240^GB80,60,1^FS
+^FO730,260^AJN,20,20^CI28^FD{{ 璁¢噺鍗曚綅 }}^FS
 
-^FO0,300^GB800,50,1^FS
 ^FO0,300^GB120,50,1^FS
 ^FO10,315^AJN,20,20^CI28^FD瑙勬牸鍨嬪彿^FS
+^FO120,300^GB680,50,1^FS
 ^FO130,315^AJN,20,20^CI28^FD{{ 瑙勬牸鍨嬪彿 }}^FS
 
-^FO0,350^GB800,50,1^FS
 ^FO0,350^GB120,50,1^FS
 ^FO10,365^AJN,20,20^CI28^FD浜у搧鍨嬪彿^FS
+^FO120,350^GB680,50,1^FS
 ^FO130,365^AJN,20,20^CI28^FD{{ 浜у搧鍨嬪彿 }}^FS
 
-^FO0,400^GB800,50,1^FS
 ^FO0,400^GB120,50,1^FS
 ^FO10,415^AJN,20,20^CI28^FD渚涘簲鍟哵FS
+^FO120,400^GB680,50,1^FS
 ^FO130,415^AJN,20,20^CI28^FD{{ 渚涘簲鍟� }}^FS
 
-^FO0,450^GB800,30,1^FS
 ^FO0,450^GB120,30,1^FS
 ^FO10,460^AJN,18,18^CI28^FDUPN^FS
+^FO120,450^GB680,30,1^FS
 ^FO130,460^AJN,18,18^CI28^FD{{ 鏉$爜缂栧彿 }}^FS
 
 ^XZ
\ No newline at end of file
diff --git "a/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 80\303\22760.zpl" "b/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 80\303\22760.zpl"
index 17b69b0..f496e75 100644
--- "a/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 80\303\22760.zpl"
+++ "b/WebAPI/ZPLTemplate/\347\211\251\346\226\231\346\235\241\347\240\201 80\303\22760.zpl"
@@ -1,75 +1,72 @@
 ^XA
-^LL480          // 鏍囩楂樺害锛�60mm @ 203DPI 鈮� 480 dots
-^PW640          // 鏍囩瀹藉害锛�80mm @ 203DPI 鈮� 640 dots
-^FO0,0^GB640,480,2^FS // 澶栨绾�
-//////////////////////////
-// 缁熶竴浣跨敤 simsun-18030 涓枃瀛椾綋
-//////////////////////////
+^LL480
+^PW640
+^FO0,0^GB640,480,2^FS
+
+^SEE:UNICODE.DAT^FS
 ^CWJ,E:simsun-18030.ttf^FS
-// ========== 绗�1-4琛岋細宸︿晶鏂囨湰鍖� + 鍙充晶QR鐮� ==========
+
 // 绗�1琛� 缂栫爜(P)
-^FO0,0^GB420,60,1^FS
-^FO0,0^GB120,60,1^FS
-^FO10,24^AJN,20,20^CI28^FD缂栫爜(P)^FS
-^FO130,24^AJN,20,20^CI28^FD{{ 鐗╂枡浠g爜 }}^FS
+^FO0,0^GB120,53,1^FS
+^FO10,16^AJN,20,20^CI28^FD缂栫爜(P)^FS
+^FO120,0^GB300,53,1^FS
+^FO130,16^AJN,20,20^CI28^FD{{ 鐗╂枡浠g爜 }}^FS
 
 // 绗�2琛� 鐢熶骇鏃ユ湡
-^FO0,60^GB420,60,1^FS
-^FO0,60^GB120,60,1^FS
-^FO10,84^AJN,20,20^CI28^FD鐢熶骇鏃ユ湡^FS
-^FO130,84^AJN,20,20^CI28^FD{{ 鐢熶骇鏃ユ湡 }}^FS
+^FO0,53^GB120,53,1^FS
+^FO10,69^AJN,20,20^CI28^FD鐢熶骇鏃ユ湡^FS
+^FO120,53^GB300,53,1^FS
+^FO130,69^AJN,20,20^CI28^FD{{ 鐢熶骇鏃ユ湡 }}^FS
 
 // 绗�3琛� 瀹㈡埛璁㈠崟鍙�
-^FO0,120^GB420,60,1^FS
-^FO0,120^GB120,60,1^FS
-^FO10,144^AJN,20,20^CI28^FD瀹㈡埛璁㈠崟鍙穅FS
-^FO130,144^AJN,20,20^CI28^FD{{ 瀹㈡埛璁㈠崟鍙� }}^FS
+^FO0,106^GB120,53,1^FS
+^FO10,122^AJN,20,20^CI28^FD瀹㈡埛璁㈠崟鍙穅FS
+^FO120,106^GB300,53,1^FS
+^FO130,122^AJN,20,20^CI28^FD{{ 瀹㈡埛璁㈠崟鍙� }}^FS
 
 // 绗�4琛� 閲囪喘璺熻釜鍙�
-^FO0,180^GB420,60,1^FS
-^FO0,180^GB120,60,1^FS
-^FO10,204^AJN,20,20^CI28^FD閲囪喘璺熻釜鍙穅FS
-^FO130,204^AJN,20,20^CI28^FD{{ 閲囪喘璺熻釜鍙� }}^FS
+^FO0,159^GB120,53,1^FS
+^FO10,175^AJN,20,20^CI28^FD閲囪喘璺熻釜鍙穅FS
+^FO120,159^GB300,53,1^FS
+^FO130,175^AJN,20,20^CI28^FD{{ 閲囪喘璺熻釜鍙� }}^FS
 
-// QR鐮侊紙鍙充晶鍖哄煙锛�
-^FO450,40^BQN,2,6^CI28^FDQA,{{ 鏉$爜缂栧彿 }}^FS
+// QR鐮� 浣嶇疆涓嶅彉
+^FO465,35^BQN,2,5^CI28^FDQA,{{ 鏉$爜缂栧彿 }}^FS
 
-// ========== 绗�5琛岋細鍚嶇О/鏁伴噺/鍗曚綅 ==========
-^FO0,240^GB640,60,1^FS
-^FO0,240^GB120,60,1^FS   // 鍚嶇О(N)鍒�
-^FO120,240^GB240,60,1^FS // 鐗╂枡鍚嶇О鍒�
-^FO360,240^GB100,60,1^FS // 鏁伴噺鍒�
-^FO460,240^GB100,60,1^FS // 鏁板�煎垪
-^FO560,240^GB80,60,1^FS  // 鍗曚綅鍒�
+// 绗�5琛� 鍚嶇О/鏁伴噺/鍗曚綅
+^FO0,212^GB120,53,1^FS
+^FO10,228^AJN,20,20^CI28^FD鍚嶇О(N)^FS
+^FO120,212^GB300,53,1^FS
+^FO130,228^AJN,20,20^CI28^TBN,300,53^FD{{ 鐗╂枡鍚嶇О }}^FS
+^FO420,212^GB60,53,1^FS
+^FO430,228^AJN,20,20^CI28^FD鏁伴噺^FS
+^FO480,212^GB80,53,1^FS
+^FO485,228^AJN,20,20^CI28^FD{{ 鏁伴噺 }}^FS
+^FO560,212^GB80,53,1^FS
+^FO570,228^AJN,20,20^CI28^FD{{ 璁¢噺鍗曚綅 }}^FS
 
-^FO10,260^AJN,20,20^CI28^FD鍚嶇О(N)^FS
-^FO130,260^AJN,20,20^CI28^FD{{ 鐗╂枡鍚嶇О }}^FS
-^FO370,260^AJN,20,20^CI28^FD鏁伴噺^FS
-^FO470,260^AJN,20,20^CI28^FD{{ 鏁伴噺 }}^FS
-^FO570,260^AJN,20,20^CI28^FD{{ 璁¢噺鍗曚綅 }}^FS
+// 绗�6琛� 瑙勬牸鍨嬪彿
+^FO0,265^GB120,53,1^FS
+^FO10,281^AJN,20,20^CI28^FD瑙勬牸鍨嬪彿^FS
+^FO120,265^GB520,53,1^FS
+^FO130,281^AJN,20,20^CI28^FD{{ 瑙勬牸鍨嬪彿 }}^FS
 
-// ========== 绗�6琛岋細瑙勬牸鍨嬪彿 ==========
-^FO0,300^GB640,60,1^FS
-^FO0,300^GB120,60,1^FS
-^FO10,320^AJN,20,20^CI28^FD瑙勬牸鍨嬪彿^FS
-^FO130,320^AJN,20,20^CI28^FD{{ 瑙勬牸鍨嬪彿 }}^FS
+// 绗�7琛� 浜у搧鍨嬪彿
+^FO0,318^GB120,53,1^FS
+^FO10,334^AJN,20,20^CI28^FD浜у搧鍨嬪彿^FS
+^FO120,318^GB520,53,1^FS
+^FO130,334^AJN,20,20^CI28^FD{{ 浜у搧鍨嬪彿 }}^FS
 
-// ========== 绗�7琛岋細浜у搧鍨嬪彿 ==========
-^FO0,360^GB640,60,1^FS
-^FO0,360^GB120,60,1^FS
-^FO10,380^AJN,20,20^CI28^FD浜у搧鍨嬪彿^FS
-^FO130,380^AJN,20,20^CI28^FD{{ 浜у搧鍨嬪彿 }}^FS
+// 绗�8琛� 渚涘簲鍟�
+^FO0,371^GB120,53,1^FS
+^FO10,387^AJN,20,20^CI28^FD渚涘簲鍟哵FS
+^FO120,371^GB520,53,1^FS
+^FO130,387^AJN,20,20^CI28^FD{{ 渚涘簲鍟� }}^FS
 
-// ========== 绗�8琛岋細渚涘簲鍟� ==========
-^FO0,420^GB640,60,1^FS
-^FO0,420^GB120,60,1^FS
-^FO10,440^AJN,20,20^CI28^FD渚涘簲鍟哵FS
-^FO130,440^AJN,20,20^CI28^FD{{ 渚涘簲鍟� }}^FS
-
-// ========== 绗�9琛岋細UPN ==========
-^FO0,480^GB640,60,1^FS
-^FO0,480^GB120,60,1^FS
-^FO10,500^AJN,20,20^CI28^FDUPN^FS
-^FO130,500^AJN,20,20^CI28^FD{{ 鏉$爜缂栧彿 }}^FS
+// 绗�9琛� UPN 搴曢儴椤舵弧480
+^FO0,424^GB120,56,1^FS
+^FO10,444^AJN,20,20^CI28^FDUPN^FS
+^FO120,424^GB520,56,1^FS
+^FO130,444^AJN,20,20^CI28^FD{{ 鏉$爜缂栧彿 }}^FS
 
 ^XZ
\ No newline at end of file
diff --git a/sdk_dingding/TopSdk/bin/Release/TopSdk.dll b/sdk_dingding/TopSdk/bin/Release/TopSdk.dll
deleted file mode 100644
index 22327be..0000000
--- a/sdk_dingding/TopSdk/bin/Release/TopSdk.dll
+++ /dev/null
Binary files differ
diff --git a/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb b/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb
deleted file mode 100644
index a42c21b..0000000
--- a/sdk_dingding/TopSdk/bin/Release/TopSdk.pdb
+++ /dev/null
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache b/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache
deleted file mode 100644
index afa8882..0000000
--- a/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.AssemblyReference.cache
+++ /dev/null
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.CoreCompileInputs.cache b/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.CoreCompileInputs.cache
deleted file mode 100644
index 0312216..0000000
--- a/sdk_dingding/TopSdk/obj/Release/TopSdk.csproj.CoreCompileInputs.cache
+++ /dev/null
@@ -1 +0,0 @@
-eb64bc61f5da8fdd8ad56e04c391e3a377d8ca59
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.dll b/sdk_dingding/TopSdk/obj/Release/TopSdk.dll
deleted file mode 100644
index 22327be..0000000
--- a/sdk_dingding/TopSdk/obj/Release/TopSdk.dll
+++ /dev/null
Binary files differ
diff --git a/sdk_dingding/TopSdk/obj/Release/TopSdk.pdb b/sdk_dingding/TopSdk/obj/Release/TopSdk.pdb
deleted file mode 100644
index a42c21b..0000000
--- a/sdk_dingding/TopSdk/obj/Release/TopSdk.pdb
+++ /dev/null
Binary files differ

--
Gitblit v1.9.1