From 68b98170b5532abd258494bb8b6a0c2c4c48d6d5 Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期一, 29 十二月 2025 13:03:39 +0800
Subject: [PATCH] 添加夏宝桌面端调拨退料条码生成模块;

---
 WarM/条码打印/Gy_BarCodeBill_XiaBao.cs                  |  117 ++++++++++++++++++++++++++++++++++------------------------
 WebAPI/Controllers/BaseSet/Gy_MaterialController.cs |    2 
 2 files changed, 70 insertions(+), 49 deletions(-)

diff --git "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_XiaBao.cs" "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_XiaBao.cs"
index c02460a..033956e 100644
--- "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_XiaBao.cs"
+++ "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_XiaBao.cs"
@@ -8,6 +8,7 @@
 using gregn6Lib;
 using Pub_Class;
 using System.Threading;
+using System.Text.RegularExpressions;
 
 namespace WarM
 {
@@ -37,51 +38,53 @@
         public const Int16 HBarCodeTypeCol = 16;
         public const Int16 HQtyCol = 17;
         public const Int16 HMinQtyCol = 18;
-        public const Int16 HBQtyCol = 19;
-        public const Int16 HinitQtyCol = 20;
-        public const Int16 HISKFPERIODCol = 21;
-        public const Int16 HProduceDateCol = 22;
-        public const Int16 HExpiryDateCol = 23;
-        public const Int16 HEXPUNITCol = 24;
-        public const Int16 HEXPPERIODCol = 25;
-        public const Int16 HGiveAwayFlagCol = 26;
-        public const Int16 HUnitIDCol = 27;
-        public const Int16 HUnitNumberCol = 28;
-        public const Int16 HUnitNameCol = 29;
-        public const Int16 HWhIDCol = 30;
-        public const Int16 HWhNumberCol = 31;
-        public const Int16 HWhNameCol = 32;
-        public const Int16 HSPIDCol = 33;
-        public const Int16 HSPNumberCol = 34;
-        public const Int16 HSPNameCol = 35;
-        public const Int16 HMTONoCol = 36;
-        public const Int16 HRemarkCol = 37;
-        public const Int16 HDeptIDCol = 38;
-        public const Int16 HDeptNumberCol = 39;
-        public const Int16 HDeptNameCol = 40;
-        public const Int16 HSourceIDCol = 41;
-        public const Int16 HSourceNumberCol = 42;
-        public const Int16 HSourceNameCol = 43;
-        public const Int16 HSupIDCol = 44;
-        public const Int16 HSupNumberCol = 45;
-        public const Int16 HSupNameCol = 46;
-        public const Int16 HGroupIDCol = 47;
-        public const Int16 HGroupNumberCol = 48;
-        public const Int16 HGroupNameCol = 49;
-        public const Int16 HCusIDCol = 50;
-        public const Int16 HCusNumberCol = 51;
-        public const Int16 HCusNameCol = 52;
-        public const Int16 HCusTypeCol = 53;
-        public const Int16 HSeOrderBillNoCol = 54;
-        public const Int16 HSeOrderSEQCol = 55;
-        public const Int16 HInnerBillNoCol = 56;
-        public const Int16 HEndDateCol = 57;
-        public const Int16 HSourceBillQtyCol = 58;
-        public const Int16 HAuxPropFlagCol = 59;
-        public const Int16 HBarCodeCol = 60;    //鏉$爜缂栧彿
-        public const Int16 HTMNumberCol = 61;   //鏉$爜鍓嶇紑
-        public const Int16 HLSHCol = 62;        //鐢熸垚鏉$爜鏃惰幏鍙栧搴旀祦姘村彿
-        public const Int16 HBarcodeNoCol = 63;  //璁板綍闇�鍥炲~鐨勬祦姘村彿鏁伴噺
+        public const Int16 HPackBarQtyCol = 19;  //瑙勬牸鏁伴噺锛屽瓧娈靛唴瀹逛负鎵嬪姩杈撳叆
+        public const Int16 HBQtyCol = 20;
+        public const Int16 HinitQtyCol = 21;
+        public const Int16 HISKFPERIODCol = 22;
+        public const Int16 HProduceDateCol = 23;
+        public const Int16 HExpiryDateCol = 24;
+        public const Int16 HEXPUNITCol = 25;
+        public const Int16 HEXPPERIODCol = 26;
+        public const Int16 HGiveAwayFlagCol = 27;
+        public const Int16 HUnitIDCol = 28;
+        public const Int16 HUnitNumberCol = 29;
+        public const Int16 HUnitNameCol = 30;
+        public const Int16 HWhIDCol = 31;
+        public const Int16 HWhNumberCol = 32;
+        public const Int16 HWhNameCol = 33;
+        public const Int16 HSPIDCol = 34;
+        public const Int16 HSPNumberCol = 35;
+        public const Int16 HSPNameCol = 36;
+        public const Int16 HMTONoCol = 37;
+        public const Int16 HRemarkCol = 38;
+        public const Int16 HDeptIDCol = 39;
+        public const Int16 HDeptNumberCol = 40;
+        public const Int16 HDeptNameCol = 41;
+        public const Int16 HSourceIDCol = 42;
+        public const Int16 HSourceNumberCol = 43;
+        public const Int16 HSourceNameCol = 44;
+        public const Int16 HSupIDCol = 45;
+        public const Int16 HSupNumberCol = 46;
+        public const Int16 HSupNameCol = 47;
+        public const Int16 HGroupIDCol = 48;
+        public const Int16 HGroupNumberCol = 49;
+        public const Int16 HGroupNameCol = 50;
+        public const Int16 HCusIDCol = 51;
+        public const Int16 HCusNumberCol = 52;
+        public const Int16 HCusNameCol = 53;
+        public const Int16 HCusTypeCol = 54;
+        public const Int16 HSeOrderBillNoCol = 55;
+        public const Int16 HSeOrderSEQCol = 56;
+        public const Int16 HInnerBillNoCol = 57;
+        public const Int16 HEndDateCol = 58;
+        public const Int16 HSourceBillQtyCol = 59;
+        public const Int16 HAuxPropFlagCol = 60;
+        public const Int16 HBarCodeCol = 61;    //鏉$爜缂栧彿
+        public const Int16 HTMNumberCol = 62;   //鏉$爜鍓嶇紑
+        public const Int16 HLSHCol = 63;        //鐢熸垚鏉$爜鏃惰幏鍙栧搴旀祦姘村彿
+        public const Int16 HBarcodeNoCol = 64;  //璁板綍闇�鍥炲~鐨勬祦姘村彿鏁伴噺
+
         //
         public  string ModName = "85";
         public  string ModCaption = "璋冩嫧鏉$爜鐢熸垚";
@@ -598,6 +601,14 @@
                     {
                         sHRemark = sHRemark + " 绗�" + HSno + "琛岋紝鐗╂枡锛�" + HMaterNumber + sHRemark2;
                     }
+
+                    // 姝e垯琛ㄨ揪寮忥細鍖归厤鏁存暟銆佹诞鐐规暟銆佹璐熷彿銆佺瀛﹁鏁版硶锛堝彲鏍规嵁闇�姹傝皟鏁达級
+                    string numericRegex = @"^[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$";
+                    if (!Regex.IsMatch(DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HPackBarQtyCol].Value), numericRegex) && DBUtility.ClsPub.isStrNull(grdMain.Rows[j].Cells[HPackBarQtyCol].Value) != "")
+                    {
+                        sHRemark = sHRemark + " 绗�" + HSno + "琛岋紝瑙勬牸鏁伴噺涓嶄负鏁板瓧鏍煎紡锛岃杈撳叆姝g‘鐨勬暟鍊硷紒" ;
+                    }
+
                 }
             }
             if (sHRemark != "")
@@ -674,6 +685,7 @@
                 string HMaterModel = "";        //浜у搧瑙勬牸鍨嬪彿
                 string HPinfan = "";            //鍝佺暘
                 DateTime HEndDate;              //璁″垝瀹屽伐鏃ユ湡
+                double HPackBarQty = 0;        //瑙勬牸鏁伴噺
 
                 oCn.BeginTran();
                 Application.DoEvents();
@@ -828,6 +840,7 @@
                         HMaterModel = ClsPub.isStrNull(grdMain.Rows[j].Cells[HMaterModelCol].Value);
                         HPinfan = ClsPub.isStrNull(grdMain.Rows[j].Cells[HPinfanCol].Value);
                         HEndDate = ClsPub.isDate(grdMain.Rows[j].Cells[HEndDateCol].Value);
+                        HPackBarQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HPackBarQtyCol].Value == "" ? 0 : grdMain.Rows[j].Cells[HPackBarQtyCol].Value);
 
                         oCn.RunProc("insert into Gy_BarCodeBill" +
                                 "(HInterID,HEntryID,HBarCode,HBarCodeType,HMaterID,HUnitID" +
@@ -838,7 +851,7 @@
                                 ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HInitSourceEntryID,HRemark" +
                                 ",HPrintQty,HSTOCKORGID,HOWNERID,HDeptID,HSupID,HGroupID" +
                                 ",HCusID,HCusType,HSeOrderBillNo,HSeOrderSEQ,HInnerBillNo,HWorkLineName" +
-                                ",HMaterName,HMaterModel,HPinfan,HEndDate,HMaker,HMakeDate" +
+                                ",HMaterName,HMaterModel,HPinfan,HEndDate,HMaker,HMakeDate,HPackBarQty" +
                                 ") values ("
                                 + " " + HInterID.ToString() + "," + HEntryID.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString()
                                 + ", " + HAuxPropID.ToString() + ",'" + HBatchNo + "','" + HMTONo + "'," + HQty.ToString() + "," + HinitQty.ToString() + "," + HSourceBillQty.ToString()
@@ -848,7 +861,7 @@
                                 + ", " + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "'," + HInitSourceEntryID.ToString() + ",'" + HRemark + "'"
                                 + ", " + HPrintQty.ToString() + "," + HSTOCKORGID.ToString() + "," + HOWNERID.ToString() + "," + HDeptID.ToString() + "," + HSupID.ToString() + "," + HGroupID.ToString()
                                 + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HSeOrderBillNo + "'," + HSeOrderSEQ.ToString() + ",'" + HInnerBillNo + "','" + HWorkLineName + "'"
-                                + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "','" + HEndDate.ToShortDateString() + "','" + ClsPub.CurUserName + "',getdate()" +
+                                + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "','" + HEndDate.ToShortDateString() + "','" + ClsPub.CurUserName + "',getdate()" + "," + HPackBarQty +
                                 ")");
                     }
                     pb1.Value = j + 1;
@@ -946,7 +959,7 @@
         private void initGrid()
         {
             grdMain.RowCount = 0;
-            grdMain.ColumnCount = 64;                       //鎬诲垪鏁�
+            grdMain.ColumnCount = 65;                       //鎬诲垪鏁�
             DBUtility.Xt_BaseBillFun.initGridFst(grdMain, this.Name);
             grdMain.Columns[HSnoCol].HeaderText = "搴忓彿";
             grdMain.Columns[HMainIDCol].HeaderText = "婧愬崟涓籌D";
@@ -970,6 +983,7 @@
             grdMain.Columns[HQtyCol].HeaderText = "鏁伴噺";
             grdMain.Columns[HMinQtyCol].HeaderText = "閲嶉噺";
             grdMain.Columns[HBQtyCol].HeaderText = "绠辨暟";
+            grdMain.Columns[HPackBarQtyCol].HeaderText = "瑙勬牸鏁伴噺";
             grdMain.Columns[HinitQtyCol].HeaderText = "鍒濆鍖栨暟閲�";
             grdMain.Columns[HSourceBillQtyCol].HeaderText = "婧愬崟鍙敓鎴愭潯鐮佹暟閲�";
             grdMain.Columns[HBarCodeTypeCol].HeaderText = "鏉$爜绫诲瀷";
@@ -1067,6 +1081,7 @@
                                 "," + HBatchNoCol.ToString() +
                                 "," + HBarCodeTypeCol.ToString() +
                                 "," + HProduceDateCol.ToString() +
+                                "," + HPackBarQtyCol.ToString() +
                                 "," + HRemarkCol.ToString();
 
             //璁剧疆鍚堣鍒�
@@ -1179,6 +1194,7 @@
                                         grdMain.Rows[sRow].Cells[HISKFPERIODCol].Value = oMater.omodel.HISKFPERIOD;
                                         grdMain.Rows[sRow].Cells[HBarCodeTypeCol].Value = oMater.omodel.HBarCodeType;
                                         grdMain.Rows[sRow].Cells[HBQtyCol].Value = 1;
+                                        grdMain.Rows[sRow].Cells[HPackBarQtyCol].Value = 0;
                                         //鍚敤鎵规
                                         if (oMater.omodel.HBatchManager)
                                         {
@@ -1227,6 +1243,7 @@
                                         grdMain.Rows[sRow].Cells[HEXPPERIODCol].Value = "";
                                         grdMain.Rows[sRow].Cells[HProduceDateCol].Value = "";
                                         grdMain.Rows[sRow].Cells[HExpiryDateCol].Value = "";
+                                        grdMain.Rows[sRow].Cells[HPackBarQtyCol].Value = 0;
                                     }
                                 }
                                 else
@@ -1251,6 +1268,7 @@
                                     grdMain.Rows[sRow].Cells[HEXPPERIODCol].Value = "";
                                     grdMain.Rows[sRow].Cells[HProduceDateCol].Value = "";
                                     grdMain.Rows[sRow].Cells[HExpiryDateCol].Value = "";
+                                    grdMain.Rows[sRow].Cells[HPackBarQtyCol].Value = 0;
                                 }
                                 break;
 
@@ -1522,6 +1540,7 @@
             grdMain.Rows[i].Cells[HMinQtyCol].Value = oTable.Rows[0]["鏈�灏忓寘瑁呮暟"].ToString();
             grdMain.Rows[i].Cells[HAuxPropFlagCol].Value = oTable.Rows[0]["HAuxPropFlag"].ToString();
 
+
             //鍚敤杈呭姪灞炴��
             if (DBUtility.ClsPub.isBool(oTable.Rows[0]["HAuxPropFlag"].ToString()))
             {
@@ -1574,6 +1593,7 @@
                                 "," + HBatchNoCol.ToString() +
                                 "," + HBarCodeTypeCol.ToString() +
                                 "," + HProduceDateCol.ToString() +
+                                "," + HPackBarQtyCol.ToString() +
                                 "," + HRemarkCol.ToString();
             grdMain.Columns[HBillNoCol].ReadOnly = true;
             //璁剧疆鍚堣鍒�
@@ -1965,6 +1985,7 @@
                 grdMain.Rows[row + r].Cells[HBatchNoCol].Value = grdMain.Rows[row].Cells[HBatchNoCol].Value;
                 grdMain.Rows[row + r].Cells[HQtyCol].Value = grdMain.Rows[row].Cells[HQtyCol].Value;
                 grdMain.Rows[row + r].Cells[HMinQtyCol].Value = 0;
+                grdMain.Rows[row + r].Cells[HPackBarQtyCol].Value = 0;
                 grdMain.Rows[row + r].Cells[HBQtyCol].Value = grdMain.Rows[row].Cells[HBQtyCol].Value;
                 grdMain.Rows[row + r].Cells[HinitQtyCol].Value = grdMain.Rows[row].Cells[HinitQtyCol].Value;
                 grdMain.Rows[row + r].Cells[HISKFPERIODCol].Value = grdMain.Rows[row].Cells[HISKFPERIODCol].Value;
diff --git a/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs b/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
index 1d3f308..8fbe91d 100644
--- a/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
+++ b/WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
@@ -5138,7 +5138,7 @@
         {
             try
             {
-                ds = oCN.RunProcReturn($"select *,b.hnumber,b.hname HMaterName_m from Gy_BarCodeBill a left join Gy_Material b on a.HMaterID=b.HItemID where HBarCode='{HbarCode}' ", "Gy_Material");
+                ds = oCN.RunProcReturn($"select *,b.hnumber HMaterNumber,b.hname HMaterName_m from Gy_BarCodeBill a with(nolock) left join Gy_Material b with(nolock) on a.HMaterID=b.HItemID where HBarCode='{HbarCode}' ", "Gy_Material");
                 if (ds == null || ds.Tables[0].Rows.Count == 0)
                 {
                     objJsonResult.code = "0";

--
Gitblit v1.9.1