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 b765b465..fac6bee2 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 @@ -490,19 +490,30 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { dto.setTotalWorkTime(sonMesReport.getTotalWorkTime().toString()); // 标准人均效率 实际产量/标准用人/标准工时 - BigDecimal manAvgStandard = new BigDecimal(realQua) - .divide(new BigDecimal(dto.getManStandard()),4,BigDecimal.ROUND_HALF_UP) - .divide(workTimeStandard,2,BigDecimal.ROUND_HALF_UP); - dto.setManAvgStandard(manAvgStandard.toString()); + BigDecimal manAvgStandard = null; + if(StringUtils.isNotBlank(dto.getManStandard())){ + manAvgStandard = new BigDecimal(realQua) + .divide(new BigDecimal(dto.getManStandard()),4,BigDecimal.ROUND_HALF_UP) + .divide(workTimeStandard,2,BigDecimal.ROUND_HALF_UP); + dto.setManAvgStandard(manAvgStandard.toString()); + }else{ + dto.setManAvgStandard("0"); + } + // 实际人均效率 实际产量/总工时 BigDecimal manAvgActual = new BigDecimal(realQua) .divide(sonMesReport.getTotalWorkTime(),2,BigDecimal.ROUND_HALF_UP); dto.setManAvgActual(manAvgActual.toString()); // 人均效率达成率 实际人均效率/标准人均效率 - BigDecimal manAvgDo = manAvgActual - .multiply(new BigDecimal("100.00")) - .divide(manAvgStandard,2,BigDecimal.ROUND_HALF_UP); - dto.setManAvgDo(manAvgDo.toString()+"%"); + if(manAvgStandard!=null){ + BigDecimal manAvgDo = manAvgActual + .multiply(new BigDecimal("100.00")) + .divide(manAvgStandard,2,BigDecimal.ROUND_HALF_UP); + dto.setManAvgDo(manAvgDo.toString()+"%"); + }else{ + dto.setManAvgDo("0%"); + } + } } 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 172db869..e6891b73 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 @@ -689,9 +689,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bp.report_rate reportRate from base_equipment be left join pro_order_workorder pow on be.equipment_code = pow.workorder_name - left join mes_line_product mlp on pow.workorder_name = mlp.line_code and pow.product_code = mlp.product_code + left join mes_line_product mlp on pow.workorder_name = mlp.line_code and pow.product_code = mlp.product_code and mlp.del_flag='0' left join base_product bp on bp.product_code = pow.product_code - where be.del_flag = '0' and be.sap_code is not null and pow.status = 'w3' and mlp.del_flag='0' + where be.del_flag = '0' and be.sap_code is not null and pow.status in ('w2','w3') and pow.parent_order = '0' and pow.del_flag='0' and be.sap_name like concat('%', #{sapName}, '%') and be.workshop_code = #{workCenter}