包装线标准效率计算修改

master
zhaoxiaolin 8 months ago
parent 9779dd80f3
commit a79aa07f32

@ -9,6 +9,15 @@ public class QuantityDto {
private String workorderCode; private String workorderCode;
private String machineCode; private String machineCode;
private BigDecimal totalWorkTime; private BigDecimal totalWorkTime;
private String board;
public String getBoard() {
return board;
}
public void setBoard(String board) {
this.board = board;
}
public BigDecimal getTotalWorkTime() { public BigDecimal getTotalWorkTime() {
return totalWorkTime; return totalWorkTime;

@ -10,7 +10,9 @@ import com.op.common.core.web.domain.AjaxResult;
import com.op.mes.domain.MesLine; import com.op.mes.domain.MesLine;
import com.op.mes.domain.MesReportWork; import com.op.mes.domain.MesReportWork;
import com.op.mes.domain.ProOrderWorkorder; import com.op.mes.domain.ProOrderWorkorder;
import com.op.mes.domain.dto.QuantityDto;
import com.op.mes.mapper.MesMapper; import com.op.mes.mapper.MesMapper;
import com.op.mes.mapper.MesReportWorkMapper;
import com.op.mes.service.IMesBoradService; import com.op.mes.service.IMesBoradService;
import com.op.system.api.domain.dto.BoardDTO; import com.op.system.api.domain.dto.BoardDTO;
import com.op.system.api.domain.mes.ProOrderWorkorderDTO; import com.op.system.api.domain.mes.ProOrderWorkorderDTO;
@ -28,6 +30,8 @@ public class MesBoradServiceImpl implements IMesBoradService {
@Autowired @Autowired
private MesMapper mesMapper; private MesMapper mesMapper;
@Autowired
private MesReportWorkMapper mesReportWorkMapper;
@Override @Override
public AjaxResult finishProductBoard(BoardDTO boardDTO) { public AjaxResult finishProductBoard(BoardDTO boardDTO) {
@ -110,17 +114,37 @@ public class MesBoradServiceImpl implements IMesBoradService {
BoardDTO workOrder = mesMapper.getWorkOrder(boardDTO); BoardDTO workOrder = mesMapper.getWorkOrder(boardDTO);
boardDTO.setWorkorderCode(workOrder.getWorkorderCode()); boardDTO.setWorkorderCode(workOrder.getWorkorderCode());
boardDTO.setProductCode(workOrder.getProductCode());
MesLine meslineInfo = mesMapper.getMesLineInfo(boardDTO); 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){ if(meslineInfo != null){
workOrder.setStandarMan(meslineInfo.getStandarMan()); workOrder.setStandarMan(meslineInfo.getStandarMan());
workOrder.setActMan(meslineInfo.getActMan());
workOrder.setStandarXl(meslineInfo.getStandarXl()); workOrder.setStandarXl(meslineInfo.getStandarXl());
workOrder.setActXl(meslineInfo.getActXl());
}else{ }else{
workOrder.setStandarMan(new BigDecimal("0")); workOrder.setStandarMan(new BigDecimal("0"));
workOrder.setActMan(new BigDecimal("0"));
workOrder.setStandarXl(new BigDecimal("0")); workOrder.setStandarXl(new BigDecimal("0"));
workOrder.setActXl(new BigDecimal("0"));
} }
dtoMap.put("workOrder",workOrder); dtoMap.put("workOrder",workOrder);

@ -451,22 +451,11 @@
<select id="getMesLineInfo" resultType="com.op.mes.domain.MesLine"> <select id="getMesLineInfo" resultType="com.op.mes.domain.MesLine">
select select
mlp.use_man standarMan, mlp.use_man standarMan,
ROUND(mlp.efficiency/bp.umrez,2) AS standarXl, ROUND(mlp.efficiency/bp.umrez,2) AS standarXl
mr.use_man actMan, from mes_line_product mlp
mr.work_time,
mr2.quantity_feedback,
ROUND( mr2.quantity_feedback/mr.work_time,2) AS actXl
from (
select top 1 use_man,work_time,machine_code,report_code,product_code
from mes_report_work where del_flag = '0' and machine_code = #{equCode}
and workorder_code = #{workorderCode}
and parent_order !='0' order by create_time desc
) mr
left join mes_report_work mr2 on mr2.report_code = mr.report_code and mr2.parent_order ='0'
left join mes_line_product mlp on mlp.line_code = mr.machine_code and mr2.product_code = mlp.product_code
left join base_product bp on bp.product_code=mlp.product_code left join base_product bp on bp.product_code=mlp.product_code
where mlp.line_code = #{equCode} where mlp.line_code = #{equCode} and mlp.product_code = #{productCode}
and mlp.del_flag='0' and mlp.del_flag='0' and mlp.del_flag='0' and bp.del_flag='0'
</select> </select>
</mapper> </mapper>

@ -709,7 +709,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select sum(quantity_feedback) quantityFeedbackSum select sum(quantity_feedback) quantityFeedbackSum
from mes_report_work from mes_report_work
where workorder_code = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode} where workorder_code = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode}
<if test="board == null">
and upload_status = '1' and upload_status = '1'
</if>
</select> </select>
<select id="getSumQuantity" resultType="com.op.mes.domain.dto.QuantityDto"> <select id="getSumQuantity" resultType="com.op.mes.domain.dto.QuantityDto">
@ -720,7 +722,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sum(work_time*use_man) totalWorkTime sum(work_time*use_man) totalWorkTime
from mes_report_work from mes_report_work
where parent_order = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode} where parent_order = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode}
<if test="board == null">
and upload_status = '1' and upload_status = '1'
</if>
</select> </select>
<select id="getSumQuantityOne" resultType="com.op.mes.domain.dto.QuantityDto"> <select id="getSumQuantityOne" resultType="com.op.mes.domain.dto.QuantityDto">
@ -731,7 +735,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sum(work_time*use_man) totalWorkTime sum(work_time*use_man) totalWorkTime
from mes_report_work from mes_report_work
where workorder_code = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode} where workorder_code = #{workorderCode} and del_flag = '0' and machine_code = #{machineCode}
<if test="board == null">
and upload_status = '1' and upload_status = '1'
</if>
</select> </select>
<select id="selectMesReportWorkList_S" parameterType="MesReportWork" resultMap="MesReportWorkResult"> <select id="selectMesReportWorkList_S" parameterType="MesReportWork" resultMap="MesReportWorkResult">

Loading…
Cancel
Save