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 85cb798..904195c 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 @@ -115,8 +115,6 @@ public class MesWorkOrderService extends BaseMesService implements baseRDao.insert(copyMesWorkOrder); workOrderLogService.insert(workOrderLog); - //写入SAP下发计划表 - saveMesProductPlan(bean, true, false); return bean; } else if (bean.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { //生成工单号 @@ -144,75 +142,9 @@ public class MesWorkOrderService extends BaseMesService implements BeanUtils.copyProperties(bean, workOrderLog, "id"); workOrderLogService.insert(workOrderLog); bean = baseRDao.insert(bean); - //写入SAP下发计划表 - saveMesProductPlan(bean, true, false); return bean; } - private void saveMesProductPlan(MesWorkOrder bean, boolean isInsert, boolean isReport) { -// if (StringUtil.isEmpty(bean.getPlanOrderNo())) { -// DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); -// DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "planPartNo", ddlPackBean); -// DdlPreparedPack.getStringEqualPack(bean.getPlanStartTime(), "planStartDate", ddlPackBean); -// DdlPreparedPack.getStringEqualPack(bean.getPlanEndTime(), "planEndDate", ddlPackBean); -// MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean); -// if (null == mesProductPlan) { -// MesProductPlan mesPlanOrder = new MesProductPlan(); -// mesPlanOrder.setPlanOrderNo(""); -// mesPlanOrder.setPlanQty(bean.getQty()); -// mesPlanOrder.setPlanPartNo(bean.getPartNo()); -// mesPlanOrder.setCompleteQty(0d); -// mesPlanOrder.setUncompleteQty(bean.getQty()); -// mesPlanOrder.setUnit(bean.getUnit()); -// mesPlanOrder.setPlanStartDate(bean.getPlanStartTime()); -// mesPlanOrder.setPlanEndDate(bean.getPlanEndTime()); -// mesPlanOrder.setPartMappingWorkCenterCode(bean.getErpWorkCenter()); -// mesPlanOrder.setPlanOrganizeCode(bean.getOrganizeCode()); -// mesPlanOrder.setOrganizeCode(bean.getOrganizeCode()); -// ConvertBean.serviceModelInitialize(mesPlanOrder, bean.getCreateUser()); -// mesProductPlanRDao.insert(mesPlanOrder); -// } else { -// if (isInsert) { -// mesProductPlan.setPlanQty(MathOperation.add(mesProductPlan.getPlanQty(), bean.getQty())); -// } else { -// //报工 -// if (isReport) { -// mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum())); -// //报工调整 -// } else { -// mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum())); -// } -// } -// mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty())); -// ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser()); -// mesProductPlanRDao.update(mesProductPlan); -// } -// } else { -// DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); -// DdlPreparedPack.getStringEqualPack(bean.getPlanOrderNo(), "planOrderNo", ddlPackBean); -// DdlPreparedPack.getStringEqualPack(bean.getPartNo(), "planPartNo", ddlPackBean); -// MesProductPlan mesProductPlan = mesProductPlanRDao.getByProperty(ddlPackBean); -// if (null == mesProductPlan) { -// MesException.throwMesBusiException("SAP计划单号【%s】物料【%s】,不存在", bean.getPlanOrderNo(), bean.getPartNo()); -// } -// if (!isInsert) { -// if (Objects.isNull(mesProductPlan.getCompleteQty())) { -// mesProductPlan.setCompleteQty(0d); -// } -// //报工 -// if (isReport) { -// mesProductPlan.setCompleteQty(MathOperation.add(mesProductPlan.getCompleteQty(), bean.getNum())); -// //报工调整 -// } else { -// mesProductPlan.setCompleteQty(MathOperation.sub(mesProductPlan.getCompleteQty(), bean.getNum())); -// } -// mesProductPlan.setUncompleteQty(MathOperation.sub(mesProductPlan.getPlanQty(), mesProductPlan.getCompleteQty())); -// ConvertBean.serviceModelUpdate(mesProductPlan, bean.getCreateUser()); -// mesProductPlanRDao.update(mesProductPlan); -// } -// } - } - @Override public MesWorkOrder update(MesWorkOrder bean) { MesWorkOrder result = baseRDao.getById(bean.getId()); @@ -518,31 +450,25 @@ public class MesWorkOrderService extends BaseMesService implements //报工类型 if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) { mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getReportedQty())); - //更新SAP计划完成数量 - saveMesProductPlan(mesWorkOrder, false, true); + //更新工单状态 + double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty()); + mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); + if (mesWorkOrder.getReportedQty() > mesWorkOrder.getQty()) { + MesException.throwMesBusiException("工单报工数量【%s】大于工单数量【%s】,不允许报工", + mesWorkOrder.getReportedQty(), mesWorkOrder.getQty()); + } else if (Objects.equals(mesWorkOrder.getReportedQty(), mesWorkOrder.getQty())) { + mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); + } else { + mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); + } } else { //冲销数量大于工单完成数量报错 - if (mesWorkOrder.getNum() > mesWorkOrder.getReportedQty()) { + if (MathOperation.add(mesWorkOrder.getNum(),mesWorkOrder.getAdjustQty()) > mesWorkOrder.getReportedQty()) { MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】,不允许冲销", mesWorkOrder.getNum(), mesWorkOrder.getReportedQty()); } //报工调整数量加- mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getAdjustQty()))); - //已汇报数量减一 - mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrder.getNum())); - //更新SAP计划完成数量 - saveMesProductPlan(mesWorkOrder, false, false); - } - //更新工单状态 - double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty()); - mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); - if (mesWorkOrder.getReportedQty() > mesWorkOrder.getQty()) { - MesException.throwMesBusiException("工单报工数量【%s】大于工单数量【%s】,不允许报工", - mesWorkOrder.getReportedQty(), mesWorkOrder.getQty()); - } else if (Objects.equals(mesWorkOrder.getReportedQty(), mesWorkOrder.getQty())) { - mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); - } else { - mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); } update(mesWorkOrder); @@ -641,26 +567,24 @@ public class MesWorkOrderService extends BaseMesService implements //报工 if (MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()) { mesWorkOrder.setReportedQty(MathOperation.add(mesWorkOrderNew.getNum(), mesWorkOrder.getReportedQty())); + //更新工单状态 + double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty()); + mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); + if (mesWorkOrder.getReportedQty() > mesWorkOrder.getQty()) { + MesException.throwMesBusiException("工单报工数量大于工单数量【%s】,不允许报工", mesWorkOrder.getQty()); + } else if (Objects.equals(mesWorkOrder.getReportedQty(), mesWorkOrder.getQty())) { + mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); + } else { + mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); + } } else { //冲销数量大于工单完成数量报错 - if (mesWorkOrderNew.getNum() > mesWorkOrder.getReportedQty()) { + if (MathOperation.add(mesWorkOrder.getNum(),mesWorkOrder.getAdjustQty()) > mesWorkOrder.getReportedQty()) { MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】,不允许冲销", mesWorkOrderNew.getNum(), mesWorkOrder.getReportedQty()); } //报工调整数量加- mesWorkOrder.setAdjustQty((MathOperation.add(mesWorkOrderNew.getNum(), mesWorkOrder.getAdjustQty()))); - //已汇报数量减一 - mesWorkOrder.setReportedQty(MathOperation.sub(mesWorkOrder.getReportedQty(), mesWorkOrderNew.getNum())); - } - //更新工单状态 - double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getReportedQty()); - mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); - if (mesWorkOrder.getReportedQty() > mesWorkOrder.getQty()) { - MesException.throwMesBusiException("工单报工数量大于工单数量【%s】,不允许报工", mesWorkOrder.getQty()); - } else if (Objects.equals(mesWorkOrder.getReportedQty(), mesWorkOrder.getQty())) { - mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); - } else { - mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); } //获取生产版本 MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrder);