|
@@ -4825,7 +4825,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //以钢印号为基准,进行计算,剔除完整件数的钢印号
|
|
|
+ //以钢印号为基准,进行计算,剔除完整件数的钢印号 //这个在上面已经去过了
|
|
|
List<String> noCompleteSteelNums = steelNums.stream().filter(s->!integratedSteelNums.contains(s)).collect(Collectors.toList());
|
|
|
//列出每一道工序上的钢印号集合
|
|
|
HashMap<Integer, List> prodProcedureSteelNumMap = new HashMap<>();
|
|
@@ -4894,8 +4894,28 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
|
|
|
System.out.println("折算的工序::" + left);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ //计算折算数据
|
|
|
+ for (String leftSteelNum : leftSteelNums) {
|
|
|
+ //找到该产品下填报了该钢印号的所有日报数据
|
|
|
+ List<Integer> hasReportIds = reportSteelNums.stream().filter(r -> r.getSteelNum().equals(leftSteelNum)).collect(Collectors.toList()).stream().map(ReportSteelNum::getReportId).collect(Collectors.toList());
|
|
|
+ List<Report> hasReportList = targetReportList.stream().filter(r->hasReportIds.contains(r.getId())).collect(Collectors.toList());
|
|
|
+ //过滤日报所填了哪些工序
|
|
|
+ List<Integer> hasReportProdProduceIds = hasReportList.stream().map(Report::getProdProcedureId).collect(Collectors.toList());
|
|
|
+ //计算当前产品的总预算工时
|
|
|
+ BigDecimal reduce = targetProdProcedures.stream().map(i -> new BigDecimal(i.getWorkingTime())).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //利用上面找到的所填了哪些工序 按照所在工序占比计算
|
|
|
+ List<ProdProcedure> hasReportProcedures = targetProdProcedures.stream().filter(ts -> hasReportProdProduceIds.contains(ts.getId())).collect(Collectors.toList());
|
|
|
+ BigDecimal bigDecimal=new BigDecimal(0);
|
|
|
+ for (ProdProcedure hasReportProcedure : hasReportProcedures) {
|
|
|
+ //找到当前工序所在产品总预算工时
|
|
|
+ BigDecimal decimal = new BigDecimal(hasReportProcedure.getWorkingTime());
|
|
|
+ BigDecimal divide = decimal.divide(reduce, 2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal check = new BigDecimal(1);
|
|
|
+ check=check.multiply(divide).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ bigDecimal=bigDecimal.add(check).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ converted=converted.add(bigDecimal);
|
|
|
+ }
|
|
|
|
|
|
//计算凑整件数
|
|
|
// for (String steelNum : steelNums) {
|