diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 4276634e2..a4221a760 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -486,10 +486,16 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { sumQua = sonMesReport.getQuantityFeedbackSum(); realQua = parentMesReport.getQuantityFeedbackSum(); workTime = sonMesReport.getWorkTime(); - useMan = sonMesReport.getUseMan().add(parentMesReport.getUseMan()); - if(sonMesReport.getUseMan().compareTo(parentMesReport.getUseMan()) == 0){ - useMan=sonMesReport.getUseMan(); + useMan = BigDecimal.ZERO; + if (parentMesReport.getUseMan() != null ){ + useMan = sonMesReport.getUseMan().add(parentMesReport.getUseMan()); } + if (sonMesReport.getUseMan() != null ){ + useMan = sonMesReport.getUseMan().add(parentMesReport.getUseMan()); + } +// if(sonMesReport.getUseMan().compareTo(parentMesReport.getUseMan()) == 0){ +// useMan=sonMesReport.getUseMan(); +// } // 若 threeMesReport 不为空,则叠加其 useMan 值 if (threeMesReport != null && threeMesReport.getUseMan() != null) { useMan = useMan.add(threeMesReport.getUseMan()); @@ -525,7 +531,24 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { dto.setProductivity(productivity.toString()+"%"); // 总工时 实际用人*实际工时 - dto.setTotalWorkTime(sonMesReport.getTotalWorkTime().toString()); + BigDecimal totalWorkTime = BigDecimal.ZERO; + //人数*工时 + + if (parentMesReport.getTotalWorkTime() != null){ + totalWorkTime = totalWorkTime.add(parentMesReport.getTotalWorkTime()); + } + + if (sonMesReport.getTotalWorkTime() != null){ + totalWorkTime = totalWorkTime.add(sonMesReport.getTotalWorkTime()); + } + + if (threeMesReport != null && threeMesReport.getTotalWorkTime() != null ){ + totalWorkTime = totalWorkTime.add(threeMesReport.getTotalWorkTime()); + } + + dto.setTotalWorkTime(totalWorkTime.toString()); + + // 标准人均效率 实际产量/标准用人/标准工时 BigDecimal manAvgStandard = null; if(StringUtils.isNotBlank(dto.getManStandard())){ @@ -539,7 +562,7 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { // 实际人均效率 实际产量/总工时 BigDecimal manAvgActual = new BigDecimal(realQua) - .divide(sonMesReport.getTotalWorkTime(),2,BigDecimal.ROUND_HALF_UP); + .divide(totalWorkTime,2,BigDecimal.ROUND_HALF_UP); dto.setManAvgActual(manAvgActual.toString()); // 人均效率达成率 实际人均效率/标准人均效率 if(manAvgStandard!=null){ diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 475c73912..fcbc64652 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -878,9 +878,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"