|
|
|
@ -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);
|
|
|
|
|