Browse Source

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
dev
王晓迪 3 months ago
parent
commit
5d6ae929b2
  1. 13
      ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimateDetail.java
  2. 13
      ruoyi-admin/src/main/java/com/ruoyi/sales/domain/VO/SalesEstimateDetailMaterialVo.java
  3. 5
      ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateDetailMaterialServiceImpl.java
  4. 138
      ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesEstimateServiceImpl.java
  5. 70
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java
  6. 23
      ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java
  7. 7
      ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java
  8. 6
      ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java
  9. 10
      ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingPackingDto.java
  10. 5
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java
  11. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java
  12. 427
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java
  13. 116
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java
  14. 358
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java
  15. 26
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamage.java
  16. 14
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamageChild.java
  17. 38
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryReportDamageServiceImpl.java
  18. 25
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java
  19. 54
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
  20. 8
      ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml
  21. 8
      ruoyi-admin/src/main/resources/mapper/system/SysMakeOrderMapper.xml
  22. 132
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml
  23. 18
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml
  24. BIN
      ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx
  25. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx
  26. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货单2.xlsx
  27. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx
  28. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx
  29. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货箱单1.xlsx
  30. BIN
      ruoyi-admin/src/main/resources/static/attachments/销售出货箱单2.xlsx
  31. 201
      ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAdd.html
  32. 156
      ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAddDetail.html
  33. 8
      ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html
  34. 4
      ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html

13
ruoyi-admin/src/main/java/com/ruoyi/sales/domain/SalesEstimateDetail.java

@ -135,6 +135,11 @@ public class SalesEstimateDetail extends BaseEntity
/** 含税经营成本(RMB) */ /** 含税经营成本(RMB) */
private BigDecimal taxOperatingCosts; private BigDecimal taxOperatingCosts;
/** 上一年度不含税总经营成本(RMB) */
private BigDecimal totalOperatingCosts;
/** 销售估价详情物料子表集合 */ /** 销售估价详情物料子表集合 */
private List<SalesEstimateDetailMaterial> salesEstimateDetailMaterialList; private List<SalesEstimateDetailMaterial> salesEstimateDetailMaterialList;
@ -427,6 +432,13 @@ public class SalesEstimateDetail extends BaseEntity
return taxOperatingCosts; return taxOperatingCosts;
} }
public BigDecimal getTotalOperatingCosts() {
return totalOperatingCosts;
}
public void setTotalOperatingCosts(BigDecimal totalOperatingCosts) {
this.totalOperatingCosts = totalOperatingCosts;
}
public List<SalesEstimateDetailMaterial> getSalesEstimateDetailMaterialList() { public List<SalesEstimateDetailMaterial> getSalesEstimateDetailMaterialList() {
return salesEstimateDetailMaterialList; return salesEstimateDetailMaterialList;
@ -471,6 +483,7 @@ public class SalesEstimateDetail extends BaseEntity
.append("noTaxMaterialCosts", getNoTaxMaterialCosts()) .append("noTaxMaterialCosts", getNoTaxMaterialCosts())
.append("noTaxOperatingCosts", getNoTaxOperatingCosts()) .append("noTaxOperatingCosts", getNoTaxOperatingCosts())
.append("taxOperatingCosts", getTaxOperatingCosts()) .append("taxOperatingCosts", getTaxOperatingCosts())
.append("totalOperatingCosts", getTotalOperatingCosts())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())

13
ruoyi-admin/src/main/java/com/ruoyi/sales/domain/VO/SalesEstimateDetailMaterialVo.java

@ -17,17 +17,8 @@ public class SalesEstimateDetailMaterialVo extends SalesEstimateDetailMaterial {
/** 不含税开发成本(RMB) */ /** 不含税开发成本(RMB) */
private BigDecimal noTaxDevelopCosts; private BigDecimal noTaxDevelopCosts;
/** 不含税人工成本(RMB) */ /** 上一年度不含税总经营成本(RMB) */
private BigDecimal noTaxLaborCosts; private BigDecimal totalOperatingCosts;
/** 不含税推广成本(RMB) */
private BigDecimal noTaxPromotionalCosts;
/** 不含税业务成本(RMB) */
private BigDecimal noTaxBusinessCosts;
/** 不含税管理成本(RMB) */
private BigDecimal noTaxManagesCosts;
/** 不含税总物料成本(RMB) */ /** 不含税总物料成本(RMB) */
private BigDecimal noTaxMaterialCosts; private BigDecimal noTaxMaterialCosts;

5
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) { private void setCosts(SalesEstimateDetailMaterialVo vo, SalesEstimateDetail salesEstimateDetail) {
vo.setNoTaxMaterialCosts(salesEstimateDetail.getNoTaxMaterialCosts()); vo.setNoTaxMaterialCosts(salesEstimateDetail.getNoTaxMaterialCosts());
vo.setNoTaxBusinessCosts(salesEstimateDetail.getNoTaxBusinessCosts());
vo.setNoTaxDevelopCosts(salesEstimateDetail.getNoTaxDevelopCosts()); vo.setNoTaxDevelopCosts(salesEstimateDetail.getNoTaxDevelopCosts());
vo.setNoTaxLaborCosts(salesEstimateDetail.getNoTaxLaborCosts());
vo.setNoTaxManagesCosts(salesEstimateDetail.getNoTaxManagesCosts());
vo.setNoTaxOperatingCosts(salesEstimateDetail.getNoTaxOperatingCosts()); vo.setNoTaxOperatingCosts(salesEstimateDetail.getNoTaxOperatingCosts());
vo.setTaxOperatingCosts(salesEstimateDetail.getTaxOperatingCosts()); vo.setTaxOperatingCosts(salesEstimateDetail.getTaxOperatingCosts());
vo.setNoTaxPromotionalCosts(salesEstimateDetail.getNoTaxPromotionalCosts());
vo.setNoTaxServiceCosts(salesEstimateDetail.getNoTaxServiceCosts()); vo.setNoTaxServiceCosts(salesEstimateDetail.getNoTaxServiceCosts());
vo.setNoTaxShippingCosts(salesEstimateDetail.getNoTaxShippingCosts()); vo.setNoTaxShippingCosts(salesEstimateDetail.getNoTaxShippingCosts());
vo.setProfitRate(salesEstimateDetail.getProfitRate()); vo.setProfitRate(salesEstimateDetail.getProfitRate());
vo.setTotalOperatingCosts(salesEstimateDetail.getTotalOperatingCosts());
} }

138
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.setEProfitRate(salesEstimateTemplate.geteProfitRate());
salesEstimateDetailVo.setFProfitRate(salesEstimateTemplate.getfProfitRate()); salesEstimateDetailVo.setFProfitRate(salesEstimateTemplate.getfProfitRate());
salesEstimateDetailVo.setNoTaxLaborCosts(salesEstimateTemplate.getNoTaxLaborCosts());
salesEstimateDetailVo.setNoTaxBusinessCosts(salesEstimateTemplate.getNoTaxBusinessCosts()); salesEstimateDetailVo.setTotalOperatingCosts(salesEstimateTemplate.getTotalOperatingCosts());
salesEstimateDetailVo.setNoTaxManagesCosts(salesEstimateTemplate.getNoTaxManagesCosts());
salesEstimateDetailVo.setNoTaxPromotionalCosts(salesEstimateTemplate.getNoTaxPromotionalCosts());
salesEstimateDetailVo.setNoTaxMaterialCosts(salesEstimateTemplate.getNoTaxMaterialCosts()); salesEstimateDetailVo.setNoTaxMaterialCosts(salesEstimateTemplate.getNoTaxMaterialCosts());
return salesEstimateDetailVo; return salesEstimateDetailVo;
} }
@ -302,28 +300,48 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
/* 下面的计算规则 /* 下面的计算规则
1不含税总经营成本=不含税人工成本+不含税推广成本+不含税业务成本+不含税管理成本 1不含税料号估价成本=该料号的BOM物料不含税总采购成本+不含税运输成本+不含税服务成本+不含税开发成本+(该料号的BOM物料不含税总采购成本/不含税总物料成本)*上一年度的总经营不含税成本合计
2含税总经营成本=不含税总经营成本*(1+0.13)
3不含税经营成本(RMB)=(该料号的BOM物料总不含税采购成本/总不含税物料成本)*总不含税经营成本 1.1该料号的BOM物料不含税总采购成本=手填的bom物料的总的不含税采购单价的合计
4含税经营成本(RMB)=(该料号的BOM物料总含税采购成本/总含税物料成本)*总含税经营成本
5不含税料号估价成本:该料号的BOM物料总不含税采购成本+不含税总经营成本+(该料号的BOM物料总不含税采购成本/总不含税物料成本)*总不含税经营成本 2含税料号估价成本=该料号的BOM物料含税总采购成本+含税运输成本+含税服务成本+含税开发成本+(该料号的BOM物料含税总采购成本/含税总物料成本)*上一年度的总经营含税成本合计
新版不含税料号估价成本:该料号的BOM物料总不含税采购成本+不含税运输成本+不含税服务成本+不含税开发成本+(该料号的BOM物料总不含税采购成本/总物料不含税成本)*总经营不含税成
2.1该料号的BOM物料含税总采购成本=手填的bom物料的总的含税采购单价的合计
3不含税运输成本手填业务填写
含税运输成本=1+0.13*不含税运输成本
4不含税服务成本手填业务填写
含税服务成本=1+0.13*不含税服务成本
5不含税开发成本手填工程填写
含税开发成本=1+0.13*不含税开发成本
6.1该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计
6.1.1上一年度的总经营不含税成本合计手填总经理填
6.1.2上一年度总物料不含税成本合计手填总经理填
6含税料号估价成本:该料号的BOM物料总含税采购成本+含税总经营成本+(该料号的BOM物料总含税采购成本/总含税物料成本)*总含税经营成本 7.1该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
新版含税料号估价成本:该料号的BOM物料总含税采购成本+含税运输成本+含税服务成本+含税开发成本+(该料号的BOM物料总含税采购成本/总物料含税成本)*总经营含税成本
7.1.1上一年度的总经营含税成本合计1+0.13*上一年度的总经营不含税成本合计
7.1.2上一年度总物料含税成本合计1+0.13*上一年度总物料不含税成本合计
7不含税单价(RMB):该料号不含税估价成本/(1-利润率) 8被估价物料的不含税单价RMB=被估价物料的不含税总成本/1-利润率
8含税单价(RMB)=该料号含税估价成本/(1-利润率)
9不含税总价(RMB)=不含税单价(RMB)*数量 9被估价物料的含税单价(RMB)=被估价物料的含税总成本/1-利润率
10含税总价(RMB)=含税单价(RMB)*数量
11不含税单价(美元)=不税单价(RMB)/美元汇率 10不含税总价(RMB)=被估价物料的不含税单价(RMB)*数量
11含税总价(RMB)=被估价物料的含税单价(RMB)*数量
12不含税单价(美元)=被估价物料的不含税单价(RMB)/美元汇率
注:换算后保留小数点后两位超过后的四舍五入 注:换算后保留小数点后两位超过后的四舍五入
12含税单价(美元)=不含税单价(美元)
13不含税总价(美元)=不含税单价(美元)*数量 13含税单价(美元)=不含税单价(美元)
14含税总价(美元)=含税单价(美元)*数量
15总含税物料成本 = 总不含税物料成本*(1+0.13) 14不含税总价(美元)=不含税单价(美元)*数量
15含税总价(美元)=含税单价(美元)*数量
* */ * */
@ -362,25 +380,32 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
List<SalesEstimateDetail> salesEstimateDetailList = salesEstimate.getSalesEstimateDetailList(); // 获取销售估价详情列表 List<SalesEstimateDetail> salesEstimateDetailList = salesEstimate.getSalesEstimateDetailList(); // 获取销售估价详情列表
for (SalesEstimateDetail salesEstimateDetail : salesEstimateDetailList) { // 遍历销售估价详情列表 for (SalesEstimateDetail salesEstimateDetail : salesEstimateDetailList) { // 遍历销售估价详情列表
BigDecimal noTaxLaborCosts = salesEstimateDetail.getNoTaxLaborCosts(); // 获取不含税的人工成本 // BigDecimal noTaxLaborCosts = salesEstimateDetail.getNoTaxLaborCosts(); // 获取不含税的人工成本
BigDecimal noTaxPromotionalCosts = salesEstimateDetail.getNoTaxPromotionalCosts(); // 获取不含税的推广成本 // BigDecimal noTaxPromotionalCosts = salesEstimateDetail.getNoTaxPromotionalCosts(); // 获取不含税的推广成本
BigDecimal noTaxBusinessCosts = salesEstimateDetail.getNoTaxBusinessCosts(); // 获取不含税的业务成本 // BigDecimal noTaxBusinessCosts = salesEstimateDetail.getNoTaxBusinessCosts(); // 获取不含税的业务成本
BigDecimal noTaxManagesCosts = salesEstimateDetail.getNoTaxManagesCosts(); // 获取不含税的管理成本 // BigDecimal noTaxManagesCosts = salesEstimateDetail.getNoTaxManagesCosts(); // 获取不含税的管理成本
BigDecimal noTaxMaterialCosts = salesEstimateDetail.getNoTaxMaterialCosts(); // 获取不含税的物料成本
BigDecimal totalOperatingCosts = salesEstimateDetail.getTotalOperatingCosts(); //上一年度不含税总经营成本
BigDecimal noTaxMaterialCosts = salesEstimateDetail.getNoTaxMaterialCosts(); // 获取上一年度不含税的总物料成本
BigDecimal noTaxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts(); //不含税运输成本 BigDecimal noTaxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts(); //不含税运输成本
BigDecimal noTaxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts(); //不含税服务成本 BigDecimal noTaxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts(); //不含税服务成本
BigDecimal noTaxDevelopmentCosts = salesEstimateDetail.getNoTaxDevelopCosts();//不含税开发成本 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)); // 获取利润率并转换为小数形式 BigDecimal profitRate = salesEstimateDetail.getProfitRate().divide(BigDecimal.valueOf(100)); // 获取利润率并转换为小数形式
Long materialNum = salesEstimateDetail.getMaterialNum(); // 获取物料数量 Long materialNum = salesEstimateDetail.getMaterialNum(); // 获取物料数量
// 计算不含税总经营成本 // // 计算不含税总经营成本
BigDecimal noAllTaxOperatingCosts = calculateNoTaxOperatingCosts( // BigDecimal noAllTaxOperatingCosts = calculateNoTaxOperatingCosts(
noTaxLaborCosts, noTaxPromotionalCosts, noTaxBusinessCosts, noTaxManagesCosts); // noTaxLaborCosts, noTaxPromotionalCosts, noTaxBusinessCosts, noTaxManagesCosts);
// 计算含税总经营成本 // 计算上一年度含税总经营成本
BigDecimal allTaxOperatingCosts = calculateTaxOperatingCosts(noAllTaxOperatingCosts); BigDecimal allTaxOperatingCosts = calculateTaxOperatingCosts(totalOperatingCosts);
// 计算总含税物料成本 // 计算总含税物料成本
BigDecimal taxMaterialCosts = calculateTaxMaterialCosts(noTaxMaterialCosts); BigDecimal taxMaterialCosts = calculateTaxMaterialCosts(noTaxMaterialCosts);
@ -391,18 +416,18 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
// 计算物料总含税采购成本 // 计算物料总含税采购成本
BigDecimal totalTaxPurchaseRmb = calculateTotalTaxPurchaseRmb(estimateDetailMaterialList); BigDecimal totalTaxPurchaseRmb = calculateTotalTaxPurchaseRmb(estimateDetailMaterialList);
// 计算不含税经营成本(RMB),并保留两位小数 // 计算该料号的不含税经营成本(RMB),并保留两位小数
BigDecimal noTaxOperatingCost = calculateNoTaxOperatingCost(totalNoTaxPurchaseRmb, noTaxMaterialCosts, noAllTaxOperatingCosts) BigDecimal noTaxOperatingCost = calculateNoTaxOperatingCost(totalNoTaxPurchaseRmb, noTaxMaterialCosts, totalOperatingCosts)
.setScale(2, RoundingMode.HALF_UP); .setScale(2, RoundingMode.HALF_UP);
// 计算含税经营成本(RMB),并保留两位小数 // 计算该料号含税经营成本(RMB),并保留两位小数
BigDecimal taxOperatingCost = calculateTaxOperatingCost(totalTaxPurchaseRmb, taxMaterialCosts, allTaxOperatingCosts) BigDecimal taxOperatingCost = calculateTaxOperatingCost(totalTaxPurchaseRmb, taxMaterialCosts, allTaxOperatingCosts)
.setScale(2, RoundingMode.HALF_UP); .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); .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); .setScale(2, RoundingMode.HALF_UP);
// 计算不含税单价(RMB),并保留两位小数 // 计算不含税单价(RMB),并保留两位小数
@ -436,8 +461,11 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
noTaxDollarMain = noTaxDollarMain.add(noTaxUnitPriceDollar); noTaxDollarMain = noTaxDollarMain.add(noTaxUnitPriceDollar);
// 计算含税单价(美元),并保留两位小数 // 计算含税单价(美元),并保留两位小数
BigDecimal taxUnitPriceDollar = calculateTaxUnitPriceDollar(taxUnitPriceRmb, usdRate) // BigDecimal taxUnitPriceDollar = calculateTaxUnitPriceDollar(taxUnitPriceRmb, usdRate)
.setScale(2, RoundingMode.HALF_UP); // .setScale(2, RoundingMode.HALF_UP);
BigDecimal taxUnitPriceDollar = noTaxUnitPriceDollar;
// 计算主表的含税单价美元 // 计算主表的含税单价美元
taxDollarMain = taxDollarMain.add(taxUnitPriceDollar); taxDollarMain = taxDollarMain.add(taxUnitPriceDollar);
@ -501,8 +529,8 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
BigDecimal totalNoTaxPurchaseRmb = BigDecimal.ZERO; BigDecimal totalNoTaxPurchaseRmb = BigDecimal.ZERO;
for (SalesEstimateDetailMaterial detailMaterial : estimateDetailMaterialList) { for (SalesEstimateDetailMaterial detailMaterial : estimateDetailMaterialList) {
BigDecimal noTaxPurchaseRmb = detailMaterial.getNoTaxPurchaseRmb(); // 获取不含税采购单价 BigDecimal noTaxPurchaseRmb = detailMaterial.getNoTaxPurchaseRmb(); // 获取不含税采购单价
Long useNum = detailMaterial.getUseNum(); // 获取用量 //Long useNum = detailMaterial.getUseNum(); // 获取用量
totalNoTaxPurchaseRmb = totalNoTaxPurchaseRmb.add(noTaxPurchaseRmb.multiply(new BigDecimal(useNum))); // 计算总不含税采购成本 totalNoTaxPurchaseRmb = totalNoTaxPurchaseRmb.add(noTaxPurchaseRmb); // 计算总不含税采购成本
} }
return totalNoTaxPurchaseRmb; return totalNoTaxPurchaseRmb;
} }
@ -512,16 +540,16 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
BigDecimal totalTaxPurchaseRmb = BigDecimal.ZERO; BigDecimal totalTaxPurchaseRmb = BigDecimal.ZERO;
for (SalesEstimateDetailMaterial detailMaterial : estimateDetailMaterialList) { for (SalesEstimateDetailMaterial detailMaterial : estimateDetailMaterialList) {
BigDecimal taxPurchaseRmb = detailMaterial.getTaxPurchaseRmb(); // 获取含税采购单价 BigDecimal taxPurchaseRmb = detailMaterial.getTaxPurchaseRmb(); // 获取含税采购单价
Long useNum = detailMaterial.getUseNum(); // 获取用量 // Long useNum = detailMaterial.getUseNum(); // 获取用量
totalTaxPurchaseRmb = totalTaxPurchaseRmb.add(taxPurchaseRmb.multiply(new BigDecimal(useNum))); // 计算总含税采购成本 totalTaxPurchaseRmb = totalTaxPurchaseRmb.add(taxPurchaseRmb); // 计算总含税采购成本
} }
return totalTaxPurchaseRmb; return totalTaxPurchaseRmb;
} }
// 计算不含税经营成本(RMB) // 计算该料号的不含税经营成本(RMB)
private BigDecimal calculateNoTaxOperatingCost(BigDecimal totalNoTaxPurchaseRmb, BigDecimal noTaxMaterialCosts, BigDecimal noAllTaxOperatingCosts) { private BigDecimal calculateNoTaxOperatingCost(BigDecimal totalNoTaxPurchaseRmb, BigDecimal noTaxMaterialCosts, BigDecimal totalOperatingCosts) {
return totalNoTaxPurchaseRmb.divide(noTaxMaterialCosts, 2, RoundingMode.HALF_UP) return totalNoTaxPurchaseRmb.divide(noTaxMaterialCosts, 2, RoundingMode.HALF_UP)
.multiply(noAllTaxOperatingCosts); .multiply(totalOperatingCosts);
} }
// 计算含税经营成本(RMB) // 计算含税经营成本(RMB)
@ -533,23 +561,21 @@ public class SalesEstimateServiceImpl implements ISalesEstimateService
// 计算不含税料号估价成本 BigDecimal noTaxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts(); //不含税运输成本 // 计算不含税料号估价成本 BigDecimal noTaxShippingCosts = salesEstimateDetail.getNoTaxShippingCosts(); //不含税运输成本
// BigDecimal noTaxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts(); //不含税服务成本 // BigDecimal noTaxServiceCosts = salesEstimateDetail.getNoTaxServiceCosts(); //不含税服务成本
// BigDecimal noTaxDevelopmentCosts = salesEstimateDetail.getNoTaxDevelopCosts();//不含税开发成本 // 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 return totalNoTaxPurchaseRmb
.add(noTaxShippingCosts) .add(noTaxShippingCosts)
.add(noTaxServiceCosts) .add(noTaxServiceCosts)
.add(noTaxDevelopmentCosts) .add(noTaxDevelopmentCosts)
.add(totalNoTaxPurchaseRmb.divide(noTaxMaterialCosts, 2, RoundingMode.HALF_UP) .add(noTaxOperatingCost);
.multiply(noAllTaxOperatingCosts));
} }
// 计算含税料号估价成本 // 计算含税料号估价成本
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 return totalTaxPurchaseRmb
.add(noTaxShippingCosts) .add(taxShippingCosts)
.add(noTaxServiceCosts) .add(taxServiceCosts)
.add(noTaxDevelopmentCosts) .add(taxDevelopmentCosts)
.add(totalTaxPurchaseRmb.divide(taxMaterialCosts, 2, RoundingMode.HALF_UP) .add(allTaxOperatingCosts);
.multiply(allTaxOperatingCosts));
} }
// 计算不含税单价(RMB) // 计算不含税单价(RMB)

70
ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysMakeorderBom.java

@ -94,24 +94,24 @@ public class SysMakeorderBom extends BaseEntity
private Long sortNo; 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 Date deliveryTime;
private int finishNum; private Integer finishNum;
// 已完成数 // 已完成数
public void setId(Long id) public void setId(Long id)
@ -285,67 +285,69 @@ public class SysMakeorderBom extends BaseEntity
this.warehouseDept = warehouseDept; 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; return processNum;
} }
public void setProcessNum(int processNum) { public void setProcessNum(Integer processNum) {
this.processNum = processNum; this.processNum = processNum;
} }
public int getHasOutNum() { public Integer getHasOutNum() {
return hasOutNum; return hasOutNum;
} }
public void setHasOutNum(int hasOutNum) { public void setHasOutNum(Integer hasOutNum) {
this.hasOutNum = hasOutNum; this.hasOutNum = hasOutNum;
} }
public BigDecimal getStorageNum() { public Integer getStorageNum() {
return storageNum; return storageNum;
} }
public void setStorageNum(BigDecimal storageNum) { public void setStorageNum(Integer storageNum) {
this.storageNum = storageNum; this.storageNum = storageNum;
} }
public int getHasPickNum() { public Integer getHasPickNum() {
return hasPickNum; return hasPickNum;
} }
public void setHasPickNum(int hasPickNum) { public void setHasPickNum(Integer hasPickNum) {
this.hasPickNum = hasPickNum; this.hasPickNum = hasPickNum;
} }
public String getMaterialModel() { public Integer getOrderNum() {
return materialModel;
}
public void setMaterialModel(String materialModel) {
this.materialModel = materialModel;
}
public int getOrderNum() {
return orderNum; return orderNum;
} }
public void setOrderNum(int orderNum) { public void setOrderNum(Integer orderNum) {
this.orderNum = orderNum; this.orderNum = orderNum;
} }
public Date getDeliveryTime() { public Integer getFinishNum() {
return deliveryTime;
}
public void setDeliveryTime(Date deliveryTime) {
this.deliveryTime = deliveryTime;
}
public int getFinishNum() {
return finishNum; return finishNum;
} }
public void setFinishNum(int finishNum) { public void setFinishNum(Integer finishNum) {
this.finishNum = finishNum; this.finishNum = finishNum;
} }

23
ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInformOrderDto.java

@ -9,9 +9,30 @@ import lombok.Data;
public class ExportShippingInformOrderDto { public class ExportShippingInformOrderDto {
/** 销售单号*/
private String salesOrderCode;
/** 生产订单号*/
private String makeNo;
/** 客户订单号*/
private String customerOrderCode;
/** 物料名称*/
private String materialName; private String materialName;
private String deviceModelCode; /** 物料型号*/
private String materialModel;
/** 物料数量*/
private Integer materialNum;
/** 铭牌logo*/
private String logo;
/** 备注*/
private String remark;
/** 追踪码*/
private String trackingCode;
} }

7
ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingInvoiceDto.java

@ -15,12 +15,15 @@ public class ExportShippingInvoiceDto {
private String materialName; private String materialName;
private String materialModel;
private String makeNo; private String makeNo;
private Integer materialNum; private Integer materialNum;
private BigDecimal materialUsd; private String materialAmount;
private BigDecimal materialUsdSum; private String materialAmountSum;
private String total;
} }

6
ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingOrderDto.java

@ -13,9 +13,7 @@ public class ExportShippingOrderDto {
private String materialName; private String materialName;
private String materialNo; private String materialModel;
private String materialDescribe;
private String materialUnit; private String materialUnit;
@ -24,4 +22,6 @@ public class ExportShippingOrderDto {
private String salesOrderNumber; private String salesOrderNumber;
private String remark; private String remark;
private String enterpriseMaterialNo;
} }

10
ruoyi-admin/src/main/java/com/ruoyi/system/dto/ExportShippingPackingDto.java

@ -18,5 +18,15 @@ public class ExportShippingPackingDto {
private Integer materialNum; private Integer materialNum;
private String box;
private String oneBox;
private String twoBox;
private String totalNW;
private String totalGW;
private String meas;
} }

5
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysMakeOrderMapper.java

@ -130,4 +130,9 @@ public interface SysMakeOrderMapper
* */ * */
List<SysMakeOrder> selectMakeOrderByMakeNoList(List<String> makeNos); List<SysMakeOrder> selectMakeOrderByMakeNoList(List<String> makeNos);
/**
* 根据销售单号集合查询生产订单集合
* */
List<SysMakeOrder> selectMakeOrderListBySalesOrderCodes(List<String> salesOrderCode);
} }

2
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()); WarehouseInventoryInquiry inquiry = inquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(bom.getMaterialNo());
if(inquiry == null){ if(inquiry == null){
bom.setStorageNum(BigDecimal.ZERO); bom.setStorageNum(0);
}else{ }else{
bom.setStorageNum(inquiry.getAvailableStockNum()); bom.setStorageNum(inquiry.getAvailableStockNum());
} }

427
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) { public void exportShippingOrderOne(String outOrderCode, HttpServletResponse response) {
String fileName = "销售出货单1.xlsx"; String fileName = "销售出货单1.xlsx";
String shippingOrderCode = redisCache.generateBillNo("shd");
try { try {
String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName);
@ -635,6 +636,21 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode);
String salesOrderCode = salesShippingInform.getSalesOrderCode();
List<String> salesOrderCodes = new ArrayList<>();
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
}
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
HashMap<String, SysSalesOrder> salesOrderHashMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
//销售出货单 //销售出货单
String shippingInformationType = "2"; String shippingInformationType = "2";
@ -644,35 +660,42 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
List<SysSalesShippingInformDetail> salesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode); List<SysSalesShippingInformDetail> 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"; String realFileName = salesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx";
// 设置响应头,指定文件名和文件类型 // 设置响应头,指定文件名和文件类型
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8"));
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
AtomicInteger index = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(1);
//处理物料数据 //处理物料数据
List<ExportShippingOrderDto> exportShippingOrderDtos = new ArrayList<>(); List<ExportShippingOrderDto> exportShippingOrderDtos = new ArrayList<>();
for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
SysSalesOrder sysSalesOrder = salesOrderHashMap.get(sysSalesOrderChild.getQuoteId());
ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto();
exportShippingOrderDto.setIndex(index.getAndIncrement()); exportShippingOrderDto.setIndex(index.getAndIncrement());
exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); exportShippingOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); exportShippingOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); exportShippingOrderDto.setMaterialUnit(sysSalesOrderChild.getUnit());
exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); exportShippingOrderDto.setMakeNum(sysSalesOrderChild.getMaterialNum());
exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); exportShippingOrderDto.setSalesOrderNumber(sysSalesOrder.getSalesOrderNumber());
exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); exportShippingOrderDto.setRemark(sysSalesOrder.getRemark());
exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrder.getEnterpriseMaterialNo());
exportShippingOrderDtos.add(exportShippingOrderDto); exportShippingOrderDtos.add(exportShippingOrderDto);
} }
//totalMakeNum //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(); 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(); FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String shippingDate = dateFormat.format(new Date());
HashMap<String, Object> map = MapUtils.newHashMap(); HashMap<String, Object> map = MapUtils.newHashMap();
map.put("customerId",salesShippingInform.getCustomerId()); map.put("customerId",salesShippingInform.getCustomerId());
map.put("deliverTime",deliverTime); map.put("shippingDate",shippingDate);
map.put("businessMembers",salesShippingInform.getBusinessMembers());
map.put("totalMakeNum",totalMakeNum); map.put("totalMakeNum",totalMakeNum);
map.put("shippingOrderCode",shippingOrderCode);
// 写入数据 // 写入数据
workBook.fill(map, sheet); workBook.fill(map, sheet);
@ -706,7 +732,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
public void exportShippingOrderTwo(String outOrderCode, HttpServletResponse response) { public void exportShippingOrderTwo(String outOrderCode, HttpServletResponse response) {
String fileName = "销售出货单2.xlsx"; String fileName = "销售出货单2.xlsx";
String shippingOrderCode = redisCache.generateBillNo("shd");
try { try {
String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName);
@ -720,6 +746,22 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); SysSalesShippingInform salesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode);
String salesOrderCode = salesShippingInform.getSalesOrderCode();
List<String> salesOrderCodes = new ArrayList<>();
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
}
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
HashMap<String, SysSalesOrder> salesOrderHashMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderHashMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
//销售出货单 //销售出货单
String shippingInformationType = "2"; String shippingInformationType = "2";
String shippingTemplateType = "销售出货单2"; String shippingTemplateType = "销售出货单2";
@ -727,35 +769,42 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,salesShippingInform); insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,salesShippingInform);
List<SysSalesShippingInformDetail> salesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode); List<SysSalesShippingInformDetail> 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"; String realFileName = salesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx";
// 设置响应头,指定文件名和文件类型 // 设置响应头,指定文件名和文件类型
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8"));
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
AtomicInteger index = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(1);
//处理物料数据 //处理物料数据
List<ExportShippingOrderDto> exportShippingOrderDtos = new ArrayList<>(); List<ExportShippingOrderDto> exportShippingOrderDtos = new ArrayList<>();
for (SysSalesShippingInformDetail salesShippingInformDetail : salesShippingInformDetails) { for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
SysSalesOrder sysSalesOrder = salesOrderHashMap.get(sysSalesOrderChild.getQuoteId());
ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto();
exportShippingOrderDto.setIndex(index.getAndIncrement()); exportShippingOrderDto.setIndex(index.getAndIncrement());
exportShippingOrderDto.setMaterialName(salesShippingInformDetail.getMaterialName()); exportShippingOrderDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingOrderDto.setMaterialNo(salesShippingInformDetail.getMaterialNo()); exportShippingOrderDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingOrderDto.setMaterialDescribe(salesShippingInformDetail.getMaterialDescribe()); exportShippingOrderDto.setMaterialUnit(sysSalesOrderChild.getUnit());
exportShippingOrderDto.setMaterialUnit(salesShippingInformDetail.getMaterialUnit()); exportShippingOrderDto.setMakeNum(sysSalesOrderChild.getMaterialNum());
exportShippingOrderDto.setMakeNum(salesShippingInformDetail.getMakeNum()); exportShippingOrderDto.setSalesOrderNumber(sysSalesOrder.getSalesOrderNumber());
exportShippingOrderDto.setSalesOrderNumber(salesShippingInform.getSalesOrderNumber()); exportShippingOrderDto.setRemark(sysSalesOrder.getRemark());
exportShippingOrderDto.setRemark(salesShippingInform.getRemark()); exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrder.getEnterpriseMaterialNo());
exportShippingOrderDtos.add(exportShippingOrderDto); exportShippingOrderDtos.add(exportShippingOrderDto);
} }
//totalMakeNum //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(); 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(); FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
HashMap<String, Object> map = MapUtils.newHashMap(); HashMap<String, Object> map = MapUtils.newHashMap();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String shippingDate = dateFormat.format(new Date());
map.put("customerId",salesShippingInform.getCustomerId()); map.put("customerId",salesShippingInform.getCustomerId());
map.put("deliverTime",deliverTime); map.put("shippingDate",shippingDate);
map.put("businessMembers",salesShippingInform.getBusinessMembers());
map.put("totalMakeNum",totalMakeNum); map.put("totalMakeNum",totalMakeNum);
map.put("shippingOrderCode",shippingOrderCode);
// 写入数据 // 写入数据
workBook.fill(map, sheet); workBook.fill(map, sheet);
@ -800,9 +853,11 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
SysSalesShippingInform sysSalesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode); SysSalesShippingInform sysSalesShippingInform = sysSalesShippingInformMapper.selectSysSalesShippingInformByCode(outOrderCode);
String shippingInformationType = "0"; String shippingInformationType = "0";
String shippingTemplateType = "销售出货箱单1"; String shippingTemplateType = "销售出货箱单1";
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
//生成出货资料 //生成出货资料
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform);
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
String realFileName = salesOrderCode + "-" + fileName.substring(0, fileName.lastIndexOf(".")) + ".xlsx"; 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.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8"));
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
if (sysMakeOrder == null){
log.warn("未找到对应的生产订单,请检查:{}", salesOrderCode);
throw new RuntimeException("未找到对应的生产订单,请检查"); List<String> salesOrderCodes = new ArrayList<>();
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
} }
Map<String, Object> map = new HashMap<>();
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); //生产订主表的数据
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
map.put("customerContact",sysSalesShippingInform.getCustomerContact());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); //获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
List<ExportShippingPackingDto> shippingPackingDtos = new ArrayList<>(); List<ExportShippingPackingDto> shippingPackingDtos = new ArrayList<>();
AtomicInteger index = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(1);
List<AfterSalesShippingDevice> shippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode);
for (AfterSalesShippingDevice shippingDevice : shippingDeviceList) { for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto(); ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto();
exportShippingPackingDto.setIndex(index.getAndIncrement()); exportShippingPackingDto.setIndex(index.getAndIncrement());
exportShippingPackingDto.setMaterialDescribe(shippingDevice.getMaterialDescribe()); exportShippingPackingDto.setMaterialDescribe(sysSalesOrderChild.getDescribe());
exportShippingPackingDto.setMaterialModel(shippingDevice.getMaterialModelCode()); exportShippingPackingDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingPackingDto.setMakeNo(shippingDevice.getMakeNo()); exportShippingPackingDto.setMakeNo(sysMakeOrder.getMakeNo());
exportShippingPackingDto.setMaterialNum(1); 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); shippingPackingDtos.add(exportShippingPackingDto);
} }
Map<String, Object> 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(); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().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.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8"));
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
if (sysMakeOrder == null){ List<String> salesOrderCodes = new ArrayList<>();
log.warn("未找到对应的生产订单,请检查:{}", salesOrderCode);
throw new RuntimeException("未找到对应的生产订单,请检查"); if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
} }
Map<String, Object> map = new HashMap<>();
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto()); //生产订主表的数据
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
map.put("customerContact",sysSalesShippingInform.getCustomerContact());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress()); //获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
List<ExportShippingPackingDto> shippingPackingDtos = new ArrayList<>(); List<ExportShippingPackingDto> shippingPackingDtos = new ArrayList<>();
AtomicInteger index = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(1);
List<AfterSalesShippingDevice> shippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode);
for (AfterSalesShippingDevice shippingDevice : shippingDeviceList) { for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto(); ExportShippingPackingDto exportShippingPackingDto = new ExportShippingPackingDto();
exportShippingPackingDto.setIndex(index.getAndIncrement()); exportShippingPackingDto.setIndex(index.getAndIncrement());
exportShippingPackingDto.setMaterialDescribe(shippingDevice.getMaterialDescribe()); exportShippingPackingDto.setMaterialDescribe(sysSalesOrderChild.getDescribe());
exportShippingPackingDto.setMaterialModel(shippingDevice.getMaterialModelCode()); exportShippingPackingDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingPackingDto.setMakeNo(shippingDevice.getMakeNo()); exportShippingPackingDto.setMakeNo(sysMakeOrder.getMakeNo());
exportShippingPackingDto.setMaterialNum(1); 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); shippingPackingDtos.add(exportShippingPackingDto);
} }
Map<String, Object> 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(); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().build(); WriteSheet sheet = EasyExcel.writerSheet().build();
@ -965,51 +1075,83 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform);
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); List<String> salesOrderCodes = new ArrayList<>();
String makeNo = sysMakeOrder.getMakeNo(); if (StringUtils.isNotEmpty(salesOrderCode)){
if (!StringUtils.isEmpty(makeNo)){ String[] splitSalesOrderCode = salesOrderCode.split(",");
List<AfterSalesShippingDevice> afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); salesOrderCodes = Arrays.asList(splitSalesOrderCode);
} }
Map<String, Object> map = new HashMap<>(); //生产订主表的数据
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto());
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); //销售订单主表的数据
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
//获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
Map<String, SysSalesOrder> salesOrderMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
ArrayList<ExportShippingInvoiceDto> exportShippingInvoiceDtos = new ArrayList<>(); ArrayList<ExportShippingInvoiceDto> exportShippingInvoiceDtos = new ArrayList<>();
AtomicInteger index = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(1);
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto();
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId());
exportShippingInvoiceDto.setIndex(index.getAndIncrement()); exportShippingInvoiceDto.setIndex(index.getAndIncrement());
exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingInvoiceDto.setMaterialNum(1); exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum());
exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo());
if (sysSalesOrderChild.getMaterialUsd() != null) { if ("1".equals(sysSalesOrder.getCommonCurrency())){
exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd()));
} else { String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString();
// 如果 materialUsd 为 null,可以设置为默认值或者保持不变 String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString();
exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB");
} exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB");
if (sysSalesOrderChild.getMaterialUsdSum() != null) {
exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum()));
} else { } 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); exportShippingInvoiceDtos.add(exportShippingInvoiceDto);
} }
Map<String, Object> 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(); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().build(); WriteSheet sheet = EasyExcel.writerSheet().build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
@ -1053,50 +1195,79 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform);
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); List<String> salesOrderCodes = new ArrayList<>();
String makeNo = sysMakeOrder.getMakeNo(); if (StringUtils.isNotEmpty(salesOrderCode)){
if (!StringUtils.isEmpty(makeNo)){ String[] splitSalesOrderCode = salesOrderCode.split(",");
List<AfterSalesShippingDevice> afterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceByMakeNo(makeNo); salesOrderCodes = Arrays.asList(splitSalesOrderCode);
} }
Map<String, Object> map = new HashMap<>(); //生产订主表的数据
map.put("customerContact",sysSalesShippingInform.getCustomerContact()); List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("customerContactBillto",sysSalesShippingInform.getCustomerContactBillto());
map.put("contactAddressBillto",sysSalesShippingInform.getContactAddressBillto()); //销售订单主表的数据
List<SysSalesOrder> sysSalesOrders = sysSalesOrderMapper.selectSysSalesOrderListByCodeList(salesOrderCodes);
//获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
Map<String, SysSalesOrder> salesOrderMap = new HashMap<>();
for (SysSalesOrder sysSalesOrder : sysSalesOrders) {
salesOrderMap.put(sysSalesOrder.getSalesOrderCode(),sysSalesOrder);
}
ArrayList<ExportShippingInvoiceDto> exportShippingInvoiceDtos = new ArrayList<>(); ArrayList<ExportShippingInvoiceDto> exportShippingInvoiceDtos = new ArrayList<>();
AtomicInteger index = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(1);
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto(); ExportShippingInvoiceDto exportShippingInvoiceDto = new ExportShippingInvoiceDto();
SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
SysSalesOrder sysSalesOrder = salesOrderMap.get(sysSalesOrderChild.getQuoteId());
exportShippingInvoiceDto.setIndex(index.getAndIncrement()); exportShippingInvoiceDto.setIndex(index.getAndIncrement());
exportShippingInvoiceDto.setMaterialModel(sysSalesOrderChild.getMaterialModel());
exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName()); exportShippingInvoiceDto.setMaterialName(sysSalesOrderChild.getMaterialName());
exportShippingInvoiceDto.setMaterialNum(1); exportShippingInvoiceDto.setMaterialNum(sysSalesOrderChild.getMaterialNum());
exportShippingInvoiceDto.setMakeNo(sysMakeOrder.getMakeNo());
if (sysSalesOrderChild.getMaterialUsd() != null) { if ("1".equals(sysSalesOrder.getCommonCurrency())){
exportShippingInvoiceDto.setMaterialUsd(new BigDecimal(sysSalesOrderChild.getMaterialUsd()));
} else { String materialNoRmb = sysSalesOrderChild.getMaterialNoRmb().toString();
// 如果 materialUsd 为 null,可以设置为默认值或者保持不变 String materialNoRmbSum = sysSalesOrderChild.getMaterialNoRmbSum().toString();
exportShippingInvoiceDto.setMaterialUsd(BigDecimal.ZERO); // 示例: 设置为0 exportShippingInvoiceDto.setMaterialAmount(materialNoRmb + "RMB");
} exportShippingInvoiceDto.setMaterialAmountSum(materialNoRmbSum + "RMB");
if (sysSalesOrderChild.getMaterialUsdSum() != null) {
exportShippingInvoiceDto.setMaterialUsdSum(new BigDecimal(sysSalesOrderChild.getMaterialUsdSum()));
} else { } 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); exportShippingInvoiceDtos.add(exportShippingInvoiceDto);
} }
Map<String, Object> 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(); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().build(); WriteSheet sheet = EasyExcel.writerSheet().build();
@ -1119,6 +1290,8 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
public void exportShippingInformOrder(String outOrderCode, HttpServletResponse response) { public void exportShippingInformOrder(String outOrderCode, HttpServletResponse response) {
String fileName = "出货通知单.xlsx"; String fileName = "出货通知单.xlsx";
//出货单号:CTD年月日+001三位数流水号
String shippingInformOrderCode = redisCache.generateBillNo("CTD");
try { try {
String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName);
@ -1135,21 +1308,52 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform); insertShippingInformation(outOrderCode,shippingInformationType,shippingTemplateType,sysSalesShippingInform);
String salesOrderCode = sysSalesShippingInform.getSalesOrderCode(); String salesOrderCode = sysSalesShippingInform.getSalesOrderCode();
SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode);
List<String> salesOrderCodes = new ArrayList<>();
if (StringUtils.isNotEmpty(salesOrderCode)){
String[] splitSalesOrderCode = salesOrderCode.split(",");
salesOrderCodes = Arrays.asList(splitSalesOrderCode);
}
//生产订主表的数据
List<SysMakeOrder> sysMakeOrders = sysMakeOrderMapper.selectMakeOrderListBySalesOrderCodes(salesOrderCodes);
//获取销售订单的明细
List<SysSalesOrderChild> sysSalesOrderChildren = salesOrderChildMapper.selectBatchOrderChildListBySalesOrderCode(salesOrderCodes);
String realFileName = sysSalesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx"; String realFileName = sysSalesShippingInform.getSalesOrderCode() +"-"+ fileName.substring(0, fileName.lastIndexOf("."))+ ".xlsx";
// 设置响应头,指定文件名和文件类型 // 设置响应头,指定文件名和文件类型
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8"));
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
List<AfterSalesShippingDevice> salesShippingDeviceList = salesShippingDeviceMapper.selectShippingDeviceBySalesOrderCode(salesOrderCode);
Map<String, SysMakeOrder> makeOrderMap = new HashMap<>();
for (SysMakeOrder sysMakeOrder : sysMakeOrders) {
makeOrderMap.put(sysMakeOrder.getSaleNo(),sysMakeOrder);
}
ArrayList<ExportShippingInformOrderDto> shippingInformOrderDtos = new ArrayList<>(); ArrayList<ExportShippingInformOrderDto> shippingInformOrderDtos = new ArrayList<>();
for (AfterSalesShippingDevice afterSalesShippingDevice : salesShippingDeviceList) {
for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) {
ExportShippingInformOrderDto shippingInformOrderDto = new ExportShippingInformOrderDto(); ExportShippingInformOrderDto shippingInformOrderDto = new ExportShippingInformOrderDto();
shippingInformOrderDto.setDeviceModelCode(afterSalesShippingDevice.getDeviceModelCode()); SysMakeOrder sysMakeOrder = makeOrderMap.get(sysSalesOrderChild.getQuoteId());
shippingInformOrderDto.setMaterialName(afterSalesShippingDevice.getMaterialName()); 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); shippingInformOrderDtos.add(shippingInformOrderDto);
} }
@ -1158,12 +1362,9 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String shippingDate = dateFormat.format(new Date()); String shippingDate = dateFormat.format(new Date());
map.put("makeNo",sysMakeOrder.getMakeNo()); map.put("shippingInformOrderCode",shippingInformOrderCode);
map.put("salesOrderNumber",sysSalesShippingInform.getSalesOrderNumber());
map.put("customerContactAddress",sysSalesShippingInform.getCustomerContactAddress());
map.put("shippingDate",shippingDate); map.put("shippingDate",shippingDate);
map.put("customerName",sysSalesShippingInform.getCustomerName()); map.put("customerName",sysSalesShippingInform.getCustomerName());
map.put("businessMembers",sysSalesShippingInform.getBusinessMembers());
ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build();
WriteSheet sheet = EasyExcel.writerSheet().build(); WriteSheet sheet = EasyExcel.writerSheet().build();

116
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java

@ -67,27 +67,39 @@ public class WarehouseInventoryInquiry extends BaseEntity
/** 物料历史总数量 */ /** 物料历史总数量 */
@Excel(name = "物料历史总数量", sort = 8) @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) @Excel(name = "可用库存数", sort = 9)
private BigDecimal availableStockNum; private Integer availableStockNum;
/** 物料归属可用库存数 */ /** 物料归属可用库存数 */
// @Excel(name = "物料归属可用库存数") // @Excel(name = "物料归属可用库存数")
private BigDecimal attributionAvailableStockNum; private Integer attributionAvailableStockNum;
/** 物料无归属可用库存数 */ /** 物料无归属可用库存数 */
// @Excel(name = "物料无归属可用库存数") // @Excel(name = "物料无归属可用库存数")
private BigDecimal noattributionAvailableStockNum; private Integer noattributionAvailableStockNum;
/** 物料使用数 */ /** 物料使用数 */
@Excel(name = "使用数", sort = 10) @Excel(name = "使用数", sort = 10)
private BigDecimal useNum; private Integer useNum;
/** 物料报损数 */ /** 物料报损数 */
@Excel(name = "报损数", sort = 11) @Excel(name = "报损数", sort = 11)
private BigDecimal reportDamageNum; private Integer reportDamageNum;
/** 物料使用状态(0 使用中、1 已作废) */ /** 物料使用状态(0 使用中、1 已作废) */
@Excel(name = "使用状态", sort = 12, dictType = "useStatus") @Excel(name = "使用状态", sort = 12, dictType = "useStatus")
@ -200,60 +212,88 @@ public class WarehouseInventoryInquiry extends BaseEntity
{ {
return materialSpecification; return materialSpecification;
} }
public void setHistoricalTotal(BigDecimal historicalTotal)
{
public Integer getHistoricalTotal() {
return historicalTotal;
}
public void setHistoricalTotal(Integer historicalTotal) {
this.historicalTotal = historicalTotal; this.historicalTotal = historicalTotal;
} }
public BigDecimal getHistoricalTotal() public Integer getSharedAvailableStockNum() {
{ return sharedAvailableStockNum;
return historicalTotal;
} }
public void setAvailableStockNum(BigDecimal availableStockNum)
{ public void setSharedAvailableStockNum(Integer sharedAvailableStockNum) {
this.availableStockNum = availableStockNum; 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; return availableStockNum;
} }
public void setAttributionAvailableStockNum(BigDecimal attributionAvailableStockNum)
{ public void setAvailableStockNum(Integer availableStockNum) {
this.attributionAvailableStockNum = attributionAvailableStockNum; this.availableStockNum = availableStockNum;
} }
public BigDecimal getAttributionAvailableStockNum() public Integer getAttributionAvailableStockNum() {
{
return attributionAvailableStockNum; return attributionAvailableStockNum;
} }
public void setNoattributionAvailableStockNum(BigDecimal noattributionAvailableStockNum)
{ public void setAttributionAvailableStockNum(Integer attributionAvailableStockNum) {
this.noattributionAvailableStockNum = noattributionAvailableStockNum; this.attributionAvailableStockNum = attributionAvailableStockNum;
} }
public BigDecimal getNoattributionAvailableStockNum() public Integer getNoattributionAvailableStockNum() {
{
return noattributionAvailableStockNum; return noattributionAvailableStockNum;
} }
public void setUseNum(BigDecimal useNum)
{ public void setNoattributionAvailableStockNum(Integer noattributionAvailableStockNum) {
this.useNum = useNum; this.noattributionAvailableStockNum = noattributionAvailableStockNum;
} }
public BigDecimal getUseNum() public Integer getUseNum() {
{
return useNum; return useNum;
} }
public void setReportDamageNum(BigDecimal reportDamageNum)
{ public void setUseNum(Integer useNum) {
this.reportDamageNum = reportDamageNum; this.useNum = useNum;
} }
public BigDecimal getReportDamageNum() public Integer getReportDamageNum() {
{
return reportDamageNum; return reportDamageNum;
} }
public void setReportDamageNum(Integer reportDamageNum) {
this.reportDamageNum = reportDamageNum;
}
public void setMaterialUseStatus(String materialUseStatus) public void setMaterialUseStatus(String materialUseStatus)
{ {
this.materialUseStatus = materialUseStatus; this.materialUseStatus = materialUseStatus;
@ -307,6 +347,10 @@ public class WarehouseInventoryInquiry extends BaseEntity
.append("materialModel", getMaterialModel()) .append("materialModel", getMaterialModel())
.append("materialSpecification", getMaterialSpecification()) .append("materialSpecification", getMaterialSpecification())
.append("historicalTotal", getHistoricalTotal()) .append("historicalTotal", getHistoricalTotal())
.append("sharedAvailableStockNum", getSharedAvailableStockNum())
.append("fixedAvailableStockNum", getFixedAvailableStockNum())
.append("lockStockNum", getLockStockNum())
.append("stockLossesNum", getStockLossesNum())
.append("availableStockNum", getAvailableStockNum()) .append("availableStockNum", getAvailableStockNum())
.append("attributionAvailableStockNum", getAttributionAvailableStockNum()) .append("attributionAvailableStockNum", getAttributionAvailableStockNum())
.append("noattributionAvailableStockNum", getNoattributionAvailableStockNum()) .append("noattributionAvailableStockNum", getNoattributionAvailableStockNum())

358
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiryDetail.java

@ -1,6 +1,5 @@
package com.ruoyi.warehouse.domain; package com.ruoyi.warehouse.domain;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
@ -12,7 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
* 仓库库存查询详情对象 warehouse_inventory_inquiry_detail * 仓库库存查询详情对象 warehouse_inventory_inquiry_detail
* *
* @author 刘晓旭 * @author 刘晓旭
* @date 2024-06-06 * @date 2024-12-03
*/ */
public class WarehouseInventoryInquiryDetail extends BaseEntity public class WarehouseInventoryInquiryDetail extends BaseEntity
{ {
@ -22,100 +21,41 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
private Long inventoryInquiryDetailId; private Long inventoryInquiryDetailId;
/** 料号 */ /** 料号 */
@Excel(name = "料号")
private String materialNo; private String materialNo;
/** 物料名称 */ /** 关联单号 */
private String materialName; @Excel(name = "关联单号")
private String correlationCode;
/** 物料类型 */ /** 库存查询业务类型(0采购、1生产、2委外、3退换货、4库存盘点、5开发修改、6销售、7员工服务、8库存报损) */
private String materialType; @Excel(name = "库存查询业务类型")
private String inquiryBusinessType;
/** 物料图片地址 */ /** 库存查询订单类型(0采购入库单、1生产入库单、2委外入库单、3退换货单、4库存盘点单、5换货入库单、6生产退料单、7开发退料单、8委外退料单、9员工退料单、10员工领料单、11生产领料单、12委外领料单、13开发领料单、14销售出货单、15退换货单、16库存报损单) */
private String materialPhotourl; @Excel(name = "库存查询订单类型")
private String inquiryOrderType;
/** 物料品牌 */ /** 库存查询出入库类型(0采购入库、供应商补货、1生产入库、2委外入库、3公司退货入库、4盘盈、5供应商换货、6生产退料、7开发退料、8委外退料、9员工退料10员工领料、11生产领料、12委外领料、13开发领料、14销售出库、15公司退货出库、16盘亏、17报损) */
private String materialBrand; @Excel(name = "库存查询出入库类型")
private String inquiryWarehouseType;
/** 物料单位 */ /** 出货设备ID */
private String materialUnit; @Excel(name = "出货设备ID")
private String shippingDeviceId;
/** 物料描述 */
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;
/** 库存历史时间 */ /** 库存历史时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "库存历史时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "库存历史时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date inventoryHistoricalTime; private Date inventoryHistoricalTime;
/** 库存历史类型 */ /** 库存增减(0减少、1增加) */
@Excel(name = "库存历史类型") @Excel(name = "库存增减(0减少、1增加)")
private String inventoryHistoricalType;
/** 库存增减 */
@Excel(name = "库存增减")
private String inventoryIncreaseDecrease; private String inventoryIncreaseDecrease;
/** 库存历史数量 */ /** 增减数量 */
@Excel(name = "库存历史数量") @Excel(name = "增减数量")
private BigDecimal inventoryHistoricalNum; private Integer increaseDecreaseNum;
/** 不含税采购总价 */
@Excel(name = "不含税单价")
private BigDecimal purchasePriceExcludingTax;
/** 含税总价 */
@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)
{ {
@ -135,167 +75,50 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
{ {
return materialNo; return materialNo;
} }
public void setMaterialName(String materialName) public void setCorrelationCode(String correlationCode)
{
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)
{ {
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)
{ {
@ -306,15 +129,6 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
{ {
return inventoryHistoricalTime; 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; this.inventoryIncreaseDecrease = inventoryIncreaseDecrease;
@ -324,59 +138,14 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
{ {
return inventoryIncreaseDecrease; return inventoryIncreaseDecrease;
} }
public void setInventoryHistoricalNum(BigDecimal inventoryHistoricalNum) public void setIncreaseDecreaseNum(Integer increaseDecreaseNum)
{
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)
{ {
this.supplierName = supplierName; this.increaseDecreaseNum = increaseDecreaseNum;
} }
public String getSupplierName() public Integer getIncreaseDecreaseNum()
{ {
return supplierName; return increaseDecreaseNum;
} }
@Override @Override
@ -384,33 +153,14 @@ public class WarehouseInventoryInquiryDetail extends BaseEntity
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("inventoryInquiryDetailId", getInventoryInquiryDetailId()) .append("inventoryInquiryDetailId", getInventoryInquiryDetailId())
.append("materialNo", getMaterialNo()) .append("materialNo", getMaterialNo())
.append("materialName", getMaterialName()) .append("correlationCode", getCorrelationCode())
.append("materialType", getMaterialType()) .append("inquiryBusinessType", getInquiryBusinessType())
.append("materialPhotourl", getMaterialPhotourl()) .append("inquiryOrderType", getInquiryOrderType())
.append("materialBrand", getMaterialBrand()) .append("inquiryWarehouseType", getInquiryWarehouseType())
.append("materialUnit", getMaterialUnit()) .append("shippingDeviceId", getShippingDeviceId())
.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("inventoryHistoricalTime", getInventoryHistoricalTime())
.append("inventoryHistoricalType", getInventoryHistoricalType())
.append("inventoryIncreaseDecrease", getInventoryIncreaseDecrease()) .append("inventoryIncreaseDecrease", getInventoryIncreaseDecrease())
.append("inventoryHistoricalNum", getInventoryHistoricalNum()) .append("increaseDecreaseNum", getIncreaseDecreaseNum())
.append("purchasePriceExcludingTax", getPurchasePriceExcludingTax())
.append("purchasePriceIncludesTax", getPurchasePriceIncludesTax())
.append("purchaseOrderCode", getPurchaseOrderCode())
.append("supplierCode", getSupplierCode())
.append("supplierName", getSupplierName())
.append("remark", getRemark()) .append("remark", getRemark())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())

26
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamage.java

@ -55,11 +55,11 @@ public class WarehouseInventoryReportDamage extends BaseEntity
/** 物料数合计 */ /** 物料数合计 */
@Excel(name = "物料数合计") @Excel(name = "物料数合计")
private int materialTotal; private Integer materialTotal;
/** 数量合计 */ /** 数量合计 */
@Excel(name = "数量合计") @Excel(name = "数量合计")
private BigDecimal numTotal; private Integer numTotal;
/** 仓库ID */ /** 仓库ID */
@Excel(name = "仓库ID") @Excel(name = "仓库ID")
@ -198,24 +198,24 @@ public class WarehouseInventoryReportDamage extends BaseEntity
{ {
return materialName; return materialName;
} }
public void setMaterialTotal(int materialTotal)
{
this.materialTotal = materialTotal;
}
public int getMaterialTotal()
{ public Integer getMaterialTotal() {
return materialTotal; return materialTotal;
} }
public void setNumTotal(BigDecimal numTotal)
{ public void setMaterialTotal(Integer materialTotal) {
this.numTotal = numTotal; this.materialTotal = materialTotal;
} }
public BigDecimal getNumTotal() public Integer getNumTotal() {
{
return numTotal; return numTotal;
} }
public void setNumTotal(Integer numTotal) {
this.numTotal = numTotal;
}
public void setWarehouseCode(String warehouseCode) public void setWarehouseCode(String warehouseCode)
{ {
this.warehouseCode = warehouseCode; this.warehouseCode = warehouseCode;

14
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryReportDamageChild.java

@ -59,7 +59,7 @@ public class WarehouseInventoryReportDamageChild extends BaseEntity
/** 实际报废数量 */ /** 实际报废数量 */
@Excel(name = "实际报废数量", sort = 6) @Excel(name = "实际报废数量", sort = 6)
private BigDecimal actualScrapQuantity; private Integer actualScrapQuantity;
/** 报废类型 */ /** 报废类型 */
@Excel(name = "报废类型", sort = 8) @Excel(name = "报废类型", sort = 8)
@ -189,15 +189,15 @@ public class WarehouseInventoryReportDamageChild extends BaseEntity
{ {
return materialBrand; return materialBrand;
} }
public void setActualScrapQuantity(BigDecimal actualScrapQuantity)
{
this.actualScrapQuantity = actualScrapQuantity;
}
public BigDecimal getActualScrapQuantity() public Integer getActualScrapQuantity() {
{
return actualScrapQuantity; return actualScrapQuantity;
} }
public void setActualScrapQuantity(Integer actualScrapQuantity) {
this.actualScrapQuantity = actualScrapQuantity;
}
public void setScrapType(String scrapType) public void setScrapType(String scrapType)
{ {
this.scrapType = scrapType; this.scrapType = scrapType;

38
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(); String loginName = ShiroUtils.getLoginName();
warehouseInventoryReportDamage.setCreateBy(loginName); warehouseInventoryReportDamage.setCreateBy(loginName);
warehouseInventoryReportDamage.setCreateTime(DateUtils.getNowDate()); warehouseInventoryReportDamage.setCreateTime(DateUtils.getNowDate());
BigDecimal sumTotal = BigDecimal.ZERO; Integer sumTotal = 0;
//报损子表数据 //报损子表数据
//判断子表数据是否为空 //判断子表数据是否为空
if(StringUtils.isNotEmpty(warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList())){ if(StringUtils.isNotEmpty(warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList())){
@ -206,7 +206,7 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve
throw new BusinessException("物料"+reportDamageChild.getMaterialNo()+"库存查询记录为空!请检查"); throw new BusinessException("物料"+reportDamageChild.getMaterialNo()+"库存查询记录为空!请检查");
} }
//子表数据不为空,则插入子表数据 //子表数据不为空,则插入子表数据
sumTotal = sumTotal.add(reportDamageChild.getActualScrapQuantity()); sumTotal += reportDamageChild.getActualScrapQuantity();
reportDamageChild.setMakeNo(warehouseInventoryReportDamage.getMakeNo()); reportDamageChild.setMakeNo(warehouseInventoryReportDamage.getMakeNo());
reportDamageChild.setReportDamageCode(newCode); reportDamageChild.setReportDamageCode(newCode);
if(warehouseInventoryReportDamage.getApplyTime()!=null){ if(warehouseInventoryReportDamage.getApplyTime()!=null){
@ -237,17 +237,17 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve
throw new BusinessException("新增库存报损失败,该物料无库存数据"); throw new BusinessException("新增库存报损失败,该物料无库存数据");
} }
WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(damageChild); WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(damageChild);
inquiryDetail.setInventoryHistoricalType("9"); // inquiryDetail.setInventoryHistoricalType("9");
int detailInsertResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); int detailInsertResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
if(detailInsertResult<=0){ if(detailInsertResult<=0){
throw new BusinessException("新增库存历史失败!"); throw new BusinessException("新增库存历史失败!");
} }
BigDecimal reportDamageNum = inventoryInquiry.getReportDamageNum(); // BigDecimal reportDamageNum = inventoryInquiry.getReportDamageNum();
reportDamageNum = reportDamageNum.add(damageChild.getActualScrapQuantity()); // reportDamageNum = reportDamageNum.add(damageChild.getActualScrapQuantity());
inventoryInquiry.setReportDamageNum(reportDamageNum); // inventoryInquiry.setReportDamageNum(reportDamageNum);
BigDecimal availableNum = inventoryInquiry.getAvailableStockNum(); // BigDecimal availableNum = inventoryInquiry.getAvailableStockNum();
availableNum = availableNum.subtract(damageChild.getActualScrapQuantity()); // availableNum = availableNum.subtract(damageChild.getActualScrapQuantity());
inventoryInquiry.setAvailableStockNum(availableNum); // inventoryInquiry.setAvailableStockNum(availableNum);
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
return inventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); return inventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry);
@ -257,15 +257,15 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve
public WarehouseInventoryInquiryDetail createWarehouseInventoryInquiryDetail(WarehouseInventoryReportDamageChild damageChild){ public WarehouseInventoryInquiryDetail createWarehouseInventoryInquiryDetail(WarehouseInventoryReportDamageChild damageChild){
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(damageChild.getMaterialNo()); inquiryDetail.setMaterialNo(damageChild.getMaterialNo());
inquiryDetail.setMaterialName(damageChild.getMaterialName()); // inquiryDetail.setMaterialName(damageChild.getMaterialName());
inquiryDetail.setMaterialBrand(damageChild.getMaterialBrand()); // inquiryDetail.setMaterialBrand(damageChild.getMaterialBrand());
inquiryDetail.setMaterialPhotourl(damageChild.getMaterialPhotourl()); // inquiryDetail.setMaterialPhotourl(damageChild.getMaterialPhotourl());
inquiryDetail.setMaterialDescribe(damageChild.getMaterialDescribe()); // inquiryDetail.setMaterialDescribe(damageChild.getMaterialDescribe());
inquiryDetail.setMaterialUnit(damageChild.getMaterialUnit()); // inquiryDetail.setMaterialUnit(damageChild.getMaterialUnit());
inquiryDetail.setMaterialType(damageChild.getMaterialType()); // inquiryDetail.setMaterialType(damageChild.getMaterialType());
inquiryDetail.setInventoryIncreaseDecrease("0"); inquiryDetail.setInventoryIncreaseDecrease("0");
BigDecimal decreaseNum = damageChild.getActualScrapQuantity(); Integer decreaseNum = damageChild.getActualScrapQuantity();
inquiryDetail.setAvailableStockNum(decreaseNum); // inquiryDetail.setAvailableStockNum(decreaseNum);
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate());
inquiryDetail.setCreateBy(ShiroUtils.getLoginName()); inquiryDetail.setCreateBy(ShiroUtils.getLoginName());
inquiryDetail.setCreateTime(DateUtils.getNowDate()); inquiryDetail.setCreateTime(DateUtils.getNowDate());
@ -283,13 +283,13 @@ public class WarehouseInventoryReportDamageServiceImpl implements IWarehouseInve
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
warehouseInventoryReportDamage.setUpdateBy(loginName); warehouseInventoryReportDamage.setUpdateBy(loginName);
warehouseInventoryReportDamage.setUpdateTime(DateUtils.getNowDate()); warehouseInventoryReportDamage.setUpdateTime(DateUtils.getNowDate());
BigDecimal sumTotal = BigDecimal.ZERO; Integer sumTotal = 0;
if(StringUtils.isNotEmpty(warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList())){ if(StringUtils.isNotEmpty(warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList())){
//清除现在的子表信息 //清除现在的子表信息
warehouseInventoryReportDamageChildService.deleteWarehouseInventoryReportDamageChildByCode(warehouseInventoryReportDamage.getReportDamageCode()); warehouseInventoryReportDamageChildService.deleteWarehouseInventoryReportDamageChildByCode(warehouseInventoryReportDamage.getReportDamageCode());
for(WarehouseInventoryReportDamageChild warehouseInventoryReportDamageChild:warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList()){ for(WarehouseInventoryReportDamageChild warehouseInventoryReportDamageChild:warehouseInventoryReportDamage.getWarehouseInventoryReportDamageChildList()){
//子表数据不为空,则插入子表数据 //子表数据不为空,则插入子表数据
sumTotal = sumTotal.add(warehouseInventoryReportDamageChild.getActualScrapQuantity()); sumTotal += warehouseInventoryReportDamageChild.getActualScrapQuantity();
warehouseInventoryReportDamageChild.setMakeNo(warehouseInventoryReportDamage.getMakeNo()); warehouseInventoryReportDamageChild.setMakeNo(warehouseInventoryReportDamage.getMakeNo());
warehouseInventoryReportDamageChild.setReportDamageCode(warehouseInventoryReportDamage.getReportDamageCode()); warehouseInventoryReportDamageChild.setReportDamageCode(warehouseInventoryReportDamage.getReportDamageCode());
warehouseInventoryReportDamageChild.setCreateTime(DateUtils.getNowDate()); warehouseInventoryReportDamageChild.setCreateTime(DateUtils.getNowDate());

25
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){ public int updateWarehouseInventoryInquiry(WarehouseOutOrderDetail outOrderDetail,WarehouseInventoryInquiry inventoryInquiry){
// 更新可用库存数 // 更新可用库存数
BigDecimal stockNum = inventoryInquiry.getAvailableStockNum(); Integer stockNum = inventoryInquiry.getAvailableStockNum();
if((stockNum.compareTo(BigDecimal.ZERO) <= 0)){ if(stockNum <= 0){
throw new BusinessException("出库失败!该物料无可用库存数"); throw new BusinessException("出库失败!该物料无可用库存数");
} }
int outNum = outOrderDetail.getActualOutOrderSum(); int outNum = outOrderDetail.getActualOutOrderSum();
stockNum = stockNum.subtract(BigDecimal.valueOf(outNum)); stockNum -= outNum;
inventoryInquiry.setAvailableStockNum(stockNum); inventoryInquiry.setAvailableStockNum(stockNum);
// 更新使用数 // 更新使用数
BigDecimal useNum = inventoryInquiry.getUseNum(); Integer useNum = inventoryInquiry.getUseNum();
useNum = useNum.add(BigDecimal.valueOf(outNum)); useNum += outNum;
inventoryInquiry.setUseNum(useNum); inventoryInquiry.setUseNum(useNum);
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
@ -591,17 +591,12 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
public WarehouseInventoryInquiryDetail createWarehouseInventoryInquiryDetail(WarehouseOutOrderDetail outOrderDetail){ public WarehouseInventoryInquiryDetail createWarehouseInventoryInquiryDetail(WarehouseOutOrderDetail outOrderDetail){
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(outOrderDetail.getMaterialNo()); 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"); inquiryDetail.setInventoryIncreaseDecrease("0");
int decreaseNum = outOrderDetail.getActualOutOrderSum(); int decreaseNum = outOrderDetail.getActualOutOrderSum();
BigDecimal useNum = BigDecimal.valueOf(decreaseNum); BigDecimal useNum = BigDecimal.valueOf(decreaseNum);
inquiryDetail.setUseNum(useNum); // inquiryDetail.setUseNum(useNum);
inquiryDetail.setAvailableStockNum(useNum); // inquiryDetail.setAvailableStockNum(useNum);
inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate());
inquiryDetail.setCreateBy(ShiroUtils.getLoginName()); inquiryDetail.setCreateBy(ShiroUtils.getLoginName());
inquiryDetail.setCreateTime(DateUtils.getNowDate()); inquiryDetail.setCreateTime(DateUtils.getNowDate());
@ -1361,7 +1356,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
throw new BusinessException("更新库存查询数据失败"); throw new BusinessException("更新库存查询数据失败");
} }
WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(warehouseOutOrderDetail); WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(warehouseOutOrderDetail);
inquiryDetail.setInventoryHistoricalType("5");//委外领料 // inquiryDetail.setInventoryHistoricalType("5");//委外领料
int insertInquiryResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); int insertInquiryResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
if (insertInquiryResult <= 0){ if (insertInquiryResult <= 0){
throw new BusinessException("新增库存历史数据失败"); throw new BusinessException("新增库存历史数据失败");
@ -1460,7 +1455,7 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
throw new BusinessException("更新库存查询数据失败"); throw new BusinessException("更新库存查询数据失败");
} }
WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(warehouseOutOrderDetail); WarehouseInventoryInquiryDetail inquiryDetail = createWarehouseInventoryInquiryDetail(warehouseOutOrderDetail);
inquiryDetail.setInventoryHistoricalType("6");//员工领料 // inquiryDetail.setInventoryHistoricalType("6");//员工领料
int insertInquiryResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); int insertInquiryResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
if (insertInquiryResult <= 0){ if (insertInquiryResult <= 0){
throw new BusinessException("新增库存历史数据失败"); throw new BusinessException("新增库存历史数据失败");

54
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(); int storageNum = warehouseStorageOrderDetail.getStorageNum();
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum); inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum);
inquiryDetail.setInventoryHistoricalType("0"); // inquiryDetail.setInventoryHistoricalType("0");
// if (correlationCode.startsWith("QG")) { // if (correlationCode.startsWith("QG")) {
//// 有无归属分类 //// 有无归属分类
// } // }
@ -734,21 +734,21 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
}else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录 }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail);
inquiryDetail.setInventoryHistoricalType("1"); // inquiryDetail.setInventoryHistoricalType("1");
inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
}else if(warehouseStorageType.equals("4")){//新增委外入库库存历史记录 }else if(warehouseStorageType.equals("4")){//新增委外入库库存历史记录
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail);
inquiryDetail.setInventoryHistoricalType("2"); // inquiryDetail.setInventoryHistoricalType("2");
inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail);
} }
//查询该物料报损数,更新库存查询报损数 //查询该物料报损数,更新库存查询报损数
List<WarehouseInventoryReportDamageChild> damageChildren = damageChildMapper.selectWarehouseInventoryReportDamageChildByMaterialNo(materialNo); List<WarehouseInventoryReportDamageChild> damageChildren = damageChildMapper.selectWarehouseInventoryReportDamageChildByMaterialNo(materialNo);
BigDecimal scrapSum = BigDecimal.ZERO; Integer scrapSum = 0;
if(StringUtils.isNotEmpty(damageChildren)){ if(StringUtils.isNotEmpty(damageChildren)){
for (WarehouseInventoryReportDamageChild damageChild:damageChildren) { for (WarehouseInventoryReportDamageChild damageChild:damageChildren) {
BigDecimal scrapNum = damageChild.getActualScrapQuantity(); Integer scrapNum = damageChild.getActualScrapQuantity();
scrapSum = scrapSum.add(scrapNum); scrapSum += scrapSum;
} }
} }
// 存在库存查询记录,更新可用库存数 // 存在库存查询记录,更新可用库存数
@ -756,14 +756,14 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo);
// 增加可用库存数 // 增加可用库存数
Integer storage = warehouseStorageOrderDetail.getStorageNum(); Integer storage = warehouseStorageOrderDetail.getStorageNum();
BigDecimal storagenum = BigDecimal.valueOf(storage); Integer storagenum = storage;
BigDecimal avaliableStorage = inventoryInquiry.getAvailableStockNum(); Integer avaliableStorage = inventoryInquiry.getAvailableStockNum();
avaliableStorage = avaliableStorage.add(storagenum); avaliableStorage += storagenum;
inventoryInquiry.setAvailableStockNum(avaliableStorage); inventoryInquiry.setAvailableStockNum(avaliableStorage);
inventoryInquiry.setReportDamageNum(scrapSum); inventoryInquiry.setReportDamageNum(scrapSum);
// 设置历史总数 // 设置历史总数
BigDecimal historicalTotal = inventoryInquiry.getHistoricalTotal(); Integer historicalTotal = inventoryInquiry.getHistoricalTotal();
historicalTotal = historicalTotal.add(storagenum); historicalTotal += storagenum;
inventoryInquiry.setHistoricalTotal(historicalTotal); inventoryInquiry.setHistoricalTotal(historicalTotal);
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
@ -779,7 +779,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType());
inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod());
Integer storage = warehouseStorageOrderDetail.getStorageNum(); Integer storage = warehouseStorageOrderDetail.getStorageNum();
BigDecimal storagenum = BigDecimal.valueOf(storage); Integer storagenum = storage;
// 设置历史总数 // 设置历史总数
inventoryInquiry.setHistoricalTotal(storagenum); inventoryInquiry.setHistoricalTotal(storagenum);
inventoryInquiry.setAvailableStockNum(storagenum); inventoryInquiry.setAvailableStockNum(storagenum);
@ -799,12 +799,12 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
public WarehouseInventoryInquiryDetail generateInquiryDetailByPurchaseChild(PurchaseOrderChild child,int storageNum){ public WarehouseInventoryInquiryDetail generateInquiryDetailByPurchaseChild(PurchaseOrderChild child,int storageNum){
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(child.getMaterialNo()); inquiryDetail.setMaterialNo(child.getMaterialNo());
inquiryDetail.setMaterialName(child.getMaterialName()); // inquiryDetail.setMaterialName(child.getMaterialName());
inquiryDetail.setMaterialBrand(child.getMaterialBrand()); // inquiryDetail.setMaterialBrand(child.getMaterialBrand());
inquiryDetail.setMaterialPhotourl(child.getMaterialPhotourl()); // inquiryDetail.setMaterialPhotourl(child.getMaterialPhotourl());
inquiryDetail.setMaterialDescribe(child.getMaterialDescribe()); // inquiryDetail.setMaterialDescribe(child.getMaterialDescribe());
inquiryDetail.setMaterialType(child.getMaterialType()); // inquiryDetail.setMaterialType(child.getMaterialType());
inquiryDetail.setMaterialUnit(child.getMaterialUnit()); // inquiryDetail.setMaterialUnit(child.getMaterialUnit());
// inquiryDetail.setInventoryAttributionCode(child.getPurchasePlanCorrelationCode()); // inquiryDetail.setInventoryAttributionCode(child.getPurchasePlanCorrelationCode());
// inquiryDetail.setSupplierCode(child.()); // inquiryDetail.setSupplierCode(child.());
// inquiryDetail.setSupplierName(child.getSupplierName()); // inquiryDetail.setSupplierName(child.getSupplierName());
@ -812,7 +812,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
// inquiryDetail.setPurchaseOrderCode(child.getPurchaseOrderCode()); // inquiryDetail.setPurchaseOrderCode(child.getPurchaseOrderCode());
// 库存归属单号 // 库存归属单号
BigDecimal realStorageNum = BigDecimal.valueOf(storageNum); BigDecimal realStorageNum = BigDecimal.valueOf(storageNum);
inquiryDetail.setAvailableStockNum(realStorageNum); // inquiryDetail.setAvailableStockNum(realStorageNum);
// inquiryDetail.setPurchasePriceIncludesTax(child.getMaterialRealRmbSum()); // inquiryDetail.setPurchasePriceIncludesTax(child.getMaterialRealRmbSum());
// inquiryDetail.setPurchasePriceExcludingTax(child.getMaterialRealNoRmbSum()); // inquiryDetail.setPurchasePriceExcludingTax(child.getMaterialRealNoRmbSum());
inquiryDetail.setInventoryIncreaseDecrease("1"); inquiryDetail.setInventoryIncreaseDecrease("1");
@ -826,18 +826,18 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
public WarehouseInventoryInquiryDetail createMakeInOrderInquiryDetail(WarehouseStorageOrderDetail warehouseStorageOrderDetail){ public WarehouseInventoryInquiryDetail createMakeInOrderInquiryDetail(WarehouseStorageOrderDetail warehouseStorageOrderDetail){
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail.setMaterialNo(warehouseStorageOrderDetail.getMaterialNo()); inquiryDetail.setMaterialNo(warehouseStorageOrderDetail.getMaterialNo());
inquiryDetail.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); // inquiryDetail.setMaterialName(warehouseStorageOrderDetail.getMaterialName());
inquiryDetail.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); // inquiryDetail.setMaterialType(warehouseStorageOrderDetail.getMaterialType());
inquiryDetail.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); // inquiryDetail.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl());
inquiryDetail.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); // inquiryDetail.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit());
inquiryDetail.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); // inquiryDetail.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe());
inquiryDetail.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); // inquiryDetail.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand());
inquiryDetail.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); // inquiryDetail.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod());
BigDecimal storagenum = BigDecimal.ZERO; BigDecimal storagenum = BigDecimal.ZERO;
if(warehouseStorageOrderDetail.getStorageNum()!=null){ if(warehouseStorageOrderDetail.getStorageNum()!=null){
storagenum = BigDecimal.valueOf(warehouseStorageOrderDetail.getStorageNum()); storagenum = BigDecimal.valueOf(warehouseStorageOrderDetail.getStorageNum());
} }
inquiryDetail.setAvailableStockNum(storagenum); // inquiryDetail.setAvailableStockNum(storagenum);
inquiryDetail.setInventoryIncreaseDecrease("1"); inquiryDetail.setInventoryIncreaseDecrease("1");
inquiryDetail.setCreateBy(ShiroUtils.getLoginName()); inquiryDetail.setCreateBy(ShiroUtils.getLoginName());
inquiryDetail.setCreateTime(DateUtils.getNowDate()); inquiryDetail.setCreateTime(DateUtils.getNowDate());

8
ruoyi-admin/src/main/resources/mapper/sales/SalesEstimateDetailMapper.xml

@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="noTaxMaterialCosts" column="no_tax_material_costs" /> <result property="noTaxMaterialCosts" column="no_tax_material_costs" />
<result property="noTaxOperatingCosts" column="no_tax_operating_costs" /> <result property="noTaxOperatingCosts" column="no_tax_operating_costs" />
<result property="taxOperatingCosts" column="tax_operating_costs" /> <result property="taxOperatingCosts" column="tax_operating_costs" />
<result property="totalOperatingCosts" column="total_operating_costs" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
@ -45,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectSalesEstimateDetailVo"> <sql id="selectSalesEstimateDetailVo">
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
</sql> </sql>
<select id="selectSalesEstimateDetailList" parameterType="SalesEstimateDetail" resultMap="SalesEstimateDetailResult"> <select id="selectSalesEstimateDetailList" parameterType="SalesEstimateDetail" resultMap="SalesEstimateDetailResult">
@ -102,6 +103,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noTaxMaterialCosts != null">no_tax_material_costs,</if> <if test="noTaxMaterialCosts != null">no_tax_material_costs,</if>
<if test="noTaxOperatingCosts != null">no_tax_operating_costs,</if> <if test="noTaxOperatingCosts != null">no_tax_operating_costs,</if>
<if test="taxOperatingCosts != null">tax_operating_costs,</if> <if test="taxOperatingCosts != null">tax_operating_costs,</if>
<if test="totalOperatingCosts != null">total_operating_costs,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
@ -140,6 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noTaxMaterialCosts != null">#{noTaxMaterialCosts},</if> <if test="noTaxMaterialCosts != null">#{noTaxMaterialCosts},</if>
<if test="noTaxOperatingCosts != null">#{noTaxOperatingCosts},</if> <if test="noTaxOperatingCosts != null">#{noTaxOperatingCosts},</if>
<if test="taxOperatingCosts != null">#{taxOperatingCosts},</if> <if test="taxOperatingCosts != null">#{taxOperatingCosts},</if>
<if test="totalOperatingCosts != null">#{totalOperatingCosts},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
@ -184,6 +187,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
no_tax_material_costs, no_tax_material_costs,
no_tax_operating_costs, no_tax_operating_costs,
tax_operating_costs, tax_operating_costs,
total_operating_costs,
create_by, create_by,
create_time create_time
) )
@ -220,6 +224,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item.noTaxMaterialCosts}, #{item.noTaxMaterialCosts},
#{item.noTaxOperatingCosts}, #{item.noTaxOperatingCosts},
#{item.taxOperatingCosts}, #{item.taxOperatingCosts},
#{item.totalOperatingCosts},
#{item.createBy}, #{item.createBy},
#{item.createTime} #{item.createTime}
</foreach> </foreach>
@ -263,6 +268,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="noTaxMaterialCosts != null">no_tax_material_costs = #{noTaxMaterialCosts},</if> <if test="noTaxMaterialCosts != null">no_tax_material_costs = #{noTaxMaterialCosts},</if>
<if test="noTaxOperatingCosts != null">no_tax_operating_costs = #{noTaxOperatingCosts},</if> <if test="noTaxOperatingCosts != null">no_tax_operating_costs = #{noTaxOperatingCosts},</if>
<if test="taxOperatingCosts != null">tax_operating_costs = #{taxOperatingCosts},</if> <if test="taxOperatingCosts != null">tax_operating_costs = #{taxOperatingCosts},</if>
<if test="totalOperatingCosts != null">total_operating_costs = #{totalOperatingCosts},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>

8
ruoyi-admin/src/main/resources/mapper/system/SysMakeOrderMapper.xml

@ -302,4 +302,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE wso.warehouse_storage_code = #{warehouseStorageCode} WHERE wso.warehouse_storage_code = #{warehouseStorageCode}
</select> </select>
<select id="selectMakeOrderListBySalesOrderCodes" parameterType="String" resultMap="SysMakeOrderResult">
<include refid="selectSysMakeOrderVo"/>
where a.saleNo in
<foreach item="saleNo" collection="list" open="(" separator="," close=")">
#{saleNo}
</foreach>
</select>
</mapper> </mapper>

132
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml

@ -7,33 +7,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="WarehouseInventoryInquiryDetail" id="WarehouseInventoryInquiryDetailResult"> <resultMap type="WarehouseInventoryInquiryDetail" id="WarehouseInventoryInquiryDetailResult">
<result property="inventoryInquiryDetailId" column="inventory_inquiry_detail_id" /> <result property="inventoryInquiryDetailId" column="inventory_inquiry_detail_id" />
<result property="materialNo" column="material_no" /> <result property="materialNo" column="material_no" />
<result property="materialName" column="material_name" /> <result property="correlationCode" column="correlation_code" />
<result property="materialType" column="material_type" /> <result property="inquiryBusinessType" column="inquiry_business_type" />
<result property="materialPhotourl" column="material_photoUrl" /> <result property="inquiryOrderType" column="inquiry_order_type" />
<result property="materialBrand" column="material_brand" /> <result property="inquiryWarehouseType" column="inquiry_warehouse_type" />
<result property="materialUnit" column="material_unit" /> <result property="shippingDeviceId" column="shipping_device_id" />
<result property="materialDescribe" column="material_describe" />
<result property="materialProcessMethod" column="material_process_method" />
<result property="materialModel" column="material_model" />
<result property="materialSpecification" column="material_specification" />
<result property="historicalTotal" column="historical_total" />
<result property="availableStockNum" column="available_stock_num" />
<result property="attributionAvailableStockNum" column="attribution_available_stock_num" />
<result property="noattributionAvailableStockNum" column="noattribution_available_stock_num" />
<result property="useNum" column="use_num" />
<result property="reportDamageNum" column="report_damage_num" />
<result property="materialUseStatus" column="material_use_status" />
<result property="inventoryAttributionCode" column="inventory_attribution_code" />
<result property="inventoryUseCode" column="inventory_use_code" />
<result property="inventoryHistoricalTime" column="inventory_historical_time" /> <result property="inventoryHistoricalTime" column="inventory_historical_time" />
<result property="inventoryHistoricalType" column="inventory_historical_type" />
<result property="inventoryIncreaseDecrease" column="inventory_increase_decrease" /> <result property="inventoryIncreaseDecrease" column="inventory_increase_decrease" />
<result property="inventoryHistoricalNum" column="inventory_historical_num" /> <result property="increaseDecreaseNum" column="increase_decrease_num" />
<result property="purchasePriceExcludingTax" column="purchase_price_excluding_tax" />
<result property="purchasePriceIncludesTax" column="purchase_price_includes_tax" />
<result property="purchaseOrderCode" column="purchase_order_code" />
<result property="supplierCode" column="supplier_code" />
<result property="supplierName" column="supplier_name" />
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -42,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectWarehouseInventoryInquiryDetailVo"> <sql id="selectWarehouseInventoryInquiryDetailVo">
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
</sql> </sql>
<select id="selectWarehouseInventoryInquiryDetailList" parameterType="WarehouseInventoryInquiryDetail" resultMap="WarehouseInventoryInquiryDetailResult"> <select id="selectWarehouseInventoryInquiryDetailList" parameterType="WarehouseInventoryInquiryDetail" resultMap="WarehouseInventoryInquiryDetailResult">
@ -56,43 +37,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where inventory_inquiry_detail_id = #{inventoryInquiryDetailId} where inventory_inquiry_detail_id = #{inventoryInquiryDetailId}
</select> </select>
<select id="selectWarehouseInventoryInquiryDetailByMaterialNo" parameterType="String" resultMap="WarehouseInventoryInquiryDetailResult">
<include refid="selectWarehouseInventoryInquiryDetailVo"/>
where material_no = #{materialNo}
</select>
<insert id="insertWarehouseInventoryInquiryDetail" parameterType="WarehouseInventoryInquiryDetail" useGeneratedKeys="true" keyProperty="inventoryInquiryDetailId"> <insert id="insertWarehouseInventoryInquiryDetail" parameterType="WarehouseInventoryInquiryDetail" useGeneratedKeys="true" keyProperty="inventoryInquiryDetailId">
insert into warehouse_inventory_inquiry_detail insert into warehouse_inventory_inquiry_detail
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="materialNo != null">material_no,</if> <if test="materialNo != null">material_no,</if>
<if test="materialName != null">material_name,</if> <if test="correlationCode != null">correlation_code,</if>
<if test="materialType != null">material_type,</if> <if test="inquiryBusinessType != null">inquiry_business_type,</if>
<if test="materialPhotourl != null">material_photoUrl,</if> <if test="inquiryOrderType != null">inquiry_order_type,</if>
<if test="materialBrand != null">material_brand,</if> <if test="inquiryWarehouseType != null">inquiry_warehouse_type,</if>
<if test="materialUnit != null">material_unit,</if> <if test="shippingDeviceId != null">shipping_device_id,</if>
<if test="materialDescribe != null">material_describe,</if>
<if test="materialProcessMethod != null">material_process_method,</if>
<if test="materialModel != null">material_model,</if>
<if test="materialSpecification != null">material_specification,</if>
<if test="historicalTotal != null">historical_total,</if>
<if test="availableStockNum != null">available_stock_num,</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num,</if>
<if test="noattributionAvailableStockNum != null">noattribution_available_stock_num,</if>
<if test="useNum != null">use_num,</if>
<if test="reportDamageNum != null">report_damage_num,</if>
<if test="materialUseStatus != null">material_use_status,</if>
<if test="inventoryAttributionCode != null">inventory_attribution_code,</if>
<if test="inventoryUseCode != null">inventory_use_code,</if>
<if test="inventoryHistoricalTime != null">inventory_historical_time,</if> <if test="inventoryHistoricalTime != null">inventory_historical_time,</if>
<if test="inventoryHistoricalType != null">inventory_historical_type,</if>
<if test="inventoryIncreaseDecrease != null">inventory_increase_decrease,</if> <if test="inventoryIncreaseDecrease != null">inventory_increase_decrease,</if>
<if test="inventoryHistoricalNum != null">inventory_historical_num,</if> <if test="increaseDecreaseNum != null">increase_decrease_num,</if>
<if test="purchasePriceExcludingTax != null">purchase_price_excluding_tax,</if>
<if test="purchasePriceIncludesTax != null">purchase_price_includes_tax,</if>
<if test="purchaseOrderCode != null">purchase_order_code,</if>
<if test="supplierCode != null">supplier_code,</if>
<if test="supplierName != null">supplier_name,</if>
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
@ -101,33 +57,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="materialNo != null">#{materialNo},</if> <if test="materialNo != null">#{materialNo},</if>
<if test="materialName != null">#{materialName},</if> <if test="correlationCode != null">#{correlationCode},</if>
<if test="materialType != null">#{materialType},</if> <if test="inquiryBusinessType != null">#{inquiryBusinessType},</if>
<if test="materialPhotourl != null">#{materialPhotourl},</if> <if test="inquiryOrderType != null">#{inquiryOrderType},</if>
<if test="materialBrand != null">#{materialBrand},</if> <if test="inquiryWarehouseType != null">#{inquiryWarehouseType},</if>
<if test="materialUnit != null">#{materialUnit},</if> <if test="shippingDeviceId != null">#{shippingDeviceId},</if>
<if test="materialDescribe != null">#{materialDescribe},</if>
<if test="materialProcessMethod != null">#{materialProcessMethod},</if>
<if test="materialModel != null">#{materialModel},</if>
<if test="materialSpecification != null">#{materialSpecification},</if>
<if test="historicalTotal != null">#{historicalTotal},</if>
<if test="availableStockNum != null">#{availableStockNum},</if>
<if test="attributionAvailableStockNum != null">#{attributionAvailableStockNum},</if>
<if test="noattributionAvailableStockNum != null">#{noattributionAvailableStockNum},</if>
<if test="useNum != null">#{useNum},</if>
<if test="reportDamageNum != null">#{reportDamageNum},</if>
<if test="materialUseStatus != null">#{materialUseStatus},</if>
<if test="inventoryAttributionCode != null">#{inventoryAttributionCode},</if>
<if test="inventoryUseCode != null">#{inventoryUseCode},</if>
<if test="inventoryHistoricalTime != null">#{inventoryHistoricalTime},</if> <if test="inventoryHistoricalTime != null">#{inventoryHistoricalTime},</if>
<if test="inventoryHistoricalType != null">#{inventoryHistoricalType},</if>
<if test="inventoryIncreaseDecrease != null">#{inventoryIncreaseDecrease},</if> <if test="inventoryIncreaseDecrease != null">#{inventoryIncreaseDecrease},</if>
<if test="inventoryHistoricalNum != null">#{inventoryHistoricalNum},</if> <if test="increaseDecreaseNum != null">#{increaseDecreaseNum},</if>
<if test="purchasePriceExcludingTax != null">#{purchasePriceExcludingTax},</if>
<if test="purchasePriceIncludesTax != null">#{purchasePriceIncludesTax},</if>
<if test="purchaseOrderCode != null">#{purchaseOrderCode},</if>
<if test="supplierCode != null">#{supplierCode},</if>
<if test="supplierName != null">#{supplierName},</if>
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
@ -140,33 +77,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update warehouse_inventory_inquiry_detail update warehouse_inventory_inquiry_detail
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="materialNo != null">material_no = #{materialNo},</if> <if test="materialNo != null">material_no = #{materialNo},</if>
<if test="materialName != null">material_name = #{materialName},</if> <if test="correlationCode != null">correlation_code = #{correlationCode},</if>
<if test="materialType != null">material_type = #{materialType},</if> <if test="inquiryBusinessType != null">inquiry_business_type = #{inquiryBusinessType},</if>
<if test="materialPhotourl != null">material_photoUrl = #{materialPhotourl},</if> <if test="inquiryOrderType != null">inquiry_order_type = #{inquiryOrderType},</if>
<if test="materialBrand != null">material_brand = #{materialBrand},</if> <if test="inquiryWarehouseType != null">inquiry_warehouse_type = #{inquiryWarehouseType},</if>
<if test="materialUnit != null">material_unit = #{materialUnit},</if> <if test="shippingDeviceId != null">shipping_device_id = #{shippingDeviceId},</if>
<if test="materialDescribe != null">material_describe = #{materialDescribe},</if>
<if test="materialProcessMethod != null">material_process_method = #{materialProcessMethod},</if>
<if test="materialModel != null">material_model = #{materialModel},</if>
<if test="materialSpecification != null">material_specification = #{materialSpecification},</if>
<if test="historicalTotal != null">historical_total = #{historicalTotal},</if>
<if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num = #{attributionAvailableStockNum},</if>
<if test="noattributionAvailableStockNum != null">noattribution_available_stock_num = #{noattributionAvailableStockNum},</if>
<if test="useNum != null">use_num = #{useNum},</if>
<if test="reportDamageNum != null">report_damage_num = #{reportDamageNum},</if>
<if test="materialUseStatus != null">material_use_status = #{materialUseStatus},</if>
<if test="inventoryAttributionCode != null">inventory_attribution_code = #{inventoryAttributionCode},</if>
<if test="inventoryUseCode != null">inventory_use_code = #{inventoryUseCode},</if>
<if test="inventoryHistoricalTime != null">inventory_historical_time = #{inventoryHistoricalTime},</if> <if test="inventoryHistoricalTime != null">inventory_historical_time = #{inventoryHistoricalTime},</if>
<if test="inventoryHistoricalType != null">inventory_historical_type = #{inventoryHistoricalType},</if>
<if test="inventoryIncreaseDecrease != null">inventory_increase_decrease = #{inventoryIncreaseDecrease},</if> <if test="inventoryIncreaseDecrease != null">inventory_increase_decrease = #{inventoryIncreaseDecrease},</if>
<if test="inventoryHistoricalNum != null">inventory_historical_num = #{inventoryHistoricalNum},</if> <if test="increaseDecreaseNum != null">increase_decrease_num = #{increaseDecreaseNum},</if>
<if test="purchasePriceExcludingTax != null">purchase_price_excluding_tax = #{purchasePriceExcludingTax},</if>
<if test="purchasePriceIncludesTax != null">purchase_price_includes_tax = #{purchasePriceIncludesTax},</if>
<if test="purchaseOrderCode != null">purchase_order_code = #{purchaseOrderCode},</if>
<if test="supplierCode != null">supplier_code = #{supplierCode},</if>
<if test="supplierName != null">supplier_name = #{supplierName},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>

18
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml

@ -18,6 +18,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="materialSpecification" column="material_specification" /> <result property="materialSpecification" column="material_specification" />
<result property="warehouseDept" column="warehouse_dept" /> <result property="warehouseDept" column="warehouse_dept" />
<result property="historicalTotal" column="historical_total" /> <result property="historicalTotal" column="historical_total" />
<result property="sharedAvailableStockNum" column="shared_available_stock_num"/>
<result property="lockStockNum" column="lock_stock_num" />
<result property="fixedAvailableStockNum" column="fixed_available_stock_num" />
<result property="stockLossesNum" column="stock_losses_num" />
<result property="availableStockNum" column="available_stock_num" /> <result property="availableStockNum" column="available_stock_num" />
<result property="attributionAvailableStockNum" column="attribution_available_stock_num" /> <result property="attributionAvailableStockNum" column="attribution_available_stock_num" />
<result property="noattributionAvailableStockNum" column="noattribution_available_stock_num" /> <result property="noattributionAvailableStockNum" column="noattribution_available_stock_num" />
@ -35,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select inventory_inquiry_id, material_no, material_name, material_type, select inventory_inquiry_id, material_no, material_name, material_type,
material_photoUrl, material_brand, material_unit, material_describe, material_photoUrl, material_brand, material_unit, material_describe,
material_process_method, material_model, material_specification,warehouse_dept, 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, noattribution_available_stock_num, use_num, report_damage_num, material_use_status,
remark, create_time, create_by, update_by, update_time remark, create_time, create_by, update_by, update_time
from warehouse_inventory_inquiry from warehouse_inventory_inquiry
@ -83,6 +87,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialSpecification != null">material_specification,</if> <if test="materialSpecification != null">material_specification,</if>
<if test="warehouseDept != null">warehouse_dept,</if> <if test="warehouseDept != null">warehouse_dept,</if>
<if test="historicalTotal != null">historical_total,</if> <if test="historicalTotal != null">historical_total,</if>
<if test="sharedAvailableStockNum != null">shared_available_stock_num,</if>
<if test="lockStockNum != null">lock_stock_num,</if>
<if test="fixedAvailableStockNum != null">fixed_available_stock_num,</if>
<if test="stockLossesNum != null">stock_losses_num,</if>
<if test="availableStockNum != null">available_stock_num,</if> <if test="availableStockNum != null">available_stock_num,</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num,</if> <if test="attributionAvailableStockNum != null">attribution_available_stock_num,</if>
<if test="noattributionAvailableStockNum != null">noattribution_available_stock_num,</if> <if test="noattributionAvailableStockNum != null">noattribution_available_stock_num,</if>
@ -108,6 +116,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialSpecification != null">#{materialSpecification},</if> <if test="materialSpecification != null">#{materialSpecification},</if>
<if test="warehouseDept != null">#{warehouseDept},</if> <if test="warehouseDept != null">#{warehouseDept},</if>
<if test="historicalTotal != null">#{historicalTotal},</if> <if test="historicalTotal != null">#{historicalTotal},</if>
<if test="sharedAvailableStockNum != null">#{sharedAvailableStockNum},</if>
<if test="lockStockNum != null">#{lockStockNum},</if>
<if test="fixedAvailableStockNum != null">#{fixedAvailableStockNum},</if>
<if test="stockLossesNum != null">#{stockLossesNum},</if>
<if test="availableStockNum != null">#{availableStockNum},</if> <if test="availableStockNum != null">#{availableStockNum},</if>
<if test="attributionAvailableStockNum != null">#{attributionAvailableStockNum},</if> <if test="attributionAvailableStockNum != null">#{attributionAvailableStockNum},</if>
<if test="noattributionAvailableStockNum != null">#{noattributionAvailableStockNum},</if> <if test="noattributionAvailableStockNum != null">#{noattributionAvailableStockNum},</if>
@ -137,6 +149,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialSpecification != null">material_specification = #{materialSpecification},</if> <if test="materialSpecification != null">material_specification = #{materialSpecification},</if>
<if test="warehouseDept != null">warehouse_dept = #{warehouseDept},</if> <if test="warehouseDept != null">warehouse_dept = #{warehouseDept},</if>
<if test="historicalTotal != null">historical_total = #{historicalTotal},</if> <if test="historicalTotal != null">historical_total = #{historicalTotal},</if>
<if test="sharedAvailableStockNum != null">shared_available_stock_num = #{sharedAvailableStockNum},</if>
<if test="lockStockNum != null">lock_stock_num = #{lockStockNum},</if>
<if test="fixedAvailableStockNum != null">fixed_available_stock_num = #{fixedAvailableStockNum},</if>
<if test="stockLossesNum != null">stock_losses_num = #{stockLossesNum},</if>
<if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if> <if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num = #{attributionAvailableStockNum},</if> <if test="attributionAvailableStockNum != null">attribution_available_stock_num = #{attributionAvailableStockNum},</if>
<if test="noattributionAvailableStockNum != null">noattribution_available_stock_num = #{noattributionAvailableStockNum},</if> <if test="noattributionAvailableStockNum != null">noattribution_available_stock_num = #{noattributionAvailableStockNum},</if>

BIN
ruoyi-admin/src/main/resources/static/attachments/出货通知单.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货单1.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货单2.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货发票1.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货发票2.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货箱单1.xlsx

Binary file not shown.

BIN
ruoyi-admin/src/main/resources/static/attachments/销售出货箱单2.xlsx

Binary file not shown.

201
ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAdd.html

@ -132,10 +132,7 @@
"noTaxDevelopCosts": null, // 初始化为 null 或 0 "noTaxDevelopCosts": null, // 初始化为 null 或 0
"noTaxShippingCosts": null, "noTaxShippingCosts": null,
"noTaxServiceCosts": null, "noTaxServiceCosts": null,
"noTaxLaborCosts": null, "totalOperatingCosts": null,
"noTaxPromotionalCosts": null,
"noTaxBusinessCosts": null,
"noTaxManagesCosts": null,
"noTaxMaterialCosts": null, "noTaxMaterialCosts": null,
"noTaxOperatingCosts": null, "noTaxOperatingCosts": null,
"taxOperatingCosts": null, "taxOperatingCosts": null,
@ -149,10 +146,7 @@
var noTaxDevelopCosts = $('#noTaxDevelopCosts' + index).val(); var noTaxDevelopCosts = $('#noTaxDevelopCosts' + index).val();
var noTaxShippingCosts = $('#noTaxShippingCosts' + index).val(); var noTaxShippingCosts = $('#noTaxShippingCosts' + index).val();
var noTaxServiceCosts = $('#noTaxServiceCosts' + index).val(); var noTaxServiceCosts = $('#noTaxServiceCosts' + index).val();
var noTaxLaborCosts = $('#noTaxLaborCosts' + index).val(); var totalOperatingCosts = $('#totalOperatingCosts' + index).val();
var noTaxPromotionalCosts = $('#noTaxPromotionalCosts' + index).val();
var noTaxBusinessCosts = $('#noTaxBusinessCosts' + index).val();
var noTaxManagesCosts = $('#noTaxManagesCosts' + index).val();
var noTaxMaterialCosts = $('#noTaxMaterialCosts' + index).val(); var noTaxMaterialCosts = $('#noTaxMaterialCosts' + index).val();
var noTaxOperatingCosts = $('#noTaxOperatingCosts' + index).val(); var noTaxOperatingCosts = $('#noTaxOperatingCosts' + index).val();
var taxOperatingCosts = $('#taxOperatingCosts' + index).val(); var taxOperatingCosts = $('#taxOperatingCosts' + index).val();
@ -174,39 +168,23 @@
hasError = true; hasError = true;
return; // 退出循环,阻止进一步处理 return; // 退出循环,阻止进一步处理
} }
if (!totalOperatingCosts && totalOperatingCosts !== '0') {
if (!noTaxLaborCosts && noTaxLaborCosts !== '0') { $.modal.alertWarning("不含税总经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的不含税总经营成本");
$.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) + " 行的管理成本");
hasError = true; hasError = true;
return; // 退出循环,阻止进一步处理 return; // 退出循环,阻止进一步处理
} }
if (!noTaxMaterialCosts && noTaxMaterialCosts !== '0') { if (!noTaxMaterialCosts && noTaxMaterialCosts !== '0') {
$.modal.alertWarning("物料成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的物料成本"); $.modal.alertWarning("不含税物料成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的不含税物料成本");
hasError = true; hasError = true;
return; // 退出循环,阻止进一步处理 return; // 退出循环,阻止进一步处理
} }
if (!noTaxOperatingCosts && noTaxOperatingCosts !== '0') { if (!noTaxOperatingCosts && noTaxOperatingCosts !== '0') {
$.modal.alertWarning("经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的经营成本"); $.modal.alertWarning("不含税经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的不含税经营成本");
hasError = true; hasError = true;
return; // 退出循环,阻止进一步处理 return; // 退出循环,阻止进一步处理
} }
if (!taxOperatingCosts && taxOperatingCosts !== '0') { if (!taxOperatingCosts && taxOperatingCosts !== '0') {
$.modal.alertWarning("税经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的税经营成本"); $.modal.alertWarning("含税经营成本不能为空,请填写第 " + (parseInt(index) + 1) + " 行的含税经营成本");
hasError = true; hasError = true;
return; // 退出循环,阻止进一步处理 return; // 退出循环,阻止进一步处理
} }
@ -220,10 +198,7 @@
estimateMaterialDataList[index].noTaxDevelopCosts = noTaxDevelopCosts; estimateMaterialDataList[index].noTaxDevelopCosts = noTaxDevelopCosts;
estimateMaterialDataList[index].noTaxShippingCosts = noTaxShippingCosts; estimateMaterialDataList[index].noTaxShippingCosts = noTaxShippingCosts;
estimateMaterialDataList[index].noTaxServiceCosts = noTaxServiceCosts; estimateMaterialDataList[index].noTaxServiceCosts = noTaxServiceCosts;
estimateMaterialDataList[index].noTaxLaborCosts = noTaxLaborCosts; estimateMaterialDataList[index].totalOperatingCosts = totalOperatingCosts;
estimateMaterialDataList[index].noTaxPromotionalCosts = noTaxPromotionalCosts;
estimateMaterialDataList[index].noTaxBusinessCosts = noTaxBusinessCosts;
estimateMaterialDataList[index].noTaxManagesCosts = noTaxManagesCosts;
estimateMaterialDataList[index].noTaxMaterialCosts = noTaxMaterialCosts; estimateMaterialDataList[index].noTaxMaterialCosts = noTaxMaterialCosts;
estimateMaterialDataList[index].noTaxOperatingCosts = noTaxOperatingCosts; estimateMaterialDataList[index].noTaxOperatingCosts = noTaxOperatingCosts;
estimateMaterialDataList[index].taxOperatingCosts = taxOperatingCosts; estimateMaterialDataList[index].taxOperatingCosts = taxOperatingCosts;
@ -489,8 +464,8 @@
var firstRow = data[0].rows[0]; var firstRow = data[0].rows[0];
// 初始化累积变量 // 初始化累积变量
let noTaxPurchaseRmb = 0; let noTaxPurchaseRmb = 0; //不含税采购总成本
let taxPurchaseRmb = 0; let taxPurchaseRmb = 0; //含税采购总成本
// 累加无税购买金额 // 累加无税购买金额
data[0].rows.forEach(function (row) { data[0].rows.forEach(function (row) {
@ -517,33 +492,34 @@
// 从 `salesEstimateDetailVo` 中获取其他成本信息 // 从 `salesEstimateDetailVo` 中获取其他成本信息
const { const {
noTaxLaborCosts = '', totalOperatingCosts = '', //上一年度的总经营不含税成本合计
noTaxPromotionalCosts = '', noTaxMaterialCosts = '' // 上一年度总物料不含税成本合计
noTaxBusinessCosts = '',
noTaxManagesCosts = '',
noTaxMaterialCosts = ''
} = salesEstimateDetailVo || {}; } = salesEstimateDetailVo || {};
// 计算不含税总经营成本
const noAllTaxOperatingCosts = (
parseFloat(noTaxLaborCosts) +
parseFloat(noTaxBusinessCosts) +
parseFloat(noTaxManagesCosts) +
parseFloat(noTaxPromotionalCosts)
).toFixed(2) || '';
// 计算含税总经营成本,假设增值税率为 13% // 计算上一年度含税总经营成本,假设增值税率为 13%
const allTaxOperatingCosts = ( const allTaxOperatingCosts = (
parseFloat(noAllTaxOperatingCosts) * 1.13 parseFloat(totalOperatingCosts) * 1.13
).toFixed(2) || ''; ).toFixed(2) || '';
//该料号的不含税经营成本
//上一年度总物料含税成本合计
const allTaxMaterialCosts = (
parseFloat(noTaxMaterialCosts) * 1.13
).toFixed(2) || '';
//该料号的不含税经营成本 (RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计
const noTaxOperatingCosts = ( const noTaxOperatingCosts = (
(noTaxPurchaseRmb/noTaxMaterialCosts) * noAllTaxOperatingCosts (noTaxPurchaseRmb/noTaxMaterialCosts) * totalOperatingCosts
).toFixed(2) || ''; ).toFixed(2) || '';
// 该料号的含税经营成本
// 该料号的含税经营成本 (RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
const taxOperatingCosts = ( const taxOperatingCosts = (
(taxPurchaseRmb/noTaxMaterialCosts) * allTaxOperatingCosts (taxPurchaseRmb/allTaxMaterialCosts) * allTaxOperatingCosts
).toFixed(2) || ''; ).toFixed(2) || '';
// 根据 `parentRow.profitRate` 设置利润率 // 根据 `parentRow.profitRate` 设置利润率
let profitRateKey = 'aprofitRate'; let profitRateKey = 'aprofitRate';
switch (parentRow.profitRate) { switch (parentRow.profitRate) {
@ -572,10 +548,7 @@
noTaxDevelopCosts, noTaxDevelopCosts,
noTaxShippingCosts, noTaxShippingCosts,
noTaxServiceCosts, noTaxServiceCosts,
noTaxLaborCosts, totalOperatingCosts,
noTaxPromotionalCosts,
noTaxBusinessCosts,
noTaxManagesCosts,
noTaxMaterialCosts, noTaxMaterialCosts,
noTaxOperatingCosts, noTaxOperatingCosts,
taxOperatingCosts, taxOperatingCosts,
@ -590,10 +563,7 @@
noTaxDevelopCosts: '', noTaxDevelopCosts: '',
noTaxShippingCosts: '', noTaxShippingCosts: '',
noTaxServiceCosts: '', noTaxServiceCosts: '',
noTaxLaborCosts: '', totalOperatingCosts: '',
noTaxPromotionalCosts: '',
noTaxBusinessCosts: '',
noTaxManagesCosts: '',
noTaxMaterialCosts: '', noTaxMaterialCosts: '',
noTaxOperatingCosts: '', noTaxOperatingCosts: '',
taxOperatingCosts: '', taxOperatingCosts: '',
@ -616,24 +586,12 @@
formHtml += '<label for="noTaxServiceCosts' + index + '">不含税服务成本(RMB):</label>'; formHtml += '<label for="noTaxServiceCosts' + index + '">不含税服务成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxServiceCosts' + index + '" name="noTaxServiceCosts' + index + '" value="' + costs.noTaxServiceCosts + '" readonly>'; formHtml += '<input type="text" class="form-control" id="noTaxServiceCosts' + index + '" name="noTaxServiceCosts' + index + '" value="' + costs.noTaxServiceCosts + '" readonly>';
formHtml += '</div>'; formHtml += '</div>';
formHtml += '<h3>总经营成本</h3>'; formHtml += '<h3>上一年度总经营成本</h3>';
formHtml += '<div class="form-group">'; formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxLaborCosts' + index + '">不含税人工成本(RMB):</label>'; formHtml += '<label for="totalOperatingCosts' + index + '">不含税总经营成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxLaborCosts' + index + '" name="noTaxLaborCosts' + index + '" value="' + costs.noTaxLaborCosts + '">'; formHtml += '<input type="text" class="form-control" id="totalOperatingCosts' + index + '" name="totalOperatingCosts' + index + '" value="' + costs.totalOperatingCosts + '">';
formHtml += '</div>'; formHtml += '</div>';
formHtml += '<div class="form-group">'; formHtml += '<h3>上一年度总物料成本</h3>';
formHtml += '<label for="noTaxPromotionalCosts' + index + '">不含税推广成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxPromotionalCosts' + index + '" name="noTaxPromotionalCosts' + index + '" value="' + costs.noTaxPromotionalCosts + '">';
formHtml += '</div>';
formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxBusinessCosts' + index + '">不含税业务成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxBusinessCosts' + index + '" name="noTaxBusinessCosts' + index + '" value="' + costs.noTaxBusinessCosts + '">';
formHtml += '</div>';
formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxManagesCosts' + index + '">不含税管理成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxManagesCosts' + index + '" name="noTaxManagesCosts' + index + '" value="' + costs.noTaxManagesCosts + '">';
formHtml += '</div>';
formHtml += '<h3>总物料成本</h3>';
formHtml += '<div class="form-group">'; formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxMaterialCosts' + index + '">不含税总物料成本(RMB):</label>'; formHtml += '<label for="noTaxMaterialCosts' + index + '">不含税总物料成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxMaterialCosts' + index + '" name="noTaxMaterialCosts' + index + '" value="' + costs.noTaxMaterialCosts + '">'; formHtml += '<input type="text" class="form-control" id="noTaxMaterialCosts' + index + '" name="noTaxMaterialCosts' + index + '" value="' + costs.noTaxMaterialCosts + '">';
@ -669,17 +627,8 @@
// 根据 input 的 id 或 name 进行相应的计算 // 根据 input 的 id 或 name 进行相应的计算
switch (inputId) { switch (inputId) {
case 'noTaxLaborCosts' + index: case 'totalOperatingCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxLaborCosts'); calculateOperatingCosts(inputValue, 'totalOperatingCosts');
break;
case 'noTaxPromotionalCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxPromotionalCosts');
break;
case 'noTaxBusinessCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxBusinessCosts');
break;
case 'noTaxManagesCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxManagesCosts');
break; break;
case 'noTaxMaterialCosts' + index: case 'noTaxMaterialCosts' + index:
updateMaterialCosts(inputValue); updateMaterialCosts(inputValue);
@ -692,41 +641,47 @@
}); });
function calculateOperatingCosts(value, costType) { function calculateOperatingCosts(value, costType) {
var noAllTaxOperatingCosts = 0; // var totalOperatingCosts = 0;
var allNoTaxPurchaseRmb = 0; var allNoTaxPurchaseRmb = 0;
var allTaxPurchaseRmb = 0; var allTaxPurchaseRmb = 0;
// 获取所有相关的不含税成本 // // 获取所有相关的不含税成本
['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) { // ['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) {
var currentCost = parseFloat($form.find('#' + cost + index).val()); // var currentCost = parseFloat($form.find('#' + cost + index).val());
noAllTaxOperatingCosts += currentCost; // 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)); $form.find('#allTaxOperatingCosts' + index).val(allTaxOperatingCosts.toFixed(2));
// 遍历数据集计算不含税采购成本和含税采购成本 // 遍历数据集计算不含税采购成本和含税采购成本
data.forEach(function(item) { data.forEach(function(item) {
item.rows.forEach(function(row) { item.rows.forEach(function(row) {
var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum;
var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum;
var noTaxPurchaseRmb = row.noTaxPurchaseRmb;
var taxPurchaseRmb = row.taxPurchaseRmb;
allNoTaxPurchaseRmb += noTaxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb;
allTaxPurchaseRmb += taxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb;
}); });
}); });
// 该料号的不含税经营成本
var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val()); var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val());//不含税总物料成本
var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * noAllTaxOperatingCosts; var allTaxMaterialCosts = noTaxMaterialCosts * 1.13;//含税总物料成本
// 该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计
var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * totalOperatingCosts;
$form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2));
// 该料号的含税经营成本 // 该料号含税经营成本(RMB)=(该料号BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
var taxOperatingCosts = (allTaxPurchaseRmb / noTaxMaterialCosts) * allTaxOperatingCosts; var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts;
$form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2));
} }
@ -739,22 +694,44 @@
// 遍历数据集计算不含税采购成本和含税采购成本 // 遍历数据集计算不含税采购成本和含税采购成本
data.forEach(function(item) { data.forEach(function(item) {
item.rows.forEach(function(row) { item.rows.forEach(function(row) {
var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum;
var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum;
var noTaxPurchaseRmb = row.noTaxPurchaseRmb;
var taxPurchaseRmb = row.taxPurchaseRmb;
allNoTaxPurchaseRmb += noTaxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb;
allTaxPurchaseRmb += taxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb;
}); });
}); });
// 更新不含税经营成本 // // 更新不含税经营成本
var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val()); // var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val());
var noTaxOperatingCosts = (noTaxPurchaseRmb / value) * noAllTaxOperatingCosts; // 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)); $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2));
// 更新含税经营成本 // 该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
var taxOperatingCosts = (taxPurchaseRmb / value) * noAllTaxOperatingCosts; var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts;
$form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2));
} }
} }
}); });

156
ruoyi-admin/src/main/resources/templates/sales/estimate/ceoAddDetail.html

@ -354,33 +354,33 @@
// 从 `salesEstimateDetailVo` 中获取其他成本信息 // 从 `salesEstimateDetailVo` 中获取其他成本信息
const { const {
noTaxLaborCosts = '', totalOperatingCosts = '', //上一年度的总经营不含税成本合计
noTaxPromotionalCosts = '', noTaxMaterialCosts = '' // 上一年度总物料不含税成本合计
noTaxBusinessCosts = '',
noTaxManagesCosts = '',
noTaxMaterialCosts = ''
} = salesEstimateDetailVo || {}; } = salesEstimateDetailVo || {};
// 计算不含税总经营成本 // 计算上一年度含税总经营成本,假设增值税率为 13%
const noAllTaxOperatingCosts = ( const allTaxOperatingCosts = (
parseFloat(noTaxLaborCosts) + parseFloat(totalOperatingCosts) * 1.13
parseFloat(noTaxBusinessCosts) +
parseFloat(noTaxManagesCosts) +
parseFloat(noTaxPromotionalCosts)
).toFixed(2) || ''; ).toFixed(2) || '';
// 计算含税总经营成本,假设增值税率为 13% //上一年度总物料含税成本合计
const allTaxOperatingCosts = ( const allTaxMaterialCosts = (
parseFloat(noAllTaxOperatingCosts) * 1.13 parseFloat(noTaxMaterialCosts) * 1.13
).toFixed(2) || ''; ).toFixed(2) || '';
//该料号的不含税经营成本
//该料号的不含税经营成本 (RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计
const noTaxOperatingCosts = ( const noTaxOperatingCosts = (
(noTaxPurchaseRmb/noTaxMaterialCosts) * noAllTaxOperatingCosts (noTaxPurchaseRmb/noTaxMaterialCosts) * totalOperatingCosts
).toFixed(2) || ''; ).toFixed(2) || '';
// 该料号的含税经营成本
// 该料号的含税经营成本 (RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
const taxOperatingCosts = ( const taxOperatingCosts = (
(taxPurchaseRmb/noTaxMaterialCosts) * allTaxOperatingCosts (taxPurchaseRmb/allTaxMaterialCosts) * allTaxOperatingCosts
).toFixed(2) || ''; ).toFixed(2) || '';
// 根据 `parentRow.profitRate` 设置利润率 // 根据 `parentRow.profitRate` 设置利润率
let profitRateKey = 'aprofitRate'; let profitRateKey = 'aprofitRate';
switch (parentRow.profitRate) { switch (parentRow.profitRate) {
@ -409,10 +409,7 @@
noTaxDevelopCosts, noTaxDevelopCosts,
noTaxShippingCosts, noTaxShippingCosts,
noTaxServiceCosts, noTaxServiceCosts,
noTaxLaborCosts, totalOperatingCosts,
noTaxPromotionalCosts,
noTaxBusinessCosts,
noTaxManagesCosts,
noTaxMaterialCosts, noTaxMaterialCosts,
noTaxOperatingCosts, noTaxOperatingCosts,
taxOperatingCosts, taxOperatingCosts,
@ -427,10 +424,7 @@
noTaxDevelopCosts: '', noTaxDevelopCosts: '',
noTaxShippingCosts: '', noTaxShippingCosts: '',
noTaxServiceCosts: '', noTaxServiceCosts: '',
noTaxLaborCosts: '', totalOperatingCosts: '',
noTaxPromotionalCosts: '',
noTaxBusinessCosts: '',
noTaxManagesCosts: '',
noTaxMaterialCosts: '', noTaxMaterialCosts: '',
noTaxOperatingCosts: '', noTaxOperatingCosts: '',
taxOperatingCosts: '', taxOperatingCosts: '',
@ -453,24 +447,12 @@
formHtml += '<label for="noTaxServiceCosts' + index + '">不含税服务成本(RMB):</label>'; formHtml += '<label for="noTaxServiceCosts' + index + '">不含税服务成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxServiceCosts' + index + '" name="noTaxServiceCosts' + index + '" value="' + costs.noTaxServiceCosts + '" readonly>'; formHtml += '<input type="text" class="form-control" id="noTaxServiceCosts' + index + '" name="noTaxServiceCosts' + index + '" value="' + costs.noTaxServiceCosts + '" readonly>';
formHtml += '</div>'; formHtml += '</div>';
formHtml += '<h3>总经营成本</h3>'; formHtml += '<h3>上一年度总经营成本</h3>';
formHtml += '<div class="form-group">'; formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxLaborCosts' + index + '">不含税人工成本(RMB):</label>'; formHtml += '<label for="totalOperatingCosts' + index + '">不含税总经营成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxLaborCosts' + index + '" name="noTaxLaborCosts' + index + '" value="' + costs.noTaxLaborCosts + '" readonly>'; formHtml += '<input type="text" class="form-control" id="totalOperatingCosts' + index + '" name="totalOperatingCosts' + index + '" value="' + costs.totalOperatingCosts + '" readonly>';
formHtml += '</div>'; formHtml += '</div>';
formHtml += '<div class="form-group">'; formHtml += '<h3>上一年度总物料成本</h3>';
formHtml += '<label for="noTaxPromotionalCosts' + index + '">不含税推广成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxPromotionalCosts' + index + '" name="noTaxPromotionalCosts' + index + '" value="' + costs.noTaxPromotionalCosts + '" readonly>';
formHtml += '</div>';
formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxBusinessCosts' + index + '">不含税业务成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxBusinessCosts' + index + '" name="noTaxBusinessCosts' + index + '" value="' + costs.noTaxBusinessCosts + '" readonly>';
formHtml += '</div>';
formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxManagesCosts' + index + '">不含税管理成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxManagesCosts' + index + '" name="noTaxManagesCosts' + index + '" value="' + costs.noTaxManagesCosts + '" readonly>';
formHtml += '</div>';
formHtml += '<h3>总物料成本</h3>';
formHtml += '<div class="form-group">'; formHtml += '<div class="form-group">';
formHtml += '<label for="noTaxMaterialCosts' + index + '">不含税总物料成本(RMB):</label>'; formHtml += '<label for="noTaxMaterialCosts' + index + '">不含税总物料成本(RMB):</label>';
formHtml += '<input type="text" class="form-control" id="noTaxMaterialCosts' + index + '" name="noTaxMaterialCosts' + index + '" value="' + costs.noTaxMaterialCosts + '" readonly>'; formHtml += '<input type="text" class="form-control" id="noTaxMaterialCosts' + index + '" name="noTaxMaterialCosts' + index + '" value="' + costs.noTaxMaterialCosts + '" readonly>';
@ -506,17 +488,8 @@
// 根据 input 的 id 或 name 进行相应的计算 // 根据 input 的 id 或 name 进行相应的计算
switch (inputId) { switch (inputId) {
case 'noTaxLaborCosts' + index: case 'totalOperatingCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxLaborCosts'); calculateOperatingCosts(inputValue, 'totalOperatingCosts');
break;
case 'noTaxPromotionalCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxPromotionalCosts');
break;
case 'noTaxBusinessCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxBusinessCosts');
break;
case 'noTaxManagesCosts' + index:
calculateOperatingCosts(inputValue, 'noTaxManagesCosts');
break; break;
case 'noTaxMaterialCosts' + index: case 'noTaxMaterialCosts' + index:
updateMaterialCosts(inputValue); updateMaterialCosts(inputValue);
@ -529,41 +502,47 @@
}); });
function calculateOperatingCosts(value, costType) { function calculateOperatingCosts(value, costType) {
var noAllTaxOperatingCosts = 0; // var totalOperatingCosts = 0;
var allNoTaxPurchaseRmb = 0; var allNoTaxPurchaseRmb = 0;
var allTaxPurchaseRmb = 0; var allTaxPurchaseRmb = 0;
// 获取所有相关的不含税成本 // // 获取所有相关的不含税成本
['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) { // ['noTaxLaborCosts', 'noTaxPromotionalCosts', 'noTaxBusinessCosts', 'noTaxManagesCosts'].forEach(function(cost) {
var currentCost = parseFloat($form.find('#' + cost + index).val()); // var currentCost = parseFloat($form.find('#' + cost + index).val());
noAllTaxOperatingCosts += currentCost; // 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)); $form.find('#allTaxOperatingCosts' + index).val(allTaxOperatingCosts.toFixed(2));
// 遍历数据集计算不含税采购成本和含税采购成本 // 遍历数据集计算不含税采购成本和含税采购成本
data.forEach(function(item) { data.forEach(function(item) {
item.rows.forEach(function(row) { item.rows.forEach(function(row) {
var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum;
var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum;
var noTaxPurchaseRmb = row.noTaxPurchaseRmb;
var taxPurchaseRmb = row.taxPurchaseRmb;
allNoTaxPurchaseRmb += noTaxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb;
allTaxPurchaseRmb += taxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb;
}); });
}); });
// 该料号的不含税经营成本
var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val()); var noTaxMaterialCosts = parseFloat($form.find('#noTaxMaterialCosts' + index).val());//不含税总物料成本
var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * noAllTaxOperatingCosts; var allTaxMaterialCosts = noTaxMaterialCosts * 1.13;//含税总物料成本
// 该料号的不含税经营成本(RMB)=(该料号的BOM物料不含税总采购成本/上一年度总物料不含税成本合计)*上一年度的总经营不含税成本合计
var noTaxOperatingCosts = (allNoTaxPurchaseRmb / noTaxMaterialCosts) * totalOperatingCosts;
$form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2)); $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2));
// 该料号的含税经营成本 // 该料号含税经营成本(RMB)=(该料号BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
var taxOperatingCosts = (allTaxPurchaseRmb / noTaxMaterialCosts) * allTaxOperatingCosts; var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts;
$form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2));
} }
@ -576,23 +555,46 @@
// 遍历数据集计算不含税采购成本和含税采购成本 // 遍历数据集计算不含税采购成本和含税采购成本
data.forEach(function(item) { data.forEach(function(item) {
item.rows.forEach(function(row) { item.rows.forEach(function(row) {
var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum; // var noTaxPurchaseRmb = row.noTaxPurchaseRmb * row.useNum;
var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum; // var taxPurchaseRmb = row.taxPurchaseRmb * row.useNum;
var noTaxPurchaseRmb = row.noTaxPurchaseRmb;
var taxPurchaseRmb = row.taxPurchaseRmb;
allNoTaxPurchaseRmb += noTaxPurchaseRmb; allNoTaxPurchaseRmb += noTaxPurchaseRmb;
allTaxPurchaseRmb += taxPurchaseRmb; allTaxPurchaseRmb += taxPurchaseRmb;
}); });
}); });
// 更新不含税经营成本 // // 更新不含税经营成本
var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val()); // var noAllTaxOperatingCosts = parseFloat($form.find('#noAllTaxOperatingCosts' + index).val());
var noTaxOperatingCosts = (noTaxPurchaseRmb / value) * noAllTaxOperatingCosts; // 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)); $form.find('#noTaxOperatingCosts' + index).val(noTaxOperatingCosts.toFixed(2));
// 更新含税经营成本 // 该料号含税经营成本(RMB)=(该料号的BOM物料含税总采购成本/上一年度总物料含税成本合计)*上一年度的总经营含税成本合计
var taxOperatingCosts = (taxPurchaseRmb / value) * noAllTaxOperatingCosts; var taxOperatingCosts = (allTaxPurchaseRmb / allTaxMaterialCosts) * allTaxOperatingCosts;
$form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2)); $form.find('#taxOperatingCosts' + index).val(taxOperatingCosts.toFixed(2));
} }
} }
}); });

8
ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html

@ -111,11 +111,11 @@
<i class="fa fa-plus"></i> 添加 <i class="fa fa-plus"></i> 添加
</a> </a>
<a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="system:salesOrder:export"> <a class="btn btn-success" onclick="exportExcel()" shiro:hasPermission="system:salesOrder:export">
<i class="fa fa-download"></i> 导出销售订单列表 <i class="fa fa-download"></i> 导出
</a>
<a class="btn btn-success" onclick="exportSalesOrder()" shiro:hasPermission="system:salesOrder:exportSalesOrder">
<i class="fa fa-download"></i> 导出销售订单模板
</a> </a>
<!-- <a class="btn btn-success" onclick="exportSalesOrder()" shiro:hasPermission="system:salesOrder:exportSalesOrder">-->
<!-- <i class="fa fa-download"></i> 导出销售订单模板-->
<!-- </a>-->
<a class="btn btn-success" onclick="salesDeliverGoods()" shiro:hasPermission="system:salesOrder:salesDeliverGoods"> <a class="btn btn-success" onclick="salesDeliverGoods()" shiro:hasPermission="system:salesOrder:salesDeliverGoods">
<i class="fa fa-plus"></i> 出货 <i class="fa fa-plus"></i> 出货
</a> </a>

4
ruoyi-admin/src/main/resources/templates/system/salesShippingInform/salesShippingInform.html

@ -524,7 +524,7 @@
const row = selectedRows[0]; const row = selectedRows[0];
// 使用 $.modal.confirm 显示确认对话框 // 使用 $.modal.confirm 显示确认对话框
$.modal.confirm("确定导出这条数据的出货吗?", function() { $.modal.confirm("确定导出这条数据的出货发票1吗?", function() {
// 如果用户点击确定,继续导出 // 如果用户点击确定,继续导出
var outOrderCode = row.outOrderCode; var outOrderCode = row.outOrderCode;
window.location.href = prefix + "/exportShippingInvoiceOne/" + outOrderCode; window.location.href = prefix + "/exportShippingInvoiceOne/" + outOrderCode;
@ -546,7 +546,7 @@
const row = selectedRows[0]; const row = selectedRows[0];
// 使用 $.modal.confirm 显示确认对话框 // 使用 $.modal.confirm 显示确认对话框
$.modal.confirm("确定导出这条数据的出货吗?", function() { $.modal.confirm("确定导出这条数据的出货发票吗?", function() {
// 如果用户点击确定,继续导出 // 如果用户点击确定,继续导出
var outOrderCode = row.outOrderCode; var outOrderCode = row.outOrderCode;
window.location.href = prefix + "/exportShippingInvoiceTwo/" + outOrderCode; window.location.href = prefix + "/exportShippingInvoiceTwo/" + outOrderCode;

Loading…
Cancel
Save