| | |
| | | double HPeriod = DateTime.Now.Month; |
| | | string HRemark = list[0].HRemark;//备注 |
| | | string HSourceName = list[0].HSourceName;//生产资源名称 |
| | | double HPieceQty = list[0].HPieceQty;//进站PCS数 |
| | | double HPieceQty = list[0].HPieceQty;//进站PCS数 件数 |
| | | double HWasterQty = list[0].HWasterQty;//报废数量 |
| | | double HPlanPieceQty = list[0].HPlanPieceQty;//进站PNL数 |
| | | double HBadPNL = list[0].HBadPNL;//报废PNL数 |
| | | long HICMOInterID = list[0].HICMOInterID;//任务单ID |
| | | long HICMOEntryID = list[0].HICMOEntryID;//任务单ID |
| | | string HICMOBillNo = list[0].HICMOBillNo;//任务单 |
| | | int HProcPlanInterID = 0; |
| | | int HProcPlanEntryID = 0; |
| | |
| | | oCN.RunProc("Insert Into Sc_StationOutBillMain " + |
| | | "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate,HMouldNum" + |
| | | ",HYear,HPeriod,HRemark,HSourceName,HPieceQty,HWasterQty,HPlanPieceQty,HBadPNL" + |
| | | ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" + |
| | | ",HICMOInterID,HICMOEntryID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" + |
| | | ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationOutTime,HSourceID,HPayProcID" + |
| | | ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate,HSourceID2,HSourceID3,HSourceID4,HSourceID5" + |
| | | ",HSupID,HQty,HPrice,HMoney,HBadCount,HCenterID,HProcNo,HOrderProcNO,HSourceNameList" + |
| | |
| | | ") " + |
| | | " values('" + BillType + "','" + (OperationType == "5" ? "SUB" : HBillSubType) + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",'"+ HDate + "','" + HMaker + "',getdate(),'" + HMouldNum + "'" + |
| | | "," + HYear + "," + HPeriod + ",'" + HRemark + "','" + HSourceName + "'," + HPieceQty + "," + HWasterQty + "," + HPlanPieceQty + "," + HBadPNL + |
| | | "," + HICMOInterID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID + |
| | | "," + HICMOInterID + "," + HICMOEntryID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID + |
| | | ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID + "," + HPayProcID + |
| | | "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" + "," + HSourceID2 + "," + HSourceID3 + "," + HSourceID4 + "," + HSourceID5 + |
| | | "," + HSupID + "," + HQty + "," + HPrice + "," + HMoney + "," + HBadCount + "," + HCenterID + "," + HProcNo + ",'" + HOrderProcNO + "'" + ",'" + HSourceNameList + "'" + |
| | |
| | | //判断客户为华舟包装 生成条码主档 |
| | | else if (oSystemParameter.omodel.WMS_CampanyName == "华舟") |
| | | { |
| | | var objResult = Cj_StationOutBarCode_Save(HInterID); |
| | | var objResult = Cj_StationOutBarCode_Save(HInterID,1); |
| | | } |
| | | } |
| | | else if ("Modify".Equals(eventType)) |
| | | { |
| | | //判断客户为华舟包装 生成条码主档 |
| | | if (oSystemParameter.omodel.WMS_CampanyName == "华舟") |
| | | { |
| | | var objResult = Cj_StationOutBarCode_Save(HInterID, 2); |
| | | } |
| | | |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogService.Write($"11.参数查询结束,新增结束,用时" + sw.Elapsed); |
| | | LogService.Write("END--出站单据保存结束,出站单号:" + HBillNo); |
| | |
| | | #region [出站单生成条码主档] |
| | | [Route("Cj_StationOutBill/Cj_StationOutBarCode_Save")] |
| | | [HttpPost] |
| | | public object Cj_StationOutBarCode_Save(long HInterID) |
| | | public object Cj_StationOutBarCode_Save(long HInterID, int Type) |
| | | { |
| | | try |
| | | { |
| | | ListModels oListModels = new ListModels(); |
| | | DAL.ClsGy_BarCodeBill_ChaiMa BillNew = new DAL.ClsGy_BarCodeBill_ChaiMa(); |
| | | DAL.ClsGy_BarCodeBill_ChaiMa BillNew = new DAL.ClsGy_BarCodeBill_ChaiMa(); |
| | | |
| | | oCN.BeginTran(); |
| | | |
| | | ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HInterID='" + HInterID + "'", "Sc_StationOutBillMain"); |
| | | |
| | | if (ds != null || ds.Tables[0].Rows.Count > 0) |
| | | // 如果Type为2,先删除老的条码记录 |
| | | if (Type == 2) |
| | | { |
| | | string deleteSql = "DELETE FROM Gy_BarCodeBill WHERE HInterID = '" + HInterID + "'"; |
| | | oCN.RunProc(deleteSql); |
| | | } |
| | | |
| | | string sql = "insert into Gy_BarCodeBill (HInterID, HEntryID, HBarCode, HBarCodeType, HBarCodeSubType, HMaterID, HUnitID, HQty, HBatchNo, HSupID, HGroupID, HMaker, HMakeDate, " + |
| | | "HPrintQty, HSourceInterID, HSourceEntryID, HSourceBillNo, HSourceBillType, HinitQty, HEndQty, HBarcodeQtys, HBarcodeNo, HDeptID, HWhID, HSPID, HRemark, " + |
| | | "HCusID, HCusType, HEndDate, HWorkLineName, HBarCodeDate, HSTOCKORGID, HOWNERID, HSeOrderBillNo, HGiveAwayFlag, HMaterName, HMaterModel, " + |
| | | "HPinfan, HAuxPropID, HMTONo, HInnerBillNo, HCoilNO, HFurnaceNO, HFactory, HAuxQty, HheatNO, HEmpID, HCusModel, HCusMaterName, HCheckEmpName, HZZRQ,HSupMaterNumber,HSupBatchNo" + |
| | | ") values (" + |
| | | "'" + ds.Tables[0].Rows[0]["HInterID"].ToString() + "', " + |
| | | "'1', " + |
| | | "'" + ds.Tables[0].Rows[0]["HBillNO"].ToString() + "', " + |
| | | "'唯一条码', " + |
| | | "'', " + |
| | | "'" + ds.Tables[0].Rows[0]["HMaterID"].ToString() + "', " + |
| | | "'0', " + |
| | | "'" + ds.Tables[0].Rows[0]["HQty"].ToString() + "', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'" + ds.Tables[0].Rows[0]["HGroupID"].ToString() + "', " + |
| | | "'" + ds.Tables[0].Rows[0]["HMaker"].ToString() + "', getdate(), " + |
| | | "'0', " + |
| | | "'" + ds.Tables[0].Rows[0]["HICMOInterID"].ToString() + "', " + |
| | | "'" + ds.Tables[0].Rows[0]["HICMOEntryID"].ToString() + "', " + |
| | | "'" + ds.Tables[0].Rows[0]["HICMOBillNo"].ToString() + "', " + |
| | | "'3772', " + |
| | | "'0', " + |
| | | "'0', " + |
| | | "'1', " + |
| | | "'1', " + |
| | | "'" + ds.Tables[0].Rows[0]["HDeptID"].ToString() + "', " + |
| | | "'0', " + |
| | | "'0', " + |
| | | "'" + ds.Tables[0].Rows[0]["HRemark"].ToString() + "', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "getdate(), " + |
| | | "'', " + |
| | | "getdate(), " + |
| | | "'" + ds.Tables[0].Rows[0]["HPRDORGID"].ToString() + "', " + |
| | | "'" + ds.Tables[0].Rows[0]["HPRDORGID"].ToString() + "', " + |
| | | "'', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "'" + ds.Tables[0].Rows[0]["HEmpID"].ToString() + "', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "''" + |
| | | ")"; |
| | | //插入拆分条码 |
| | | oCN.RunProc(sql); |
| | | |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "保存成功!"; |
| | | // 查询 HQty、HPieceQty 和 重量字段 |
| | | DataSet dsPiece = oCN.RunProcReturn("select HPieceQty, HQty, HWeight from Sc_StationOutBillMain where HInterID='" + HInterID + "'", "Sc_StationOutBillMain"); |
| | | |
| | | if (dsPiece == null || dsPiece.Tables[0].Rows.Count == 0) |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "保存失败!未查询到条码信息"; |
| | | objJsonResult.data = 1; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | decimal HPieceQty = Convert.ToDecimal(dsPiece.Tables[0].Rows[0]["HPieceQty"]); |
| | | decimal HQty = Convert.ToDecimal(dsPiece.Tables[0].Rows[0]["HQty"]); |
| | | decimal totalWeight = Convert.ToDecimal(dsPiece.Tables[0].Rows[0]["HWeight"]); |
| | | |
| | | if (HPieceQty <= 0) |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "保存失败!件数必须大于0"; |
| | | objJsonResult.data = 1; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (totalWeight <= 0) |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "保存失败!重量必须大于0"; |
| | | objJsonResult.data = 1; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | // 固定生成指定件数的条码 |
| | | int barcodeCount = (int)HPieceQty; // HPieceQty 作为条码件数 |
| | | |
| | | // 计算每张条码的基础数量和基础重量 |
| | | decimal baseQtyPerPiece = Math.Floor(HQty / HPieceQty); |
| | | decimal remainderQty = HQty % HPieceQty; |
| | | |
| | | // 计算每张条码的基础重量(净重和毛重相同) |
| | | decimal baseWeightPerPiece = Math.Floor(totalWeight / HPieceQty * 10000) / 10000; // 保留4位小数 |
| | | decimal remainderWeight = totalWeight - (baseWeightPerPiece * HPieceQty); |
| | | |
| | | // 查询原始单据信息 |
| | | ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HInterID='" + HInterID + "'", "Sc_StationOutBillMain"); |
| | | |
| | | if (ds != null && ds.Tables[0].Rows.Count > 0) |
| | | { |
| | | DataRow row = ds.Tables[0].Rows[0]; |
| | | |
| | | // 循环生成条码 |
| | | for (int i = 0; i < barcodeCount; i++) |
| | | { |
| | | // 计算当前条码的数量 |
| | | decimal currentQty = baseQtyPerPiece; |
| | | if (i < remainderQty) // 如果有余数,前N张条码各加1 |
| | | { |
| | | currentQty += 1; |
| | | } |
| | | |
| | | // 计算当前条码的重量(净重和毛重相同) |
| | | decimal currentWeight = baseWeightPerPiece; |
| | | if (i < Math.Ceiling(remainderWeight / baseWeightPerPiece) && remainderWeight > 0) |
| | | { |
| | | currentWeight += baseWeightPerPiece; // 重量余数也分摊到前几张条码 |
| | | } |
| | | |
| | | // 生成条码号 |
| | | string barcodeNumber = row["HBillNO"].ToString() + (barcodeCount > 1 ? "-" + (i + 1).ToString() : ""); |
| | | |
| | | // 修改插入语句,添加HMaterialJQty和HMaterialMQty字段 |
| | | string sql = "insert into Gy_BarCodeBill (HInterID, HEntryID, HBarCode, HBarCodeType, HBarCodeSubType, HMaterID, HUnitID, HQty, HMaterialJQty, HMaterialMQty, HBatchNo, HSupID, HGroupID, HMaker, HMakeDate, " + |
| | | "HPrintQty, HSourceInterID, HSourceEntryID, HSourceBillNo, HSourceBillType, HinitQty, HEndQty, HBarcodeQtys, HBarcodeNo, HDeptID, HWhID, HSPID, HRemark, " + |
| | | "HCusID, HCusType, HEndDate, HWorkLineName, HBarCodeDate, HSTOCKORGID, HOWNERID, HSeOrderBillNo, HGiveAwayFlag, HMaterName, HMaterModel, " + |
| | | "HPinfan, HAuxPropID, HMTONo, HInnerBillNo, HCoilNO, HFurnaceNO, HFactory, HAuxQty, HheatNO, HEmpID, HCusModel, HCusMaterName, HCheckEmpName, HZZRQ, HSupMaterNumber, HSupBatchNo" + |
| | | ") values (" + |
| | | "'" + row["HInterID"].ToString() + "', " + |
| | | "'" + (i + 1).ToString() + "', " + // HEntryID 改为序号 |
| | | "'" + barcodeNumber + "', " + // 使用带序号的条码号 |
| | | "'唯一条码', " + |
| | | "'', " + |
| | | "'" + row["HMaterID"].ToString() + "', " + |
| | | "'0', " + |
| | | "'" + currentQty.ToString() + "', " + // 使用当前条码的数量 |
| | | "'" + currentWeight.ToString() + "', " + // 净重 |
| | | "'" + currentWeight.ToString() + "', " + // 毛重(与净重相同) |
| | | "'', " + |
| | | "'', " + |
| | | "'" + row["HGroupID"].ToString() + "', " + |
| | | "'" + row["HMaker"].ToString() + "', getdate(), " + |
| | | "'0', " + |
| | | "'" + row["HICMOInterID"].ToString() + "', " + |
| | | "'" + row["HICMOEntryID"].ToString() + "', " + |
| | | "'" + row["HICMOBillNo"].ToString() + "', " + |
| | | "'3710', " + |
| | | "'0', " + |
| | | "'0', " + |
| | | "'1', " + |
| | | "'" + (i + 1).ToString() + "', " + // HBarcodeNo 改为序号 |
| | | "'" + row["HDeptID"].ToString() + "', " + |
| | | "'0', " + |
| | | "'0', " + |
| | | "'" + row["HRemark"].ToString() + "', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "getdate(), " + |
| | | "'', " + |
| | | "'" + row["HDate"].ToString() + "', " + |
| | | "'" + row["HPRDORGID"].ToString() + "', " + |
| | | "'" + row["HPRDORGID"].ToString() + "', " + |
| | | "'', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'0', " + |
| | | "'', " + |
| | | "'" + row["HEmpID"].ToString() + "', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "'', " + |
| | | "''" + |
| | | ")"; |
| | | |
| | | // 插入拆分条码 |
| | | oCN.RunProc(sql); |
| | | } |
| | | |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = barcodeCount; |
| | | objJsonResult.Message = "保存成功!共生成" + barcodeCount + "张条码"; |
| | | objJsonResult.data = barcodeCount; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | |
| | | catch (Exception e) |
| | | { |
| | | oCN.RollBack(); |
| | | oCN.RunProc("update Sc_StationOutBillMain set HInterFaceRemark =" + e.ToString() + ", HInterFaceStatus ='未生成' where HInterID=" + HInterID); |
| | | oCN.RunProc("update Sc_StationOutBillMain set HInterFaceRemark ='" + e.ToString().Replace("'", "''") + "', HInterFaceStatus ='未生成' where HInterID=" + HInterID); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "保存失败!" + e.ToString(); |
| | |
| | | objJsonResult.data = ds.Tables[0]; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = ""; |
| | |
| | | objJsonResult.data = ds.Tables[0]; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | |
| | | return objJsonResult; |
| | | } |
| | | |
| | | |
| | | List<object> columnNameList = new List<object>(); |
| | | |
| | | string sql1 = "select * from h_v_MES_StationOutBillList_SN where 1 = 1 "; |
| | | string sql = sql1 + sWhere + " order by 制单日期 desc"; |
| | | ds = oCN.RunProcReturn(sql, "h_v_MES_StationOutBillList_SN"); |
| | | |
| | | //添加列名 |
| | | foreach (DataColumn col in ds.Tables[0].Columns) |
| | | { |
| | | LogService.Write(21231321); |
| | | Type dataType = col.DataType; |
| | | string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; |
| | | columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 |
| | | } |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "Sucess!"; |
| | | objJsonResult.data = ds.Tables[0]; |
| | | objJsonResult.list = columnNameList; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |