| | |
| | | string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); |
| | | string msg2 = sArray[0].ToString();// |
| | | string msg3 = sArray[1].ToString();// |
| | | string UserName = ""; |
| | | string UserName = sArray[2].ToString(); |
| | | string OrganizationID = sArray[3].ToString(); |
| | | ListModels oListModels = new ListModels(); |
| | | try |
| | | { |
| | |
| | | msg2 = msg2.Replace("\n", ""); //\n |
| | | lsmain = oListModels.getObjectByJson_MaterialHanding(msg2); |
| | | int get_BarCodecount = 0; |
| | | |
| | | foreach (Model.Cls_MaterialHandingModel oItem in lsmain) |
| | | { |
| | | get_BarCodecount++; |
| | | UserName = oItem.HMaker; |
| | | //UserName = oItem.HMaker; |
| | | } |
| | | DAL.ClsWeb_BarCodeBill oBill = new DAL.ClsWeb_BarCodeBill(); |
| | | msg3 = msg3.Substring(1, msg3.Length - 2); |
| | |
| | | |
| | | ls = oListModels.getObjectByJson_BarCodeBill(msg3);//列表数据model |
| | | |
| | | if (ls.Count > 1) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "每次只允许选择一个物料生成条码,请退出重新选择一行物料,不允许选择多行物料!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | #region 数据准备 |
| | | long linterid = Pub_Class.ClsPub.CreateBillID_SRMProd("8888", ref DBUtility.ClsPub.sExeReturnInfo); |
| | |
| | | string HKFDate= ls[0].HKFDQDate==null? DateTime.Now.ToString("yyyy/MM/dd"): ls[0].HKFDQDate;//生产日期 |
| | | string HKFDate_1 = string.Join("", HKFDate.Split('/').Select(x => x.PadLeft(2, '0'))); |
| | | double HMinQty= ls[0].HMinQty;//标准包装数 |
| | | string HStatusMan = ls[0].HStatusMan;//工号 |
| | | //string HBarCodeDate = ls[0].HBarCodeDate;//工号 |
| | | string HBarCodeDate = ls[0].HBarCodeDate == null ? DateTime.Now.ToString("yyyy/MM/dd") : ls[0].HBarCodeDate;//条码日期 |
| | | string HBarCodeDate_1 = string.Join("", HBarCodeDate.Split('-').Select(x => x.PadLeft(2, '0'))); |
| | | |
| | | double HBQty= ls[0].HBQty;//最小包装数 |
| | | double HBQty = ls[0].HBQty;//最小包装数 |
| | | long HISKFPERIOD= ls[0].HISKFPERIOD;//是否启用保质期 |
| | | long HBatchManager= ls[0].HBatchManager;//是否启用批号 |
| | | |
| | |
| | | string HMaterShortNumber = ls[0].HMaterShortNumber; |
| | | string HMaterName = ls[0].HMaterName; |
| | | //供应商 |
| | | long HSupID= ls[0].HSupID; |
| | | string HSupName= ls[0].HSupName; |
| | | long HSupID = lsmain[0].HSupID; |
| | | string HMaker= ls[0].HMaker; |
| | | DateTime HMakeDate= ls[0].HMakeDate; |
| | | double HQty= ls[0].HQty; //本次生成条码数量 |
| | |
| | | DataSet Ds; |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | oCn.BeginTran(); |
| | | Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH"); |
| | | //Ds = oCn.RunProcReturn("exec GetLSH '" + DateTime.Today + "'", "GetLSH"); |
| | | Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + HSupID+"_"+ HMaterID+"_" + HBarCodeDate + "'", "GetLSH"); |
| | | LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]); |
| | | #endregion |
| | | |
| | | //// 存储生成的条码列表 |
| | | List<string> generatedBarcodes = new List<string>(); |
| | | |
| | | var biaoqianCount = 0; |
| | | foreach (Model.ClsGy_MaterialBarCodeBillModel oItemSub in ls) |
| | | { |
| | | biaoqianzhangshu = ls[biaoqianCount].biaoqianzhangshu; |
| | | biaoqianCount++; |
| | | //数量为0 跳过 |
| | | if (oItemSub.HQty == 0 || oItemSub.HMinQty == 0 ) |
| | | continue; |
| | |
| | | return objJsonResult; |
| | | } |
| | | string sql = ""; |
| | | //校验批号 和 生产日期 |
| | | //string sql = $"select top 1 HKFDate from Gy_BarCodeBill where HSupID = '{oItemSub.HSupID}' and HBatchNo = '{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]},{HKFDate})"; |
| | | // DataSet 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) |
| | | { |
| | | |
| | |
| | | // HSumQty = ClsPub.isDoule(oItemSub.HQty); //产品数量 |
| | | for (int i = 0; i < biaoqianzhangshu; i++) |
| | | { |
| | | ///供应商名称+@+物料代码+@+物料简称+@+数量+@+日期+@+流水号 |
| | | double currentQty = (i == biaoqianzhangshu - 1 && (HQty % HMinQty != 0)) |
| | | ? (HQty % HMinQty) |
| | | : HMinQty; |
| | | ///供应商名称+@+物料代码+@+物料简称+@+数量+@条码数+@+日期+@+流水号 |
| | | LSH += 1; |
| | | TM = $"{oItemSub.HSupName}@{oItemSub.HMaterID}@{oItemSub.HMaterName}@{oItemSub.biaoqianzhangshu}@{HKFDate_1}@{LSH}"; |
| | | TM = $"{oItemSub.HSupName}@{oItemSub.HMaterNumber}@{oItemSub.HSubjoin}@{currentQty}@{HBarCodeDate_1}@{LSH.ToString("D7")}"; |
| | | //TM = $"{oItemSub.HSupName}@{oItemSub.HMaterID}@{oItemSub.HMaterName}@{oItemSub.biaoqianzhangshu}@{HKFDate_1}@{LSH}"; |
| | | // 添加到生成的条码列表 |
| | | generatedBarcodes.Add(TM); |
| | | Model.ClsGy_BarCodeBill_WMS_Model bar = new Model.ClsGy_BarCodeBill_WMS_Model(); |
| | | |
| | | // var HBarCode_verify = TM.Split('@'); //校验条码信息 |
| | |
| | | // + HKFDate + "','" + HKFDQDate + "'," + HISKFPERIOD + ")"; |
| | | 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) " + |
| | | "HSourceInterID, HSourceEntryID, HSourceBillNo, HSourceBillType, HMTONO, HProduceDate, HExpiryDate, HISKFPERIOD,HStatusMan,HBarCodeDate,HinitQty,HSTOCKORGID,HOWNERID) " + |
| | | "VALUES (" + |
| | | linterid.ToString() + ", '" + TM + "', '" + HBarCodeType + "', " + HMaterID + ", " + "0" + ", " + HQty + ", '" + HKFDate + "', " + HKFPeriod + ", '" + HKFDQDate + "', " + |
| | | "'" + HBatchNo + "', " + get_BarCodecount + ", '" + virtualCount + "', " + HSupID + ", " + "0" + ", '" + ClsPub.CurUserName + "', '" + DateTime.Today.ToString("yyyy-MM-dd") + "', " + "1" + ", " + "0" + ", 1, " + |
| | | "1, 1, '1', '" + HSourceBillType + "', '1', '" + |
| | | HKFDate + "', '" + HKFDQDate + "', " + HISKFPERIOD + ")"; |
| | | linterid.ToString() + ", '" + TM + "', '" + HBarCodeType + "', " + HMaterID + ", " + "0" + ", " + currentQty + ", '" + null + "', " + HKFPeriod + ", '" + null + "', " + |
| | | "'" + HBatchNo + "', " + get_BarCodecount + ", '" + virtualCount + "', " + HSupID + ", " + "0" + ", '" + UserName + "',getdate()" + "," + "0" + ", " + "0" + ", 1, " + |
| | | "0, 0, '', '" + HSourceBillType + "', '', '" + |
| | | null + "', '" + null + "', " + HISKFPERIOD + ",'" + HStatusMan + "','" + HBarCodeDate + "','" + currentQty + "'," + OrganizationID + "," + OrganizationID + "," + null + ")"; |
| | | LogService.Write("生成条码: " + sql); |
| | | oCn.RunProc(sql); |
| | | oCn.RunProc("exec setLSH '" + DateTime.Today + "'"); |
| | | oCn.RunProc(sql); |
| | | oCn.RunProc("exec h_p_WMS_SetMaxNo '" + HSupID + "_" + HMaterID + "_" + HBarCodeDate + "'"); |
| | | virtualCount++; |
| | | } |
| | | |
| | | } |
| | | } |
| | | oCn.Commit(); |
| | | |
| | | // 返回生成的条码列表 |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "生成条码成功!"; |
| | | objJsonResult.data =string.Join("~", generatedBarcodes); // 返回生成的条码列表 |
| | | WebAPIController.Add_Log("条码下推", UserName, "生成条码"); |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | return objJsonResult; |
| | | } |
| | | |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "生成条码成功!"; |
| | | WebAPIController.Add_Log("条码下推", UserName, "生成条码"); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | #region 条码列表 |
| | | [Route("showHBarCodeBillDetail")] |
| | | [HttpGet] |
| | | public object showHBarCodeBillDetail(string sMsg,string Organization) |
| | | public object showHBarCodeBillDetail(string sMsg,string user) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 根据条码获取条码详情 |
| | | [Route("GetBarcodeDetails")] |
| | | [HttpGet] |
| | | public object GetBarcodeDetails(string barcodes) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(barcodes)) |
| | | { |
| | | objjson.code = "0"; |
| | | objjson.count = 0; |
| | | objjson.Message = "条码参数不能为空"; |
| | | objjson.data = null; |
| | | return objjson; |
| | | } |
| | | |
| | | // 将逗号分隔的条码转换为SQL IN查询条件 |
| | | var barcodeList = barcodes.Split('~'); |
| | | |
| | | // 构建IN子句,为每个条码添加单引号 |
| | | var inValues = new List<string>(); |
| | | foreach (var barcode in barcodeList) |
| | | { |
| | | inValues.Add("'" + barcode.Replace("'", "''") + "'"); // 处理单引号转义 |
| | | } |
| | | |
| | | string inClause = string.Join(",", inValues); |
| | | string sql = $"SELECT * FROM h_v_Gy_UserMaterRelationPrint WHERE HBarCode IN ({inClause})" + " order by 物料代码,cast(流水号 as int)"; |
| | | |
| | | // 直接执行SQL查询 |
| | | DataSet ds = oCn.RunProcReturn(sql, "h_v_Gy_UserMaterRelationPrint"); |
| | | |
| | | if (ds == null || ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | objjson.code = "0"; |
| | | objjson.count = 0; |
| | | objjson.Message = "未找到相关条码信息"; |
| | | objjson.data = null; |
| | | return objjson; |
| | | } |
| | | |
| | | objjson.code = "0"; |
| | | objjson.count = ds.Tables[0].Rows.Count; |
| | | 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; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | } |
| | | } |