报工数量卡控

tags/yfai-mes-ext-v1.0
jun 1 year ago
parent b44cf508dc
commit e24580595d

@ -284,23 +284,26 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在",
mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion()); mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion());
} }
//更新工单状态 //报工类型
if(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()){ if(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()){
mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty())); mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty()));
}else{ }else{
//冲销数量大于工单完成数量报错 //冲销数量大于工单完成数量报错
if(mesWorkOrder.getNum() > mesWorkOrder.getCompleteQty()){ if(mesWorkOrder.getNum() > mesWorkOrder.getCompleteQty()){
MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】", MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】,不允许冲销",
mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty()); mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty());
} }
mesWorkOrder.setCompleteQty(MathOperation.sub(mesWorkOrder.getCompleteQty(),mesWorkOrder.getNum())); mesWorkOrder.setCompleteQty(MathOperation.sub(mesWorkOrder.getCompleteQty(),mesWorkOrder.getNum()));
} }
//更新工单状态
double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getCompleteQty()); double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getCompleteQty());
mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0);
if (mesWorkOrder.getCompleteQty() >= mesWorkOrder.getQty()) { if (mesWorkOrder.getCompleteQty() > mesWorkOrder.getQty()) {
MesException.throwMesBusiException("工单报工数量【%s】大于工单数量【%s】,不允许报工",
mesWorkOrder.getCompleteQty(), mesWorkOrder.getQty());
}else if(Objects.equals(mesWorkOrder.getCompleteQty(),mesWorkOrder.getQty())){
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue());
} else { }else {
mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.process.getValue()); mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.process.getValue());
} }
update(mesWorkOrder); update(mesWorkOrder);

Loading…
Cancel
Save