using DBUtility; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using SQLHelper; 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 System.Web.Script.Serialization; using WebAPI.Code; using WebAPI.Models; using WebAPI.Utility; namespace WebAPI.Controllers { public class BarCodeController : ApiController { private JsonResult objJsonResult = new JsonResult(); private json objjson = new json(); public new ClsCN oCn = new ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); public T ScriptDeserialize(string strJson) { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Deserialize(strJson); } /// /// 更新打印次数 /// /// /// /// [Route("UpdateBarcodePrintQty")] [HttpPost] public object UpdateBarcodePrintQty([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCn.RunProc("exec H_p_SRM_BarCodeBill_PrintQty '" + msg1 + "'"); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "更新打印次数成功!"; objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "更新打印次数失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } [Route("GetBarcodeSaveBillVarieties")] [HttpPost] /// /// 生成条码(品种码) /// /// /// /// public object GetBarcodeSaveBill_Varieties([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string UserName = ""; ListModels oListModels = new ListModels(); try { List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) { UserName = oItem.HMaker; } DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill(); msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); List ls2 = new List(); ls = oListModels.getObjectByJson_MaterialList(msg3); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { if (oBill.CheckBarCode(oItemSub.HSourceInterID, oItemSub.HSourceEntryID) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "已存在条码,不允许重复生成!"; objJsonResult.data = null; return objJsonResult; } if (msg2 != string.Empty) { if (oItemSub.HBQty == 0 || oItemSub.HMinQty == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条码张数不能为0!"; objJsonResult.data = null; return objJsonResult; } } } long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo); string TM = ""; //条码 string HNumber = ""; //物料代码 double HSumQty = 0; //产品数量 double HMinQty = 0; //最小包装数 int HBQty = 0; //箱数 double HQty = 0; //数量 string HMTONO = ""; string WeiShu = ""; //尾数 //string sKFDate = DateTime.Now.ToString("yyyy-MM-dd"); DataSet Ds; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HNumber = oItemSub.HMaterID.ToString(); HMTONO = ClsPub.isStrNull(oItemSub.HMTONO); // HQty = ClsPub.isDoule(oItemSub.HQty); HBQty = ClsPub.isInt(oItemSub.HBQty); HMinQty = ClsPub.isDoule(oItemSub.HMinQty); HSumQty = ClsPub.isDoule(oItemSub.HQty); for (int i = 0; i < HBQty; i++) { //================================== TM = "SRM" + HNumber + ";" + HMTONO; if (HSumQty - HMinQty > 0) { WeiShu = ""; HSumQty = HSumQty - HMinQty; } else { if (HSumQty == HMinQty) { WeiShu = ""; } else { WeiShu = "尾数"; } HMinQty = HSumQty; } Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model(); bar.HBarCode = TM; bar.HMaterID = oItemSub.HMaterID; bar.HUnitID = oItemSub.HUnitID; bar.HQty = HMinQty; bar.HEndQty = WeiShu; bar.HBatchNo = oItemSub.HBatchNo; bar.HKFDate = oItemSub.HKFDate; bar.HKFDQDate = oItemSub.HKFDQDate; bar.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub.HKFPeriod); bar.HSourceBillNo = oItemSub.HSourceBillNo; bar.HSourceInterID = oItemSub.HSourceInterID; bar.HSourceEntryID = oItemSub.HSourceEntryID; bar.HSourceBillType = oItemSub.HSourceBillType; bar.HSupID = oItemSub.HSupID; bar.HMinQty = oItemSub.HMinQty; bar.HMTONO = oItemSub.HMTONO; ls2.Add(bar); } } } string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo = ""; Int64 HSupID = 0; Int64 HGroupID = 0; Int64 HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HKFPeriod = 0; string HKFDate = ""; string HKFDQDate = ""; string HWei = ""; string HMTONO2 = ""; oCn.BeginTran(); foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls2) { HBarCode = ClsPub.isStrNull(oItemSub.HBarCode); HMTONO2 = ClsPub.isStrNull(oItemSub.HMTONO); HBarCodeType = "品种码"; HMaterID = ClsPub.isLong(oItemSub.HMaterID); HUnitID = ClsPub.isLong(oItemSub.HUnitID); HQty2 = ClsPub.isDoule(oItemSub.HQty); HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo); HSupID = ClsPub.isInt(oItemSub.HSupID); HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType); HWei = ClsPub.isStrNull(oItemSub.HEndQty); oCn.RunProc("insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO2 + "')"); //oBill.SaveBarCode(DBUtility.ClsPub.isLong(oItemSub.HMaterID), DBUtility.ClsPub.isLong(oItemSub.HUnitID), DBUtility.ClsPub.isLong(oItemSub.HSupID), DBUtility.ClsPub.isLong(oItemSub.HBQty) //, DBUtility.ClsPub.isLong(oItemSub.HMinQty), DBUtility.ClsPub.isLong(oItemSub.HSourceInterID), DBUtility.ClsPub.isLong(oItemSub.HSourceEntryID) //, DBUtility.ClsPub.isStrNull(oItemSub.HSourceBillNo), DBUtility.ClsPub.isStrNull(oItemSub.HSourceBillType), DBUtility.ClsPub.isStrNull(oItemSub.HMTONO), DBUtility.ClsPub.isLong(oItemSub.HQty)); } //暂时只回填关联数量 oCn.RunProc("exec H_p_SRM_BarCodeBill_Update_UpdateBillRelateData " + linterid.ToString()); oCn.Commit(); } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成条码成功!"; WebAPIController.Add_Log("条码下推", UserName, "生成条码"); objJsonResult.data = null; return objJsonResult; } [Route("GetBarcodeSaveBillOnly")] [HttpPost] /// /// 生成条码唯一码 /// /// /// /// public object GetBarcodeSaveBill_Only([FromBody] JObject msg) { var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string UserName = ""; ListModels oListModels = new ListModels(); try { List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) { UserName = oItem.HMaker; } DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill(); msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); List ls2 = new List(); ls = oListModels.getObjectByJson_MaterialList(msg3); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { if (oBill.CheckBarCode(oItemSub.HSourceInterID, oItemSub.HSourceEntryID) == false) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "已存在条码,不允许重复生成!"; objJsonResult.data = null; return objJsonResult; } if (msg2 != string.Empty) { if (oItemSub.HBQty == 0 || oItemSub.HMinQty == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条码张数不能为0!"; objJsonResult.data = null; return objJsonResult; } } } //int i = 1; long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo); int LSHlen = 6; //流水号长度 int SumLen = 10; //总长度 string TM = ""; //条码 string HNumber = ""; //物料代码 double HSumQty = 0; //产品数量 double HMinQty = 0; //最小包装数 int HBQty = 0; //箱数 double HQty = 0; //数量 int LSH = 0; //流水号 string LSH2 = ""; //流水号转换成字符 string sDate = ""; //日期 string sYear = ""; //年 string sPeriod = ""; //月 string sDay = ""; //日 int k = 0; string WeiShu = ""; //尾数 //string sKFDate = DateTime.Now.ToString("yyyy-MM-dd"); DataSet Ds; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HNumber = oItemSub.HMaterID.ToString(); // HQty = ClsPub.isDoule(oItemSub.HQty); HBQty = ClsPub.isInt(oItemSub.HBQty); HMinQty = ClsPub.isDoule(oItemSub.HMinQty); HSumQty = ClsPub.isDoule(oItemSub.HQty); for (int i = 0; i < HBQty; i++) { LSH = LSH + 1; LSH2 = LSH.ToString(); while (LSH2.Length < LSHlen) //如果流水号小于6位数前面补0 { LSH2 = "0" + LSH2; } sDate = ClsPub.GetServerDate(0); sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); //================================== TM = HNumber + sYear + sPeriod + sDay + LSH2; while (TM.Length < SumLen) //如果条码小于12位数前面补0 { TM = "0" + TM; } TM = "SRM" + TM; //TM = "B" + TM; if (HSumQty - HMinQty > 0) { WeiShu = ""; HSumQty = HSumQty - HMinQty; } else { if (HSumQty == HMinQty) { WeiShu = ""; } else { WeiShu = "尾数"; } HMinQty = HSumQty; } Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model(); bar.HBarCode = TM; bar.HMaterID = oItemSub.HMaterID; bar.HUnitID = oItemSub.HUnitID; bar.HQty = HMinQty; bar.HEndQty = WeiShu; bar.HBatchNo = oItemSub.HBatchNo; bar.HKFDate = oItemSub.HKFDate; bar.HKFDQDate = oItemSub.HKFDQDate; bar.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub.HKFPeriod); bar.HSourceBillNo = oItemSub.HSourceBillNo; bar.HSourceInterID = oItemSub.HSourceInterID; bar.HSourceEntryID = oItemSub.HSourceEntryID; bar.HSourceBillType = oItemSub.HSourceBillType; bar.HSupID = oItemSub.HSupID; bar.HMinQty = oItemSub.HMinQty; bar.HMTONO = oItemSub.HMTONO; ls2.Add(bar); } } } string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo = ""; Int64 HSupID = 0; Int64 HGroupID = 0; Int64 HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HKFPeriod = 0; string HKFDate = ""; string HKFDQDate = ""; string HWei = ""; string HMTONO = ""; oCn.BeginTran(); foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub2 in ls2) { if (ClsPub.isLong(oItemSub2.HMaterID) != 0) { HBarCode = oItemSub2.HBarCode; HMTONO = oItemSub2.HMTONO; HBarCodeType = "唯一码"; HMaterID = ClsPub.isLong(oItemSub2.HMaterID); HUnitID = ClsPub.isLong(oItemSub2.HUnitID); HQty2 = ClsPub.isDoule(oItemSub2.HQty); HBatchNo = ClsPub.isStrNull(oItemSub2.HBatchNo); HSupID = ClsPub.isInt(oItemSub2.HSupID); HKFPeriod = ClsPub.isInt(oItemSub2.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub2.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub2.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub2.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub2.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub2.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub2.HSourceBillType); HWei = ClsPub.isStrNull(oItemSub2.HEndQty); oCn.RunProc("insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"); oCn.RunProc("exec setLSH '" + DateTime.Today + "'"); } } //暂时只回填关联数量 oCn.RunProc("exec H_p_SRM_BarCodeBill_Update_UpdateBillRelateData " + linterid.ToString()); oCn.Commit(); } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成条码成功!"; WebAPIController.Add_Log("条码下推", UserName, "生成条码"); objJsonResult.data = null; return objJsonResult; } [Route("GetBarcodeSaveBillBox")] [HttpPost] /// /// 生成条码 内外箱 /// /// /// /// public object GetBarcodeSaveBill_Box([FromBody] JObject msg) { string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); //LogService.Write(msg3); string UserName = ""; ListModels oListModels = new ListModels(); try { List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) { UserName = oItem.HMaker; } DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill(); msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); List ls2 = new List(); List ls3 = new List(); ls = oListModels.getObjectByJson_MaterialList(msg3); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { //数量为0 跳过 if (oItemSub.HQty == 0 || oItemSub.HMinQty == 0 || oItemSub.HWXQty == 0) continue; } long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo); int LSHlen = 6; //流水号长度 int SumLen = 10; //总长度 string TM = ""; //条码 string HNumber = ""; //物料代码 double HSumQty = 0; //产品数量 double HMinQty = 0; //最小包装数 int HBQty = 0; //箱数 double HQty = 0; //数量 int LSH = 0; //流水号 string LSH2 = ""; //流水号转换成字符 string sDate = ""; //日期 string sYear = ""; //年 string sPeriod = ""; //月 string sDay = ""; //日 string WeiShu = ""; //尾数 DataSet Ds; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { //外箱 if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HNumber = oItemSub.HMaterID.ToString(); HQty = ClsPub.isDoule(oItemSub.HWBQty); HBQty = ClsPub.isInt(oItemSub.HWBQty); HMinQty = ClsPub.isDoule(oItemSub.HWXQty); HSumQty = ClsPub.isDoule(oItemSub.HQty); //HWXQtyCol for (int i = 0; i < HBQty; i++) { LSH = LSH + 1; LSH2 = LSH.ToString(); while (LSH2.Length < LSHlen) //如果流水号小于6位数前面补0 { LSH2 = "0" + LSH2; } sDate = ClsPub.GetServerDate(0); sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); //================================== TM = HNumber + sYear + sPeriod + sDay + LSH2; while (TM.Length < SumLen) //如果条码小于12位数前面补0 { TM = "0" + TM; } //TM = "B" + TM; TM = "SRM" + "B" + TM; if (HSumQty - HMinQty > 0) { WeiShu = ""; HSumQty = HSumQty - HMinQty; } else { if (HSumQty == HMinQty) { WeiShu = ""; } else { WeiShu = "尾数"; } HMinQty = HSumQty; } if (FCusName.Contains("添康科技")) { //外箱批次条码规则:SRMB+组织+料号+批次+;+数量 TM = "SRMB" + "100" + oItemSub.HMaterNumber + oItemSub.HBatchNo + ";" + HMinQty; } Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model(); bar.HBarCode = TM; bar.HMaterID = oItemSub.HMaterID; //bar.HMaterNumber = oItemSub.HMaterNumber; //bar.HMaterName = oItemSub.HMaterName; //bar.HMaterModel = oItemSub.HMaterModel; // bar.HModel2 = oItemSub.HModel; bar.HUnitID = oItemSub.HUnitID; //bar.HUnitNumber2 = oItemSub.HUnitNumber; //bar.HUnitName2 = oItemSub.HUnitName; bar.HQty = HMinQty; bar.HBatchNo = oItemSub.HBatchNo; bar.HKFDate = oItemSub.HKFDate; bar.HKFPeriod = oItemSub.HKFPeriod; bar.HKFDQDate = oItemSub.HKFDQDate; bar.HSourceInterID = oItemSub.HSourceInterID; bar.HSourceEntryID = oItemSub.HSourceEntryID; bar.HSourceBillNo = oItemSub.HSourceBillNo; bar.HSourceBillType = oItemSub.HSourceBillType; bar.HMinQty = oItemSub.HMinQty; bar.HSupID = oItemSub.HSupID; bar.HEndQty = WeiShu; bar.HMTONO = oItemSub.HMTONO; bar.HSupBatchNo = oItemSub.HSupBatchNo; bar.HSupMaterNumber = oItemSub.HSupMaterNumber; bar.HISKFPERIOD = oItemSub.HISKFPERIOD; bar.HMaterNumber = oItemSub.HMaterNumber; ls2.Add(bar); } } } foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub2 in ls2) { //内箱 if (ClsPub.isLong(oItemSub2.HMaterID) != 0) { long sMaterID = ClsPub.isLong(oItemSub2.HMaterID); Ds = oCn.RunProcReturn("exec GetLSH " + sMaterID.ToString(), "GetLSH"); string WeiShu1 = ""; //尾数 int SumLen2 = 4; string TM2 = ""; double HWXQty = 0; LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]) + 1; // HNumber = oItemSub2.HMaterID.ToString(); //HMinQty = ClsPub.isDoule(oItemSub2.HMinQtyCol2].Value); HWXQty = ClsPub.isDoule(oItemSub2.HMinQty); HSumQty = ClsPub.isDoule(oItemSub2.HQty); HBQty = ClsPub.isInt(Math.Ceiling(HSumQty / HWXQty)); double NXTMQTY = 0; for (int i = 0; i < HBQty; i++) { if (HSumQty <= 0 || HWXQty <= 0) { break; } if (HSumQty - HWXQty > 0) { WeiShu1 = ""; NXTMQTY = HWXQty; HSumQty = HSumQty - HWXQty; } else { if (HSumQty == HWXQty) { WeiShu1 = ""; } else { WeiShu1 = "尾数"; } NXTMQTY = HSumQty; //HWXQty HWXQty = HSumQty; HSumQty = 0; } sDate = ClsPub.GetServerDate(0); sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); // // TM = HNumber + sYear + sPeriod + sDay; //条码 // Model.ClsGy_BarCodeBill_WMS_Model bar2 = new Model.ClsGy_BarCodeBill_WMS_Model(); TM2 = (i + 1).ToString(); while (TM2.Length < SumLen2) //如果条码小于12位数前面补0 { TM2 = "0" + TM2; } if (FCusName.Contains("添康科技")) { //内箱批次条码规则:SRM+组织+料号+批次+;+数量 TM2 = "SRM" + "100" + oItemSub2.HMaterNumber + oItemSub2.HBatchNo + ";" + HWXQty; bar2.HBarCode = TM2; } else { bar2.HBarCode = oItemSub2.HBarCode + "-" + TM2; } bar2.HMaterID = oItemSub2.HMaterID; bar2.HUnitID = oItemSub2.HUnitID; bar2.HQty = HWXQty; bar2.HBatchNo = DBUtility.ClsPub.isStrNull(oItemSub2.HBatchNo); bar2.HKFDate = DBUtility.ClsPub.isStrNull(oItemSub2.HKFDate); bar2.HKFDQDate = DBUtility.ClsPub.isStrNull(oItemSub2.HKFDQDate); bar2.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub2.HKFPeriod); bar2.HSourceInterID = oItemSub2.HSourceInterID; bar2.HSourceEntryID = oItemSub2.HSourceEntryID; bar2.HSourceBillNo = oItemSub2.HSourceBillNo; bar2.HSourceBillType = oItemSub2.HSourceBillType; bar2.HSupID = oItemSub2.HSupID; bar2.HEndQty = WeiShu1; bar2.HMTONO = oItemSub2.HMTONO; bar2.HSupBatchNo = DBUtility.ClsPub.isStrNull(oItemSub2.HSupBatchNo); bar2.HSupMaterNumber = DBUtility.ClsPub.isStrNull(oItemSub2.HSupMaterNumber); bar2.HISKFPERIOD = DBUtility.ClsPub.isInt(oItemSub2.HISKFPERIOD); ls3.Add(bar2); //LogService.Write("测试加+++" + oItemSub2.HSupID); } } } string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo = ""; Int64 HSupID = 0; Int64 HGroupID = 0; int HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HKFPeriod = 0; string HKFDate = ""; string HKFDQDate = ""; string HWei = ""; string HMTONO = ""; string HSupBatchNo = ""; string HSupMaterNumber = ""; Int64 HISKFPERIOD = 0; oCn.BeginTran(); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { //更新条码档案 该源单其它条码默认已经打印过一次 oCn.RunProc($"update Gy_BarCodeBill set HPrintQty += 1 where HPrintQty = 0 and HSourceInterID={oItemSub.HSourceInterID} and HSourceEntryID = {oItemSub.HSourceEntryID}"); } foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls2) { //LogService.Write("循环第二次:" + oItemSub.HSupID); if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HBarCode = oItemSub.HBarCode.ToString(); HMTONO = ClsPub.isStrNull(oItemSub.HMTONO); HBarCodeType = "箱号条码"; HMaterID = ClsPub.isLong(oItemSub.HMaterID); HUnitID = ClsPub.isLong(oItemSub.HUnitID); HQty2 = ClsPub.isDoule(oItemSub.HQty); HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo); HSupID = oItemSub.HSupID; //LogService.Write("HSupID:" + oItemSub.HSupID); HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType); HWei = ClsPub.isStrNull(oItemSub.HEndQty); HSupBatchNo = ClsPub.isStrNull(oItemSub.HSupBatchNo); HSupMaterNumber = ClsPub.isStrNull(oItemSub.HSupMaterNumber); HISKFPERIOD = DBUtility.ClsPub.isInt(oItemSub.HISKFPERIOD); if (FCusName.Contains("夏宝")) { HBarCode = $"{oItemSub.HMaterID}"; HBarCodeType = "品种码_外箱"; } if (FCusName.Contains("添康科技")) { //HBarCodeType = "批次条码"; } string sql = "insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO,HSupBatchNo,HSupMaterNumber,HProduceDate,HExpiryDate,HISKFPERIOD " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "','" + HSupBatchNo+ "','" + HSupMaterNumber + "','" + HKFDate + "','" + HKFDQDate + "'," + HISKFPERIOD + ")"; oCn.RunProc(sql); //LogService.Write(sql); sql = "exec setLSH '" + DateTime.Today + "'"; oCn.RunProc(sql); //LogService.Write(sql); } } foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls3) { //LogService.Write("循环第三次:" + oItemSub.HSupID); if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HBarCode = oItemSub.HBarCode.ToString(); HMTONO = ClsPub.isStrNull(oItemSub.HMTONO); HBarCodeType = "箱号内条码"; HMaterID = ClsPub.isLong(oItemSub.HMaterID); HUnitID = ClsPub.isLong(oItemSub.HUnitID); HQty2 = ClsPub.isDoule(oItemSub.HQty); HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo); HSupID = oItemSub.HSupID; HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType); HWei = ClsPub.isStrNull(oItemSub.HEndQty); HSupBatchNo = ClsPub.isStrNull(oItemSub.HSupBatchNo); HSupMaterNumber = ClsPub.isStrNull(oItemSub.HSupMaterNumber); HISKFPERIOD = ClsPub.isInt(oItemSub.HISKFPERIOD); if (FCusName.Contains("夏宝")) { HBarCode = $"{oItemSub.HMaterID}"; HBarCodeType = "品种码"; } if (FCusName.Contains("添康科技")) { //HBarCodeType = "批次条码"; } string sql = "insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO ,HSupBatchNo,HSupMaterNumber,HProduceDate,HExpiryDate,HISKFPERIOD" + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "','" + HSupBatchNo + "','" + HSupMaterNumber + "','" + HKFDate + "','" + HKFDQDate + "'," + HISKFPERIOD + ")"; oCn.RunProc(sql); //LogService.Write(sql); } } //暂时只回填关联数量 string _sql = "exec H_p_SRM_BarCodeBill_Update_UpdateBillRelateData " + linterid.ToString(); //LogService.Write(_sql); oCn.RunProc(_sql); oCn.Commit(); } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成条码成功!"; WebAPIController.Add_Log("条码下推", UserName, "生成条码"); objJsonResult.data = null; return objJsonResult; } //检查是否已经生成条码 public bool CheckBarCode(Int64 HSourceInterID, Int64 HSourceEntryID) { DataSet Ds; Ds = oCn.RunProcReturn("select * from Gy_BarCodeBill where HSourceInterID=" + HSourceInterID + " and HSourceEntryID=" + HSourceEntryID, "Gy_BarCodeBill"); if (Ds == null) { return false; } if (Ds.Tables[0].Rows.Count == 0) { return true; } else { return false; } } [Route("GetBarcodeSaveBillOnlyInnerBox")] [HttpPost] /// /// 生成条码(仅内箱) /// /// /// /// public object GetBarcodeSaveBillOnlyInnerBox([FromBody] JObject msg) { string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); //LogService.Write(msg3); string UserName = ""; ListModels oListModels = new ListModels(); try { List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) { UserName = oItem.HMaker; } DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill(); msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); List ls2 = new List(); ls = oListModels.getObjectByJson_MaterialList(msg3); long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo); int LSHlen = 6; //流水号长度 int SumLen = 10; //总长度 string TM = ""; //条码 int LSH = 0; //流水号 string LSH2 = ""; //流水号转换成字符 string sDate = ""; //日期 string sYear = ""; //年 string sPeriod = ""; //月 string sDay = ""; //日 DataSet Ds; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { //数量为0 跳过 if (oItemSub.HQty == 0) continue; //检验打印数量(HQTY)和未打印数量 string sql = $"select HQty -HBarcodeCount as HNotBarcodeCount ,* from Cg_POOrderBillSub where HEntryID = {oItemSub.HSourceEntryID}"; DataSet ds = oCn.RunProcReturn(sql, "tables"); if (ds.Tables[0].Rows.Count > 0 && Convert.ToInt32(ds.Tables[0].Rows[0][0]) < oItemSub.HQty) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"物料编码{oItemSub.HMaterNumber},本次生成条码数量不能超出未生成条码数量"; objJsonResult.data = null; return objJsonResult; } //内箱 if (ClsPub.isLong(oItemSub.HMaterID) != 0) { var WeiShu = ""; var HNumber = oItemSub.HMaterID.ToString(); var HSumQty = ClsPub.isDoule(oItemSub.HQty);//产品数量 var HMinQty = ClsPub.isDoule(oItemSub.HMinQty);//内箱包装数量 var HBQty = ClsPub.isDoule(oItemSub.HBQty); //内箱数 for (int i = 1; i <= HBQty; i++) { if ((double)i == HBQty) { WeiShu = "尾数"; HMinQty = HSumQty - (HBQty - 1) * HMinQty; } //TM = $"{oItemSub.HMaterID}#{HMinQty}"; TM = $"{oItemSub.HMaterID}"; Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model(); bar.HBarCode = TM; bar.HMaterID = oItemSub.HMaterID; bar.HUnitID = oItemSub.HUnitID; bar.HQty = HMinQty; bar.HBatchNo = oItemSub.HBatchNo; bar.HKFDate = oItemSub.HKFDate; bar.HKFPeriod = oItemSub.HKFPeriod; bar.HKFDQDate = oItemSub.HKFDQDate; bar.HSourceInterID = oItemSub.HSourceInterID; bar.HSourceEntryID = oItemSub.HSourceEntryID; bar.HSourceBillNo = oItemSub.HSourceBillNo; bar.HSourceBillType = oItemSub.HSourceBillType; bar.HMinQty = oItemSub.HMinQty; bar.HSupID = oItemSub.HSupID; bar.HEndQty = WeiShu; bar.HMTONO = oItemSub.HMTONO; ls2.Add(bar); } } } string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo = ""; Int64 HSupID = 0; Int64 HGroupID = 0; int HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HKFPeriod = 0; string HKFDate = ""; string HKFDQDate = ""; string HWei = ""; string HMTONO = ""; oCn.BeginTran(); foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls2) { //更新条码档案 该源单其它条码默认已经打印过一次 oCn.RunProc($"update Gy_BarCodeBill set HPrintQty += 1 where HPrintQty = 0 and HSourceInterID={oItemSub.HSourceInterID} and HSourceEntryID = {oItemSub.HSourceEntryID}"); } foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls2) { if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HBarCode = oItemSub.HBarCode.ToString(); HMTONO = ClsPub.isStrNull(oItemSub.HMTONO); HBarCodeType = "品种码"; HMaterID = ClsPub.isLong(oItemSub.HMaterID); HUnitID = ClsPub.isLong(oItemSub.HUnitID); HQty2 = ClsPub.isDoule(oItemSub.HQty); HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo); HSupID = oItemSub.HSupID; //LogService.Write("HSupID:" + oItemSub.HSupID); HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType); HWei = ClsPub.isStrNull(oItemSub.HEndQty); string sql = "insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"; oCn.RunProc(sql); sql = "exec setLSH '" + DateTime.Today + "'"; oCn.RunProc(sql); } } //暂时只回填关联数量 foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { if (oItemSub.HQty == 0) continue; //更新条码档案 该源单其它条码默认已经打印过一次 //更新 已打印数量 if (oItemSub.HSourceBillType == "1102") { string _HBarCodeType = "箱号条码"; if (FCusName.Contains("夏宝")) _HBarCodeType = "品种码"; string sql = string.Empty; sql = string.Format(@" update t1 set t1.HBarcodeCount = isnull((select sum(HQty)from Gy_BarCodeBill where HSourceInterID = t1.HInterID and HSourceEntryID = t1.HEntryID and HBarCodeType ='{2}'),0) from Cg_POOrderBillSub t1 where t1.HInterID = {0} and t1.HEntryID ={1}", oItemSub.HSourceInterID, oItemSub.HSourceEntryID, _HBarCodeType); oCn.RunProc(sql); } } oCn.Commit(); } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成条码成功!"; WebAPIController.Add_Log("条码下推", UserName, "生成条码"); objJsonResult.data = null; return objJsonResult; } [Route("GetHBarCodeShowBillSub2")] [HttpGet] /// /// 条码列表 /// /// /// public object GetHBarCodeShowBillSub2(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); ds = oClsWeb_BarCodeBill.ShowBillSub4(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + DBUtility.ClsPub.sExeReturnInfo; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 1; objjson.Message = "获取成功!"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取单据表体失败:" + e.Message; objjson.data = null; return objjson; } } [Route("GetHBarCodeShowBillSub3")] [HttpGet] /// /// 条码列表 /// /// /// public object GetHBarCodeShowBillSub3(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); ds = oClsWeb_BarCodeBill.ShowBillSub5(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + DBUtility.ClsPub.sExeReturnInfo; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 1; objjson.Message = "获取成功!"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取单据表体失败:" + e.Message; objjson.data = null; return objjson; } } [Route("GetHBarCodeShowBillSub4")] [HttpGet] /// /// 条码列表 /// /// /// public object GetHBarCodeShowBillSub4(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); ds = ShowBillSub6(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + DBUtility.ClsPub.sExeReturnInfo; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 1; objjson.Message = "获取成功!"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取单据表体失败:" + e.Message; objjson.data = null; return objjson; } } public DataSet ShowBillSub6(long lngBillKey, string sShowItem, ref string sReturn) { string str = ""; try { string MvarItemKeySubForWeb4 = "h_v_Web_BarCodeBill_ForWeb2"; str = string.Concat(new object[] { "Select ", sShowItem, " from ", MvarItemKeySubForWeb4, " Where HInterID=", lngBillKey.ToString(), " order by HEntryID " }); DataSet set = oCn.RunProcReturn(string.Concat(new object[] { "Select ", sShowItem, " from ", MvarItemKeySubForWeb4, " Where HInterID=", lngBillKey.ToString(), " order by HEntryID " }), MvarItemKeySubForWeb4); if ((set == null) || (set.Tables[0].Rows.Count == 0)) { sReturn = "单据体未找到!"; return null; } sReturn = "显示单据体成功!"; return set; } catch (Exception exception) { sReturn = exception.Message + str; return null; } } [Route("GetHBarCodeShowBillMain")] [HttpGet] /// /// 条码生成表头 /// /// /// public object GetHBarCodeShowBillMain(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); ds = oClsWeb_BarCodeBill.ShowBillMain1(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("GetHBarCodeShowBillSub")] [HttpGet] /// /// 条码生成表体 /// /// /// public object GetHBarCodeShowBillSub(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); ds = oClsWeb_BarCodeBill.ShowBillSub(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("GetHBarCodeShowBillSub_Merge")] [HttpGet] /// /// 条码生成表体(物料,批次相同,合并数量) /// /// /// public object GetHBarCodeShowBillSub_Merge(string HInterID) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(HInterID) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败,送货单内码为空"; objjson.data = null; return objjson; } ds = oCn.RunProcReturn("Select * from h_v_SRM_Barcode_MergePOInStock where HInterID = " + HInterID, "h_v_SRM_Barcode_MergePOInStock"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } /// /// 条码档案列表 /// /// /// /// /// [Route("GetBarCodeShowList")] [HttpPost] public object GetBarCodeShowList([FromBody] JObject msg) { string HSupIDs = msg["HSupIDs"].ToString(); string sqlWhere = msg["sqlWhere"].ToString(); //添加列名 List columnNameList = new List(); try { string VsWhere = ""; string PcWhere = ""; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds; string sql = " Where hsupid in (" + HSupIDs.Trim() + ")" + sqlWhere; if (Common.SQLtoChange(sql, ref VsWhere, ref PcWhere) == false) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } //获取总行数 //Int64 RowTotal = Common.GetRowTotal("h_v_SRM_BarCodeBillList", VsWhere, ref DBUtility.ClsPub.sExeReturnInfo); //获取返回数据 ds = oCn.RunProcReturn("exec h_p_SRM_BarCodeBillList '" + PcWhere + "'", "h_v_SRM_BarCodeBillList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "无相关条码信息!"; objjson.data = null; return objjson; } else { foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; objjson.list = columnNameList; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } #region 采购订单条码生成功能(安瑞) [Route("GetHBarCodeShowBillMainBycg")] /// /// 条码生成表头(采购订单) /// /// /// public object GetHBarCodeShowBillMainBycg(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); string sql = string.Format(@"select * from h_v_Cg_POOrderBillMain_ForWeb2 where HInterID = " + sMsg); ds = oCn.RunProcReturn(sql, "h_v_Cg_POOrderBillMain_ForWeb2"); //ds = oClsWeb_BarCodeBill.ShowBillMain1(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("GetHBarCodeShowBillSubBycg")] [HttpGet] /// /// 条码生成表体(采购订单) /// /// 采购订单HinterID /// public object GetHBarCodeShowBillSubBycg(string sMsg) { try { if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } //预处理 修改采购订单的退料数量 var kdTbaleName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DataBaseName"); string sql = $@"update t1 set t1.HMrbQty = t2.FMRBQTY from Cg_POOrderBillSub t1 join {kdTbaleName}..T_PUR_POORDERENTRY_R t2 on t1.HEntryID = t2.FENTRYID where t1.HInterID = {sMsg} ";//sMsg 采购订单hinterid oCn.RunProc(sql); DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); sql = string.Format(@"select * from h_v_Cg_POOrderBillSub_ForWeb2 where HInterID = " + sMsg); DataSet ds = oCn.RunProcReturn(sql, "h_v_Cg_POOrderBillSub_ForWeb2"); //ds = oClsWeb_BarCodeBill.ShowBillSub(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("GetBarcodeSaveBillBoxBycg")] [HttpPost] /// /// 采购订单 生成条码 内外箱 /// /// /// /// public object GetBarcodeSaveBillBoxBycg([FromBody] JObject msg) { string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); var _value = msg["msg"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString();// string msg3 = sArray[1].ToString();// string UserName = ""; ListModels oListModels = new ListModels(); try { List lsmain = new List(); msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n lsmain = oListModels.getObjectByJson_POInStockMain(msg2); foreach (Model.ClsCg_POInStockBillMain oItem in lsmain) { UserName = oItem.HMaker; } DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill(); msg3 = msg3.Substring(1, msg3.Length - 2); msg3 = msg3.Replace("\\", ""); msg3 = msg3.Replace("\n", ""); //\n List ls = new List(); List ls2 = new List();//外箱model List ls3 = new List();//内箱model ls = oListModels.getObjectByJson_MaterialList(msg3);//列表数据model long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo); int LSHlen = 6; //流水号长度 int SumLen = 10; //总长度 string TM = ""; //条码 string HNumber = ""; //物料代码 double HSumQty = 0; //产品数量 double HMinQty = 0; //最小包装数 int HBQty = 0; //箱数 double HQty = 0; //数量 int LSH = 0; //流水号 string LSH2 = ""; //流水号转换成字符 string sDate = ""; //日期 string sYear = ""; //年 string sPeriod = ""; //月 string sDay = ""; //日 string WeiShu = ""; //尾数 DataSet Ds; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCn.BeginTran(); Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH"); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { //数量为0 跳过 if (oItemSub.HQty == 0 || oItemSub.HMinQty == 0 || oItemSub.HWXQty == 0) continue; //检验打印数量(HQTY)和未打印数量 string sql = $"select HQty + isnull(HMrbQty,0) - HBarcodeCount as HNotBarcodeCount ,* from Cg_POOrderBillSub where HEntryID = {oItemSub.HSourceEntryID}"; DataSet ds = oCn.RunProcReturn(sql, "tables"); if (ds.Tables[0].Rows.Count > 0 && Convert.ToDouble(ds.Tables[0].Rows[0][0]) < oItemSub.HQty) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"物料编码{oItemSub.HMaterNumber},本次生成条码数量不能超出未生成条码数量"; objJsonResult.data = null; return objJsonResult; } //校验批号 和 生产日期 sql = $"select top 1 HKFDate from Gy_BarCodeBill where HSupID = '{oItemSub.HSupID}' and HBatchNo = '{oItemSub.HBatchNo.TrimStart().TrimEnd()}' and HMaterID ={oItemSub.HMaterID} and isnull(HKFDate, '') <> ''"; LogService.Write($"sql:{sql}"); DataTable dt = oCn.RunProcReturn(sql, "tables").Tables[0]; if (dt.Rows.Count > 0) { LogService.Write($"HKFDate:{dt.Rows[0][0]}"); sql = $"select DATEDIFF(D,{dt.Rows[0][0]},{oItemSub.HKFDate})"; ds = oCn.RunProcReturn(sql, "tables2"); LogService.Write($"DATEDIFF:{Convert.ToInt32(ds.Tables[0].Rows[0][0])}"); if (ds.Tables[0].Rows.Count > 0 && Convert.ToInt32(ds.Tables[0].Rows[0][0]) != 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"物料编码{oItemSub.HMaterNumber},批号{oItemSub.HBatchNo.TrimStart().TrimEnd()},生产日期为{dt.Rows[0][0]},请核对"; objJsonResult.data = null; return objJsonResult; } } if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HNumber = oItemSub.HMaterID.ToString(); //HNumber = HNumber.Replace(".", ""); //HQty = Math.Ceiling(HBQty + ClsPub.isDoule(oItemSub.HWBQty)); HQty = ClsPub.isDoule(oItemSub.HWBQty);//内箱数 HBQty = ClsPub.isInt(oItemSub.HWBQty);//内箱数 HMinQty = ClsPub.isDoule(oItemSub.HWXQty);//外箱包装数 HSumQty = ClsPub.isDoule(oItemSub.HQty); //产品数量 for (int i = 0; i < HBQty; i++) { //// 安瑞条码规则:物料编码(系统代入)@物料名称(系统代入)@规格型号(系统代入)@生产日期(手工输入)@数量(手工输入)@失效日期(手工输入)@批次号(手工代入)@供应商名称(系统代入)@采购订单号(系统代入) //TM = $"{oItemSub.HMaterNumber}@{oItemSub.HMaterName}@{oItemSub.HMaterModel}@{oItemSub.HKFDate}@{oItemSub.HQty}@{oItemSub.HKFDQDate}@{oItemSub.HBatchNo}@{oItemSub.HSupName}@{oItemSub.HSourceBillNo}"; if (HSumQty - HMinQty > 0) { WeiShu = ""; HSumQty = HSumQty - HMinQty; } else { if (HSumQty == HMinQty) { WeiShu = ""; } else { WeiShu = "尾数"; } HMinQty = HSumQty; } //安瑞条码规则:物料编码(系统代入)@物料名称(系统代入)@规格型号(系统代入)@生产日期(手工输入)@数量(手工输入)@失效日期(手工输入)@批次号(手工代入)@供应商名称(系统代入)@采购订单号(系统代入) TM = $"{oItemSub.HMaterNumber}@{oItemSub.HMaterName}@{oItemSub.HMaterModel}@{oItemSub.HKFDate}@{HMinQty}@{oItemSub.HKFDQDate}@{oItemSub.HBatchNo.TrimStart().TrimEnd()}@{oItemSub.HSupName}@{oItemSub.HSourceBillNo}"; Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model(); var HBarCode_verify = TM.Split('@'); //校验条码信息 var HMaterNumber_verify = HBarCode_verify[0]; //校验物料编码 var HMaterName_verify = HBarCode_verify[1]; //校验物料名称 var HMaterModel_verify = HBarCode_verify[2]; //校验规格型号 var HSupName_verify = HBarCode_verify[7]; //校验供应商 var HSourceBillNo_verify = HBarCode_verify[8]; //校验采购订单号 sql = $"select * from Gy_Material where HNumber = '{HMaterNumber_verify}' and HName = '{HMaterName_verify}'"; DataSet verifyMatInfo = oCn.RunProcReturn(sql, "tables"); sql = $"select * from Cg_POOrderBillMain where HBillNo = '{HSourceBillNo_verify}'"; DataSet verifyBillInfo = oCn.RunProcReturn(sql, "tables"); sql = $"select * from Gy_Supplier where HName = '{HSupName_verify}'"; DataSet verifySupInfo = oCn.RunProcReturn(sql, "tables"); if (verifyMatInfo.Tables[0].Rows.Count <= 0 || verifyBillInfo.Tables[0].Rows.Count <= 0 || verifySupInfo.Tables[0].Rows.Count <= 0) { oCn.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = $"条码信息校验出错,请重新生成条码"; objJsonResult.data = null; return objJsonResult; } bar.HBarCode = TM; bar.HMaterID = oItemSub.HMaterID; //bar.HMaterNumber = oItemSub.HMaterNumber; //bar.HMaterName = oItemSub.HMaterName; //bar.HMaterModel = oItemSub.HMaterModel; // bar.HModel2 = oItemSub.HModel; bar.HUnitID = oItemSub.HUnitID; //bar.HUnitNumber2 = oItemSub.HUnitNumber; //bar.HUnitName2 = oItemSub.HUnitName; bar.HQty = HMinQty; bar.HBatchNo = oItemSub.HBatchNo; bar.HKFDate = oItemSub.HKFDate; bar.HKFPeriod = oItemSub.HKFPeriod; bar.HKFDQDate = oItemSub.HKFDQDate; bar.HSourceInterID = oItemSub.HSourceInterID; bar.HSourceEntryID = oItemSub.HSourceEntryID; bar.HSourceBillNo = oItemSub.HSourceBillNo; bar.HSourceBillType = oItemSub.HSourceBillType; bar.HMinQty = oItemSub.HMinQty; bar.HSupID = oItemSub.HSupID; bar.HEndQty = WeiShu; bar.HMTONO = oItemSub.HMTONO; bar.HISKFPERIOD = oItemSub.HISKFPERIOD; ls2.Add(bar); } } } oCn.Commit(); foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub2 in ls2) { if (ClsPub.isLong(oItemSub2.HMaterID) != 0) { long sMaterID = ClsPub.isLong(oItemSub2.HMaterID); Ds = oCn.RunProcReturn("exec GetLSH " + sMaterID.ToString(), "GetLSH"); string WeiShu1 = ""; //尾数 int SumLen2 = 4; string TM2 = ""; double HWXQty = 0; double HBarcodeQty = ClsPub.isDoule(oItemSub2.HQty); LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]) + 1; // HNumber = oItemSub2.HMaterID.ToString(); //HMinQty = ClsPub.isDoule(oItemSub2.HMinQtyCol2].Value); HWXQty = ClsPub.isDoule(oItemSub2.HMinQty); HSumQty = ClsPub.isDoule(oItemSub2.HQty); HBQty = ClsPub.isInt(Math.Ceiling(HSumQty / HWXQty)); double NXTMQTY = 0; for (int i = 0; i < HBQty; i++) { if (HSumQty <= 0 || HWXQty <= 0) { break; } if (HSumQty - HWXQty > 0) { WeiShu1 = ""; NXTMQTY = HWXQty; HSumQty = HSumQty - HWXQty; } else { if (HSumQty == HWXQty) { WeiShu1 = ""; } else { WeiShu1 = "尾数"; } NXTMQTY = HSumQty; //HWXQty HWXQty = HSumQty; HSumQty = 0; } sDate = ClsPub.GetServerDate(0); sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2); sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString(); sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2); sDay = "0" + ClsPub.isDate(sDate).Day.ToString(); sDay = sDay.Substring(sDay.Length - 2, 2); // // TM = HNumber + sYear + sPeriod + sDay; //条码 // Model.ClsGy_BarCodeBill_WMS_Model bar2 = new Model.ClsGy_BarCodeBill_WMS_Model(); TM2 = (i + 1).ToString(); while (TM2.Length < SumLen2) //如果条码小于12位数前面补0 { TM2 = "0" + TM2; } bar2.HMaterID = oItemSub2.HMaterID; var HBarCode_NX = oItemSub2.HBarCode.Split('@'); //内箱拆分条码编号 string HBarMaterNumber_NX = HBarCode_NX[0];//内箱条码_物料代码 string HBarMaterName_NX = HBarCode_NX[1];//内箱条码_物料名称 string HBarMaterModel_NX = HBarCode_NX[2];//内箱条码_物料规格型号 string HBarKFDate_NX = HBarCode_NX[3];//内箱条码_生产日期 string HBarQty_NX = HBarCode_NX[4];//内箱条码_数量 string HBarKFDQDate_NX = HBarCode_NX[5];//内箱条码_有效期至 string HBarBatchNo_NX = HBarCode_NX[6];//内箱条码_批号 string HBarSupName_NX = HBarCode_NX[7];//内箱条码_供应商名称 string HBarSourceBillNo_NX = HBarCode_NX[8];//内箱条码_源单单号 HBarQty_NX = HWXQty.ToString(); string TM_NX = $"{HBarMaterNumber_NX}@{HBarMaterName_NX}@{HBarMaterModel_NX}@{HBarKFDate_NX}@{HBarQty_NX}@{HBarKFDQDate_NX}@{HBarBatchNo_NX.TrimStart().TrimEnd()}@{HBarSupName_NX}@{HBarSourceBillNo_NX}"; bar2.HBarCode = TM_NX;//oItemSub2.HBarCode.Replace(HBarcodeQty.ToString(), HWXQty.ToString());//问题所在 外箱包装数,替换成内箱包装数 bar2.HUnitID = oItemSub2.HUnitID; bar2.HQty = HWXQty; bar2.HBatchNo = DBUtility.ClsPub.isStrNull(oItemSub2.HBatchNo); bar2.HKFDate = DBUtility.ClsPub.isStrNull(oItemSub2.HKFDate); bar2.HKFDQDate = DBUtility.ClsPub.isStrNull(oItemSub2.HKFDQDate); bar2.HKFPeriod = DBUtility.ClsPub.isInt(oItemSub2.HKFPeriod); bar2.HSourceInterID = oItemSub2.HSourceInterID; bar2.HSourceEntryID = oItemSub2.HSourceEntryID; bar2.HSourceBillNo = oItemSub2.HSourceBillNo; bar2.HSourceBillType = oItemSub2.HSourceBillType; bar2.HSupID = oItemSub2.HSupID; bar2.HEndQty = WeiShu1; bar2.HMTONO = oItemSub2.HMTONO; bar2.HISKFPERIOD = oItemSub2.HISKFPERIOD; ls3.Add(bar2); } } } string HBarCode = ""; string HBarCodeType = ""; Int64 HMaterID = 0; Int64 HUnitID = 0; double HQty2 = 0; string HBatchNo = ""; Int64 HSupID = 0; Int64 HGroupID = 0; int HPrintQty = 0; Int64 HSourceInterID = 0; Int64 HSourceEntryID = 0; string HSourceBillNo = ""; string HSourceBillType = ""; Int64 HKFPeriod = 0; string HKFDate = ""; string HKFDQDate = ""; string HWei = ""; string HMTONO = ""; Int64 HISKFPERIOD = 0; oCn.BeginTran(); foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { //更新条码档案 该源单其它条码默认已经打印过一次 oCn.RunProc($"update Gy_BarCodeBill set HPrintQty += 1 where HPrintQty = 0 and HSourceInterID={oItemSub.HSourceInterID} and HSourceEntryID = {oItemSub.HSourceEntryID}"); } //外箱 var oItemSubGroup = ls2.GroupBy(x => new { x.HSourceEntryID }).Select(y => new Model.ClsGy_BarCodeBill_WMS_Model { HSourceEntryID = y.Key.HSourceEntryID }); foreach (var oitem in oItemSubGroup) { var SubModel = ls2.Where(x => x.HSourceEntryID == oitem.HSourceEntryID).ToList(); int count = 1; foreach (var oItemSub in SubModel) { if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HBarCode = oItemSub.HBarCode.ToString(); HMTONO = ClsPub.isStrNull(oItemSub.HMTONO); HBarCodeType = "箱号条码"; HMaterID = ClsPub.isLong(oItemSub.HMaterID); HUnitID = ClsPub.isLong(oItemSub.HUnitID); HQty2 = ClsPub.isDoule(oItemSub.HQty); HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo); HSupID = oItemSub.HSupID; HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType); HISKFPERIOD = ClsPub.isInt(oItemSub.HISKFPERIOD); HWei = ClsPub.isStrNull(oItemSub.HEndQty); if (FCusName.Contains("夏宝")) { HBarCode = $"{oItemSub.HMaterID}"; HBarCodeType = "品种码_外箱"; } string sql = "insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HBarcodeQtys,HBarcodeNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO,HProduceDate,HExpiryDate,HISKFPERIOD" + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + SubModel.Count + "','" + count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "','" + HKFDate + "','" + HKFDQDate + "'," + HISKFPERIOD + ")"; LogService.Write("生成外箱条码: " + sql); oCn.RunProc(sql); oCn.RunProc("exec setLSH '" + DateTime.Today + "'"); count++; } } } //内箱 var _oItemSubGroup = ls3.GroupBy(x => new { x.HSourceEntryID }).Select(y => new Model.ClsGy_BarCodeBill_WMS_Model { HSourceEntryID = y.Key.HSourceEntryID }); foreach (var oitem in _oItemSubGroup) { var SubModel = ls3.Where(x => x.HSourceEntryID == oitem.HSourceEntryID).ToList(); int _count = 1; foreach (var oItemSub in SubModel) { if (ClsPub.isLong(oItemSub.HMaterID) != 0) { HBarCode = oItemSub.HBarCode.ToString(); HMTONO = ClsPub.isStrNull(oItemSub.HMTONO); HBarCodeType = "箱号内条码"; HMaterID = ClsPub.isLong(oItemSub.HMaterID); HUnitID = ClsPub.isLong(oItemSub.HUnitID); HQty2 = ClsPub.isDoule(oItemSub.HQty); HBatchNo = ClsPub.isStrNull(oItemSub.HBatchNo); HSupID = oItemSub.HSupID; HKFPeriod = ClsPub.isInt(oItemSub.HKFPeriod); HKFDate = ClsPub.isStrNull(oItemSub.HKFDate); HKFDQDate = ClsPub.isStrNull(oItemSub.HKFDQDate); HSourceInterID = ClsPub.isLong(oItemSub.HSourceInterID); HSourceEntryID = ClsPub.isLong(oItemSub.HSourceEntryID); HSourceBillNo = ClsPub.isStrNull(oItemSub.HSourceBillNo); HSourceBillType = ClsPub.isStrNull(oItemSub.HSourceBillType); HWei = ClsPub.isStrNull(oItemSub.HEndQty); HISKFPERIOD = ClsPub.isInt(oItemSub.HISKFPERIOD); if (FCusName.Contains("夏宝")) { HBarCode = $"{oItemSub.HMaterID}"; HBarCodeType = "品种码"; } string sql = "insert into Gy_BarCodeBill (HInterID,HBarCode,HBarCodeType,HMaterID,HUnitID,HQty,HKFDate,HKFPeriod,HKFDQDate" + ",HBatchNo,HBarcodeQtys,HBarcodeNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO,HProduceDate,HExpiryDate,HISKFPERIOD" + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + SubModel.Count + "','" + _count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "','" + HKFDate + "','" + HKFDQDate + "'," + HISKFPERIOD + ")"; LogService.Write("生成内箱条码: "+ sql); oCn.RunProc(sql); _count++; } } } //暂时只回填关联数量 foreach (Model.ClsGy_MaterialList_WMS_Model oItemSub in ls) { if (oItemSub.HQty == 0) continue; //更新条码档案 该源单其它条码默认已经打印过一次 //更新 已打印数量 if (oItemSub.HSourceBillType == "1102") { string _HBarCodeType = "箱号条码"; if (FCusName.Contains("夏宝")) _HBarCodeType = "品种码"; string sql = string.Empty; sql = string.Format(@" update t1 set t1.HBarcodeCount = isnull((select sum(HQty)from Gy_BarCodeBill where HSourceInterID = t1.HInterID and HSourceEntryID = t1.HEntryID and HBarCodeType ='{2}'),0) from Cg_POOrderBillSub t1 where t1.HInterID = {0} and t1.HEntryID ={1}", oItemSub.HSourceInterID, oItemSub.HSourceEntryID, _HBarCodeType); oCn.RunProc(sql); } } oCn.Commit(); } catch (Exception e) { LogService.Write("生成条码发生错误: " + e); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "" + e.Message + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成条码成功!"; WebAPIController.Add_Log("条码下推", UserName, "生成条码"); objJsonResult.data = null; return objJsonResult; } #endregion #region 委外订单条码生成功能(安瑞) [Route("GetHBarCodeShowBillMainBywy")] /// /// 条码生成表头(采购订单) /// /// /// public object GetHBarCodeShowBillMainBywy(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); string sql = string.Format(@"select * from h_v_SRM_EntrustOrderBillMain_ForWeb2 where HInterID = " + sMsg); ds = oCn.RunProcReturn(sql, "h_v_SRM_EntrustOrderBillMain_ForWeb2"); //ds = oClsWeb_BarCodeBill.ShowBillMain1(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("GetHBarCodeShowBillSubBywy")] [HttpGet] /// /// 条码生成表体(采购订单) /// /// /// public object GetHBarCodeShowBillSubBywy(string sMsg) { try { DataSet ds; string s = ""; string ShowItem = " * ";//显示的字段 if (DBUtility.ClsPub.isLong(sMsg) == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } DAL.ClsWeb_BarCodeBill oClsWeb_BarCodeBill = new DAL.ClsWeb_BarCodeBill(); string sql = string.Format(@"select * from h_v_srm_EntrustOrderBillSub_ForWeb2 where HInterID = " + sMsg); ds = oCn.RunProcReturn(sql, "h_v_srm_EntrustOrderBillSub_ForWeb2"); //ds = oClsWeb_BarCodeBill.ShowBillSub(DBUtility.ClsPub.isLong(sMsg), ShowItem, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null || ds.Tables[0].Rows.Count == 0) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败"; objjson.data = null; return objjson; } else { objjson.code = "0"; objjson.count = 10000; objjson.Message = "获取成功"; objjson.data = ds.Tables[0]; return objjson; } } catch (Exception e) { objjson.code = "0"; objjson.count = 0; objjson.Message = "获取失败" + e.ToString(); objjson.data = null; return objjson; } } [Route("DeltetBarCodeBill")] [HttpPost] public object DeltetBarCodeBill([FromBody] JObject oData) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); try { var _value = oData["oData"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string HInter = sArray[0].ToString(); string HInterID = HInter.Replace("\"", ""); string HUserName = sArray[1].ToString(); string FCusName = oSystemParameter.GetSingleSystemParameter("WMS_CampanyName", ref DBUtility.ClsPub.sExeReturnInfo); string sql = "select HItemID,HBarCode,HSourceInterID,HSourceEntryID,HQty,HBarCodeType,HSourceBillType from Gy_BarCodeBill where HItemID in(" + HInterID + ") "; //LogService.Write("删除sql:" + sql); oCN.BeginTran(); DataTable dt = oCN.RunProcReturn(sql, "deleteTable").Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { string _HBarCodeType = "箱号条码"; if (FCusName.Contains("夏宝")) _HBarCodeType = "品种码"; WebAPIController.Add_Log("条码档案删除", HUserName, "单号" + dr["HBarCode"].ToString()); //反写打印数量到采购订单子表 if (dr["HBarCodeType"].ToString() == _HBarCodeType && dr["HSourceBillType"].ToString() == "1102") oCN.RunProc($"update Cg_POOrderBillSub set HBarcodeCount -= {dr["HQty"]} where HInterID ={dr["HSourceInterID"]} and HEntryID ={dr["HSourceEntryID"]}"); //反写打印数量到委外订单 if (dr["HBarCodeType"].ToString() == "箱号内条码" && dr["HSourceBillType"].ToString() == "1601") oCN.RunProc($"update WW_EntrustOrderBillSub set HBarcodeCount -= {dr["HQty"]} where HInterID ={dr["HSourceInterID"]} and HEntryID ={dr["HSourceEntryID"]}"); if (FCusName.Contains("添康科技")) { _HBarCodeType = "箱号内条码"; if (dr["HSourceBillType"].ToString() == "1103" && dr["HBarCodeType"].ToString() == _HBarCodeType) oCN.RunProc($"update Cg_POInStockBillSub set HRelationBarCodeQty -= {dr["HQty"]} where HInterID ={dr["HSourceInterID"]} and HEntryID ={dr["HSourceEntryID"]}"); } else { //反写打印数量到送货单 (不需要反写 送货单直接是关联查询取的数量 没有在源单上做保存) if (dr["HSourceBillType"].ToString() == "1103") oCN.RunProc("Delete From Gy_BarCodeBill where HItemID in(" + dr["HItemID"] + ") "); //oCN.RunProc($"update WW_EntrustOrderBillSub set HBarcodeCount -= {dr["HQty"]} where HInterID ={dr["HSourceInterID"]} and HEntryID ={dr["HSourceEntryID"]}"); } } } oCN.RunProc("Delete From Gy_BarCodeBill where HItemID in(" + HInterID + ") "); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }