From 06e105234f820a2e791cac3e6c7012cc8bf4d905 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 06 五月 2026 17:10:06 +0800
Subject: [PATCH] ZPL 打印模板 新增自动换行功能

---
 WebAPI/ZPLTemplate/物料条码 80×60.zpl                              |  113 +++++++++++-----------
 WebAPI/WebAPI.csproj.user                                      |    3 
 WebAPI/ZPLTemplate/物料条码 100×60.zpl                             |   32 +++---
 WebAPI/Controllers/WebAPIController.cs                         |   98 +++++++++++++++++--
 WebAPI/App_Start/WebApiConfig.cs                               |    8 -
 WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user |   46 ++++----
 6 files changed, 180 insertions(+), 120 deletions(-)

diff --git a/WebAPI/App_Start/WebApiConfig.cs b/WebAPI/App_Start/WebApiConfig.cs
index 2d52a8a..d325d60 100644
--- a/WebAPI/App_Start/WebApiConfig.cs
+++ b/WebAPI/App_Start/WebApiConfig.cs
@@ -31,21 +31,13 @@
                 defaults: new { id = RouteParameter.Optional }
             );
             // 娉ㄥ唽绛惧悕
-<<<<<<< HEAD
             //config.Filters.Add(new SignatureVerifyAttribute());
             //// 鍏ㄥ眬鍚敤 JWT 璁よ瘉
             //config.Filters.Add(new JwtAuthorizeAttribute());
 
             //// 鍚敤JWT鍝嶅簲鎷︽埅鍣紝鑷姩鍒锋柊JWT
             //config.MessageHandlers.Add(new TokenAppendHandler());
-=======
-            // config.Filters.Add(new SignatureVerifyAttribute());
-            //// 鍏ㄥ眬鍚敤 JWT 璁よ瘉
-            // config.Filters.Add(new JwtAuthorizeAttribute());
 
-            //// 鍚敤JWT鍝嶅簲鎷︽埅鍣紝鑷姩鍒锋柊JWT
-            // config.MessageHandlers.Add(new TokenAppendHandler());
->>>>>>> ce72deb4068917547d97c3e8991dde8772728d25
         }
     }
 }
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index c001130..6c68f9e 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -24129,6 +24129,11 @@
             // 鍖归厤 {{ 瀛楁鍚� }} 鎵�闇�姝e垯琛ㄨ揪寮� 鏀寔涓枃
             var regex = new Regex(@"{{\s*([\u4e00-\u9fa5a-zA-Z0-9_\s]+?)\s*}}", RegexOptions.Compiled);
 
+            // 鍖归厤 鐭╁舰妗� 浣嶇疆 瀹介珮 鎵�闇�姝e垯琛ㄨ揪寮�
+            var RectRegex = new Regex(@"^\^FO(\d+),(\d+)\^GB(\d+),(\d+)", RegexOptions.Compiled);
+            // 鍖归厤 妯℃澘瀛楃涓� 鎵�鍦ㄨ 浣嶇疆 瀹介珮 鎵�闇�姝e垯琛ㄨ揪寮� 鏀寔涓枃
+            var fieldRegex = new Regex(@"\^FO(\d+),(\d+)\^A[A-Z]+,(\d+),(\d+).*\{\{\s*([\u4e00-\u9fa5a-zA-Z0-9_\s]+?)\s*}\}", RegexOptions.Compiled);
+
             if (ptMode == "ZPL")
             {
                 suffix = ".zpl";
@@ -24201,6 +24206,7 @@
                         {
                             string currentLine = lines[i];
                             string preLine = "";
+                            string concatStr = "";
                             if(i>0)
                             {
                                 // 鑾峰彇褰撳墠琛岀殑涓婁竴琛岋紝鐢ㄤ簬鍒ゆ柇鏄惁鏄煩褰㈡
@@ -24213,20 +24219,26 @@
                                 continue;
                             }
 
-
-                            // 姝e垯琛ㄨ揪寮忓尮閰� {{ 瀛楁鍚� }} 鎵�鍦ㄨ鐨勫瓧娈碉紝濡傛灉鏈夛紝鍒欒繘琛屾浛鎹紝娌℃湁锛屽垯榛樿涓虹┖瀛楃涓�
-                            currentLine = regex.Replace(currentLine, match =>
+                            // 鍒ゆ柇鐭╁舰妗嗭紝濡傛灉鍓嶄竴琛屾槸鐭╁舰妗嗭紝鍒欓渶鍒ゆ柇璇ヨ瀛楃涓查暱搴︽槸鍚﹁秴闀�
+                            if(!getConcatStr(rectRegex: RectRegex, fieldRegex: fieldRegex,
+                                PreLine: preLine, CurrLine: currentLine, fieldObject: item, 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);
+
+                            
+                            // 灏嗘墍鏈� \n 鐨勬崲琛岀 鏇挎崲涓� \r\n
+                            sb.Append(concatStr);
                             sb.Append("\r\n"); // 鏍囧噯鎹㈣
                         }
                     }
@@ -24251,6 +24263,69 @@
             }
 
         }
+
+        private bool getConcatStr(Regex rectRegex, Regex fieldRegex,
+            string PreLine, string CurrLine, JObject fieldObject, ref string concatStr)
+        {
+            var rectRegexResult = rectRegex.Match(PreLine);
+            var fieldRegexResult = fieldRegex.Match(CurrLine);
+            if (!rectRegexResult.Success)
+            {
+                return false;
+            }
+
+            if(!fieldRegexResult.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);
+
+            // 妯℃澘瀛楃涓� 浣嶇疆 瀛楃瀹介珮
+            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);
+            string fieldName = fieldRegexResult.Groups[5].Value;
+
+            string fieldValue = fieldObject[fieldName].ToString() ?? "";
+            if(string.IsNullOrWhiteSpace(fieldValue))
+            {
+                return false;
+            }
+
+            if(fieldValue.Length * fieldWidth > rectWidth)
+            {
+                // 瀛楃涓查暱搴﹀ぇ浜庣煩褰㈢殑鏈�澶ч暱搴� 鍒欐枃鏈渶瑕佷粠鐭╁舰鐨刌浣嶇疆寮�濮嬫覆鏌�
+                fieldLocationY = rectLocationY;
+                // 鑾峰彇鎹㈣鎵�闇�鐨勮鏁�
+                int lineCount = int.Parse(Math.Ceiling((float)fieldValue.Length / fieldWidth).ToString());
+                
+                // 璁$畻鎹㈣鍚庣殑鏈�澶ц鏁� * 瀛楃楂樺害 鏄惁澶т簬鐭╁舰鏈�澶ч珮搴�
+                if(lineCount * fieldHeight > rectHeight)
+                {
+                    fieldWidth = int.Parse(Math.Floor((float)fieldHeight / lineCount).ToString());
+                    fieldHeight = int.Parse(Math.Floor((float)fieldHeight / lineCount).ToString());
+                }
+
+                for(uint i=0;i<lineCount; i++)
+                {
+                    concatStr += fieldRegex.Replace(CurrLine, match =>
+                    {
+                        return "";
+                    });
+                }
+
+            }
+
+            return true;
+
+        }
+        #endregion
         [HttpGet]
         [Route("Web/getSysParameter")]
         public object getSysParameter(string HClientID)
@@ -24296,4 +24371,3 @@
         }
     }
 }
-#endregion
\ No newline at end of file
diff --git a/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user b/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user
index 95ca48b..33ff9f9 100644
--- a/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/CHZFolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
-    <History>True|2026-04-30T02:18:53.7822827Z;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>
+    <History>True|2026-05-06T05:11:25.9234523Z;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">
@@ -45,28 +45,28 @@
       <publishTime>02/22/2013 16:43:40</publishTime>
     </File>
     <File Include="bin/BLL.dll">
-      <publishTime>04/30/2026 10:15:56</publishTime>
+      <publishTime>05/06/2026 13:09:12</publishTime>
     </File>
     <File Include="bin/BLL.pdb">
-      <publishTime>04/30/2026 10:15:56</publishTime>
+      <publishTime>05/06/2026 13:09:12</publishTime>
     </File>
     <File Include="bin/BouncyCastle.Crypto.dll">
       <publishTime>12/18/2020 05:32:28</publishTime>
     </File>
     <File Include="bin/DAL.dll">
-      <publishTime>04/30/2026 10:15:55</publishTime>
+      <publishTime>05/06/2026 13:09:10</publishTime>
     </File>
     <File Include="bin/DAL.pdb">
-      <publishTime>04/30/2026 10:15:55</publishTime>
+      <publishTime>05/06/2026 13:09:10</publishTime>
     </File>
     <File Include="bin/Dapper.dll">
       <publishTime>07/22/2016 22:52:40</publishTime>
     </File>
     <File Include="bin/DBUtility.dll">
-      <publishTime>04/30/2026 10:15:51</publishTime>
+      <publishTime>05/06/2026 13:09:07</publishTime>
     </File>
     <File Include="bin/DBUtility.pdb">
-      <publishTime>04/30/2026 10:15:51</publishTime>
+      <publishTime>05/06/2026 13:09:07</publishTime>
     </File>
     <File Include="bin/Fleck.dll">
       <publishTime>04/22/2021 11:48:12</publishTime>
@@ -150,10 +150,10 @@
       <publishTime>07/25/2012 19:48:56</publishTime>
     </File>
     <File Include="bin/Model.dll">
-      <publishTime>04/30/2026 10:15:52</publishTime>
+      <publishTime>05/06/2026 13:09:07</publishTime>
     </File>
     <File Include="bin/Model.pdb">
-      <publishTime>04/30/2026 10:15:52</publishTime>
+      <publishTime>05/06/2026 13:09:07</publishTime>
     </File>
     <File Include="bin/Models/ClsSc_MouldScrapOutBillMain.cs">
       <publishTime>04/21/2025 11:46:16</publishTime>
@@ -189,34 +189,34 @@
       <publishTime>11/13/2012 20:19:34</publishTime>
     </File>
     <File Include="bin/Pub_Class.dll">
-      <publishTime>04/30/2026 10:15:49</publishTime>
+      <publishTime>05/06/2026 13:09:05</publishTime>
     </File>
     <File Include="bin/Pub_Class.pdb">
-      <publishTime>04/30/2026 10:15:49</publishTime>
+      <publishTime>05/06/2026 13:09:05</publishTime>
     </File>
     <File Include="bin/Pub_Control.dll">
-      <publishTime>04/30/2026 10:15:50</publishTime>
+      <publishTime>05/06/2026 13:09:06</publishTime>
     </File>
     <File Include="bin/Pub_Control.pdb">
-      <publishTime>04/30/2026 10:15:50</publishTime>
+      <publishTime>05/06/2026 13:09:06</publishTime>
     </File>
     <File Include="bin/RestSharp.dll">
       <publishTime>08/31/2012 06:22:50</publishTime>
     </File>
     <File Include="bin/SQLHelper.dll">
-      <publishTime>04/30/2026 10:15:50</publishTime>
+      <publishTime>05/06/2026 13:09:06</publishTime>
     </File>
     <File Include="bin/SQLHelper.pdb">
-      <publishTime>04/30/2026 10:15:50</publishTime>
+      <publishTime>05/06/2026 13:09:06</publishTime>
     </File>
     <File Include="bin/Swashbuckle.Core.dll">
       <publishTime>02/16/2015 01:57:08</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.dll">
-      <publishTime>04/30/2026 10:15:47</publishTime>
+      <publishTime>05/06/2026 13:09:04</publishTime>
     </File>
     <File Include="bin/SyntacticSugar.pdb">
-      <publishTime>04/30/2026 10:15:47</publishTime>
+      <publishTime>05/06/2026 13:09:04</publishTime>
     </File>
     <File Include="bin/System.Buffers.dll">
       <publishTime>07/19/2017 18:01:28</publishTime>
@@ -330,22 +330,22 @@
       <publishTime>05/09/2023 10:43:40</publishTime>
     </File>
     <File Include="bin/TopSdk.dll">
-      <publishTime>04/30/2026 10:15:50</publishTime>
+      <publishTime>05/06/2026 13:09:07</publishTime>
     </File>
     <File Include="bin/TopSdk.pdb">
-      <publishTime>04/30/2026 10:15:50</publishTime>
+      <publishTime>05/06/2026 13:09:07</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>11/24/2014 19:18:48</publishTime>
     </File>
     <File Include="bin/WebAPI.dll">
-      <publishTime>04/30/2026 10:16:05</publishTime>
+      <publishTime>05/06/2026 13:11:15</publishTime>
     </File>
     <File Include="bin/WebAPI.pdb">
-      <publishTime>04/30/2026 10:16:05</publishTime>
+      <publishTime>05/06/2026 13:11:15</publishTime>
     </File>
     <File Include="bin/WebAPI.XmlSerializers.dll">
-      <publishTime>04/30/2026 10:16:30</publishTime>
+      <publishTime>05/06/2026 13:11:23</publishTime>
     </File>
     <File Include="bin/WebGrease.dll">
       <publishTime>07/18/2013 01:03:52</publishTime>
@@ -570,7 +570,7 @@
       <publishTime>04/21/2025 11:46:17</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>04/30/2026 10:18:52</publishTime>
+      <publishTime>05/06/2026 13:11:24</publishTime>
     </File>
     <File Include="ZPLTemplate/鐗╂枡鏉$爜 100脳60.zpl">
       <publishTime>04/28/2026 17:03:29</publishTime>
diff --git a/WebAPI/WebAPI.csproj.user b/WebAPI/WebAPI.csproj.user
index dc2a448..1a9181f 100644
--- a/WebAPI/WebAPI.csproj.user
+++ b/WebAPI/WebAPI.csproj.user
@@ -18,8 +18,7 @@
     <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
     <NameOfLastUsedPublishProfile>D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
     <NameOfLastUsedPublishProfile>D:\缃戠珯鍙戝竷\鍚庣浠g爜\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
-    <NameOfLastUsedPublishProfile>C:\Users\19858\Desktop\鏅轰簯杩堟�漒MES-WEB-API\WebAPI\Properties\PublishProfiles\WTTFolder.pubxml</NameOfLastUsedPublishProfile>
-
+    <NameOfLastUsedPublishProfile>D:\WorkBench\MES-WEB-API\WebAPI\Properties\PublishProfiles\CHZFolderProfile.pubxml</NameOfLastUsedPublishProfile>
   </PropertyGroup>
   <ProjectExtensions>
     <VisualStudio>
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..cb6539f 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
+^FO470,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

--
Gitblit v1.9.1