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'
+