diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index 72bf7d6..dbca32c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -540,12 +540,14 @@ public class MesWorkOrderService implements IMesWorkOrderService { double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty()); oldMesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); } - //更新工单状态 - if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) { - oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); - } else { - oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); + if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) { + //更新工单状态 + if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) { + oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); + } else { + oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); + } } LOGGER.info("工单报工后数量【{}】", oldMesWorkOrder.getReportedQty()); ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); @@ -607,6 +609,20 @@ public class MesWorkOrderService implements IMesWorkOrderService { private MesProductOffLine getMesProductOffLine(MesProductionRecord productionRecord, String userName, MesWorkOrder oldMesWorkOrder, MesProductVersion mesProductVersion, MesBom mesBom,String reportSn,boolean isItemReport) { MesProductOffLine newMesProductOffLine = new MesProductOffLine(); BeanUtils.copyProperties(mesBom, newMesProductOffLine, MesPcnExtConstWords.BASE_BEAN_FIELDS); + + DdlPackBean productPackBean = DdlPackBean.getDdlPackBean(productionRecord.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(mesBom.getItemPartNo(),"itemPartNo", productPackBean); + DdlPreparedPack.getStringEqualPack(oldMesWorkOrder.getPartNo(),"reportPartNo", productPackBean); + DdlPreparedPack.getStringEqualPack(productionRecord.getProductSn(),"reportSn", productPackBean); + MesProductOffLine productOffLine = mesProductOffLineRDao.getByProperty(productPackBean); + if (productOffLine != null) { + String msg = String.format("子零件【%s】产成零件【%s】条码【%s】对应报工信息已存在", + mesBom.getItemPartNo(),oldMesWorkOrder.getPartNo(), productionRecord.getProductSn()); + LOGGER.error(msg); + throw new ImppBusiException(msg); + } + + newMesProductOffLine.setReportPartNo(mesBom.getPartNo()); newMesProductOffLine.setReportPartNameRdd(mesBom.getPartName()); newMesProductOffLine.setAlort(mesProductVersion.getReceiveInventoryPoint()); @@ -758,8 +774,9 @@ public class MesWorkOrderService implements IMesWorkOrderService { DdlPreparedPack.getStringEqualPack(productionRecord.getWorkCenterCode(), "workCenterCode", ddlPackBean); if (!StringUtils.isEmpty(productionRecord.getWorkOrderNo())) { DdlPreparedPack.getStringEqualPack(productionRecord.getWorkOrderNo(), "workOrderNo", ddlPackBean); + } else { + DdlPreparedPack.getInPackList(list, "workOrderStatus", ddlPackBean); } - DdlPreparedPack.getInPackList(list, "workOrderStatus", ddlPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"modifyDatetime"}, ddlPackBean); // 新增班次逻辑 //DdlPreparedPack.