Explorar el Código

车间计算进度精度问题修改

Min hace 1 año
padre
commit
aa2f4e5957

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

@@ -35,6 +35,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.Bidi;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 import java.text.SimpleDateFormat;
@@ -275,7 +276,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             workingTime = 0.0;
         }
         planProcedureTotal.setTotalFillTime(workingTime);
-        planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
+        BigDecimal bigDecimal = new BigDecimal(workingTime);
+        bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()));
+        bigDecimal=bigDecimal.multiply(new BigDecimal(100)).setScale(0,RoundingMode.HALF_UP);
+        planProcedureTotal.setTotalProgress(bigDecimal.intValue());
+//            planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
         planProcedureTotalMapper.updateById(planProcedureTotal);
         //检查该计划下的所有工序是否都已经完成
         List<PlanProcedureTotal> planProcedureTotalList = planProcedureTotalMapper.selectList(new QueryWrapper<PlanProcedureTotal>().eq("plan_id", planProcedureTotal.getPlanId()));
@@ -4799,7 +4804,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 workingTime = curReportSumItem.getWorkingTime();
             }
             planProcedureTotal.setTotalFillTime(workingTime);
-            planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
+            BigDecimal bigDecimal = new BigDecimal(workingTime);
+            bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()));
+            bigDecimal=bigDecimal.multiply(new BigDecimal(100)).setScale(0,RoundingMode.HALF_UP);
+            planProcedureTotal.setTotalProgress(bigDecimal.intValue());
+//            planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
             System.out.println("planProcedureTotal.getId()=="+planProcedureTotal.getId()+"--进度 2 workingTime:"+workingTime+" totalWorkingHours:"+planProcedureTotal.getTotalWorkingHours()+" totalProgress:"+planProcedureTotal.getTotalProgress());
             planProcedureTotalMapper.updateById(planProcedureTotal);
             return new HttpRespMsg();
@@ -4846,7 +4855,11 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     workingTime = curReportSumItem.getWorkingTime();
                 }
                 planProcedureTotal.setTotalFillTime(workingTime);
-                planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
+                BigDecimal bigDecimal = new BigDecimal(workingTime);
+                bigDecimal=bigDecimal.divide(new BigDecimal(planProcedureTotal.getTotalWorkingHours()));
+                bigDecimal=bigDecimal.multiply(new BigDecimal(100)).setScale(0,RoundingMode.HALF_UP);
+                planProcedureTotal.setTotalProgress(bigDecimal.intValue());
+//            planProcedureTotal.setTotalProgress((int)((workingTime / planProcedureTotal.getTotalWorkingHours()) * 100));
                 System.out.println("planProcedureTotal.getId()=="+planProcedureTotal.getId()+"--进度 3 workingTime:"+workingTime+" totalWorkingHours:"+planProcedureTotal.getTotalWorkingHours()+" totalProgress:"+planProcedureTotal.getTotalProgress());
                 planProcedureTotalMapper.updateById(planProcedureTotal);
             }