From b75199dadcd52b26c7f784d6c02a246142c22a6a Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Tue, 24 Dec 2024 22:17:37 +0800 Subject: [PATCH] =?UTF-8?q?44425=20=E5=BD=93=E6=9C=89=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E7=BA=BF=E8=BE=B9=E5=BA=93=E4=BD=8D=E7=9A=84=E6=83=85=E5=86=B5?= =?UTF-8?q?=EF=BC=8C=E7=94=B5=E5=AD=90=E5=8C=96=E6=A3=80=E9=AA=8C=E7=9A=84?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=E5=BA=93=E4=BD=8D=E5=A6=82=E4=BD=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesInputDefectRecordService.java | 47 +++++++++++++++++++--- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java index bb96e2a..c5e3b88 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesInputDefectRecordService.java @@ -114,6 +114,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService @Autowired private IMesPartService mesPartService; + @Autowired + private MesWorkCenterPartRelationRepository workCenterPartRelationRepository; + @Override public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel inputModel, String org) { @@ -469,8 +472,30 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean); if (version != null) { srcLocateNo = version.getReceiveInventoryPoint(); + } else { + //当前为初判, 生产版本不存在的情况下, 取生产线信息的材料库位, 如果没有加工记录,生产线使用产线与零件关系表的唯一生产线 + String workCenterCode; + if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) { + if (null == produceSn || StringUtils.isEmpty(produceSn.getProcessCode())) { + List workCenterPartRelationList = getWorkCenterPartRelation(org, model.getPartNo()); + if (CollectionUtils.isEmpty(workCenterPartRelationList) || workCenterPartRelationList.size() > 1 || StringUtils.isEmpty(workCenterPartRelationList.get(0).getWorkCenterCode())) { + throw new ImppBusiException(String.format("条码[%s]未查询到有效的来源库位!", model.getSn())); + } + workCenterCode = workCenterPartRelationList.get(0).getWorkCenterCode(); + } else { + workCenterCode = produceSn.getWorkCenterCode(); + } + } else { + workCenterCode = model.getWorkCenterCode(); + } + + MesWorkCenter workCenter = prodOrgExtService.getWorkCenterDb(org, workCenterCode); + if (null == workCenter) throw new ImppBusiException(String.format("条码[%s]查询来源库位时获取的生产线代码[%s]信息不存在!", model.getSn(), workCenterCode)); + if (StringUtils.isEmpty(workCenter.getRawLocate())) throw new ImppBusiException(String.format("条码[%s]查询来源库位时获取的生产线代码[%s]信息未维护[材料库位]!", model.getSn(), workCenterCode)); + srcLocateNo = workCenter.getRawLocate(); } } + if (model.getOptType() != 2) { //移库 //移库 @@ -487,8 +512,6 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService } else { - - model.getPartInspection().setInspectionStatus(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue()); ConvertBean.serviceModelUpdate(model.getPartInspection(), AuthUtil.getSessionUser().getUserName()); if (model.getOptType() != null && model.getOptType() == 2) { @@ -524,7 +547,6 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService throw new ImppBusiException(String.format("【%s】位置不存在,请检查数据", defectTypeNoExitList)); } - //若是扫描条码 则判定条码可疑 if (model.getSourceType() == MesExtEnumUtil.PART_INSPECTION_SOURCE_TYPE.SINGLE.getValue()) { @@ -583,12 +605,20 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService } } + + private List getWorkCenterPartRelation(String org, String partNo) { + return workCenterPartRelationRepository.findByProperty( + new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.PART_NO}, + new Object[]{org, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), partNo}); + } + public MesWorkOrder getWorkOrder(String organizeCode, String workOrderNo) { if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(workOrderNo)) return null; return workOrderRepository.getByProperty( new String[]{MesPcnExtConstWords.ORGANIZE_CODE, MesPcnExtConstWords.IS_DELETED, MesPcnExtConstWords.IS_VALID, MesPcnExtConstWords.WORK_ORDER_NO}, new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), workOrderNo}); } + private String getDestLocateNo(MesPartInspectionInputModel model, String org) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean); @@ -1082,18 +1112,25 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService // 查询生产版本 String workCenterCode = model.getWorkCenterCode(); String productVersion = model.getProductVersion(); - + MesProductVersion version = null; if (!StringUtils.isEmpty(productVersion)) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(org); DdlPreparedPack.getStringEqualPack(partNo, "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); DdlPreparedPack.getStringEqualPack(productVersion, "productVersion", ddlPackBean); - MesProductVersion version = productVersionRepository.getByProperty(ddlPackBean); + version = productVersionRepository.getByProperty(ddlPackBean); if (version != null) { source = version.getShipInventoryPoint(); } } + + //生产版本不存在的情况下, 取生产线信息的材料库位 + if (null == version) { + MesWorkCenter workCenter = prodOrgExtService.getWorkCenterDb(org, workCenterCode); + if (null != workCenter && !StringUtils.isEmpty(workCenter.getRawLocate())) source = workCenter.getRawLocate(); + } + MesMove move = createMove(model, source, configService.getCfgValue(org, "UMLGO"), org, model.getWorkCenterCode()); moveRepository.insert(move); }