diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 78d8004..8da8999 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -284,23 +284,26 @@ public class MesWorkOrderService extends BaseMesService implements MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion()); } - //更新工单状态 + //报工类型 if(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()){ mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty())); }else{ //冲销数量大于工单完成数量报错 if(mesWorkOrder.getNum() > mesWorkOrder.getCompleteQty()){ - MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】", + MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】,不允许冲销", mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty()); } mesWorkOrder.setCompleteQty(MathOperation.sub(mesWorkOrder.getCompleteQty(),mesWorkOrder.getNum())); } - + //更新工单状态 double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getCompleteQty()); 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()); - } else { + }else { mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.process.getValue()); } update(mesWorkOrder);