From 519315a21c6290455e4ea2b9a04d6bc51568a862 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期五, 29 八月 2025 09:11:45 +0800
Subject: [PATCH] 修改条码转存规则

---
 WebAPI/Controllers/仓存管理/条码生成/Sc_BarCodeController.cs |  540 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 517 insertions(+), 23 deletions(-)

diff --git "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\346\235\241\347\240\201\347\224\237\346\210\220/Sc_BarCodeController.cs" "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\346\235\241\347\240\201\347\224\237\346\210\220/Sc_BarCodeController.cs"
index 1bfb40e..cbf450d 100644
--- "a/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\346\235\241\347\240\201\347\224\237\346\210\220/Sc_BarCodeController.cs"
+++ "b/WebAPI/Controllers/\344\273\223\345\255\230\347\256\241\347\220\206/\346\235\241\347\240\201\347\224\237\346\210\220/Sc_BarCodeController.cs"
@@ -6,9 +6,11 @@
 using System;
 using System.Collections.Generic;
 using System.Data;
+using System.IO;
 using System.Linq;
 using System.Net;
 using System.Net.Http;
+using System.Web;
 using System.Web.Http;
 using WebAPI.Models;
 
@@ -131,6 +133,10 @@
                 {
                     list.Add("鍞竴鏉$爜");
                     list.Add("鎵规鏉$爜");
+                }
+                else if (sCapName == "娴疯瘹")
+                {
+                    list.Add("鍝佺鏉$爜");
                 }
                 else
                 {
@@ -522,6 +528,8 @@
             return ordrlist;
         }
 
+       
+
         public object HSourceOrderList1(DataTable dt, HSouceOrderList ordrlist, string HBarCodeType,string HSourceBillType)
         {
             oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo);
@@ -589,6 +597,16 @@
                             ordrlist.HGiveAwayFlag = 0;
                         }
                     }
+                    if (HSourceBillType == "鏀舵枡閫氱煡鍗�" || HSourceBillType == "閲囪喘璁㈠崟")
+                    {
+                        if (oSystemParameter.omodel.WMS_CampanyName == "娴疯瘹")   //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
+                        {
+                            ordrlist.HSourceBillSEQ = dt.Rows[i]["HSEQ"].ToString();
+                            ordrlist.HFactory = dt.Rows[i]["瀹㈡埛缂栧彿"].ToString();
+                            ordrlist.HCoilNO = dt.Rows[i]["娆惧彿"].ToString();
+                            ordrlist.HFurnaceNO = dt.Rows[i]["鍒嗙粍"].ToString();
+                        }
+                    }
                 }
                 if (HSourceBillType == "閫�璐ч�氱煡鍗�")
                 {
@@ -621,7 +639,7 @@
         //鏍规嵁TABLE鍐欏叆鐣岄潰(鍑哄叆搴撳崟鎹�) 
         private object Sub_WriteInForm_InOut(DataTable dt, HSouceOrderList ordrlist, string HBarCodeType, string HSourceBillType)
         {
-
+            oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo);
             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 ordrlist.HQty = dt.Rows[i]["鍙敓鎴愭潯鐮佹暟閲�"].ToString();
@@ -654,6 +672,20 @@
                 ordrlist.HMTONo = dt.Rows[i]["璁″垝璺熻釜鍙�"].ToString();
                 ordrlist.HDate = dt.Rows[i]["鏃ユ湡"].ToString(); 
                 ordrlist.HShowDate = DateTime.Now.ToString();
+
+                if(HSourceBillType=="閲囪喘鍏ュ簱鍗�")
+                {
+                    if(oSystemParameter.omodel.WMS_CampanyName=="娴疯瘹")   //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�     绌虹櫧涓洪�氱敤
+                    {
+                        ordrlist.HInnerBillNo = dt.Rows[i]["閲囪喘璁㈠崟鍙�"].ToString();
+                        ordrlist.HSupID = dt.Rows[i]["HSupID"].ToString();
+                        ordrlist.HSupNumber = dt.Rows[i]["渚涘簲鍟嗕唬鐮�"].ToString();
+                        ordrlist.HSupName = dt.Rows[i]["渚涘簲鍟�"].ToString();
+                        ordrlist.HFactory = dt.Rows[i]["瀹㈡埛缂栧彿"].ToString();
+                        ordrlist.HCoilNO = dt.Rows[i]["娆惧彿"].ToString();
+                        ordrlist.HFurnaceNO = dt.Rows[i]["鍒嗙粍"].ToString();
+                    }
+                }
             }
             return ordrlist;
         }
@@ -801,12 +833,13 @@
                 long HMaterID = DBUtility.ClsPub.isLong(ordrlist[i].HMaterID);              // 鐗╂枡鍐呯爜
                 string HBatchNo = DBUtility.ClsPub.isStrNull(ordrlist[i].HBatchNo);         // 鎵瑰彿
                 long HAuxPropID = DBUtility.ClsPub.isLong(ordrlist[i].HAuxPropID);          // 杈呭姪灞炴�D
+                string HMTONo = DBUtility.ClsPub.isStrNull(ordrlist[i].HMTONo);             //璁″垝璺熻釜鍙�
                 double HSourceQty = DBUtility.ClsPub.isDoule(ordrlist[i].HMinQty);          // 婧愬崟鏁伴噺
                 double HQty = DBUtility.ClsPub.isDoule(ordrlist[i].HQty);                   // 鏁伴噺
                 double HMinQty = DBUtility.ClsPub.isDoule(ordrlist[i].HMinQty);             // 鏈�灏忓寘瑁呮暟
                 if (HMaterID != 0)
                 {
-                    DataSet oDsCheck = oCN.RunProcReturn("exec h_p_Gy_BarCodeBill_AddCheck " + HSno.ToString() + ",'" + HBarCodeType + "','" + HSourceBillNo + "'," + HMaterID.ToString() + ",'" + HBatchNo + "'," + HAuxPropID.ToString() + "," + HSourceQty.ToString() + "," + HQty.ToString() + "," + HMinQty.ToString() + "," + HOrgID.ToString() + ",'" + SourceQtyCtl + "'", "h_p_Gy_BarCodeBill_AddCheck");
+                    DataSet oDsCheck = oCN.RunProcReturn("exec h_p_Gy_BarCodeBill_AddCheck_New " + HSno.ToString() + ",'" + HBarCodeType + "','" + HSourceBillNo + "'," + HMaterID.ToString() + ",'" + HBatchNo + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "'," + HSourceQty.ToString() + "," + HQty.ToString() + "," + HMinQty.ToString() + "," + HOrgID.ToString() + ",'" + SourceQtyCtl + "'", "h_p_Gy_BarCodeBill_AddCheck_New");
                     if (oDsCheck == null && oDsCheck.Tables[0].Rows.Count == 0)
                     {
                         objJsonResult.code = "0";
@@ -845,7 +878,7 @@
             int HBQty = 0;              //绠辨暟
             double HQty = 0;            //鏁伴噺
             string WeiShu = "";         //灏炬暟
-            int LSH = 0;                //娴佹按鍙�
+            Int64 LSH = 0;              //娴佹按鍙�
             string LSH2 = "";           //娴佹按鍙疯浆鎹㈡垚瀛楃
             string sDate = "";          //鏃ユ湡
             string sYear = "";          //骞�
@@ -935,7 +968,7 @@
                             sTMNumber = HNumber + sYear + sPeriod + sDay;
                             Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                             //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                            LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         }
                         else if (CampanyName == "椋為緳")
                         {
@@ -952,7 +985,7 @@
                             sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay;
                             Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                             //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                            LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         }
                         else if (CampanyName == "鐟炰笌绁�") {
                             var date = DateTime.Now.ToString("yyMMdd");//鏃ユ湡
@@ -977,7 +1010,7 @@
 
                                 //sTMNumber = ordrlist[j].HMaterNumber + "-鍖呰鏍囪瘑-" + date + "-" + ordrlist[j].HSupNumber + "-";
                                 Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
-                                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                                LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                             }
                             else if (HSourceBillTypeName == "鐢熶骇鍏ュ簱鍗�")
                             {
@@ -1011,13 +1044,13 @@
 
                                 //sTMNumber = ordrlist[j].HMaterNumber + "-鍖呰鏍囪瘑-"+ date + "-缁勭粐浠g爜-";
                                 Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
-                                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                                LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                             }
                             else
                             {
                                 sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay;
                                 Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
-                                LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                                LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                             }
                         }
                         else  //閫氱敤鏂规硶
@@ -1026,7 +1059,7 @@
                             sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay;
                             Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                             //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                            LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         }
                     }
                     else if (HSelectBarCodeType == "鍝佺鏉$爜")
@@ -1050,7 +1083,7 @@
                         sTMNumber = HMaterNumber + sYear + sPeriod + sDay;
                         Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                                                                                                                     //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         LSHlen = 4;
                     }
                     else if (HSelectBarCodeType == "浠櫒鎴愬搧鏉$爜瑙勫垯") //鍙﹀澶勭悊浜�
@@ -1067,7 +1100,7 @@
                         sTMNumber = HMaterNumber + HBatchNo;
                         Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                                                                                                                     //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         LSHlen = 6;
                     }
                     else if (HSelectBarCodeType == "鍐呴攢鏈烘潯鐮�")
@@ -1077,7 +1110,7 @@
                         sTMNumber = "1" + HModelName + HBarCodeDate + HBarCodeBatchNo + HYasuoji + "00";
                         Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                                                                                                                     //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         LSHlen = 5;
                         if (sTMNumber.Length != 16)
                         {
@@ -1094,7 +1127,7 @@
                         sTMNumber = HMaterNumber.Replace(".", "") + HBarCodeDate + HBarCodeBatchNo;
                         Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                                                                                                                     //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         LSHlen = 5;
                         if (sTMNumber.Length != 18)
                         {
@@ -1110,7 +1143,7 @@
                         sTMNumber = HICMOBillNo;
                         Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
                                                                                                                     //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
-                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                         LSHlen = 5;
                     }
                     else if (HSelectBarCodeType == "鎵樼洏鏉$爜")
@@ -1119,7 +1152,7 @@
                         //鏉$爜鍓嶇紑 = 鐗╂枡鍐呯爜 + 骞� + 鏈� + 鏃�
                         sTMNumber = HNumber + sYear + sPeriod + sDay;
                         Ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //鑾峰彇鏈�澶ф祦姘村彿
-                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
+                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                     }
                     else
                     {
@@ -1184,6 +1217,40 @@
                             return objJsonResult;
                         }
                         HBarCodeList barcode = new HBarCodeList();
+
+                        if (CampanyName == "娴疯瘹") //绯荤粺鍙傛暟  瀹㈡埛瀹氬埗鍖栧悕绉�
+                        {
+                            string sHMTONo = "";            //璁″垝璺熻釜鍙�
+                            string sHSourceBillNo = "";     //婧愬崟鍗曞彿
+                            string sHSourceBillSEQ = "";    //婧愬崟琛屽彿
+                            string sHSourceEntryID = "";    //婧愬崟瀛怚D
+                            string sSupNumber = "";         //渚涘簲鍟嗕唬鐮�
+                            string sHQty = "";              //鏁伴噺
+
+                            sHMTONo = DBUtility.ClsPub.isStrNull(ordrlist[j].HMTONo);
+                            sHSourceBillNo = DBUtility.ClsPub.isStrNull(ordrlist[j].HBillNo);
+                            sHSourceBillSEQ = DBUtility.ClsPub.isStrNull(ordrlist[j].HSourceBillSEQ);
+                            sHSourceEntryID = DBUtility.ClsPub.isStrNull(ordrlist[j].HSubID);
+                            sSupNumber = DBUtility.ClsPub.isStrNull(ordrlist[j].HSupNumber);
+                            sHQty = DBUtility.ClsPub.isStrNull(HMinQty);
+
+                            if (DBUtility.ClsPub.isStrNull(ordrlist[j].HBillType) == "1102") //婧愬崟锛氶噰璐鍗�
+                            {
+                                //鏉$爜瑙勫垯锛氶噰璐鍗曞崟鍙稝琛屽彿@鐗╂枡浠g爜@MTO@鏁伴噺@渚涘簲鍟嗕唬鐮�
+                                TM = sHSourceBillNo + "@" + sHSourceBillSEQ + "@" + HMaterNumber + "@" + sHMTONo + "@" + sHQty + "@" + sSupNumber;
+                            }
+                            else if (DBUtility.ClsPub.isStrNull(ordrlist[j].HBillType) == "1103") //婧愬崟锛氭敹鏂欓�氱煡鍗�
+                            {
+                                //鏉$爜瑙勫垯锛氭敹鏂欓�氱煡鍗曞彿@鍗曟嵁瀛愬唴鐮丂鐗╂枡浠g爜@MTO@鏁伴噺@渚涘簲鍟嗕唬鐮�
+                                TM = sHSourceBillNo + "@" + sHSourceEntryID + "@" + HMaterNumber + "@" + sHMTONo + "@" + sHQty + "@" + sSupNumber;
+                            }
+                            else
+                            {
+                                //鏉$爜瑙勫垯锛氱墿鏂欏唴鐮丂MTO@鎵规鍙稝鏁伴噺
+                                TM = HNumber + "@" + sHMTONo.Replace(" ","") + "@" + HBatchNo.Replace(" ","") + "@" + sHQty;
+                            }
+                        }
+
                         barcode.HBarCode2 = TM;
                         barcode.HEntryID2 = ClsPub.isStrNull(j + 1);
                         barcode.HMaterID2 = ordrlist[j].HMaterID;
@@ -1501,7 +1568,7 @@
         }
         #endregion
 
-        #region 鏉$爜瀛樺叆鏉$爜涓绘。
+        #region 鏉$爜杞瓨鏉$爜涓绘。
         /// <summary>
         /// 鏉$爜杞瓨鏉$爜涓绘。
         /// </summary>
@@ -1515,7 +1582,7 @@
             {
                 var _value = msg["msg"].ToString();
                 string msg1 = _value.ToString();
-                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.None);
                 string msg2 = sArray[0].ToString();
                 string HOrgType = sArray[1].ToString();
                 string HSourceBillTypeName = sArray[2].ToString();
@@ -1523,6 +1590,9 @@
                 string CampanyName = sArray[4].ToString() == "xxx" ? "" : sArray[4].ToString();
                 string UserName = sArray[5].ToString();
                 string barCodeNo = sArray[6].ToString();
+                string HFactory = sArray[7].ToString();
+                string HCoilNO = sArray[8].ToString();
+                string HFurnaceNO = sArray[9].ToString();
                 ClsPub.CurUserName = UserName;
 
                 //鑾峰彇鍐呯爜
@@ -1551,12 +1621,12 @@
                 }
                 else
                 {
-                    
+                    string HBarCodeType = ClsPub.isStrNull(HSelectBarCodeType);
                     // 鏉$爜杞瓨
                     msg2 = msg2.Replace("\\", "");
                     msg2 = msg2.Replace("\n", "");  //\n
                     List<HSouceOrderList> ordrlist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<HSouceOrderList>>(msg2);
-                    LogService.Write(ordrlist[0]);
+                    // LogService.Write(ordrlist[0]);
 
                     long HSourceInterID = string.IsNullOrEmpty(ordrlist[0].HMainID) == true ? 0 : ClsPub.isLong(ordrlist[0].HMainID);
                     long HSourceEntryID = string.IsNullOrEmpty(ordrlist[0].HSubID) == true ? 0 : ClsPub.isLong(ordrlist[0].HSubID);
@@ -1573,16 +1643,24 @@
                         ",@HMTONO = N'" + ordrlist[0].HMTONo + "'" +
                         ",@HBarCodeDate = N'" + ordrlist[0].HDate + "'" +
                         ",@HEmpID = " + ordrlist[0].HEmpID  +
-                        ",@HGroupID = " + ordrlist[0].HGroupID + 
                         ",@HSourceInterID = " + HSourceInterID + 
-                        ",@HSourceEntryID = " + HSourceEntryID
+                        ",@HSourceEntryID = " + HSourceEntryID +
+                        ",@HBarCodeType = N'" + HBarCodeType + "'" + 
+                        ",@HSourceBillNo = N'" + ordrlist[0].HSourceBillNo + "'" +
+                        ",@HMaker = N'" + ordrlist[0].HMaker + "'" +
+                        ",@HFactory = N'" + HFactory + "'" +
+                        ",@HCoilNO = N'" + HCoilNO + "'" +
+                        ",@HFurnaceNO = N'" + HFurnaceNO + "'" +
+                        ",@HInnerBillNo = N'" + ordrlist[0].HInnerBillNo + "'" + 
+                        ",@HSourceBillType = N'" + ordrlist[0].HBillType + "'" + 
+                        ",@HStockOrg = N'" + HOrgType + "'" + 
+                        ",@HInterID = N'" + ordrlist[0].HInterID + "'"
                         , "h_p_SC_BarCode_Transfer");
-
                     if((bool)ds1.Tables[0].Rows[0]["returntype"] == true)
                     {
                         objJsonResult.code = "1";
                         objJsonResult.count = 1;
-                        objJsonResult.Message = "[0000-1-037]鑾峰彇璧勬簮缁戝畾鏁版嵁鎴愬姛锛�";
+                        objJsonResult.Message = ds1.Tables[0].Rows[0]["mesg"].ToString();
                     }
                     else
                     {
@@ -1599,6 +1677,221 @@
                 return objJsonResult;
             }
             return objJsonResult;
+        }
+        #endregion
+
+        #region 鏉$爜杞瓨鏉$爜涓绘。(鎵归噺)
+        /// <summary>
+        /// 鏉$爜杞瓨鏉$爜涓绘。(鎵归噺)
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        [Route("Sc_BarCode/SaveBarCode_NoGenerate_Batch")]
+        [HttpPost]
+        public object SaveBarCode_NoGenerate_Batch([FromBody] JObject msg)
+        {
+            try
+            {
+                var _value = msg["msg"].ToString();
+                string msg1 = _value.ToString();
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.None);
+                string msg2 = sArray[0].ToString();
+                string HOrgType = sArray[1].ToString();
+                string HSourceBillTypeName = sArray[2].ToString();
+                string HSelectBarCodeType = sArray[3].ToString();
+                string CampanyName = sArray[4].ToString() == "xxx" ? "" : sArray[4].ToString();
+                string UserName = sArray[5].ToString();
+                string barCodeNoStrs = sArray[6].ToString(); // 杩欓噷鐨勬潯鐮佹槸涓庢彁浜ょ殑鍗曟嵁搴忓垪瀵瑰簲鐨勬潯鐮佹暟缁�
+                string HFactory = sArray[7].ToString();
+                string HCoilNO = sArray[8].ToString();
+                string HFurnaceNO = sArray[9].ToString();
+                ClsPub.CurUserName = UserName;
+
+                //鑾峰彇鍐呯爜
+                HInterID = DBUtility.ClsPub.CreateBillID_Prod(ModName, ref DBUtility.ClsPub.sExeReturnInfo);
+                DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View();
+                HOrgNumber = "";
+                if (oClsGy_ORGANIZATIONS_View.GetInfoByName(HOrgType))
+                {
+                    HOrgID = oClsGy_ORGANIZATIONS_View.omodel.HItemID;
+                    HOrgNumber = DBUtility.ClsPub.isStrNull(oClsGy_ORGANIZATIONS_View.omodel.HNumber);
+                }
+                if (HOrgID == -1)
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "[0000-2-055]閫夋嫨缁勭粐鏈夐敊璇�!";
+                    return objJsonResult;
+                }
+                if (!Sub_AllowSave(msg2, HSelectBarCodeType))//鍗曟嵁瀹屾暣鎬у垽鏂�
+                {
+                    return objJsonResult;
+                }
+                if (HSelectBarCodeType == "浠櫒鎴愬搧鏉$爜瑙勫垯")
+                {
+                    //瀹㈡埛瀹氬埗
+                }
+                else
+                {
+                    string HBarCodeType = ClsPub.isStrNull(HSelectBarCodeType);
+                    // 鏉$爜杞瓨
+                    msg2 = msg2.Replace("\\", "");
+                    msg2 = msg2.Replace("\n", "");  //\n
+                    List<HSouceOrderList> ordrlist = Newtonsoft.Json.JsonConvert.DeserializeObject<List<HSouceOrderList>>(msg2);
+                    List<string> barcodeList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(barCodeNoStrs);
+                    // TODO 閫氳繃InterID 鍜� EntryID 浠庢潯鐮佹。妗堜腑鏌ヨ鏄惁鏈夊凡鐢熸垚鐨勫崟鎹� 閲嶆柊鍐欎竴涓瓨鍌ㄨ繃绋嬶紝褰撳凡瀛樺湪瀵瑰簲鐨勬潯鐮佸崟鎹椂锛岃繑鍥炴潯鐮佷富妗d腑鐨勬潯鐮佹。妗�
+                    DataSet dsCache = oCN.RunProcReturn($@"select * from h_v_IF_BarCodeBillList a 
+                                                    Inner Join Gy_BarCodeBill b on a.HItemID = b.HItemID
+                                                    where b.HSourceINterID = { ordrlist[0].HMainID } and b.HSourceEntryID = {ordrlist[0].HSubID}"
+                                                        , "h_v_IF_BarCodeBillList");
+                    if(dsCache.Tables[0].Rows.Count > 0)
+                    {
+                        objJsonResult.code = "2";
+                        objJsonResult.count = 1;
+                        objJsonResult.data = dsCache.Tables[0];
+                        objJsonResult.Message = "鏉$爜宸插瓨鍦�!";
+                        return objJsonResult;
+                    }
+                    DataSet ds1 = new DataSet();
+                    for(int i=0; i<ordrlist.Count; i++)
+                    {
+
+                        long HSourceInterID = string.IsNullOrEmpty(ordrlist[i].HMainID) == true ? 0 : ClsPub.isLong(ordrlist[0].HMainID);
+                        long HSourceEntryID = string.IsNullOrEmpty(ordrlist[i].HSubID) == true ? 0 : ClsPub.isLong(ordrlist[0].HSubID);
+
+                        ds1 = oCN.RunProcReturn("exec h_p_SC_BarCode_Transfer " +
+                        "@HBarCodeNo = N'" + barcodeList[i] + "'" +
+                        ",@HSubID = " + ordrlist[i].HSubID +
+                        ",@HMaterID = " + ordrlist[i].HMaterID +
+                        ",@HGiveAwayFlag = " + ordrlist[i].HGiveAwayFlag +
+                        ",@HQty = " + ordrlist[i].HQty +
+                        ",@HUnitID = " + ordrlist[i].HUnitID +
+                        ",@HMinQty = " + ordrlist[i].HMinQty +
+                        ",@HSupID = " + ordrlist[i].HSupID +
+                        ",@HBatchNo = N'" + ordrlist[i].HBatchNo + "'" +
+                        ",@HMTONO = N'" + ordrlist[i].HMTONo + "'" +
+                        ",@HBarCodeDate = N'" + ordrlist[i].HDate + "'" +
+                        ",@HEmpID = " + ordrlist[i].HEmpID +
+                        ",@HSourceInterID = " + HSourceInterID +
+                        ",@HSourceEntryID = " + HSourceEntryID +
+                        ",@HBarCodeType = N'" + HBarCodeType + "'" +
+                        ",@HSourceBillNo = N'" + ordrlist[i].HSourceBillNo + "'" +
+                        ",@HMaker = N'" + ordrlist[i].HMaker + "'" +
+                        ",@HFactory = N'" + HFactory + "'" +
+                        ",@HCoilNO = N'" + HCoilNO + "'" +
+                        ",@HFurnaceNO = N'" + HFurnaceNO + "'" +
+                        ",@HInnerBillNo = N'" + ordrlist[i].HInnerBillNo + "'" +
+                        ",@HSourceBillType = N'" + ordrlist[i].HBillType + "'" +
+                        ",@HStockOrg = N'" + HOrgType + "'" + 
+                        ",@HInterID = " + ordrlist[i].HInterID
+                        , "h_p_SC_BarCode_Transfer");
+                        if ((bool)ds1.Tables[0].Rows[0]["returntype"] == false)
+                        {
+                            throw new Exception(ds1.Tables[0].Rows[0]["mesg"].ToString());     
+                        }
+                    }
+
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = ds1.Tables[0].Rows[0]["mesg"].ToString();
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "[3899-2-006]鏉$爜鐢熸垚澶辫触!" + e.Message;
+                return objJsonResult;
+            }
+            return objJsonResult;
+        }
+        #endregion
+
+        #region [鑾峰彇鏍囩鎵撳嵃鎸囦护 CPCL鎸囦护]
+        [Route("Sc_BarCode/Get_BarCodePrintCode_CPCL")]
+        [HttpGet]
+        public object Get_BarCodePrintCode_CPCL(string HOrginationName, int HBillInterID, int HBillEntryID, string HViewName, string HBillSubType, int HInterID)
+        {
+            try
+            {
+                ds = oCN.RunProcReturn("exec h_p_getHBarCodePrintCode_CPCL N'" + HOrginationName + "'" +
+                    "," + HBillInterID + "," + HBillEntryID + ",N'" + HViewName + "',N'" + HBillSubType + "'," + HInterID, "h_p_getHBarCodePrintCode_CPCL");
+                if((int)ds.Tables[0].Rows[0]["resultType"] == 1)
+                {
+                    string resultMesg = ds.Tables[0].Rows[0]["payload"].ToString().Replace("\\r\\n", "\r\n");
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = resultMesg;
+                    return objJsonResult;
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鎵撳嵃鎸囦护鑾峰彇澶辫触!" + ds.Tables[0].Rows[0]["payload"];
+                    return objJsonResult;
+                }
+            }
+            catch(Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵撳嵃鎸囦护鑾峰彇澶辫触!" + e.Message;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region [APP 鑾峰彇鎵撳嵃妯℃澘]
+        public class PrintTemplate
+        {
+            public int Id { get; }
+            public string OrgShort { get; }
+            public string HBillSubtype { get; }
+            public string Format { get; }
+            public string Description { get; }
+            public string[] Placeholder { get; }
+        }
+
+        [Route("Sc_BarCode/Get_BarCodeGenTemplate")]
+        [HttpGet]
+        public object Get_BarCodeGenTemplate(string HOrginationName, string HBillSubType)
+        {
+            try
+            {
+
+                string filePath = HttpContext.Current.Server.MapPath("~/Template");
+                string fileFullPath = Path.Combine(filePath, "barCodeTemplateStorage.json");
+
+                if (!File.Exists(fileFullPath))
+                {
+
+                    throw new Exception($"妯℃澘鏂囦欢涓嶅瓨鍦細{fileFullPath}");
+                }
+
+                string jsonContent = File.ReadAllText(fileFullPath);
+                var templates = JsonConvert.DeserializeObject<PrintTemplate[]>(jsonContent);
+
+                var targetTemplate = templates.FirstOrDefault<PrintTemplate>(t => HOrginationName.Contains(t.OrgShort) && string.Equals(t.HBillSubtype, HBillSubType));
+                if (targetTemplate != null)
+                {
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.data = JsonConvert.SerializeObject(targetTemplate);
+                    return objJsonResult;
+                }
+                else
+                {
+                    throw new Exception($"娌℃湁鎵惧埌瀵瑰簲鐨勬ā鏉�");
+                }
+            }
+            catch (Exception e)
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "鎵撳嵃妯℃澘鑾峰彇澶辫触!" + e.Message;
+                return objJsonResult;
+            }
         }
         #endregion
 
@@ -2104,6 +2397,9 @@
                 //澧炲姞 鏉$爜瓒呰繃鏈敓鎴愬姛鑳芥帶鍒�
 
                 //
+                //鑷姩瑁呯
+                string sql_autoForBoxBill = "exec h_v_Gy_BarCode_AutoProductBarCodeBox " + HInterID.ToString();
+                oCN.RunProc(sql_autoForBoxBill);
 
                 oCN.Commit();
                 List<Object> listobj = ListRows.ConvertAll(s => (object)s);//List瀹炰綋绫昏浆鎹负object
@@ -2140,6 +2436,204 @@
             }
         }
         #endregion
+
+        #region [app 鏉$爜鎷嗙爜鑾峰彇瀛愭潯鐮乚
+        [Route("Sc_BarCode/SplitBarCode_Sub")]
+        [HttpGet]
+        public object SplitBarCode_Sub(string HBarCodeNo)
+        {
+            try
+            {
+                SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
+                //鏌ヨ鏉$爜淇℃伅
+                if (HBarCodeNo != null)
+                {
+                    string prefix = HBarCodeNo.Trim() + "-";
+
+                    ds = oCn.RunProcReturn("SELECT * FROM h_v_Gy_SplitBarCode WITH(NOLOCK) WHERE HBarCode LIKE '" + prefix + "' + '%' AND HBarCode NOT LIKE  '" + prefix + "'  + '%-%' AND ISNUMERIC(RIGHT(HBarCode, LEN(HBarCode) - LEN( '" + prefix + "' ))) = 1  AND TRY_CAST(RIGHT(HBarCode, LEN(HBarCode) - LEN( '" + prefix + "' )) AS INT) IS NOT NULL ", "Gy_BarCodeBill");
+                    if (ds != null || ds.Tables[0].Rows.Count >= 0) 
+                    {
+                        // 鎵惧嚭鏈�澶у悗缂�鏁板瓧锛岀敤浜庣敓鎴愪笅涓�涓紪鍙�
+                        int maxSuffix = 0;
+                        foreach (DataRow row in ds.Tables[0].Rows)
+                        {
+                            string barCode = row["HBarCode"].ToString();
+                            string suffixPart = barCode.Substring(prefix.Length); // 鍙� - 鍚庣殑閮ㄥ垎
+                            if (int.TryParse(suffixPart, out int num))
+                            {
+                                if (num > maxSuffix) maxSuffix = num;
+                            }
+                        }
+
+                        // 鐢熸垚涓嬩竴涓瓙鐮佺紪鍙�
+                        string nextBarCode = $"{HBarCodeNo}-{maxSuffix + 1}";
+
+                        objJsonResult.code = "1";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "Sucess锛�";
+                        objJsonResult.data = new
+                        {
+                            SubBarCodes = ds.Tables[0],        // 鏉$爜鍩虹淇℃伅
+                            NextBarCode = nextBarCode          // 涓嬩竴涓敓鎴愮殑鏉$爜
+                        };
+                        return objJsonResult;
+                    }
+                    else
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 0;
+                        objJsonResult.Message = "鏉$爜缂栧彿涓嶅瓨鍦�, 鎻愮ず";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }                                       
+                }
+                else
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "璇疯緭鍏ユ潯鐮佺紪鍙锋垨鎷嗗垎鏉$爜鏁�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+               
+            }
+            catch (Exception e) //鎶涘嚭寮傚父
+            {
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "Exception锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
+        #region [app鏉$爜鎷嗙爜鐢熸垚]
+        [Route("Sc_BarCode/SplitBarCode_Save")]
+        [HttpPost]
+        public object SplitBarCode_Save([FromBody] JObject msg)
+        {
+            try
+            {
+                ListModels oListModels = new ListModels();
+                DAL.ClsGy_BarCodeBill_ChaiMa BillNew = new DAL.ClsGy_BarCodeBill_ChaiMa();
+                var _value = msg["msg"].ToString();
+                string msg1 = _value.ToString();
+
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+                string barcode = sArray[0].ToString(); //鏉$爜缂栧彿
+                Double splitnum = Convert.ToDouble(sArray[1]); //鎷嗙爜鏁伴噺
+                string data = sArray[2].ToString(); //琛ㄤ綋鏁版嵁
+                string user = sArray[3].ToString(); //鐢ㄦ埛鍚�
+
+                data = data.Replace("\\", "");
+                data = data.Replace("\n", "");  //\n
+
+                List<Model.ClsGy_BarCodeEdit_Model> lsmain = new List<Model.ClsGy_BarCodeEdit_Model>();
+                lsmain = oListModels.getObjectByJson_Gy_SplitBarCode(data);
+
+                oCN.BeginTran();
+
+                ds = oCN.RunProcReturn("select top 1 * from Gy_BarCodeBill where HBarCode='" + barcode + "'", "Gy_BarCodeBill");
+              
+                if (ds != null || ds.Tables[0].Rows.Count > 0)
+                {
+
+                    string sql = "insert into Gy_BarCodeBill (HInterID, HEntryID, HBarCode, HBarCodeType, HBarCodeSubType, HMaterID, HUnitID, HQty, HBatchNo, HSupID, HGroupID, HMaker, HMakeDate, " +
+                  "HPrintQty, HSourceInterID, HSourceEntryID, HSourceBillNo, HSourceBillType, HinitQty, HEndQty, HBarcodeQtys, HBarcodeNo, HDeptID, HWhID, HSPID, HRemark, " +
+                  "HCusID, HCusType, HEndDate, HWorkLineName, HBarCodeDate, HSTOCKORGID, HOWNERID, HSeOrderBillNo, HGiveAwayFlag, HMaterName, HMaterModel, " +
+                  "HPinfan, HAuxPropID, HMTONo, HInnerBillNo, HCoilNO, HFurnaceNO, HFactory, HAuxQty, HheatNO, HProduceDate, HExpiryDate, HEmpID, HCusModel, HCusMaterName, HCheckEmpName, HZZRQ" +
+                  ") values (" +
+                  "'" + ds.Tables[0].Rows[0]["HInterID"].ToString() + "', " +
+                  "'" + (int.Parse(ds.Tables[0].Rows[0]["HEntryID"].ToString()) + 1).ToString() + "', " +
+                  "'" + lsmain[0].HBarCode.ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HBarCodeType"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HBarCodeSubType"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HMaterID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HUnitID"].ToString() + "', " +
+                  "'" + splitnum + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HBatchNo"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSupID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HGroupID"].ToString() + "', " +
+                  "'" + user + "', getdate(), " +
+                  "'" + ds.Tables[0].Rows[0]["HPrintQty"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSourceInterID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSourceEntryID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSourceBillNo"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSourceBillType"].ToString() + "', " +
+                  "'" + splitnum + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HEndQty"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HBarcodeQtys"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HBarcodeNo"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HDeptID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HWhID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSPID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HRemark"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HCusID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HCusType"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HEndDate"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HWorkLineName"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HBarCodeDate"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSTOCKORGID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HOWNERID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HSeOrderBillNo"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HGiveAwayFlag"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HMaterName"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HMaterModel"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HPinfan"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HAuxPropID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HMTONo"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HInnerBillNo"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HCoilNO"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HFurnaceNO"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HFactory"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HAuxQty"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HheatNO"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HProduceDate"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HExpiryDate"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HEmpID"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HCusModel"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HCusMaterName"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HCheckEmpName"].ToString() + "', " +
+                  "'" + ds.Tables[0].Rows[0]["HZZRQ"].ToString() + "'" +
+                  ")";
+                    //鎻掑叆鎷嗗垎鏉$爜
+                    oCN.RunProc(sql);
+                    //鏇存柊鑰佹潯鐮佺殑HQty鏁伴噺
+                    oCN.RunProc("update  Gy_BarCodeBill set HQty= HQty-'"+splitnum+"' where HItemID="+ ds.Tables[0].Rows[0]["HItemID"].ToString());
+
+
+
+                    oCN.Commit();
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "淇濆瓨鎴愬姛锛�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+
+                }
+                else
+                {
+                    oCN.RollBack();
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "淇濆瓨澶辫触锛佹湭鏌ヨ鍒版潯鐮佷俊鎭�";
+                    objJsonResult.data = 1;
+                    return objJsonResult;
+                }               
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "淇濆瓨澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
+        #endregion
+
         #endregion
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1