diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/cost/pojo/entity/SubjectFeeEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/cost/pojo/entity/SubjectFeeEntity.java index 0bb07213e..87edd010a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/cost/pojo/entity/SubjectFeeEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/cost/pojo/entity/SubjectFeeEntity.java @@ -88,4 +88,10 @@ public class SubjectFeeEntity extends BaseEntity { */ @Schema(description = "更新人姓名") private String updateUserName; + + /** + * 科目类型 0-制造费用 1-作业中心材料费用 + */ + @Schema(description = "科目类型 0-制造费用 1-作业中心材料费用") + private String subjectType; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/service/impl/CostStatisticsServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/service/impl/CostStatisticsServiceImpl.java index 77ca5f23c..3c1b53109 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/service/impl/CostStatisticsServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/service/impl/CostStatisticsServiceImpl.java @@ -116,12 +116,14 @@ public class CostStatisticsServiceImpl extends BaseServiceImpl processList = costCalculationProcessService.list(Wrappers.lambdaQuery().eq(CostCalculationProcessEntity::getWorkCenterId,workCenter.getId())); BigDecimal monthOutputArea = BigDecimal.ZERO; @@ -195,7 +197,7 @@ public class CostStatisticsServiceImpl extends BaseServiceImpl subjectFeeIdList = subjectFeeList.stream().map(BaseEntity::getId).collect(Collectors.toList()); + List subjectFeeIdList = subjectFeeList.stream().filter(item ->"0".equals(item.getSubjectType())).map(BaseEntity::getId).collect(Collectors.toList()); List subjectFeeDetailList = subjectFeeDetailService.list(Wrappers.lambdaQuery() .in(SubjectFeeDetailEntity::getParentId,subjectFeeIdList) .eq(SubjectFeeDetailEntity::getMonth,month) @@ -207,6 +209,23 @@ public class CostStatisticsServiceImpl extends BaseServiceImpl subjectFeeList,WorkCenter workCenter, String month){ + //【作业中心材料费用】=科目费用费用类别是作业中心材料费用的各作业中心的所有费用的总和 + BigDecimal materialCost = BigDecimal.ZERO; + + if(CollectionUtils.isNotEmpty(subjectFeeList)){ + List subjectFeeIdList = subjectFeeList.stream().filter(item ->"1".equals(item.getSubjectType())).map(BaseEntity::getId).collect(Collectors.toList()); + List subjectFeeDetailList = subjectFeeDetailService.list(Wrappers.lambdaQuery() + .in(SubjectFeeDetailEntity::getParentId,subjectFeeIdList) + .eq(SubjectFeeDetailEntity::getMonth,month) + .eq(SubjectFeeDetailEntity::getWorkCenterId,workCenter.getId())); + if(CollectionUtils.isNotEmpty(subjectFeeDetailList)){ + materialCost = materialCost.add(BigDecimal.valueOf(subjectFeeDetailList.stream().mapToDouble(SubjectFeeDetailEntity::getFee).sum())); + } + } + return materialCost; + } + }