diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimateDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimateDetail.java index 2544a160..b4b1b282 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimateDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimateDetail.java @@ -135,6 +135,11 @@ public class SalesEstimateDetail extends BaseEntity /** 含税经营成本(RMB) */ private BigDecimal taxOperatingCosts; + + /** 上一年度不含税总经营成本(RMB) */ + private BigDecimal totalOperatingCosts; + + /** 销售估价详情物料子表集合 */ private List salesEstimateDetailMaterialList; @@ -427,6 +432,13 @@ public class SalesEstimateDetail extends BaseEntity return taxOperatingCosts; } + public BigDecimal getTotalOperatingCosts() { + return totalOperatingCosts; + } + + public void setTotalOperatingCosts(BigDecimal totalOperatingCosts) { + this.totalOperatingCosts = totalOperatingCosts; + } public List getSalesEstimateDetailMaterialList() { return salesEstimateDetailMaterialList; @@ -471,6 +483,7 @@ public class SalesEstimateDetail extends BaseEntity .append("noTaxMaterialCosts", getNoTaxMaterialCosts()) .append("noTaxOperatingCosts", getNoTaxOperatingCosts()) .append("taxOperatingCosts", getTaxOperatingCosts()) + .append("totalOperatingCosts", getTotalOperatingCosts()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/VO/SalesEstimateDetailMaterialVo.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/VO/SalesEstimateDetailMaterialVo.java index 0c6030f8..775dd7d3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/VO/SalesEstimateDetailMaterialVo.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/domain/VO/SalesEstimateDetailMaterialVo.java @@ -17,17 +17,8 @@ public class SalesEstimateDetailMaterialVo extends SalesEstimateDetailMaterial { /** 不含税开发成本(RMB) */ private BigDecimal noTaxDevelopCosts; - /** 不含税人工成本(RMB) */ - private BigDecimal noTaxLaborCosts; - - /** 不含税推广成本(RMB) */ - private BigDecimal noTaxPromotionalCosts; - - /** 不含税业务成本(RMB) */ - private BigDecimal noTaxBusinessCosts; - - /** 不含税管理成本(RMB) */ - private BigDecimal noTaxManagesCosts; + /** 上一年度不含税总经营成本(RMB) */ + private BigDecimal totalOperatingCosts; /** 不含税总物料成本(RMB) */ private BigDecimal noTaxMaterialCosts; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateDetailMaterialServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateDetailMaterialServiceImpl.java index 23b193bb..4452bc3a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateDetailMaterialServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateDetailMaterialServiceImpl.java @@ -92,16 +92,13 @@ public class SalesEstimateDetailMaterialServiceImpl implements ISalesEstimateDet private void setCosts(SalesEstimateDetailMaterialVo vo, SalesEstimateDetail salesEstimateDetail) { vo.setNoTaxMaterialCosts(salesEstimateDetail.getNoTaxMaterialCosts()); - vo.setNoTaxBusinessCosts(salesEstimateDetail.getNoTaxBusinessCosts()); vo.setNoTaxDevelopCosts(salesEstimateDetail.getNoTaxDevelopCosts()); - vo.setNoTaxLaborCosts(salesEstimateDetail.getNoTaxLaborCosts()); - vo.setNoTaxManagesCosts(salesEstimateDetail.getNoTaxManagesCosts()); vo.setNoTaxOperatingCosts(salesEstimateDetail.getNoTaxOperatingCosts()); vo.setTaxOperatingCosts(salesEstimateDetail.getTaxOperatingCosts()); - vo.setNoTaxPromotionalCosts(salesEstimateDetail.getNoTaxPromotionalCosts()); vo.setNoTaxServiceCosts(salesEstimateDetail.getNoTaxServiceCosts()); vo.setNoTaxShippingCosts(salesEstimateDetail.getNoTaxShippingCosts()); vo.setProfitRate(salesEstimateDetail.getProfitRate()); + vo.setTotalOperatingCosts(salesEstimateDetail.getTotalOperatingCosts()); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java index 26c15b03..13e5f09e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java @@ -213,10 +213,8 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService salesEstimateDetailVo.setEProfitRate(salesEstimateTemplate.geteProfitRate()); salesEstimateDetailVo.setFProfitRate(salesEstimateTemplate.getfProfitRate()); - salesEstimateDetailVo.setNoTaxLaborCosts(salesEstimateTemplate.getNoTaxLaborCosts()); - salesEstimateDetailVo.setNoTaxBusinessCosts(salesEstimateTemplate.getNoTaxBusinessCosts()); - salesEstimateDetailVo.setNoTaxManagesCosts(salesEstimateTemplate.getNoTaxManagesCosts()); - salesEstimateDetailVo.setNoTaxPromotionalCosts(salesEstimateTemplate.getNoTaxPromotionalCosts()); + + salesEstimateDetailVo.setTotalOperatingCosts(salesEstimateTemplate.getTotalOperatingCosts()); salesEstimateDetailVo.setNoTaxMaterialCosts(salesEstimateTemplate.getNoTaxMaterialCosts()); return salesEstimateDetailVo; } @@ -302,28 +300,48 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService /* 下面的计算规则 -1、不含税总经营成本=不含税人工成本+不含税推广成本+不含税业务成本+不含税管理成本 -2、含税总经营成本=不含税总经营成本*(1+0.13) -3、不含税经营成本(RMB)=(该料号的BOM物料总不含税采购成本/总不含税物料成本)*总不含税经营成本 -4、含税经营成本(RMB)=(该料号的BOM物料总含税采购成本/总含税物料成本)*总含税经营成本 -5、不含税料号估价成本:该料号的BOM物料总不含税采购成本+不含税总经营成本+(该料号的BOM物料总不含税采购成本/总不含税物料成本)*总不含税经营成本 -新版:不含税料号估价成本:该料号的BOM物料总不含税采购成本+不含税运输成本+不含税服务成本+不含税开发成本+(该料号的BOM物料总不含税采购成本/总物料不含税成本)*总经营不含税成 +1、不含税料号估价成本=该料号的BOM物料不含税总采购成本+不含税运输成本+不含税服务成本+不含税开发成本+(该料号的BOM物料不含税总采购成本/不含税总物料成本)*上一年度的总经营不含税成本合计 + +1.1、该料号的BOM物料不含税总采购成本=手填的bom物料的总的不含税采购单价的合计 + +2、含税料号估价成本=该料号的BOM物料含税总采购成本+含税运输成本+含税服务成本+含税开发成本+(该料号的BOM物料含税总采购成本/含税总物料成本)*上一年度的总经营含税成本合计 + +2.1、该料号的BOM物料含税总采购成本=手填的bom物料的总的含税采购单价的合计 + +3、不含税运输成本:手填(业务填写) +含税运输成本=(1+0.13)*不含税运输成本 + +4、不含税服务成本:手填(业务填写) +含税服务成本=(1+0.13)*不含税服务成本 +5、不含税开发成本:手填(工程填写) +含税开发成本=(1+0.13)*不含税开发成本 -6、含税料号估价成本:该料号的BOM物料总含税采购成本+含税总经营成本+(该料号的BOM物料总含税采购成本/总含税物料成本)*总含税经营成本 -新版:含税料号估价成本:该料号的BOM物料总含税采购成本+含税运输成本+含税服务成本+含税开发成本+(该料号的BOM物料总含税采购成本/总物料含税成本)*总经营含税成本 +6.1、该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 +6.1.1、上一年度的总经营不含税成本合计:手填(总经理填) +6.1.2、上一年度总物料不含税成本合计:手填(总经理填) +7.1、该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 -7、不含税单价(RMB):该料号不含税估价成本/(1-利润率) -8、含税单价(RMB)=该料号含税估价成本/(1-利润率) -9、不含税总价(RMB)=不含税单价(RMB)*数量 -10、含税总价(RMB)=含税单价(RMB)*数量 -11、不含税单价(美元)=不税单价(RMB)/美元汇率 +7.1.1、上一年度的总经营含税成本合计:(1+0.13)*上一年度的总经营不含税成本合计 +7.1.2、上一年度总物料含税成本合计:(1+0.13)*上一年度总物料不含税成本合计 + +8、被估价物料的不含税单价(RMB)=被估价物料的不含税总成本/(1-利润率) + +9、被估价物料的含税单价(RMB)=被估价物料的含税总成本/(1-利润率) + +10、不含税总价(RMB)=被估价物料的不含税单价(RMB)*数量 + +11、含税总价(RMB)=被估价物料的含税单价(RMB)*数量 + +12、不含税单价(美元)=被估价物料的不含税单价(RMB)/美元汇率 注:换算后,保留小数点后两位,超过后的四舍五入 -12、含税单价(美元)=不含税单价(美元) -13、不含税总价(美元)=不含税单价(美元)*数量 -14、含税总价(美元)=含税单价(美元)*数量 -15、总含税物料成本 = 总不含税物料成本*(1+0.13) + +13、含税单价(美元)=不含税单价(美元) + +14、不含税总价(美元)=不含税单价(美元)*数量 + +15、含税总价(美元)=含税单价(美元)*数量 * */ @@ -362,25 +380,32 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService List salesEstimateDetailList = salesEstimate.getSalesEstimateDetailList(); // 获取销售估价详情列表 for (SalesEstimateDetail salesEstimateDetail : salesEstimateDetailList) { // 遍历销售估价详情列表 - BigDecimal noTaxLaborCosts = salesEstimateDetail.getNoTaxLaborCosts(); // 获取不含税的人工成本 - BigDecimal noTaxPromotionalCosts = salesEstimateDetail.getNoTaxPromotionalCosts(); // 获取不含税的推广成本 - BigDecimal noTaxBusinessCosts = salesEstimateDetail.getNoTaxBusinessCosts(); // 获取不含税的业务成本 - BigDecimal noTaxManagesCosts = salesEstimateDetail.getNoTaxManagesCosts(); // 获取不含税的管理成本 - BigDecimal noTaxMaterialCosts = salesEstimateDetail.getNoTaxMaterialCosts(); // 获取不含税的物料成本 +// BigDecimal noTaxLaborCosts = salesEstimateDetail.getNoTaxLaborCosts(); // 获取不含税的人工成本 +// BigDecimal noTaxPromotionalCosts = salesEstimateDetail.getNoTaxPromotionalCosts(); // 获取不含税的推广成本 +// BigDecimal noTaxBusinessCosts = salesEstimateDetail.getNoTaxBusinessCosts(); // 获取不含税的业务成本 +// BigDecimal noTaxManagesCosts = salesEstimateDetail.getNoTaxManagesCosts(); // 获取不含税的管理成本 + + BigDecimal totalOperatingCosts = salesEstimateDetail.getTotalOperatingCosts(); //上一年度不含税总经营成本 + BigDecimal noTaxMaterialCosts = salesEstimateDetail.getNoTaxMaterialCosts(); // 获取上一年度不含税的总物料成本 BigDecimal noTaxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts(); //不含税运输成本 BigDecimal noTaxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts(); //不含税服务成本 BigDecimal noTaxDevelopmentCosts = salesEstimateDetail.getNoTaxDevelopCosts();//不含税开发成本 + + BigDecimal taxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts().multiply(BigDecimal.valueOf(1.13)) ; //含税运输成本 + BigDecimal taxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts().multiply(BigDecimal.valueOf(1.13)); //含税服务成本 + BigDecimal taxDevelopmentCosts = salesEstimateDetail.getNoTaxDevelopCosts().multiply(BigDecimal.valueOf(1.13));//含税开发成本 + BigDecimal profitRate = salesEstimateDetail.getProfitRate().divide(BigDecimal.valueOf(100)); // 获取利润率并转换为小数形式 Long materialNum = salesEstimateDetail.getMaterialNum(); // 获取物料数量 - // 计算不含税总经营成本 - BigDecimal noAllTaxOperatingCosts = calculateNoTaxOperatingCosts( - noTaxLaborCosts, noTaxPromotionalCosts, noTaxBusinessCosts, noTaxManagesCosts); +// // 计算不含税总经营成本 +// BigDecimal noAllTaxOperatingCosts = calculateNoTaxOperatingCosts( +// noTaxLaborCosts, noTaxPromotionalCosts, noTaxBusinessCosts, noTaxManagesCosts); - // 计算含税总经营成本 - BigDecimal allTaxOperatingCosts = calculateTaxOperatingCosts(noAllTaxOperatingCosts); + // 计算上一年度含税总经营成本 + BigDecimal allTaxOperatingCosts = calculateTaxOperatingCosts(totalOperatingCosts); // 计算总含税物料成本 BigDecimal taxMaterialCosts = calculateTaxMaterialCosts(noTaxMaterialCosts); @@ -391,18 +416,18 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService // 计算物料总含税采购成本 BigDecimal totalTaxPurchaseRmb = calculateTotalTaxPurchaseRmb(estimateDetailMaterialList); - // 计算不含税经营成本(RMB),并保留两位小数 - BigDecimal noTaxOperatingCost = calculateNoTaxOperatingCost(totalNoTaxPurchaseRmb, noTaxMaterialCosts, noAllTaxOperatingCosts) + // 计算该料号的不含税经营成本(RMB),并保留两位小数 + BigDecimal noTaxOperatingCost = calculateNoTaxOperatingCost(totalNoTaxPurchaseRmb, noTaxMaterialCosts, totalOperatingCosts) .setScale(2, RoundingMode.HALF_UP); - // 计算含税经营成本(RMB),并保留两位小数 + // 计算该料号含税经营成本(RMB),并保留两位小数 BigDecimal taxOperatingCost = calculateTaxOperatingCost(totalTaxPurchaseRmb, taxMaterialCosts, allTaxOperatingCosts) .setScale(2, RoundingMode.HALF_UP); - // 计算不含税料号估价成本,并保留两位小数 - BigDecimal noTaxEstimateCost = calculateNoTaxEstimateCost(totalNoTaxPurchaseRmb, noTaxShippingCosts,noTaxServiceCosts,noTaxDevelopmentCosts,noAllTaxOperatingCosts, noTaxMaterialCosts) + // 计算该料号的不含税料号估价成本,并保留两位小数 + BigDecimal noTaxEstimateCost = calculateNoTaxEstimateCost(totalNoTaxPurchaseRmb, noTaxShippingCosts,noTaxServiceCosts,noTaxDevelopmentCosts,noTaxOperatingCost) .setScale(2, RoundingMode.HALF_UP); - // 计算含税料号估价成本,并保留两位小数 - BigDecimal taxEstimateCost = calculateTaxEstimateCost(totalTaxPurchaseRmb,noTaxShippingCosts,noTaxServiceCosts,noTaxDevelopmentCosts, allTaxOperatingCosts, taxMaterialCosts) + // 计算该料号的含税料号估价成本,并保留两位小数 + BigDecimal taxEstimateCost = calculateTaxEstimateCost(totalTaxPurchaseRmb,taxShippingCosts,taxServiceCosts,taxDevelopmentCosts, allTaxOperatingCosts) .setScale(2, RoundingMode.HALF_UP); // 计算不含税单价(RMB),并保留两位小数 @@ -436,8 +461,11 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService noTaxDollarMain = noTaxDollarMain.add(noTaxUnitPriceDollar); // 计算含税单价(美元),并保留两位小数 - BigDecimal taxUnitPriceDollar = calculateTaxUnitPriceDollar(taxUnitPriceRmb, usdRate) - .setScale(2, RoundingMode.HALF_UP); +// BigDecimal taxUnitPriceDollar = calculateTaxUnitPriceDollar(taxUnitPriceRmb, usdRate) +// .setScale(2, RoundingMode.HALF_UP); + BigDecimal taxUnitPriceDollar = noTaxUnitPriceDollar; + + // 计算主表的含税单价美元 taxDollarMain = taxDollarMain.add(taxUnitPriceDollar); @@ -501,8 +529,8 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService BigDecimal totalNoTaxPurchaseRmb = BigDecimal.ZERO; for (SalesEstimateDetailMaterial detailMaterial : estimateDetailMaterialList) { BigDecimal noTaxPurchaseRmb = detailMaterial.getNoTaxPurchaseRmb(); // 获取不含税采购单价 - Long useNum = detailMaterial.getUseNum(); // 获取用量 - totalNoTaxPurchaseRmb = totalNoTaxPurchaseRmb.add(noTaxPurchaseRmb.multiply(new BigDecimal(useNum))); // 计算总不含税采购成本 + //Long useNum = detailMaterial.getUseNum(); // 获取用量 + totalNoTaxPurchaseRmb = totalNoTaxPurchaseRmb.add(noTaxPurchaseRmb); // 计算总不含税采购成本 } return totalNoTaxPurchaseRmb; } @@ -512,16 +540,16 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService BigDecimal totalTaxPurchaseRmb = BigDecimal.ZERO; for (SalesEstimateDetailMaterial detailMaterial : estimateDetailMaterialList) { BigDecimal taxPurchaseRmb = detailMaterial.getTaxPurchaseRmb(); // 获取含税采购单价 - Long useNum = detailMaterial.getUseNum(); // 获取用量 - totalTaxPurchaseRmb = totalTaxPurchaseRmb.add(taxPurchaseRmb.multiply(new BigDecimal(useNum))); // 计算总含税采购成本 + // Long useNum = detailMaterial.getUseNum(); // 获取用量 + totalTaxPurchaseRmb = totalTaxPurchaseRmb.add(taxPurchaseRmb); // 计算总含税采购成本 } return totalTaxPurchaseRmb; } - // 计算不含税经营成本(RMB) - private BigDecimal calculateNoTaxOperatingCost(BigDecimal totalNoTaxPurchaseRmb, BigDecimal noTaxMaterialCosts, BigDecimal noAllTaxOperatingCosts) { + // 计算该料号的不含税经营成本(RMB) + private BigDecimal calculateNoTaxOperatingCost(BigDecimal totalNoTaxPurchaseRmb, BigDecimal noTaxMaterialCosts, BigDecimal totalOperatingCosts) { return totalNoTaxPurchaseRmb.divide(noTaxMaterialCosts, 2, RoundingMode.HALF_UP) - .multiply(noAllTaxOperatingCosts); + .multiply(totalOperatingCosts); } // 计算含税经营成本(RMB) @@ -533,23 +561,21 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService // 计算不含税料号估价成本 BigDecimal noTaxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts(); //不含税运输成本 // BigDecimal noTaxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts(); //不含税服务成本 // BigDecimal noTaxDevelopmentCosts = salesEstimateDetail.getNoTaxDevelopCosts();//不含税开发成本 - private BigDecimal calculateNoTaxEstimateCost(BigDecimal totalNoTaxPurchaseRmb, BigDecimal noTaxShippingCosts ,BigDecimal noTaxServiceCosts,BigDecimal noTaxDevelopmentCosts ,BigDecimal noAllTaxOperatingCosts,BigDecimal noTaxMaterialCosts) { + private BigDecimal calculateNoTaxEstimateCost(BigDecimal totalNoTaxPurchaseRmb, BigDecimal noTaxShippingCosts ,BigDecimal noTaxServiceCosts,BigDecimal noTaxDevelopmentCosts ,BigDecimal noTaxOperatingCost) { return totalNoTaxPurchaseRmb .add(noTaxShippingCosts) .add(noTaxServiceCosts) .add(noTaxDevelopmentCosts) - .add(totalNoTaxPurchaseRmb.divide(noTaxMaterialCosts, 2, RoundingMode.HALF_UP) - .multiply(noAllTaxOperatingCosts)); + .add(noTaxOperatingCost); } // 计算含税料号估价成本 - private BigDecimal calculateTaxEstimateCost(BigDecimal totalTaxPurchaseRmb, BigDecimal noTaxShippingCosts ,BigDecimal noTaxServiceCosts,BigDecimal noTaxDevelopmentCosts ,BigDecimal allTaxOperatingCosts, BigDecimal taxMaterialCosts) { + private BigDecimal calculateTaxEstimateCost(BigDecimal totalTaxPurchaseRmb, BigDecimal taxShippingCosts ,BigDecimal taxServiceCosts,BigDecimal taxDevelopmentCosts ,BigDecimal allTaxOperatingCosts) { return totalTaxPurchaseRmb - .add(noTaxShippingCosts) - .add(noTaxServiceCosts) - .add(noTaxDevelopmentCosts) - .add(totalTaxPurchaseRmb.divide(taxMaterialCosts, 2, RoundingMode.HALF_UP) - .multiply(allTaxOperatingCosts)); + .add(taxShippingCosts) + .add(taxServiceCosts) + .add(taxDevelopmentCosts) + .add(allTaxOperatingCosts); } // 计算不含税单价(RMB) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java index de8e5941..df1e61b3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java @@ -94,24 +94,24 @@ public class SysMakeorderBom extends BaseEntity private Long sortNo; // 委外工序数 - private int processNum; + private Integer processNum; // 已委外数量 - private int hasOutNum; + private Integer hasOutNum; // 可用库存数 - private BigDecimal storageNum; + private Integer storageNum; // 已领料数 - private int hasPickNum; + private Integer hasPickNum; // 订单数量 - private int orderNum; + private Integer orderNum; // 客户期望交付时间 private Date deliveryTime; - private int finishNum; + private Integer finishNum; // 已完成数 public void setId(Long id) @@ -285,67 +285,69 @@ public class SysMakeorderBom extends BaseEntity this.warehouseDept = warehouseDept; } - public int getProcessNum() { + + public String getMaterialModel() { + return materialModel; + } + + public void setMaterialModel(String materialModel) { + this.materialModel = materialModel; + } + + public Date getDeliveryTime() { + return deliveryTime; + } + + public void setDeliveryTime(Date deliveryTime) { + this.deliveryTime = deliveryTime; + } + + + public Integer getProcessNum() { return processNum; } - public void setProcessNum(int processNum) { + public void setProcessNum(Integer processNum) { this.processNum = processNum; } - public int getHasOutNum() { + public Integer getHasOutNum() { return hasOutNum; } - public void setHasOutNum(int hasOutNum) { + public void setHasOutNum(Integer hasOutNum) { this.hasOutNum = hasOutNum; } - public BigDecimal getStorageNum() { + public Integer getStorageNum() { return storageNum; } - public void setStorageNum(BigDecimal storageNum) { + public void setStorageNum(Integer storageNum) { this.storageNum = storageNum; } - public int getHasPickNum() { + public Integer getHasPickNum() { return hasPickNum; } - public void setHasPickNum(int hasPickNum) { + public void setHasPickNum(Integer hasPickNum) { this.hasPickNum = hasPickNum; } - public String getMaterialModel() { - return materialModel; - } - - public void setMaterialModel(String materialModel) { - this.materialModel = materialModel; - } - - public int getOrderNum() { + public Integer getOrderNum() { return orderNum; } - public void setOrderNum(int orderNum) { + public void setOrderNum(Integer orderNum) { this.orderNum = orderNum; } - public Date getDeliveryTime() { - return deliveryTime; - } - - public void setDeliveryTime(Date deliveryTime) { - this.deliveryTime = deliveryTime; - } - - public int getFinishNum() { + public Integer getFinishNum() { return finishNum; } - public void setFinishNum(int finishNum) { + public void setFinishNum(Integer finishNum) { this.finishNum = finishNum; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java index 7339dcf1..7a6bbee6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java @@ -9,9 +9,30 @@ import lombok.Data; public class ExportShippingInformOrderDto { + /** 销售单号*/ + private String salesOrderCode; + + /** 生产订单号*/ + private String makeNo; + + /** 客户订单号*/ + private String customerOrderCode; + + /** 物料名称*/ private String materialName; - private String deviceModelCode; + /** 物料型号*/ + private String materialModel; + + /** 物料数量*/ + private Integer materialNum; + + /** 铭牌logo*/ + private String logo; + /** 备注*/ + private String remark; + /** 追踪码*/ + private String trackingCode; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java index eed8c878..b075df5e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java @@ -15,12 +15,15 @@ public class ExportShippingInvoiceDto { private String materialName; + private String materialModel; + private String makeNo; private Integer materialNum; - private BigDecimal materialUsd; + private String materialAmount; - private BigDecimal materialUsdSum; + private String materialAmountSum; + private String total; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java index 2ecd299e..59e52e87 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java @@ -13,9 +13,7 @@ public class ExportShippingOrderDto { private String materialName; - private String materialNo; - - private String materialDescribe; + private String materialModel; private String materialUnit; @@ -24,4 +22,6 @@ public class ExportShippingOrderDto { private String salesOrderNumber; private String remark; + + private String enterpriseMaterialNo; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingPackingDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingPackingDto.java index dda12cc2..4cbf0b2f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingPackingDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingPackingDto.java @@ -18,5 +18,15 @@ public class ExportShippingPackingDto { private Integer materialNum; + private String box; + private String oneBox; + + private String twoBox; + + private String totalNW; + + private String totalGW; + + private String meas; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java index 2b1d3136..e464d730 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java @@ -130,4 +130,9 @@ public interface SysMakeOrderMapper * */ List selectMakeOrderByMakeNoList(List makeNos); + + /** + * 根据销售单号集合查询生产订单集合 + * */ + List selectMakeOrderListBySalesOrderCodes(List salesOrderCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java index eccf8f69..000282e5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java @@ -81,7 +81,7 @@ public class SysMakeorderBomServiceImpl implements ISysMakeorderBomService // 获取可用库存数 WarehouseInventoryInquiry inquiry = inquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(bom.getMaterialNo()); if(inquiry == null){ - bom.setStorageNum(BigDecimal.ZERO); + bom.setStorageNum(0); }else{ bom.setStorageNum(inquiry.getAvailableStockNum()); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java index e83ec932..b45f411b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java @@ -624,6 +624,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor public void exportShippingOrderOne(String outOrderCode, HttpServletResponse response) { String fileName = "销售出货单1.xlsx"; + String shippingOrderCode = redisCache.generateBillNo("shd"); try { String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); @@ -635,6 +636,21 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); + String salesOrderCode = salesShippingInform.getSalesOrderCode(); + + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); + } + + + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + HashMap salesOrderHashMap = new HashMap<>(); + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } //销售出货单 String shippingInformationType = "2"; @@ -644,35 +660,42 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor List salesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - String deliverTime = dateFormat.format(salesShippingInform.getDeliverTime()); + + + String realFileName = salesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; // 设置响应头,指定文件名和文件类型 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + AtomicInteger index = new AtomicInteger(1); //处理物料数据 List exportShippingOrderDtos = new ArrayList<>(); - for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + SysSalesOrder sysSalesOrder = salesOrderHashMap.get(sysSalesOrderChild.getQuoteId()); + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); exportShippingOrderDto.setIndex(index.getAndIncrement()); - exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); - exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); - exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); - exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); - exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); - exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); - exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); + exportShippingOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName()); + exportShippingOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + exportShippingOrderDto.setMaterialUnit(sysSalesOrderChild.getUnit()); + exportShippingOrderDto.setMakeNum(sysSalesOrderChild.getMaterialNum()); + exportShippingOrderDto.setSalesOrderNumber(sysSalesOrder.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(sysSalesOrder.getRemark()); + exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrder.getEnterpriseMaterialNo()); exportShippingOrderDtos.add(exportShippingOrderDto); } + //totalMakeNum - String totalMakeNum = String.valueOf(salesShippingInformDetails.stream().mapToInt(SysSalesShippingInformDetail::getMakeNum).sum()); + String totalMakeNum = String.valueOf(sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum()); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); @@ -681,11 +704,14 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String shippingDate = dateFormat.format(new Date()); + HashMap map = MapUtils.newHashMap(); map.put("customerId",salesShippingInform.getCustomerId()); - map.put("deliverTime",deliverTime); - map.put("businessMembers",salesShippingInform.getBusinessMembers()); + map.put("shippingDate",shippingDate); map.put("totalMakeNum",totalMakeNum); + map.put("shippingOrderCode",shippingOrderCode); // 写入数据 workBook.fill(map, sheet); @@ -706,7 +732,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor public void exportShippingOrderTwo(String outOrderCode, HttpServletResponse response) { String fileName = "销售出货单2.xlsx"; - + String shippingOrderCode = redisCache.generateBillNo("shd"); try { String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); @@ -720,6 +746,22 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); + String salesOrderCode = salesShippingInform.getSalesOrderCode(); + + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); + } + + + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + HashMap salesOrderHashMap = new HashMap<>(); + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } + //销售出货单 String shippingInformationType = "2"; String shippingTemplateType = "销售出货单2"; @@ -727,35 +769,42 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,salesShippingInform); List salesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - String deliverTime = dateFormat.format(salesShippingInform.getDeliverTime()); + + String realFileName = salesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; // 设置响应头,指定文件名和文件类型 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); + + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + AtomicInteger index = new AtomicInteger(1); //处理物料数据 List exportShippingOrderDtos = new ArrayList<>(); - for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + SysSalesOrder sysSalesOrder = salesOrderHashMap.get(sysSalesOrderChild.getQuoteId()); + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); exportShippingOrderDto.setIndex(index.getAndIncrement()); - exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); - exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); - exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); - exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); - exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); - exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); - exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); + exportShippingOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName()); + exportShippingOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + exportShippingOrderDto.setMaterialUnit(sysSalesOrderChild.getUnit()); + exportShippingOrderDto.setMakeNum(sysSalesOrderChild.getMaterialNum()); + exportShippingOrderDto.setSalesOrderNumber(sysSalesOrder.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(sysSalesOrder.getRemark()); + exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrder.getEnterpriseMaterialNo()); exportShippingOrderDtos.add(exportShippingOrderDto); } + //totalMakeNum - String totalMakeNum = String.valueOf(salesShippingInformDetails.stream().mapToInt(SysSalesShippingInformDetail::getMakeNum).sum()); + String totalMakeNum = String.valueOf(sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum()); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); @@ -765,10 +814,14 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); HashMap map = MapUtils.newHashMap(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String shippingDate = dateFormat.format(new Date()); + + map.put("customerId",salesShippingInform.getCustomerId()); - map.put("deliverTime",deliverTime); - map.put("businessMembers",salesShippingInform.getBusinessMembers()); + map.put("shippingDate",shippingDate); map.put("totalMakeNum",totalMakeNum); + map.put("shippingOrderCode",shippingOrderCode); // 写入数据 workBook.fill(map, sheet); @@ -800,9 +853,11 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor SysSalesShippingInform sysSalesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); String shippingInformationType = "0"; String shippingTemplateType = "销售出货箱单1"; + + String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); + //生成出货资料 insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); - String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); String realFileName = salesOrderCode + "-" + fileName.substring(0, fileName.lastIndexOf(".")) + ".xlsx"; @@ -810,35 +865,65 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); - if (sysMakeOrder == null){ - log.warn("未找到对应的生产订单,请检查:{}", salesOrderCode); - throw new RuntimeException("未找到对应的生产订单,请检查"); + + + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); } - Map map = new HashMap<>(); - map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); - map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); - map.put("customerContact",sysSalesShippingInform.getCustomerContact()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + List shippingPackingDtos = new ArrayList<>(); AtomicInteger index = new AtomicInteger(1); - List shippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); - for (AfterSalesShippingDevice shippingDevice : shippingDeviceList) { + + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto(); exportShippingPackingDto.setIndex(index.getAndIncrement()); - exportShippingPackingDto.setMaterialDescribe(shippingDevice.getMaterialDescribe()); - exportShippingPackingDto.setMaterialModel(shippingDevice.getMaterialModelCode()); - exportShippingPackingDto.setMakeNo(shippingDevice.getMakeNo()); - exportShippingPackingDto.setMaterialNum(1); + exportShippingPackingDto.setMaterialDescribe(sysSalesOrderChild.getDescribe()); + exportShippingPackingDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + exportShippingPackingDto.setMakeNo(sysMakeOrder.getMakeNo()); + exportShippingPackingDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportShippingPackingDto.setBox(null); + exportShippingPackingDto.setOneBox(null); + exportShippingPackingDto.setMeas(null); + exportShippingPackingDto.setTwoBox(null); + exportShippingPackingDto.setTotalGW(null); + exportShippingPackingDto.setTotalNW(null); shippingPackingDtos.add(exportShippingPackingDto); + } + + + Map map = new HashMap<>(); + + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + + //构建模板 ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); @@ -891,35 +976,60 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); - if (sysMakeOrder == null){ - log.warn("未找到对应的生产订单,请检查:{}", salesOrderCode); - throw new RuntimeException("未找到对应的生产订单,请检查"); + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); } - Map map = new HashMap<>(); - map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); - map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); - map.put("customerContact",sysSalesShippingInform.getCustomerContact()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + List shippingPackingDtos = new ArrayList<>(); AtomicInteger index = new AtomicInteger(1); - List shippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); - for (AfterSalesShippingDevice shippingDevice : shippingDeviceList) { + + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto(); exportShippingPackingDto.setIndex(index.getAndIncrement()); - exportShippingPackingDto.setMaterialDescribe(shippingDevice.getMaterialDescribe()); - exportShippingPackingDto.setMaterialModel(shippingDevice.getMaterialModelCode()); - exportShippingPackingDto.setMakeNo(shippingDevice.getMakeNo()); - exportShippingPackingDto.setMaterialNum(1); + exportShippingPackingDto.setMaterialDescribe(sysSalesOrderChild.getDescribe()); + exportShippingPackingDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + exportShippingPackingDto.setMakeNo(sysMakeOrder.getMakeNo()); + exportShippingPackingDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportShippingPackingDto.setBox(null); + exportShippingPackingDto.setOneBox(null); + exportShippingPackingDto.setMeas(null); + exportShippingPackingDto.setTwoBox(null); + exportShippingPackingDto.setTotalGW(null); + exportShippingPackingDto.setTotalNW(null); shippingPackingDtos.add(exportShippingPackingDto); + } + Map map = new HashMap<>(); + + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + //构建模板 ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); @@ -965,51 +1075,83 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); - List sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + List salesOrderCodes = new ArrayList<>(); - String makeNo = sysMakeOrder.getMakeNo(); - if (!StringUtils.isEmpty(makeNo)){ - List afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); } - Map map = new HashMap<>(); - map.put("customerContact",sysSalesShippingInform.getCustomerContact()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); - map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); - map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + + //销售订单主表的数据 + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + + Map salesOrderMap = new HashMap<>(); + + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } ArrayList exportShippingInvoiceDtos = new ArrayList<>(); + AtomicInteger index = new AtomicInteger(1); for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); + SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId()); + exportShippingInvoiceDto.setIndex(index.getAndIncrement()); + exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); - exportShippingInvoiceDto.setMaterialNum(1); + exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo()); - if (sysSalesOrderChild.getMaterialUsd() != null) { - exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd())); - } else { - // 如果 materialUsd 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 - } + if ("1".equals(sysSalesOrder.getCommonCurrency())){ + + String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString(); + String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB"); - if (sysSalesOrderChild.getMaterialUsdSum() != null) { - exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum())); } else { - // 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0 + + String materialNoUsd = sysSalesOrderChild.getMaterialNoUsd().toString(); + String materialNoUsdSum = sysSalesOrderChild.getMaterialNoUsdSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoUsd + "USD"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoUsdSum + "USD"); } - exportShippingInvoiceDto.setMakeNo(makeNo); - // to do 缺少物料型号 + exportShippingInvoiceDtos.add(exportShippingInvoiceDto); } + + + Map map = new HashMap<>(); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); @@ -1053,50 +1195,79 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); - List sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + List salesOrderCodes = new ArrayList<>(); - String makeNo = sysMakeOrder.getMakeNo(); - if (!StringUtils.isEmpty(makeNo)){ - List afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); } - Map map = new HashMap<>(); - map.put("customerContact",sysSalesShippingInform.getCustomerContact()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); - map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); - map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + + //销售订单主表的数据 + List sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); + + + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + + Map salesOrderMap = new HashMap<>(); + + for (SysSalesOrder sysSalesOrder : sysSalesOrders) { + salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder); + } ArrayList exportShippingInvoiceDtos = new ArrayList<>(); + AtomicInteger index = new AtomicInteger(1); for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); + SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId()); + exportShippingInvoiceDto.setIndex(index.getAndIncrement()); + exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); - exportShippingInvoiceDto.setMaterialNum(1); + exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo()); - if (sysSalesOrderChild.getMaterialUsd() != null) { - exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd())); - } else { - // 如果 materialUsd 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 - } + if ("1".equals(sysSalesOrder.getCommonCurrency())){ + + String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString(); + String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB"); - if (sysSalesOrderChild.getMaterialUsdSum() != null) { - exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum())); } else { - // 如果 materialUsdSum 为 null,可以设置为默认值或者保持不变 - exportShippingInvoiceDto.setMaterialUsdSum(BigDecimal.ZERO); // 示例: 设置为0 + + String materialNoUsd = sysSalesOrderChild.getMaterialNoUsd().toString(); + String materialNoUsdSum = sysSalesOrderChild.getMaterialNoUsdSum().toString(); + exportShippingInvoiceDto.setMaterialAmount(materialNoUsd + "USD"); + exportShippingInvoiceDto.setMaterialAmountSum(materialNoUsdSum + "USD"); } - exportShippingInvoiceDto.setMakeNo(makeNo); - // to do 缺少物料型号 + exportShippingInvoiceDtos.add(exportShippingInvoiceDto); } + Map map = new HashMap<>(); + map.put("customerContact",sysSalesShippingInform.getCustomerContact()); + map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); + map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); @@ -1119,6 +1290,8 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor public void exportShippingInformOrder(String outOrderCode, HttpServletResponse response) { String fileName = "出货通知单.xlsx"; + //出货单号:CTD年月日+001三位数流水号 + String shippingInformOrderCode = redisCache.generateBillNo("CTD"); try { String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); @@ -1135,21 +1308,52 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); - SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); + List salesOrderCodes = new ArrayList<>(); + + if (StringUtils.isNotEmpty(salesOrderCode)){ + String[] splitSalesOrderCode = salesOrderCode.split(","); + salesOrderCodes = Arrays.asList(splitSalesOrderCode); + } + + + //生产订主表的数据 + List sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes); + + //获取销售订单的明细 + List sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes); String realFileName = sysSalesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; // 设置响应头,指定文件名和文件类型 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setContentType("application/octet-stream"); - List salesShippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode); + + Map makeOrderMap = new HashMap<>(); + + for (SysMakeOrder sysMakeOrder : sysMakeOrders) { + makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder); + } + ArrayList shippingInformOrderDtos = new ArrayList<>(); - for (AfterSalesShippingDevice afterSalesShippingDevice : salesShippingDeviceList) { + + + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + ExportShippingInformOrderDto shippingInformOrderDto = new ExportShippingInformOrderDto(); - shippingInformOrderDto.setDeviceModelCode(afterSalesShippingDevice.getDeviceModelCode()); - shippingInformOrderDto.setMaterialName(afterSalesShippingDevice.getMaterialName()); + SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId()); + shippingInformOrderDto.setCustomerOrderCode(sysMakeOrder.getCustomerOderCode()); + shippingInformOrderDto.setMakeNo(sysMakeOrder.getMakeNo()); + shippingInformOrderDto.setSalesOrderCode(sysMakeOrder.getSaleNo()); + + shippingInformOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName()); + shippingInformOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + shippingInformOrderDto.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + shippingInformOrderDto.setLogo(null); + shippingInformOrderDto.setRemark(null); + shippingInformOrderDto.setTrackingCode(null); + shippingInformOrderDtos.add(shippingInformOrderDto); } @@ -1158,12 +1362,9 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String shippingDate = dateFormat.format(new Date()); - map.put("makeNo",sysMakeOrder.getMakeNo()); - map.put("salesOrderNumber",sysSalesShippingInform.getSalesOrderNumber()); - map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); + map.put("shippingInformOrderCode",shippingInformOrderCode); map.put("shippingDate",shippingDate); map.put("customerName",sysSalesShippingInform.getCustomerName()); - map.put("businessMembers",sysSalesShippingInform.getBusinessMembers()); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java index 15b08207..d7b2b02d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java @@ -67,27 +67,39 @@ public class WarehouseInventoryInquiry extends BaseEntity /** 物料历史总数量 */ @Excel(name = "物料历史总数量", sort = 8) - private BigDecimal historicalTotal; + private Integer historicalTotal; + + /** 共享可用库存数 */ + private Integer sharedAvailableStockNum; + + /** 固定可用库存数*/ + private Integer fixedAvailableStockNum; + + /** 锁定库存数*/ + private Integer lockStockNum; + + /** 盘亏数*/ + private Integer stockLossesNum; /** 可用库存数 */ @Excel(name = "可用库存数", sort = 9) - private BigDecimal availableStockNum; + private Integer availableStockNum; /** 物料归属可用库存数 */ // @Excel(name = "物料归属可用库存数") - private BigDecimal attributionAvailableStockNum; + private Integer attributionAvailableStockNum; /** 物料无归属可用库存数 */ // @Excel(name = "物料无归属可用库存数") - private BigDecimal noattributionAvailableStockNum; + private Integer noattributionAvailableStockNum; /** 物料使用数 */ @Excel(name = "使用数", sort = 10) - private BigDecimal useNum; + private Integer useNum; /** 物料报损数 */ @Excel(name = "报损数", sort = 11) - private BigDecimal reportDamageNum; + private Integer reportDamageNum; /** 物料使用状态(0 使用中、1 已作废) */ @Excel(name = "使用状态", sort = 12, dictType = "useStatus") @@ -200,61 +212,89 @@ public class WarehouseInventoryInquiry extends BaseEntity { return materialSpecification; } - public void setHistoricalTotal(BigDecimal historicalTotal) - { + + + public Integer getHistoricalTotal() { + return historicalTotal; + } + + public void setHistoricalTotal(Integer historicalTotal) { this.historicalTotal = historicalTotal; } - public BigDecimal getHistoricalTotal() - { - return historicalTotal; + public Integer getSharedAvailableStockNum() { + return sharedAvailableStockNum; } - public void setAvailableStockNum(BigDecimal availableStockNum) - { - this.availableStockNum = availableStockNum; + + public void setSharedAvailableStockNum(Integer sharedAvailableStockNum) { + this.sharedAvailableStockNum = sharedAvailableStockNum; } - public BigDecimal getAvailableStockNum() - { + public Integer getFixedAvailableStockNum() { + return fixedAvailableStockNum; + } + + public void setFixedAvailableStockNum(Integer fixedAvailableStockNum) { + this.fixedAvailableStockNum = fixedAvailableStockNum; + } + + public Integer getLockStockNum() { + return lockStockNum; + } + + public void setLockStockNum(Integer lockStockNum) { + this.lockStockNum = lockStockNum; + } + + public Integer getStockLossesNum() { + return stockLossesNum; + } + + public void setStockLossesNum(Integer stockLossesNum) { + this.stockLossesNum = stockLossesNum; + } + + public Integer getAvailableStockNum() { return availableStockNum; } - public void setAttributionAvailableStockNum(BigDecimal attributionAvailableStockNum) - { - this.attributionAvailableStockNum = attributionAvailableStockNum; + + public void setAvailableStockNum(Integer availableStockNum) { + this.availableStockNum = availableStockNum; } - public BigDecimal getAttributionAvailableStockNum() - { + public Integer getAttributionAvailableStockNum() { return attributionAvailableStockNum; } - public void setNoattributionAvailableStockNum(BigDecimal noattributionAvailableStockNum) - { - this.noattributionAvailableStockNum = noattributionAvailableStockNum; + + public void setAttributionAvailableStockNum(Integer attributionAvailableStockNum) { + this.attributionAvailableStockNum = attributionAvailableStockNum; } - public BigDecimal getNoattributionAvailableStockNum() - { + public Integer getNoattributionAvailableStockNum() { return noattributionAvailableStockNum; } - public void setUseNum(BigDecimal useNum) - { - this.useNum = useNum; + + public void setNoattributionAvailableStockNum(Integer noattributionAvailableStockNum) { + this.noattributionAvailableStockNum = noattributionAvailableStockNum; } - public BigDecimal getUseNum() - { + public Integer getUseNum() { return useNum; } - public void setReportDamageNum(BigDecimal reportDamageNum) - { - this.reportDamageNum = reportDamageNum; + + public void setUseNum(Integer useNum) { + this.useNum = useNum; } - public BigDecimal getReportDamageNum() - { + public Integer getReportDamageNum() { return reportDamageNum; } - public void setMaterialUseStatus(String materialUseStatus) + + public void setReportDamageNum(Integer reportDamageNum) { + this.reportDamageNum = reportDamageNum; + } + + public void setMaterialUseStatus(String materialUseStatus) { this.materialUseStatus = materialUseStatus; } @@ -307,6 +347,10 @@ public class WarehouseInventoryInquiry extends BaseEntity .append("materialModel", getMaterialModel()) .append("materialSpecification", getMaterialSpecification()) .append("historicalTotal", getHistoricalTotal()) + .append("sharedAvailableStockNum", getSharedAvailableStockNum()) + .append("fixedAvailableStockNum", getFixedAvailableStockNum()) + .append("lockStockNum", getLockStockNum()) + .append("stockLossesNum", getStockLossesNum()) .append("availableStockNum", getAvailableStockNum()) .append("attributionAvailableStockNum", getAttributionAvailableStockNum()) .append("noattributionAvailableStockNum", getNoattributionAvailableStockNum()) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java index 20b00865..39dd8363 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java @@ -1,6 +1,5 @@ package com.ruoyi.warehouse.domain; -import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -10,9 +9,9 @@ import com.ruoyi.common.core.domain.BaseEntity; /** * 仓库库存查询详情对象 warehouse_inventory_inquiry_detail - * + * * @author 刘晓旭 - * @date 2024-06-06 + * @date 2024-12-03 */ public class WarehouseInventoryInquiryDetail extends BaseEntity { @@ -22,400 +21,151 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity private Long inventoryInquiryDetailId; /** 料号 */ + @Excel(name = "料号") private String materialNo; - /** 物料名称 */ - private String materialName; + /** 关联单号 */ + @Excel(name = "关联单号") + private String correlationCode; - /** 物料类型 */ - private String materialType; + /** 库存查询业务类型(0采购、1生产、2委外、3退换货、4库存盘点、5开发修改、6销售、7员工服务、8库存报损) */ + @Excel(name = "库存查询业务类型") + private String inquiryBusinessType; - /** 物料图片地址 */ - private String materialPhotourl; + /** 库存查询订单类型(0采购入库单、1生产入库单、2委外入库单、3退换货单、4库存盘点单、5换货入库单、6生产退料单、7开发退料单、8委外退料单、9员工退料单、10员工领料单、11生产领料单、12委外领料单、13开发领料单、14销售出货单、15退换货单、16库存报损单) */ + @Excel(name = "库存查询订单类型") + private String inquiryOrderType; - /** 物料品牌 */ - private String materialBrand; + /** 库存查询出入库类型(0采购入库、供应商补货、1生产入库、2委外入库、3公司退货入库、4盘盈、5供应商换货、6生产退料、7开发退料、8委外退料、9员工退料10员工领料、11生产领料、12委外领料、13开发领料、14销售出库、15公司退货出库、16盘亏、17报损) */ + @Excel(name = "库存查询出入库类型") + private String inquiryWarehouseType; - /** 物料单位 */ - private String materialUnit; - - /** 物料描述 */ - private String materialDescribe; - - /** 物料加工方式 */ - private String materialProcessMethod; - - /** 物料型号 */ - private String materialModel; - - /** 物料规格 */ - private String materialSpecification; - - /** 物料历史总数量 */ - private BigDecimal historicalTotal; - - /** 可用库存数 */ - private BigDecimal availableStockNum; - - /** 物料归属可用库存数 */ - private BigDecimal attributionAvailableStockNum; - - /** 物料无归属可用库存数 */ - private BigDecimal noattributionAvailableStockNum; - - /** 物料使用数 */ - private BigDecimal useNum; - - /** 物料报损数 */ - private BigDecimal reportDamageNum; - - /** 物料使用状态 */ - private String materialUseStatus; - - /** 库存归属单号 */ - @Excel(name = "库存归属单号") - private String inventoryAttributionCode; - - /** 库存使用单号 */ - @Excel(name = "库存使用单号") - private String inventoryUseCode; + /** 出货设备ID */ + @Excel(name = "出货设备ID") + private String shippingDeviceId; /** 库存历史时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - @Excel(name = "库存历史时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "库存历史时间", width = 30, dateFormat = "yyyy-MM-dd") private Date inventoryHistoricalTime; - /** 库存历史类型 */ - @Excel(name = "库存历史类型") - private String inventoryHistoricalType; - - /** 库存增减 */ - @Excel(name = "库存增减") + /** 库存增减(0减少、1增加) */ + @Excel(name = "库存增减(0减少、1增加)") private String inventoryIncreaseDecrease; - /** 库存历史数量 */ - @Excel(name = "库存历史数量") - private BigDecimal inventoryHistoricalNum; - - /** 不含税采购总价 */ - @Excel(name = "不含税单价") - private BigDecimal purchasePriceExcludingTax; + /** 增减数量 */ + @Excel(name = "增减数量") + private Integer increaseDecreaseNum; - /** 含税总价 */ - @Excel(name = "含税单价") - private BigDecimal purchasePriceIncludesTax; - - /** 采购单号 */ - @Excel(name = "采购单号") - private String purchaseOrderCode; - - /** 供应商ID */ - @Excel(name = "供应商ID") - private String supplierCode; - - /** 供应商名称 */ - @Excel(name = "供应商名称") - private String supplierName; - - public void setInventoryInquiryDetailId(Long inventoryInquiryDetailId) + public void setInventoryInquiryDetailId(Long inventoryInquiryDetailId) { this.inventoryInquiryDetailId = inventoryInquiryDetailId; } - public Long getInventoryInquiryDetailId() + public Long getInventoryInquiryDetailId() { return inventoryInquiryDetailId; } - public void setMaterialNo(String materialNo) + public void setMaterialNo(String materialNo) { this.materialNo = materialNo; } - public String getMaterialNo() + public String getMaterialNo() { return materialNo; } - public void setMaterialName(String materialName) - { - this.materialName = materialName; - } - - public String getMaterialName() - { - return materialName; - } - public void setMaterialType(String materialType) - { - this.materialType = materialType; - } - - public String getMaterialType() - { - return materialType; - } - public void setMaterialPhotourl(String materialPhotourl) - { - this.materialPhotourl = materialPhotourl; - } - - public String getMaterialPhotourl() - { - return materialPhotourl; - } - public void setMaterialBrand(String materialBrand) - { - this.materialBrand = materialBrand; - } - - public String getMaterialBrand() - { - return materialBrand; - } - public void setMaterialUnit(String materialUnit) - { - this.materialUnit = materialUnit; - } - - public String getMaterialUnit() - { - return materialUnit; - } - public void setMaterialDescribe(String materialDescribe) - { - this.materialDescribe = materialDescribe; - } - - public String getMaterialDescribe() - { - return materialDescribe; - } - public void setMaterialProcessMethod(String materialProcessMethod) - { - this.materialProcessMethod = materialProcessMethod; - } - - public String getMaterialProcessMethod() - { - return materialProcessMethod; - } - public void setMaterialModel(String materialModel) - { - this.materialModel = materialModel; - } - - public String getMaterialModel() - { - return materialModel; - } - public void setMaterialSpecification(String materialSpecification) - { - this.materialSpecification = materialSpecification; - } - - public String getMaterialSpecification() - { - return materialSpecification; - } - public void setHistoricalTotal(BigDecimal historicalTotal) + public void setCorrelationCode(String correlationCode) { - this.historicalTotal = historicalTotal; + this.correlationCode = correlationCode; } - public BigDecimal getHistoricalTotal() + public String getCorrelationCode() { - return historicalTotal; + return correlationCode; } - public void setAvailableStockNum(BigDecimal availableStockNum) + public void setInquiryBusinessType(String inquiryBusinessType) { - this.availableStockNum = availableStockNum; + this.inquiryBusinessType = inquiryBusinessType; } - public BigDecimal getAvailableStockNum() + public String getInquiryBusinessType() { - return availableStockNum; + return inquiryBusinessType; } - public void setAttributionAvailableStockNum(BigDecimal attributionAvailableStockNum) + public void setInquiryOrderType(String inquiryOrderType) { - this.attributionAvailableStockNum = attributionAvailableStockNum; + this.inquiryOrderType = inquiryOrderType; } - public BigDecimal getAttributionAvailableStockNum() + public String getInquiryOrderType() { - return attributionAvailableStockNum; + return inquiryOrderType; } - public void setNoattributionAvailableStockNum(BigDecimal noattributionAvailableStockNum) + public void setInquiryWarehouseType(String inquiryWarehouseType) { - this.noattributionAvailableStockNum = noattributionAvailableStockNum; + this.inquiryWarehouseType = inquiryWarehouseType; } - public BigDecimal getNoattributionAvailableStockNum() + public String getInquiryWarehouseType() { - return noattributionAvailableStockNum; + return inquiryWarehouseType; } - public void setUseNum(BigDecimal useNum) + public void setShippingDeviceId(String shippingDeviceId) { - this.useNum = useNum; + this.shippingDeviceId = shippingDeviceId; } - public BigDecimal getUseNum() + public String getShippingDeviceId() { - return useNum; + return shippingDeviceId; } - public void setReportDamageNum(BigDecimal reportDamageNum) - { - this.reportDamageNum = reportDamageNum; - } - - public BigDecimal getReportDamageNum() - { - return reportDamageNum; - } - public void setMaterialUseStatus(String materialUseStatus) - { - this.materialUseStatus = materialUseStatus; - } - - public String getMaterialUseStatus() - { - return materialUseStatus; - } - public void setInventoryAttributionCode(String inventoryAttributionCode) - { - this.inventoryAttributionCode = inventoryAttributionCode; - } - - public String getInventoryAttributionCode() - { - return inventoryAttributionCode; - } - public void setInventoryUseCode(String inventoryUseCode) - { - this.inventoryUseCode = inventoryUseCode; - } - - public String getInventoryUseCode() - { - return inventoryUseCode; - } - public void setInventoryHistoricalTime(Date inventoryHistoricalTime) + public void setInventoryHistoricalTime(Date inventoryHistoricalTime) { this.inventoryHistoricalTime = inventoryHistoricalTime; } - public Date getInventoryHistoricalTime() + public Date getInventoryHistoricalTime() { return inventoryHistoricalTime; } - public void setInventoryHistoricalType(String inventoryHistoricalType) - { - this.inventoryHistoricalType = inventoryHistoricalType; - } - - public String getInventoryHistoricalType() - { - return inventoryHistoricalType; - } - public void setInventoryIncreaseDecrease(String inventoryIncreaseDecrease) + public void setInventoryIncreaseDecrease(String inventoryIncreaseDecrease) { this.inventoryIncreaseDecrease = inventoryIncreaseDecrease; } - public String getInventoryIncreaseDecrease() + public String getInventoryIncreaseDecrease() { return inventoryIncreaseDecrease; } - public void setInventoryHistoricalNum(BigDecimal inventoryHistoricalNum) - { - this.inventoryHistoricalNum = inventoryHistoricalNum; - } - - public BigDecimal getInventoryHistoricalNum() - { - return inventoryHistoricalNum; - } - public void setPurchasePriceExcludingTax(BigDecimal purchasePriceExcludingTax) - { - this.purchasePriceExcludingTax = purchasePriceExcludingTax; - } - - public BigDecimal getPurchasePriceExcludingTax() - { - return purchasePriceExcludingTax; - } - public void setPurchasePriceIncludesTax(BigDecimal purchasePriceIncludesTax) - { - this.purchasePriceIncludesTax = purchasePriceIncludesTax; - } - - public BigDecimal getPurchasePriceIncludesTax() - { - return purchasePriceIncludesTax; - } - public void setPurchaseOrderCode(String purchaseOrderCode) - { - this.purchaseOrderCode = purchaseOrderCode; - } - - public String getPurchaseOrderCode() - { - return purchaseOrderCode; - } - public void setSupplierCode(String supplierCode) - { - this.supplierCode = supplierCode; - } - - public String getSupplierCode() - { - return supplierCode; - } - public void setSupplierName(String supplierName) + public void setIncreaseDecreaseNum(Integer increaseDecreaseNum) { - this.supplierName = supplierName; + this.increaseDecreaseNum = increaseDecreaseNum; } - public String getSupplierName() + public Integer getIncreaseDecreaseNum() { - return supplierName; + return increaseDecreaseNum; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("inventoryInquiryDetailId", getInventoryInquiryDetailId()) - .append("materialNo", getMaterialNo()) - .append("materialName", getMaterialName()) - .append("materialType", getMaterialType()) - .append("materialPhotourl", getMaterialPhotourl()) - .append("materialBrand", getMaterialBrand()) - .append("materialUnit", getMaterialUnit()) - .append("materialDescribe", getMaterialDescribe()) - .append("materialProcessMethod", getMaterialProcessMethod()) - .append("materialModel", getMaterialModel()) - .append("materialSpecification", getMaterialSpecification()) - .append("historicalTotal", getHistoricalTotal()) - .append("availableStockNum", getAvailableStockNum()) - .append("attributionAvailableStockNum", getAttributionAvailableStockNum()) - .append("noattributionAvailableStockNum", getNoattributionAvailableStockNum()) - .append("useNum", getUseNum()) - .append("reportDamageNum", getReportDamageNum()) - .append("materialUseStatus", getMaterialUseStatus()) - .append("inventoryAttributionCode", getInventoryAttributionCode()) - .append("inventoryUseCode", getInventoryUseCode()) - .append("inventoryHistoricalTime", getInventoryHistoricalTime()) - .append("inventoryHistoricalType", getInventoryHistoricalType()) - .append("inventoryIncreaseDecrease", getInventoryIncreaseDecrease()) - .append("inventoryHistoricalNum", getInventoryHistoricalNum()) - .append("purchasePriceExcludingTax", getPurchasePriceExcludingTax()) - .append("purchasePriceIncludesTax", getPurchasePriceIncludesTax()) - .append("purchaseOrderCode", getPurchaseOrderCode()) - .append("supplierCode", getSupplierCode()) - .append("supplierName", getSupplierName()) - .append("remark", getRemark()) - .append("createTime", getCreateTime()) - .append("createBy", getCreateBy()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("inventoryInquiryDetailId", getInventoryInquiryDetailId()) + .append("materialNo", getMaterialNo()) + .append("correlationCode", getCorrelationCode()) + .append("inquiryBusinessType", getInquiryBusinessType()) + .append("inquiryOrderType", getInquiryOrderType()) + .append("inquiryWarehouseType", getInquiryWarehouseType()) + .append("shippingDeviceId", getShippingDeviceId()) + .append("inventoryHistoricalTime", getInventoryHistoricalTime()) + .append("inventoryIncreaseDecrease", getInventoryIncreaseDecrease()) + .append("increaseDecreaseNum", getIncreaseDecreaseNum()) + .append("remark", getRemark()) + .append("createTime", getCreateTime()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamage.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamage.java index 9742b786..56af7099 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamage.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamage.java @@ -55,11 +55,11 @@ public class WarehouseInventoryReportDamage extends BaseEntity /** 物料数合计 */ @Excel(name = "物料数合计") - private int materialTotal; + private Integer materialTotal; /** 数量合计 */ @Excel(name = "数量合计") - private BigDecimal numTotal; + private Integer numTotal; /** 仓库ID */ @Excel(name = "仓库ID") @@ -198,25 +198,25 @@ public class WarehouseInventoryReportDamage extends BaseEntity { return materialName; } - public void setMaterialTotal(int materialTotal) - { - this.materialTotal = materialTotal; - } - public int getMaterialTotal() - { + + public Integer getMaterialTotal() { return materialTotal; } - public void setNumTotal(BigDecimal numTotal) - { - this.numTotal = numTotal; + + public void setMaterialTotal(Integer materialTotal) { + this.materialTotal = materialTotal; } - public BigDecimal getNumTotal() - { + public Integer getNumTotal() { return numTotal; } - public void setWarehouseCode(String warehouseCode) + + public void setNumTotal(Integer numTotal) { + this.numTotal = numTotal; + } + + public void setWarehouseCode(String warehouseCode) { this.warehouseCode = warehouseCode; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamageChild.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamageChild.java index 81bea8e1..f579c2e8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamageChild.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamageChild.java @@ -59,7 +59,7 @@ public class WarehouseInventoryReportDamageChild extends BaseEntity /** 实际报废数量 */ @Excel(name = "实际报废数量", sort = 6) - private BigDecimal actualScrapQuantity; + private Integer actualScrapQuantity; /** 报废类型 */ @Excel(name = "报废类型", sort = 8) @@ -189,16 +189,16 @@ public class WarehouseInventoryReportDamageChild extends BaseEntity { return materialBrand; } - public void setActualScrapQuantity(BigDecimal actualScrapQuantity) - { - this.actualScrapQuantity = actualScrapQuantity; - } - public BigDecimal getActualScrapQuantity() - { + public Integer getActualScrapQuantity() { return actualScrapQuantity; } - public void setScrapType(String scrapType) + + public void setActualScrapQuantity(Integer actualScrapQuantity) { + this.actualScrapQuantity = actualScrapQuantity; + } + + public void setScrapType(String scrapType) { this.scrapType = scrapType; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryReportDamageServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryReportDamageServiceImpl.java index 95b67f51..6e8966d1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryReportDamageServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryReportDamageServiceImpl.java @@ -195,7 +195,7 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve String loginName = ShiroUtils.getLoginName(); warehouseInventoryReportDamage.setCreateBy(loginName); warehouseInventoryReportDamage.setCreateTime(DateUtils.getNowDate()); - BigDecimal sumTotal = BigDecimal.ZERO; + Integer sumTotal = 0; //报损子表数据 //判断子表数据是否为空 if(StringUtils.isNotEmpty(warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList())){ @@ -206,7 +206,7 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve throw new BusinessException("物料"+reportDamageChild.getMaterialNo()+"库存查询记录为空!请检查"); } //子表数据不为空,则插入子表数据 - sumTotal = sumTotal.add(reportDamageChild.getActualScrapQuantity()); + sumTotal += reportDamageChild.getActualScrapQuantity(); reportDamageChild.setMakeNo(warehouseInventoryReportDamage.getMakeNo()); reportDamageChild.setReportDamageCode(newCode); if(warehouseInventoryReportDamage.getApplyTime()!=null){ @@ -237,17 +237,17 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve throw new BusinessException("新增库存报损失败,该物料无库存数据"); } WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(damageChild); - inquiryDetail.setInventoryHistoricalType("9"); +// inquiryDetail.setInventoryHistoricalType("9"); int detailInsertResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); if(detailInsertResult<=0){ throw new BusinessException("新增库存历史失败!"); } - BigDecimal reportDamageNum = inventoryInquiry.getReportDamageNum(); - reportDamageNum = reportDamageNum.add(damageChild.getActualScrapQuantity()); - inventoryInquiry.setReportDamageNum(reportDamageNum); - BigDecimal availableNum = inventoryInquiry.getAvailableStockNum(); - availableNum = availableNum.subtract(damageChild.getActualScrapQuantity()); - inventoryInquiry.setAvailableStockNum(availableNum); +// BigDecimal reportDamageNum = inventoryInquiry.getReportDamageNum(); +// reportDamageNum = reportDamageNum.add(damageChild.getActualScrapQuantity()); +// inventoryInquiry.setReportDamageNum(reportDamageNum); +// BigDecimal availableNum = inventoryInquiry.getAvailableStockNum(); +// availableNum = availableNum.subtract(damageChild.getActualScrapQuantity()); +// inventoryInquiry.setAvailableStockNum(availableNum); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); return inventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); @@ -257,15 +257,15 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve public WarehouseInventoryInquiryDetail createWarehouseInventoryInquiryDetail(WarehouseInventoryReportDamageChild damageChild){ WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail.setMaterialNo(damageChild.getMaterialNo()); - inquiryDetail.setMaterialName(damageChild.getMaterialName()); - inquiryDetail.setMaterialBrand(damageChild.getMaterialBrand()); - inquiryDetail.setMaterialPhotourl(damageChild.getMaterialPhotourl()); - inquiryDetail.setMaterialDescribe(damageChild.getMaterialDescribe()); - inquiryDetail.setMaterialUnit(damageChild.getMaterialUnit()); - inquiryDetail.setMaterialType(damageChild.getMaterialType()); +// inquiryDetail.setMaterialName(damageChild.getMaterialName()); +// inquiryDetail.setMaterialBrand(damageChild.getMaterialBrand()); +// inquiryDetail.setMaterialPhotourl(damageChild.getMaterialPhotourl()); +// inquiryDetail.setMaterialDescribe(damageChild.getMaterialDescribe()); +// inquiryDetail.setMaterialUnit(damageChild.getMaterialUnit()); +// inquiryDetail.setMaterialType(damageChild.getMaterialType()); inquiryDetail.setInventoryIncreaseDecrease("0"); - BigDecimal decreaseNum = damageChild.getActualScrapQuantity(); - inquiryDetail.setAvailableStockNum(decreaseNum); + Integer decreaseNum = damageChild.getActualScrapQuantity(); +// inquiryDetail.setAvailableStockNum(decreaseNum); inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); inquiryDetail.setCreateBy(ShiroUtils.getLoginName()); inquiryDetail.setCreateTime(DateUtils.getNowDate()); @@ -283,13 +283,13 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve String loginName = ShiroUtils.getLoginName(); warehouseInventoryReportDamage.setUpdateBy(loginName); warehouseInventoryReportDamage.setUpdateTime(DateUtils.getNowDate()); - BigDecimal sumTotal = BigDecimal.ZERO; + Integer sumTotal = 0; if(StringUtils.isNotEmpty(warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList())){ //清除现在的子表信息 warehouseInventoryReportDamageChildService.deleteWarehouseInventoryReportDamageChildByCode(warehouseInventoryReportDamage.getReportDamageCode()); for(WarehouseInventoryReportDamageChild warehouseInventoryReportDamageChild:warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList()){ //子表数据不为空,则插入子表数据 - sumTotal = sumTotal.add(warehouseInventoryReportDamageChild.getActualScrapQuantity()); + sumTotal += warehouseInventoryReportDamageChild.getActualScrapQuantity(); warehouseInventoryReportDamageChild.setMakeNo(warehouseInventoryReportDamage.getMakeNo()); warehouseInventoryReportDamageChild.setReportDamageCode(warehouseInventoryReportDamage.getReportDamageCode()); warehouseInventoryReportDamageChild.setCreateTime(DateUtils.getNowDate()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java index 59265e3c..633d0bb2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java @@ -568,16 +568,16 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService // 更新物料对应库存查询记录 public int updateWarehouseInventoryInquiry(WarehouseOutOrderDetail outOrderDetail,WarehouseInventoryInquiry inventoryInquiry){ // 更新可用库存数 - BigDecimal stockNum = inventoryInquiry.getAvailableStockNum(); - if((stockNum.compareTo(BigDecimal.ZERO) <= 0)){ + Integer stockNum = inventoryInquiry.getAvailableStockNum(); + if(stockNum <= 0){ throw new BusinessException("出库失败!该物料无可用库存数"); } int outNum = outOrderDetail.getActualOutOrderSum(); - stockNum = stockNum.subtract(BigDecimal.valueOf(outNum)); + stockNum -= outNum; inventoryInquiry.setAvailableStockNum(stockNum); // 更新使用数 - BigDecimal useNum = inventoryInquiry.getUseNum(); - useNum = useNum.add(BigDecimal.valueOf(outNum)); + Integer useNum = inventoryInquiry.getUseNum(); + useNum += outNum; inventoryInquiry.setUseNum(useNum); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); @@ -591,17 +591,12 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService public WarehouseInventoryInquiryDetail createWarehouseInventoryInquiryDetail(WarehouseOutOrderDetail outOrderDetail){ WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail.setMaterialNo(outOrderDetail.getMaterialNo()); - inquiryDetail.setMaterialName(outOrderDetail.getMaterialName()); - inquiryDetail.setMaterialBrand(outOrderDetail.getMaterialBrand()); - inquiryDetail.setMaterialPhotourl(outOrderDetail.getMaterialPhotourl()); - inquiryDetail.setMaterialDescribe(outOrderDetail.getMaterialDescribe()); - inquiryDetail.setMaterialUnit(outOrderDetail.getMaterialUnit()); - inquiryDetail.setMaterialType(outOrderDetail.getMaterialType()); + inquiryDetail.setInventoryIncreaseDecrease("0"); int decreaseNum = outOrderDetail.getActualOutOrderSum(); BigDecimal useNum = BigDecimal.valueOf(decreaseNum); - inquiryDetail.setUseNum(useNum); - inquiryDetail.setAvailableStockNum(useNum); +// inquiryDetail.setUseNum(useNum); +// inquiryDetail.setAvailableStockNum(useNum); inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); inquiryDetail.setCreateBy(ShiroUtils.getLoginName()); inquiryDetail.setCreateTime(DateUtils.getNowDate()); @@ -1361,7 +1356,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService throw new BusinessException("更新库存查询数据失败"); } WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(warehouseOutOrderDetail); - inquiryDetail.setInventoryHistoricalType("5");//委外领料 +// inquiryDetail.setInventoryHistoricalType("5");//委外领料 int insertInquiryResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); if (insertInquiryResult <= 0){ throw new BusinessException("新增库存历史数据失败"); @@ -1460,7 +1455,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService throw new BusinessException("更新库存查询数据失败"); } WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(warehouseOutOrderDetail); - inquiryDetail.setInventoryHistoricalType("6");//员工领料 +// inquiryDetail.setInventoryHistoricalType("6");//员工领料 int insertInquiryResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); if (insertInquiryResult <= 0){ throw new BusinessException("新增库存历史数据失败"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java index 051d2177..bbef5538 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java @@ -724,7 +724,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS int storageNum = warehouseStorageOrderDetail.getStorageNum(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum); - inquiryDetail.setInventoryHistoricalType("0"); +// inquiryDetail.setInventoryHistoricalType("0"); // if (correlationCode.startsWith("QG")) { //// 有无归属分类 // } @@ -734,21 +734,21 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录 WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); - inquiryDetail.setInventoryHistoricalType("1"); +// inquiryDetail.setInventoryHistoricalType("1"); inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); }else if(warehouseStorageType.equals("4")){//新增委外入库库存历史记录 WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); - inquiryDetail.setInventoryHistoricalType("2"); +// inquiryDetail.setInventoryHistoricalType("2"); inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); } //查询该物料报损数,更新库存查询报损数 List damageChildren = damageChildMapper.selectWarehouseInventoryReportDamageChildByMaterialNo(materialNo); - BigDecimal scrapSum = BigDecimal.ZERO; + Integer scrapSum = 0; if(StringUtils.isNotEmpty(damageChildren)){ for (WarehouseInventoryReportDamageChild damageChild:damageChildren) { - BigDecimal scrapNum = damageChild.getActualScrapQuantity(); - scrapSum = scrapSum.add(scrapNum); + Integer scrapNum = damageChild.getActualScrapQuantity(); + scrapSum += scrapSum; } } // 存在库存查询记录,更新可用库存数 @@ -756,14 +756,14 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); // 增加可用库存数 Integer storage = warehouseStorageOrderDetail.getStorageNum(); - BigDecimal storagenum = BigDecimal.valueOf(storage); - BigDecimal avaliableStorage = inventoryInquiry.getAvailableStockNum(); - avaliableStorage = avaliableStorage.add(storagenum); + Integer storagenum = storage; + Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); + avaliableStorage += storagenum; inventoryInquiry.setAvailableStockNum(avaliableStorage); inventoryInquiry.setReportDamageNum(scrapSum); // 设置历史总数 - BigDecimal historicalTotal = inventoryInquiry.getHistoricalTotal(); - historicalTotal = historicalTotal.add(storagenum); + Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); + historicalTotal += storagenum; inventoryInquiry.setHistoricalTotal(historicalTotal); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); @@ -779,7 +779,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); Integer storage = warehouseStorageOrderDetail.getStorageNum(); - BigDecimal storagenum = BigDecimal.valueOf(storage); + Integer storagenum = storage; // 设置历史总数 inventoryInquiry.setHistoricalTotal(storagenum); inventoryInquiry.setAvailableStockNum(storagenum); @@ -799,12 +799,12 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS public WarehouseInventoryInquiryDetail generateInquiryDetailByPurchaseChild(PurchaseOrderChild child,int storageNum){ WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail.setMaterialNo(child.getMaterialNo()); - inquiryDetail.setMaterialName(child.getMaterialName()); - inquiryDetail.setMaterialBrand(child.getMaterialBrand()); - inquiryDetail.setMaterialPhotourl(child.getMaterialPhotourl()); - inquiryDetail.setMaterialDescribe(child.getMaterialDescribe()); - inquiryDetail.setMaterialType(child.getMaterialType()); - inquiryDetail.setMaterialUnit(child.getMaterialUnit()); +// inquiryDetail.setMaterialName(child.getMaterialName()); +// inquiryDetail.setMaterialBrand(child.getMaterialBrand()); +// inquiryDetail.setMaterialPhotourl(child.getMaterialPhotourl()); +// inquiryDetail.setMaterialDescribe(child.getMaterialDescribe()); +// inquiryDetail.setMaterialType(child.getMaterialType()); +// inquiryDetail.setMaterialUnit(child.getMaterialUnit()); // inquiryDetail.setInventoryAttributionCode(child.getPurchasePlanCorrelationCode()); // inquiryDetail.setSupplierCode(child.()); // inquiryDetail.setSupplierName(child.getSupplierName()); @@ -812,7 +812,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS // inquiryDetail.setPurchaseOrderCode(child.getPurchaseOrderCode()); // 库存归属单号 BigDecimal realStorageNum = BigDecimal.valueOf(storageNum); - inquiryDetail.setAvailableStockNum(realStorageNum); +// inquiryDetail.setAvailableStockNum(realStorageNum); // inquiryDetail.setPurchasePriceIncludesTax(child.getMaterialRealRmbSum()); // inquiryDetail.setPurchasePriceExcludingTax(child.getMaterialRealNoRmbSum()); inquiryDetail.setInventoryIncreaseDecrease("1"); @@ -826,18 +826,18 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS public WarehouseInventoryInquiryDetail createMakeInOrderInquiryDetail(WarehouseStorageOrderDetail warehouseStorageOrderDetail){ WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail.setMaterialNo(warehouseStorageOrderDetail.getMaterialNo()); - inquiryDetail.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); - inquiryDetail.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); - inquiryDetail.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); - inquiryDetail.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); - inquiryDetail.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); - inquiryDetail.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); - inquiryDetail.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); +// inquiryDetail.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); +// inquiryDetail.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); +// inquiryDetail.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); +// inquiryDetail.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); +// inquiryDetail.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); +// inquiryDetail.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); +// inquiryDetail.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); BigDecimal storagenum = BigDecimal.ZERO; if(warehouseStorageOrderDetail.getStorageNum()!=null){ storagenum = BigDecimal.valueOf(warehouseStorageOrderDetail.getStorageNum()); } - inquiryDetail.setAvailableStockNum(storagenum); +// inquiryDetail.setAvailableStockNum(storagenum); inquiryDetail.setInventoryIncreaseDecrease("1"); inquiryDetail.setCreateBy(ShiroUtils.getLoginName()); inquiryDetail.setCreateTime(DateUtils.getNowDate()); diff --git a/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml index 02554362..e964afc5 100644 --- a/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml @@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -45,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select estimate_detail_id, sales_estimate_code, material_gear_position, usd_rate, profit_rate, material_no, material_name, material_type, material_photo_url, material_unit, material_brand, material_describe, material_process_method, material_num, no_tax_rmb, tax_rmb, all_no_tax_rmb, all_tax_rmb, tax_dollar, no_tax_dollar, all_tax_dollar, all_no_tax_dollar, no_tax_shipping_costs, no_tax_service_costs, no_tax_develop_costs, no_tax_labor_costs, no_tax_promotional_costs, no_tax_business_costs, no_tax_manages_costs, no_tax_material_costs, no_tax_operating_costs, tax_operating_costs, create_by, create_time, update_by, update_time, remark from sales_estimate_detail + select estimate_detail_id, sales_estimate_code, material_gear_position, usd_rate, profit_rate, material_no, material_name, material_type, material_photo_url, material_unit, material_brand, material_describe, material_process_method, material_num, no_tax_rmb, tax_rmb, all_no_tax_rmb, all_tax_rmb, tax_dollar, no_tax_dollar, all_tax_dollar, all_no_tax_dollar, no_tax_shipping_costs, no_tax_service_costs, no_tax_develop_costs, no_tax_labor_costs, no_tax_promotional_costs, no_tax_business_costs, no_tax_manages_costs, no_tax_material_costs, no_tax_operating_costs, tax_operating_costs, total_operating_costs, create_by, create_time, update_by, update_time, remark from sales_estimate_detail + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml index 3e0f79d8..26b29fd8 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml @@ -1,39 +1,20 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - + @@ -42,131 +23,68 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select inventory_inquiry_detail_id, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, material_model, material_specification, historical_total, available_stock_num, attribution_available_stock_num, noattribution_available_stock_num, use_num, report_damage_num, material_use_status, inventory_attribution_code, inventory_use_code, inventory_historical_time, inventory_historical_type, inventory_increase_decrease, inventory_historical_num, purchase_price_excluding_tax, purchase_price_includes_tax, purchase_order_code, supplier_code, supplier_name, remark, create_time, create_by, update_by, update_time from warehouse_inventory_inquiry_detail + select inventory_inquiry_detail_id, material_no, correlation_code, inquiry_business_type, inquiry_order_type, inquiry_warehouse_type, shipping_device_id, inventory_historical_time, inventory_increase_decrease, increase_decrease_num, remark, create_time, create_by, update_by, update_time from warehouse_inventory_inquiry_detail - + - - - insert into warehouse_inventory_inquiry_detail material_no, - material_name, - material_type, - material_photoUrl, - material_brand, - material_unit, - material_describe, - material_process_method, - material_model, - material_specification, - historical_total, - available_stock_num, - attribution_available_stock_num, - noattribution_available_stock_num, - use_num, - report_damage_num, - material_use_status, - inventory_attribution_code, - inventory_use_code, + correlation_code, + inquiry_business_type, + inquiry_order_type, + inquiry_warehouse_type, + shipping_device_id, inventory_historical_time, - inventory_historical_type, inventory_increase_decrease, - inventory_historical_num, - purchase_price_excluding_tax, - purchase_price_includes_tax, - purchase_order_code, - supplier_code, - supplier_name, + increase_decrease_num, remark, create_time, create_by, update_by, update_time, - + #{materialNo}, - #{materialName}, - #{materialType}, - #{materialPhotourl}, - #{materialBrand}, - #{materialUnit}, - #{materialDescribe}, - #{materialProcessMethod}, - #{materialModel}, - #{materialSpecification}, - #{historicalTotal}, - #{availableStockNum}, - #{attributionAvailableStockNum}, - #{noattributionAvailableStockNum}, - #{useNum}, - #{reportDamageNum}, - #{materialUseStatus}, - #{inventoryAttributionCode}, - #{inventoryUseCode}, + #{correlationCode}, + #{inquiryBusinessType}, + #{inquiryOrderType}, + #{inquiryWarehouseType}, + #{shippingDeviceId}, #{inventoryHistoricalTime}, - #{inventoryHistoricalType}, #{inventoryIncreaseDecrease}, - #{inventoryHistoricalNum}, - #{purchasePriceExcludingTax}, - #{purchasePriceIncludesTax}, - #{purchaseOrderCode}, - #{supplierCode}, - #{supplierName}, + #{increaseDecreaseNum}, #{remark}, #{createTime}, #{createBy}, #{updateBy}, #{updateTime}, - + update warehouse_inventory_inquiry_detail material_no = #{materialNo}, - material_name = #{materialName}, - material_type = #{materialType}, - material_photoUrl = #{materialPhotourl}, - material_brand = #{materialBrand}, - material_unit = #{materialUnit}, - material_describe = #{materialDescribe}, - material_process_method = #{materialProcessMethod}, - material_model = #{materialModel}, - material_specification = #{materialSpecification}, - historical_total = #{historicalTotal}, - available_stock_num = #{availableStockNum}, - attribution_available_stock_num = #{attributionAvailableStockNum}, - noattribution_available_stock_num = #{noattributionAvailableStockNum}, - use_num = #{useNum}, - report_damage_num = #{reportDamageNum}, - material_use_status = #{materialUseStatus}, - inventory_attribution_code = #{inventoryAttributionCode}, - inventory_use_code = #{inventoryUseCode}, + correlation_code = #{correlationCode}, + inquiry_business_type = #{inquiryBusinessType}, + inquiry_order_type = #{inquiryOrderType}, + inquiry_warehouse_type = #{inquiryWarehouseType}, + shipping_device_id = #{shippingDeviceId}, inventory_historical_time = #{inventoryHistoricalTime}, - inventory_historical_type = #{inventoryHistoricalType}, inventory_increase_decrease = #{inventoryIncreaseDecrease}, - inventory_historical_num = #{inventoryHistoricalNum}, - purchase_price_excluding_tax = #{purchasePriceExcludingTax}, - purchase_price_includes_tax = #{purchasePriceIncludesTax}, - purchase_order_code = #{purchaseOrderCode}, - supplier_code = #{supplierCode}, - supplier_name = #{supplierName}, + increase_decrease_num = #{increaseDecreaseNum}, remark = #{remark}, create_time = #{createTime}, create_by = #{createBy}, @@ -181,7 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from warehouse_inventory_inquiry_detail where inventory_inquiry_detail_id in + delete from warehouse_inventory_inquiry_detail where inventory_inquiry_detail_id in #{inventoryInquiryDetailId} diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml index d2c6b79f..02da5d15 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml @@ -18,6 +18,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + @@ -35,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select inventory_inquiry_id, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, material_model, material_specification,warehouse_dept, - historical_total, available_stock_num, attribution_available_stock_num, + historical_total, shared_available_stock_num, lock_stock_num, fixed_available_stock_num, stock_losses_num,available_stock_num, attribution_available_stock_num, noattribution_available_stock_num, use_num, report_damage_num, material_use_status, remark, create_time, create_by, update_by, update_time from warehouse_inventory_inquiry @@ -83,6 +87,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_specification, warehouse_dept, historical_total, + shared_available_stock_num, + lock_stock_num, + fixed_available_stock_num, + stock_losses_num, available_stock_num, attribution_available_stock_num, noattribution_available_stock_num, @@ -108,6 +116,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{materialSpecification}, #{warehouseDept}, #{historicalTotal}, + #{sharedAvailableStockNum}, + #{lockStockNum}, + #{fixedAvailableStockNum}, + #{stockLossesNum}, #{availableStockNum}, #{attributionAvailableStockNum}, #{noattributionAvailableStockNum}, @@ -137,6 +149,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_specification = #{materialSpecification}, warehouse_dept = #{warehouseDept}, historical_total = #{historicalTotal}, + shared_available_stock_num = #{sharedAvailableStockNum}, + lock_stock_num = #{lockStockNum}, + fixed_available_stock_num = #{fixedAvailableStockNum}, + stock_losses_num = #{stockLossesNum}, available_stock_num = #{availableStockNum}, attribution_available_stock_num = #{attributionAvailableStockNum}, noattribution_available_stock_num = #{noattributionAvailableStockNum}, diff --git a/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx b/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx index 5fa20c7e..078bc212 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx differ diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx index 3fbb9f2f..263bf01c 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx differ diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货单2.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货单2.xlsx index 5fbf35b5..4b9c888c 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货单2.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货单2.xlsx differ diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx index 5153f88d..d712f516 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx differ diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx index 7cda613a..4f0494a8 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx differ diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单1.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单1.xlsx index eef3e6f7..b93f752e 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单1.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单1.xlsx differ diff --git a/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单2.xlsx b/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单2.xlsx index 115fd875..e823b97b 100644 Binary files a/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单2.xlsx and b/ruoyi-admin/src/main/resources/static/attachments/销售出货箱单2.xlsx differ diff --git a/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAdd.html b/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAdd.html index 418667f8..4e350c59 100644 --- a/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAdd.html +++ b/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAdd.html @@ -132,10 +132,7 @@ "noTaxDevelopCosts": null, // 初始化为 null 或 0 "noTaxShippingCosts": null, "noTaxServiceCosts": null, - "noTaxLaborCosts": null, - "noTaxPromotionalCosts": null, - "noTaxBusinessCosts": null, - "noTaxManagesCosts": null, + "totalOperatingCosts": null, "noTaxMaterialCosts": null, "noTaxOperatingCosts": null, "taxOperatingCosts": null, @@ -149,10 +146,7 @@ var noTaxDevelopCosts = $('#noTaxDevelopCosts' + index).val(); var noTaxShippingCosts = $('#noTaxShippingCosts' + index).val(); var noTaxServiceCosts = $('#noTaxServiceCosts' + index).val(); - var noTaxLaborCosts = $('#noTaxLaborCosts' + index).val(); - var noTaxPromotionalCosts = $('#noTaxPromotionalCosts' + index).val(); - var noTaxBusinessCosts = $('#noTaxBusinessCosts' + index).val(); - var noTaxManagesCosts = $('#noTaxManagesCosts' + index).val(); + var totalOperatingCosts = $('#totalOperatingCosts' + index).val(); var noTaxMaterialCosts = $('#noTaxMaterialCosts' + index).val(); var noTaxOperatingCosts = $('#noTaxOperatingCosts' + index).val(); var taxOperatingCosts = $('#taxOperatingCosts' + index).val(); @@ -174,39 +168,23 @@ hasError = true; return; // 退出循环,阻止进一步处理 } - - if (!noTaxLaborCosts && noTaxLaborCosts !== '0') { - $.modal.alertWarning("人工成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的人工成本"); - hasError = true; - return; // 退出循环,阻止进一步处理 - } - if (!noTaxPromotionalCosts && noTaxPromotionalCosts !== '0') { - $.modal.alertWarning("推广成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的推广成本"); - hasError = true; - return; // 退出循环,阻止进一步处理 - } - if (!noTaxBusinessCosts && noTaxBusinessCosts !== '0') { - $.modal.alertWarning("业务成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的业务成本"); - hasError = true; - return; // 退出循环,阻止进一步处理 - } - if (!noTaxManagesCosts && noTaxManagesCosts !== '0') { - $.modal.alertWarning("管理成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的管理成本"); + if (!totalOperatingCosts && totalOperatingCosts !== '0') { + $.modal.alertWarning("不含税总经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的不含税总经营成本"); hasError = true; return; // 退出循环,阻止进一步处理 } if (!noTaxMaterialCosts && noTaxMaterialCosts !== '0') { - $.modal.alertWarning("物料成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的物料成本"); + $.modal.alertWarning("不含税物料成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的不含税物料成本"); hasError = true; return; // 退出循环,阻止进一步处理 } if (!noTaxOperatingCosts && noTaxOperatingCosts !== '0') { - $.modal.alertWarning("经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的经营成本"); + $.modal.alertWarning("不含税经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的不含税经营成本"); hasError = true; return; // 退出循环,阻止进一步处理 } if (!taxOperatingCosts && taxOperatingCosts !== '0') { - $.modal.alertWarning("税经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的税经营成本"); + $.modal.alertWarning("含税经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的含税经营成本"); hasError = true; return; // 退出循环,阻止进一步处理 } @@ -220,10 +198,7 @@ estimateMaterialDataList[index].noTaxDevelopCosts = noTaxDevelopCosts; estimateMaterialDataList[index].noTaxShippingCosts = noTaxShippingCosts; estimateMaterialDataList[index].noTaxServiceCosts = noTaxServiceCosts; - estimateMaterialDataList[index].noTaxLaborCosts = noTaxLaborCosts; - estimateMaterialDataList[index].noTaxPromotionalCosts = noTaxPromotionalCosts; - estimateMaterialDataList[index].noTaxBusinessCosts = noTaxBusinessCosts; - estimateMaterialDataList[index].noTaxManagesCosts = noTaxManagesCosts; + estimateMaterialDataList[index].totalOperatingCosts = totalOperatingCosts; estimateMaterialDataList[index].noTaxMaterialCosts = noTaxMaterialCosts; estimateMaterialDataList[index].noTaxOperatingCosts = noTaxOperatingCosts; estimateMaterialDataList[index].taxOperatingCosts = taxOperatingCosts; @@ -489,8 +464,8 @@ var firstRow = data[0].rows[0]; // 初始化累积变量 - let noTaxPurchaseRmb = 0; - let taxPurchaseRmb = 0; + let noTaxPurchaseRmb = 0; //不含税采购总成本 + let taxPurchaseRmb = 0; //含税采购总成本 // 累加无税购买金额 data[0].rows.forEach(function (row) { @@ -517,33 +492,34 @@ // 从 `salesEstimateDetailVo` 中获取其他成本信息 const { - noTaxLaborCosts = '', - noTaxPromotionalCosts = '', - noTaxBusinessCosts = '', - noTaxManagesCosts = '', - noTaxMaterialCosts = '' + totalOperatingCosts = '', //上一年度的总经营不含税成本合计 + noTaxMaterialCosts = '' // 上一年度总物料不含税成本合计 } = salesEstimateDetailVo || {}; - // 计算不含税总经营成本 - const noAllTaxOperatingCosts = ( - parseFloat(noTaxLaborCosts) + - parseFloat(noTaxBusinessCosts) + - parseFloat(noTaxManagesCosts) + - parseFloat(noTaxPromotionalCosts) - ).toFixed(2) || ''; - // 计算含税总经营成本,假设增值税率为 13% + // 计算上一年度含税总经营成本,假设增值税率为 13% const allTaxOperatingCosts = ( - parseFloat(noAllTaxOperatingCosts) * 1.13 + parseFloat(totalOperatingCosts) * 1.13 ).toFixed(2) || ''; - //该料号的不含税经营成本 + + //上一年度总物料含税成本合计 + const allTaxMaterialCosts = ( + parseFloat(noTaxMaterialCosts) * 1.13 + ).toFixed(2) || ''; + + + //该料号的不含税经营成本 (RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 const noTaxOperatingCosts = ( - (noTaxPurchaseRmb/noTaxMaterialCosts) * noAllTaxOperatingCosts + (noTaxPurchaseRmb/noTaxMaterialCosts) * totalOperatingCosts ).toFixed(2) || ''; - // 该料号的含税经营成本 + + + // 该料号的含税经营成本 (RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 const taxOperatingCosts = ( - (taxPurchaseRmb/noTaxMaterialCosts) * allTaxOperatingCosts + (taxPurchaseRmb/allTaxMaterialCosts) * allTaxOperatingCosts ).toFixed(2) || ''; + + // 根据 `parentRow.profitRate` 设置利润率 let profitRateKey = 'aprofitRate'; switch (parentRow.profitRate) { @@ -572,10 +548,7 @@ noTaxDevelopCosts, noTaxShippingCosts, noTaxServiceCosts, - noTaxLaborCosts, - noTaxPromotionalCosts, - noTaxBusinessCosts, - noTaxManagesCosts, + totalOperatingCosts, noTaxMaterialCosts, noTaxOperatingCosts, taxOperatingCosts, @@ -590,10 +563,7 @@ noTaxDevelopCosts: '', noTaxShippingCosts: '', noTaxServiceCosts: '', - noTaxLaborCosts: '', - noTaxPromotionalCosts: '', - noTaxBusinessCosts: '', - noTaxManagesCosts: '', + totalOperatingCosts: '', noTaxMaterialCosts: '', noTaxOperatingCosts: '', taxOperatingCosts: '', @@ -616,24 +586,12 @@ formHtml += ''; formHtml += ''; formHtml += ''; - formHtml += '

总经营成本

'; - formHtml += '
'; - formHtml += ''; - formHtml += ''; - formHtml += '
'; + formHtml += '

上一年度总经营成本

'; formHtml += '
'; - formHtml += ''; - formHtml += ''; + formHtml += ''; + formHtml += ''; formHtml += '
'; - formHtml += '
'; - formHtml += ''; - formHtml += ''; - formHtml += '
'; - formHtml += '
'; - formHtml += ''; - formHtml += ''; - formHtml += '
'; - formHtml += '

总物料成本

'; + formHtml += '

上一年度总物料成本

'; formHtml += '
'; formHtml += ''; formHtml += ''; @@ -669,17 +627,8 @@ // 根据 input 的 id 或 name 进行相应的计算 switch (inputId) { - case 'noTaxLaborCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxLaborCosts'); - break; - case 'noTaxPromotionalCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxPromotionalCosts'); - break; - case 'noTaxBusinessCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxBusinessCosts'); - break; - case 'noTaxManagesCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxManagesCosts'); + case 'totalOperatingCosts' + index: + calculateOperatingCosts(inputValue, 'totalOperatingCosts'); break; case 'noTaxMaterialCosts' + index: updateMaterialCosts(inputValue); @@ -692,41 +641,47 @@ }); function calculateOperatingCosts(value, costType) { - var noAllTaxOperatingCosts = 0; + // var totalOperatingCosts = 0; var allNoTaxPurchaseRmb = 0; var allTaxPurchaseRmb = 0; - // 获取所有相关的不含税成本 - ['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) { - var currentCost = parseFloat($form.find('#' + cost + index).val()); - noAllTaxOperatingCosts += currentCost; - }); + // // 获取所有相关的不含税成本 + // ['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) { + // var currentCost = parseFloat($form.find('#' + cost + index).val()); + // noAllTaxOperatingCosts += currentCost; + // }); - // 更新不含税总经营成本 - $form.find('#noAllTaxOperatingCosts' + index).val(noAllTaxOperatingCosts.toFixed(2)); + // 更新上一年度不含税总经营成本 + var totalOperatingCosts = parseFloat($form.find('#totalOperatingCosts' + index).val()); - // 计算含税总经营成本 - var allTaxOperatingCosts = noAllTaxOperatingCosts * 1.13; + // 计算上一年度含税总经营成本 + var allTaxOperatingCosts = totalOperatingCosts * 1.13; $form.find('#allTaxOperatingCosts' + index).val(allTaxOperatingCosts.toFixed(2)); // 遍历数据集计算不含税采购成本和含税采购成本 data.forEach(function(item) { item.rows.forEach(function(row) { - var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; - var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; + // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + + var noTaxPurchaseRmb = row.noTaxPurchaseRmb; + var taxPurchaseRmb = row.taxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb; }); }); - // 该料号的不含税经营成本 - var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val()); - var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * noAllTaxOperatingCosts; + + var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val());//不含税总物料成本 + var allTaxMaterialCosts = noTaxMaterialCosts * 1.13;//含税总物料成本 + + // 该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 + var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * totalOperatingCosts; $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); - // 该料号的含税经营成本 - var taxOperatingCosts = (allTaxPurchaseRmb / noTaxMaterialCosts) * allTaxOperatingCosts; + // 该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 + var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts; $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); } @@ -739,22 +694,44 @@ // 遍历数据集计算不含税采购成本和含税采购成本 data.forEach(function(item) { item.rows.forEach(function(row) { - var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; - var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; + // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + + var noTaxPurchaseRmb = row.noTaxPurchaseRmb; + var taxPurchaseRmb = row.taxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb; }); }); - // 更新不含税经营成本 - var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val()); - var noTaxOperatingCosts = (noTaxPurchaseRmb / value) * noAllTaxOperatingCosts; + // // 更新不含税经营成本 + // var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val()); + // var noTaxOperatingCosts = (noTaxPurchaseRmb / value) * noAllTaxOperatingCosts; + // $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); + // + // // 更新含税经营成本 + // var taxOperatingCosts = (taxPurchaseRmb / value) * noAllTaxOperatingCosts; + // $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); + + // 更新上一年度不含税总经营成本 + var totalOperatingCosts = parseFloat($form.find('#totalOperatingCosts' + index).val()); + + // 计算上一年度含税总经营成本 + var allTaxOperatingCosts = totalOperatingCosts * 1.13; + $form.find('#allTaxOperatingCosts' + index).val(allTaxOperatingCosts.toFixed(2)); + + // 该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 + var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val()); + var allTaxMaterialCosts = noTaxMaterialCosts * 1.13; + var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * totalOperatingCosts; $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); - // 更新含税经营成本 - var taxOperatingCosts = (taxPurchaseRmb / value) * noAllTaxOperatingCosts; + // 该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 + var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts; $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); + + } } }); diff --git a/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAddDetail.html b/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAddDetail.html index a9dc3d0c..087c8032 100644 --- a/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAddDetail.html +++ b/ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAddDetail.html @@ -354,33 +354,33 @@ // 从 `salesEstimateDetailVo` 中获取其他成本信息 const { - noTaxLaborCosts = '', - noTaxPromotionalCosts = '', - noTaxBusinessCosts = '', - noTaxManagesCosts = '', - noTaxMaterialCosts = '' + totalOperatingCosts = '', //上一年度的总经营不含税成本合计 + noTaxMaterialCosts = '' // 上一年度总物料不含税成本合计 } = salesEstimateDetailVo || {}; - // 计算不含税总经营成本 - const noAllTaxOperatingCosts = ( - parseFloat(noTaxLaborCosts) + - parseFloat(noTaxBusinessCosts) + - parseFloat(noTaxManagesCosts) + - parseFloat(noTaxPromotionalCosts) + // 计算上一年度含税总经营成本,假设增值税率为 13% + const allTaxOperatingCosts = ( + parseFloat(totalOperatingCosts) * 1.13 ).toFixed(2) || ''; - // 计算含税总经营成本,假设增值税率为 13% - const allTaxOperatingCosts = ( - parseFloat(noAllTaxOperatingCosts) * 1.13 + //上一年度总物料含税成本合计 + const allTaxMaterialCosts = ( + parseFloat(noTaxMaterialCosts) * 1.13 ).toFixed(2) || ''; - //该料号的不含税经营成本 + + + //该料号的不含税经营成本 (RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 const noTaxOperatingCosts = ( - (noTaxPurchaseRmb/noTaxMaterialCosts) * noAllTaxOperatingCosts + (noTaxPurchaseRmb/noTaxMaterialCosts) * totalOperatingCosts ).toFixed(2) || ''; - // 该料号的含税经营成本 + + + // 该料号的含税经营成本 (RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 const taxOperatingCosts = ( - (taxPurchaseRmb/noTaxMaterialCosts) * allTaxOperatingCosts + (taxPurchaseRmb/allTaxMaterialCosts) * allTaxOperatingCosts ).toFixed(2) || ''; + + // 根据 `parentRow.profitRate` 设置利润率 let profitRateKey = 'aprofitRate'; switch (parentRow.profitRate) { @@ -409,10 +409,7 @@ noTaxDevelopCosts, noTaxShippingCosts, noTaxServiceCosts, - noTaxLaborCosts, - noTaxPromotionalCosts, - noTaxBusinessCosts, - noTaxManagesCosts, + totalOperatingCosts, noTaxMaterialCosts, noTaxOperatingCosts, taxOperatingCosts, @@ -427,10 +424,7 @@ noTaxDevelopCosts: '', noTaxShippingCosts: '', noTaxServiceCosts: '', - noTaxLaborCosts: '', - noTaxPromotionalCosts: '', - noTaxBusinessCosts: '', - noTaxManagesCosts: '', + totalOperatingCosts: '', noTaxMaterialCosts: '', noTaxOperatingCosts: '', taxOperatingCosts: '', @@ -453,24 +447,12 @@ formHtml += ''; formHtml += ''; formHtml += '
'; - formHtml += '

总经营成本

'; + formHtml += '

上一年度总经营成本

'; formHtml += '
'; - formHtml += ''; - formHtml += ''; + formHtml += ''; + formHtml += ''; formHtml += '
'; - formHtml += '
'; - formHtml += ''; - formHtml += ''; - formHtml += '
'; - formHtml += '
'; - formHtml += ''; - formHtml += ''; - formHtml += '
'; - formHtml += '
'; - formHtml += ''; - formHtml += ''; - formHtml += '
'; - formHtml += '

总物料成本

'; + formHtml += '

上一年度总物料成本

'; formHtml += '
'; formHtml += ''; formHtml += ''; @@ -506,17 +488,8 @@ // 根据 input 的 id 或 name 进行相应的计算 switch (inputId) { - case 'noTaxLaborCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxLaborCosts'); - break; - case 'noTaxPromotionalCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxPromotionalCosts'); - break; - case 'noTaxBusinessCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxBusinessCosts'); - break; - case 'noTaxManagesCosts' + index: - calculateOperatingCosts(inputValue, 'noTaxManagesCosts'); + case 'totalOperatingCosts' + index: + calculateOperatingCosts(inputValue, 'totalOperatingCosts'); break; case 'noTaxMaterialCosts' + index: updateMaterialCosts(inputValue); @@ -529,41 +502,47 @@ }); function calculateOperatingCosts(value, costType) { - var noAllTaxOperatingCosts = 0; + // var totalOperatingCosts = 0; var allNoTaxPurchaseRmb = 0; var allTaxPurchaseRmb = 0; - // 获取所有相关的不含税成本 - ['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) { - var currentCost = parseFloat($form.find('#' + cost + index).val()); - noAllTaxOperatingCosts += currentCost; - }); + // // 获取所有相关的不含税成本 + // ['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) { + // var currentCost = parseFloat($form.find('#' + cost + index).val()); + // noAllTaxOperatingCosts += currentCost; + // }); - // 更新不含税总经营成本 - $form.find('#noAllTaxOperatingCosts' + index).val(noAllTaxOperatingCosts.toFixed(2)); + // 更新上一年度不含税总经营成本 + var totalOperatingCosts = parseFloat($form.find('#totalOperatingCosts' + index).val()); - // 计算含税总经营成本 - var allTaxOperatingCosts = noAllTaxOperatingCosts * 1.13; + // 计算上一年度含税总经营成本 + var allTaxOperatingCosts = totalOperatingCosts * 1.13; $form.find('#allTaxOperatingCosts' + index).val(allTaxOperatingCosts.toFixed(2)); // 遍历数据集计算不含税采购成本和含税采购成本 data.forEach(function(item) { item.rows.forEach(function(row) { - var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; - var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; + // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + + var noTaxPurchaseRmb = row.noTaxPurchaseRmb; + var taxPurchaseRmb = row.taxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb; }); }); - // 该料号的不含税经营成本 - var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val()); - var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * noAllTaxOperatingCosts; + + var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val());//不含税总物料成本 + var allTaxMaterialCosts = noTaxMaterialCosts * 1.13;//含税总物料成本 + + // 该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 + var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * totalOperatingCosts; $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); - // 该料号的含税经营成本 - var taxOperatingCosts = (allTaxPurchaseRmb / noTaxMaterialCosts) * allTaxOperatingCosts; + // 该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 + var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts; $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); } @@ -576,23 +555,46 @@ // 遍历数据集计算不含税采购成本和含税采购成本 data.forEach(function(item) { item.rows.forEach(function(row) { - var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; - var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; + // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; + + var noTaxPurchaseRmb = row.noTaxPurchaseRmb; + var taxPurchaseRmb = row.taxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb; }); }); - // 更新不含税经营成本 - var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val()); - var noTaxOperatingCosts = (noTaxPurchaseRmb / value) * noAllTaxOperatingCosts; + // // 更新不含税经营成本 + // var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val()); + // var noTaxOperatingCosts = (noTaxPurchaseRmb / value) * noAllTaxOperatingCosts; + // $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); + // + // // 更新含税经营成本 + // var taxOperatingCosts = (taxPurchaseRmb / value) * noAllTaxOperatingCosts; + // $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); + + // 更新上一年度不含税总经营成本 + var totalOperatingCosts = parseFloat($form.find('#totalOperatingCosts' + index).val()); + + // 计算上一年度含税总经营成本 + var allTaxOperatingCosts = totalOperatingCosts * 1.13; + $form.find('#allTaxOperatingCosts' + index).val(allTaxOperatingCosts.toFixed(2)); + + // 该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计 + var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val()); + var allTaxMaterialCosts = noTaxMaterialCosts * 1.13; + var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * totalOperatingCosts; $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); - // 更新含税经营成本 - var taxOperatingCosts = (taxPurchaseRmb / value) * noAllTaxOperatingCosts; + // 该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计 + var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts; $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); + + } + } }); diff --git a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html index 0e49617a..2216202b 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html @@ -111,11 +111,11 @@ 添加 - 导出销售订单列表 - - - 导出销售订单模板 + 导出 + + + 出货 diff --git a/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html b/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html index 6e6bf075..5c25a2fc 100644 --- a/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html +++ b/ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html @@ -524,7 +524,7 @@ const row = selectedRows[0]; // 使用 $.modal.confirm 显示确认对话框 - $.modal.confirm("确定导出这条数据的出货单吗?", function() { + $.modal.confirm("确定导出这条数据的出货发票1吗?", function() { // 如果用户点击确定,继续导出 var outOrderCode = row.outOrderCode; window.location.href = prefix + "/exportShippingInvoiceOne/" + outOrderCode; @@ -546,7 +546,7 @@ const row = selectedRows[0]; // 使用 $.modal.confirm 显示确认对话框 - $.modal.confirm("确定导出这条数据的出货单吗?", function() { + $.modal.confirm("确定导出这条数据的出货发票吗?", function() { // 如果用户点击确定,继续导出 var outOrderCode = row.outOrderCode; window.location.href = prefix + "/exportShippingInvoiceTwo/" + outOrderCode;