using DBUtility; 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; namespace WebAPI.Controllers { public class BarCodeController : ApiController { private JsonResult objJsonResult = new JsonResult(); private json objjson = new json(); public new ClsCNSRM oCn = new ClsCNSRM(); 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.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); 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.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); 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.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); 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) { 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) { 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; } if (oItemSub.HWBQty == 0 || oItemSub.HWXQty == 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); 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.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); 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) { //LogService.Write("model初始化:" + oItemSub.HKFDate); 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); //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; } 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; ls2.Add(bar); } } } foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub2 in ls2) { //LogService.Write("循环第一次:" + oItemSub2.HSupID); 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; } bar2.HMaterID = oItemSub2.HMaterID; bar2.HBarCode = oItemSub2.HBarCode + "-" + TM2; 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; 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 = ""; oCn.BeginTran(); int count = 1; 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); oCn.RunProc("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 " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + ls2.Count + "','" + count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"); oCn.RunProc("exec setLSH '" + DateTime.Today + "'"); count++; } } int _count = 1; 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); LogService.Write("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 " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + ls3.Count + "','" + _count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"); oCn.RunProc("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 " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + ls3.Count + "','" + _count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"); _count++; } } //暂时只回填关联数量 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("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 = oClsWeb_BarCodeBill.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; } } [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("GetBarCodeShowList")] [HttpGet] public object GetBarCodeShowList(string HSupNo, string sqlWhere) { string msg = ""; try { string VsWhere = ""; string PcWhere = ""; SQLHelper.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); DataSet ds; //其他过滤 if (msg.Trim() == "") { msg = " Where hsupid in (select HSupID from h_v_Gy_UserSupplierList where 用户=''" + HSupNo.Trim() + "'') " + sqlWhere; // msg = " Where hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)"; } else { msg = msg + " and hsupid in (select HSupID from h_v_Gy_UserSupplierList where 用户=''" + HSupNo.Trim() + "'') " + sqlWhere; // msg = msg + " Where hsupid in (select hsupid from Gy_UserSupplierRelation where HUserID=^^" + System.Web.HttpContext.Current.Session["HUserName"].ToString() + "^^)"; } //转换特殊字符 if (Common.SQLtoChange(msg, 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 { 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; } } #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] /// /// 条码生成表体(采购订单) /// /// /// public object GetHBarCodeShowBillSubBycg(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_POOrderBillSub_ForWeb2 where HInterID = " + sMsg); 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) { 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(); List ls3 = 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; } if (oItemSub.HWBQty == 0 || oItemSub.HWXQty == 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); 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.ClsCNSRM oCn = new SQLHelper.ClsCNSRM(); 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(); //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; } 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; 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; } bar2.HMaterID = oItemSub2.HMaterID; bar2.HBarCode = oItemSub2.HBarCode + "-" + TM2; 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; 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 = ""; oCn.BeginTran(); int count = 1; 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; 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,HBarcodeQtys,HBarcodeNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HEndQty,HSupflag" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HMTONO " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + ls2.Count + "','" + count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"; LogService.Write(sql); oCn.RunProc(sql); oCn.RunProc("exec setLSH '" + DateTime.Today + "'"); count++; } } int _count = 1; foreach (Model.ClsGy_BarCodeBill_WMS_Model oItemSub in ls3) { 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); 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 " + ") values (" + linterid.ToString() + ",'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID + "," + HUnitID + "," + HQty2 + ",'" + HKFDate + "'," + HKFPeriod + ",'" + HKFDQDate + "','" + HBatchNo + "','" + ls3.Count + "','" + _count + "'," + HSupID + "," + HGroupID + ",'" + ClsPub.CurUserName + "','" + DateTime.Today + "'," + HPrintQty + ",'" + HWei + "',1" + "," + HSourceInterID + "," + HSourceEntryID + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HMTONO + "')"; LogService.Write(sql); oCn.RunProc(sql); _count++; } } //暂时只回填关联数量 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; } #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")] [HttpGet] public object DeltetBarCodeBill(string HInterID, string HUserName) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); try { string sql = "select HBarCode from Gy_BarCodeBill where HItemID in(" + HInterID + ") "; LogService.Write("删除sql:" + sql); DataTable dt = oCN.RunProcReturn(sql, "deleteTable").Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { WebAPIController.Add_Log("条码档案删除", HUserName, "单号" + dr["HBarCode"].ToString()); ; } } oCN.BeginTran(); //LogService.Write("Delete From Gy_BarCodeBill where HItemID in(" + HInterID + ")") ; 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 } }