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 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 cost = BigDecimal.ZERO;
/**
* 工时
*/
private BigDecimal workHours = BigDecimal.ZERO;
} }

View File

@ -30,4 +30,7 @@ public class NameCostInfoVO implements Serializable {
@ApiModelProperty("占比") @ApiModelProperty("占比")
private String ratio; 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.setAuxiliaryDepartmentLaborCost(cdto.getAuxiliaryDepartmentLaborCost().add(c.getAuxiliaryDepartmentLaborCost().multiply(dto1.getNum())));
cdto.setAuxiliaryDepartmentExpenses(cdto.getAuxiliaryDepartmentExpenses().add(c.getAuxiliaryDepartmentExpenses().multiply(dto1.getNum()))); cdto.setAuxiliaryDepartmentExpenses(cdto.getAuxiliaryDepartmentExpenses().add(c.getAuxiliaryDepartmentExpenses().multiply(dto1.getNum())));
cdto.setPaintCost(cdto.getPaintCost().add(c.getPaintCost().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())) { if (CollectionUtil.isNotEmpty(c.getProductionCosts())) {
c.getProductionCosts().forEach(pc -> { c.getProductionCosts().forEach(pc -> {
ProductionCostDTO pdto = cdto.getProductionCosts().parallelStream() ProductionCostDTO pdto = cdto.getProductionCosts().parallelStream()
@ -164,6 +165,7 @@ public class BomCostCalculateService {
cdto.getProductionCosts().add(pdto); cdto.getProductionCosts().add(pdto);
} }
pdto.setCost(pdto.getCost().add(pc.getCost().multiply(dto1.getNum()))); 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) dto.setCost(hourlyWages.add(benefit).add(auxiliaryMaterialsAndConsumables).add(feeEquipmentDepreciation)
.add(feeWorkshopLaborCost).add(feeWorkshopOffice).add(auxiliaryDepartmentLaborCosts).add(assistantFee) .add(feeWorkshopLaborCost).add(feeWorkshopOffice).add(auxiliaryDepartmentLaborCosts).add(assistantFee)
.multiply(gs)); .multiply(gs));
dto.setWorkHours(gs);
productionCosts.add(dto); productionCosts.add(dto);
if (dto.getCost().compareTo(BigDecimal.ZERO) > 0) { if (dto.getCost().compareTo(BigDecimal.ZERO) > 0) {
log.debug(StrUtil.format( log.debug(StrUtil.format(

View File

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