Min пре 1 година
родитељ
комит
c76325eecd

+ 24 - 14
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4959,20 +4959,30 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 List<ProdProcedure> hasReportProcedures = targetProdProcedures.stream().filter(ts -> hasReportProdProduceIds.contains(ts.getId())).collect(Collectors.toList());
                 BigDecimal bigDecimalTime=new BigDecimal(0);
                 BigDecimal bigDecimalCost=new BigDecimal(0);
-                for (ProdProcedure hasReportProcedure : hasReportProcedures) {
-                    //找到当前工序所在产品总预算工时
-                    BigDecimal decimalTime = new BigDecimal(hasReportProcedure.getWorkingTime());
-                    BigDecimal divideTime = decimalTime.divide(reduceTime, 3,BigDecimal.ROUND_HALF_UP);
-                    BigDecimal checkTime = new BigDecimal(1);
-                    checkTime=checkTime.multiply(divideTime).setScale(3,BigDecimal.ROUND_HALF_UP);
-                    bigDecimalTime=bigDecimalTime.add(checkTime).setScale(3,BigDecimal.ROUND_HALF_UP);
-                    //找到当前工序所在产品总预算工时
-                    BigDecimal decimalCost = new BigDecimal(String.valueOf(hasReportProcedure.getUnitPrice()));
-                    BigDecimal divideCost = decimalCost.divide(reduceCost, 3,BigDecimal.ROUND_HALF_UP);
-                    BigDecimal checkCost = new BigDecimal(1);
-                    checkCost=checkCost.multiply(divideCost).setScale(3,BigDecimal.ROUND_HALF_UP);
-                    bigDecimalCost=bigDecimalCost.add(checkCost).setScale(3,BigDecimal.ROUND_HALF_UP);
-                }
+//                for (ProdProcedure hasReportProcedure : hasReportProcedures) {
+//                    //找到当前工序所在产品总预算工时
+//                    BigDecimal decimalTime = new BigDecimal(hasReportProcedure.getWorkingTime());
+//                    BigDecimal divideTime = decimalTime.divide(reduceTime, 3,BigDecimal.ROUND_HALF_UP);
+//                    BigDecimal checkTime = new BigDecimal(1);
+//                    checkTime=checkTime.multiply(divideTime).setScale(3,BigDecimal.ROUND_HALF_UP);
+//                    bigDecimalTime=bigDecimalTime.add(checkTime).setScale(3,BigDecimal.ROUND_HALF_UP);
+//                    //找到当前工序所在产品总预算工时
+//                    BigDecimal decimalCost = new BigDecimal(String.valueOf(hasReportProcedure.getUnitPrice()));
+//                    BigDecimal divideCost = decimalCost.divide(reduceCost, 3,BigDecimal.ROUND_HALF_UP);
+//                    BigDecimal checkCost = new BigDecimal(1);
+//                    checkCost=checkCost.multiply(divideCost).setScale(3,BigDecimal.ROUND_HALF_UP);
+//                    bigDecimalCost=bigDecimalCost.add(checkCost).setScale(3,BigDecimal.ROUND_HALF_UP);
+//                }
+                BigDecimal targetTime = hasReportProcedures.stream().map(i -> new BigDecimal(i.getWorkingTime())).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal targetCost= hasReportProcedures.stream().map(i -> new BigDecimal(String.valueOf(i.getUnitPrice()))).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal divideTime = targetTime.divide(reduceTime, 3,BigDecimal.ROUND_HALF_UP);
+                BigDecimal divideCost = targetCost.divide(reduceCost, 3,BigDecimal.ROUND_HALF_UP);
+                BigDecimal checkTime = new BigDecimal(1);
+                checkTime=checkTime.multiply(divideTime).setScale(3,BigDecimal.ROUND_HALF_UP);
+                BigDecimal checkCost = new BigDecimal(1);
+                checkCost=checkCost.multiply(divideCost).setScale(3,BigDecimal.ROUND_HALF_UP);
+                bigDecimalTime=bigDecimalTime.add(checkTime).setScale(3,BigDecimal.ROUND_HALF_UP);
+                bigDecimalCost=bigDecimalCost.add(checkCost).setScale(3,BigDecimal.ROUND_HALF_UP);
                 convertedTime=convertedTime.add(bigDecimalTime);
                 convertedCost=convertedCost.add(bigDecimalCost);
             }