From 640d87bc3b365de40c005fe3a9340791e2ca4f7c Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 3 Jun 2025 13:41:46 +0800 Subject: [PATCH] =?UTF-8?q?47318=20=E7=94=B5=E5=AD=90=E5=8C=96=E6=A3=80?= =?UTF-8?q?=E9=AA=8C=E5=85=B6=E4=BB=96=E5=B7=A5=E4=BD=8D=E4=B8=8D=E8=89=AF?= =?UTF-8?q?=E9=9C=80=E6=8A=A5=E9=94=99=E6=8F=90=E7=A4=BA=EF=BC=8C=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E5=8D=95=E8=B5=8B=E5=80=BC=E9=80=89=E6=8B=A9=E7=9A=84?= =?UTF-8?q?=E4=BA=A7=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesInputDefectRecordService.java | 48 +++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) 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 1be5af7..8f79f65 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 @@ -16,6 +16,7 @@ import cn.estsh.i3plus.mes.pcn.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.MesConstWords; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -132,6 +133,9 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService @Autowired private MesWorkCellRepository workCellRDao; + @Autowired + private MesWorkCenterRepository mesWorkCenterRDao; + @Override public MesPartInspectionViewModel queryPartInspection(MesPartInspectionInputModel model) { @@ -145,6 +149,7 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService ValidatorBean.checkNotNull(model.getFrontBack(), "正反面不能为空"); //检查条码 MesProduceSn produceSn = checkProduceSn(model.getSn(), model.getOrganizeCode()); + checkOtherWorkCell(produceSn, model, model.getOrganizeCode()); //获取NC-零件检测-单据 partInspection = getPartInspection(produceSn, model, model.getOrganizeCode()); @@ -252,7 +257,6 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService if (!StringUtil.isEmpty(produceSn)){ model.setCustSn(produceSn.getCustSn()); model.setSn(produceSn.getProductSn()); - model.setWorkCenterCode(produceSn.getWorkCenterCode()); //排序产线 更新工单的 qcStatus MesWorkCenter centerDb = prodOrgExtService.getWorkCenterDb(model.getOrganizeCode(), produceSn.getWorkCenterCode()); if (!StringUtil.isEmpty(centerDb)){ @@ -797,6 +801,48 @@ public class MesInputDefectRecordService implements IMesInputDefectRecordService } /** + * 检查条码是否在其他工位判为不良 + * @param produceSn 条码 + * @param inputModel 前端传入参数 + * @param org 工厂代码 + */ + private void checkOtherWorkCell(MesProduceSn produceSn,MesPartInspectionInputModel inputModel, String org) { + if (StringUtils.isEmpty(inputModel.getWorkCellCode())) { + return; + } + int refundFlag = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); + if (inputModel.getOptType() == 2) { + refundFlag = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(); + } + + //根据条码找最近一条单据 + DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); + DdlPreparedPack.getStringEqualPack(produceSn.getProductSn(), "sn", packBean); + DdlPreparedPack.getStringNoEqualPack(inputModel.getWorkCellCode(), "workCellCode", packBean); + DdlPreparedPack.getStringNotBlanklPack("workCellCode", packBean); + DdlPreparedPack.getNumEqualPack(refundFlag, "refundFlag", packBean); + DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.PART_INSPECTION_STATUS.FAIL.getValue(), "inspectionStatus", packBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); + MesPartInspection partInspection = partInspectionRepository.getByProperty(packBean); + if (partInspection != null) { + MesWorkCenter mesWorkCenter = null; + if (!StringUtils.isEmpty(partInspection.getWorkCenterCode())) { + mesWorkCenter = mesWorkCenterRDao.getByProperty( + new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID, "workCenterCode"}, + new Object[]{org, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), partInspection.getWorkCenterCode()}); + } + final String workCenterName = mesWorkCenter != null ? mesWorkCenter.getWorkCenterName() : partInspection.getWorkCenterCode(); + MesWorkCell mesWorkCell = workCellRDao.getByProperty(new String[]{MesConstWords.ORGANIZE_CODE, MesConstWords.IS_DELETED, MesConstWords.IS_VALID, "workCellCode"}, + new Object[]{org, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), partInspection.getWorkCellCode()}); + final String workCellName = mesWorkCell != null ? mesWorkCell.getWorkCellName() : partInspection.getWorkCellCode(); + throw ImppExceptionBuilder.newInstance().setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) + .setErrorDetail(String.format("【%s】条码在产线【%s】工位【%s】判为不良,请检查数据", partInspection.getSn(), workCenterName, workCellName)) + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .build(); + } + } + + /** * 获取NC-零件检测-单据 * * @param inputModel