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 |  224 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 223 insertions(+), 1 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 ed1a4cd..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;
 
@@ -525,6 +527,8 @@
             }
             return ordrlist;
         }
+
+       
 
         public object HSourceOrderList1(DataTable dt, HSouceOrderList ordrlist, string HBarCodeType,string HSourceBillType)
         {
@@ -1647,7 +1651,10 @@
                         ",@HFactory = N'" + HFactory + "'" +
                         ",@HCoilNO = N'" + HCoilNO + "'" +
                         ",@HFurnaceNO = N'" + HFurnaceNO + "'" +
-                        ",@HInnerBillNo = N'" + ordrlist[0].HInnerBillNo + "'"
+                        ",@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)
                     {
@@ -1673,6 +1680,221 @@
         }
         #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
+
         #region [鏉$爜鐢熸垚鎺ュ彛-杩﹀崡]
         [Route("Sc_BarCode/Sub_SaveBill_JiaNan")]
         [HttpPost]

--
Gitblit v1.9.1