diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/QuantityDto.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/QuantityDto.java index 4a789e6f..948fc726 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/QuantityDto.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/QuantityDto.java @@ -9,6 +9,15 @@ public class QuantityDto { private String workorderCode; private String machineCode; private BigDecimal totalWorkTime; + private String board; + + public String getBoard() { + return board; + } + + public void setBoard(String board) { + this.board = board; + } public BigDecimal getTotalWorkTime() { return totalWorkTime; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java index 2cd2f122..087edfd6 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java @@ -10,7 +10,9 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.mes.domain.MesLine; import com.op.mes.domain.MesReportWork; import com.op.mes.domain.ProOrderWorkorder; +import com.op.mes.domain.dto.QuantityDto; import com.op.mes.mapper.MesMapper; +import com.op.mes.mapper.MesReportWorkMapper; import com.op.mes.service.IMesBoradService; import com.op.system.api.domain.dto.BoardDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; @@ -28,6 +30,8 @@ public class MesBoradServiceImpl implements IMesBoradService { @Autowired private MesMapper mesMapper; + @Autowired + private MesReportWorkMapper mesReportWorkMapper; @Override public AjaxResult finishProductBoard(BoardDTO boardDTO) { @@ -110,17 +114,37 @@ public class MesBoradServiceImpl implements IMesBoradService { BoardDTO workOrder = mesMapper.getWorkOrder(boardDTO); boardDTO.setWorkorderCode(workOrder.getWorkorderCode()); + boardDTO.setProductCode(workOrder.getProductCode()); MesLine meslineInfo = mesMapper.getMesLineInfo(boardDTO); + + QuantityDto quantityDto = new QuantityDto(); + quantityDto.setWorkorderCode(boardDTO.getWorkorderCode()); + quantityDto.setMachineCode(boardDTO.getEquCode()); + quantityDto.setBoard("1"); + QuantityDto parentMesReport = mesReportWorkMapper.getRealQuantity(quantityDto); + QuantityDto sonMesReport = mesReportWorkMapper.getSumQuantity(quantityDto); + if(sonMesReport == null){//单层工单的情况 + sonMesReport = mesReportWorkMapper.getSumQuantityOne(quantityDto); + } + if(sonMesReport != null){//实际用人 + workOrder.setActMan(sonMesReport.getUseMan()); + }else{ + workOrder.setActMan(new BigDecimal("0")); + } + if(parentMesReport!=null){//实际效率 = 实际母单产量/子总工时 + BigDecimal manAvgActual = new BigDecimal(parentMesReport.getQuantityFeedbackSum()) + .divide(sonMesReport.getWorkTime(),2,BigDecimal.ROUND_HALF_UP); + workOrder.setActXl(manAvgActual); + }else{ + workOrder.setActXl(new BigDecimal("0")); + } + if(meslineInfo != null){ workOrder.setStandarMan(meslineInfo.getStandarMan()); - workOrder.setActMan(meslineInfo.getActMan()); workOrder.setStandarXl(meslineInfo.getStandarXl()); - workOrder.setActXl(meslineInfo.getActXl()); }else{ workOrder.setStandarMan(new BigDecimal("0")); - workOrder.setActMan(new BigDecimal("0")); workOrder.setStandarXl(new BigDecimal("0")); - workOrder.setActXl(new BigDecimal("0")); } dtoMap.put("workOrder",workOrder); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index ad7ccf38..17173976 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -451,22 +451,11 @@ 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 85469479..1fc178f4 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 @@ -709,7 +709,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select sum(quantity_feedback) quantityFeedbackSum from mes_report_work where workorder_code = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode} + and upload_status = '1' +