|
@@ -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());
|
|
List<ProdProcedure> hasReportProcedures = targetProdProcedures.stream().filter(ts -> hasReportProdProduceIds.contains(ts.getId())).collect(Collectors.toList());
|
|
BigDecimal bigDecimalTime=new BigDecimal(0);
|
|
BigDecimal bigDecimalTime=new BigDecimal(0);
|
|
BigDecimal bigDecimalCost=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);
|
|
convertedTime=convertedTime.add(bigDecimalTime);
|
|
convertedCost=convertedCost.add(bigDecimalCost);
|
|
convertedCost=convertedCost.add(bigDecimalCost);
|
|
}
|
|
}
|