fix(成本分析): 制作成本添加额外字段用于展示油漆重量和其他工序的工时

This commit is contained in:
曹鹏飞 2025-03-09 18:55:28 +08:00
parent 51a55f647c
commit 6fef709dad
5 changed files with 18 additions and 0 deletions

View File

@ -74,6 +74,11 @@ public class EBomCostCacheDTO implements Serializable {
*/
private BigDecimal paintCost = BigDecimal.ZERO;
/**
* 油漆重量
*/
private BigDecimal paintWeight = BigDecimal.ONE;
/**
* 制作成本
*/

View File

@ -17,4 +17,9 @@ public class ProductionCostDTO implements Serializable {
* 成本
*/
private BigDecimal cost = BigDecimal.ZERO;
/**
* 工时
*/
private BigDecimal workHours = BigDecimal.ZERO;
}

View File

@ -30,4 +30,7 @@ public class NameCostInfoVO implements Serializable {
@ApiModelProperty("占比")
private String ratio;
@ApiModelProperty("额外信息")
private BigDecimal additional;
}

View File

@ -152,6 +152,7 @@ public class BomCostCalculateService {
cdto.setAuxiliaryDepartmentLaborCost(cdto.getAuxiliaryDepartmentLaborCost().add(c.getAuxiliaryDepartmentLaborCost().multiply(dto1.getNum())));
cdto.setAuxiliaryDepartmentExpenses(cdto.getAuxiliaryDepartmentExpenses().add(c.getAuxiliaryDepartmentExpenses().multiply(dto1.getNum())));
cdto.setPaintCost(cdto.getPaintCost().add(c.getPaintCost().multiply(dto1.getNum())));
cdto.setPaintWeight(cdto.getPaintWeight().add(dto1.getNum()));
if (CollectionUtil.isNotEmpty(c.getProductionCosts())) {
c.getProductionCosts().forEach(pc -> {
ProductionCostDTO pdto = cdto.getProductionCosts().parallelStream()
@ -164,6 +165,7 @@ public class BomCostCalculateService {
cdto.getProductionCosts().add(pdto);
}
pdto.setCost(pdto.getCost().add(pc.getCost().multiply(dto1.getNum())));
pdto.setWorkHours(pdto.getWorkHours().add(pc.getWorkHours().multiply(dto1.getNum())));
});
}
}
@ -207,6 +209,7 @@ public class BomCostCalculateService {
dto.setCost(hourlyWages.add(benefit).add(auxiliaryMaterialsAndConsumables).add(feeEquipmentDepreciation)
.add(feeWorkshopLaborCost).add(feeWorkshopOffice).add(auxiliaryDepartmentLaborCosts).add(assistantFee)
.multiply(gs));
dto.setWorkHours(gs);
productionCosts.add(dto);
if (dto.getCost().compareTo(BigDecimal.ZERO) > 0) {
log.debug(StrUtil.format(

View File

@ -486,12 +486,14 @@ public class ProductCostAnalysisService {
paintNameCostInfoVO.setName("油漆费用");
paintNameCostInfoVO.setCost(cost.getPaintCost());
paintNameCostInfoVO.setRatio(calculateRatio(cost.getPaintCost(), manufactureCostTotal));
paintNameCostInfoVO.setAdditional(cost.getPaintWeight());
nameCostInfoVOS.add(paintNameCostInfoVO);
cost.getProductionCosts().forEach(pc -> {
nameCostInfoVOS.add(new NameCostInfoVO()
.setName(pc.getName())
.setCost(pc.getCost())
.setRatio(calculateRatio(pc.getCost(), manufactureCostTotal))
.setAdditional(pc.getWorkHours())
);
});
manufactureCostVO.setTotalCost(manufactureCostTotal);