chenhaozhe
3 天以前 26811940119aa8e107c65d72a19bd172d7d1854e
WebAPI/Controllers/²Ö´æ¹ÜÀí/ÌõÂëÉú³É/Sc_BarCodeController.cs
@@ -2211,6 +2211,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
    }
}