From 47cc8d62612a4a6287fd3045d199a3889342b799 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 12 Dec 2024 15:57:35 +0800 Subject: [PATCH] =?UTF-8?q?44263=20PCN=E8=A3=85=E7=AE=B1=E9=98=B2=E9=94=99?= =?UTF-8?q?=EF=BC=9A=E6=BB=A1=E7=AE=B1=E5=85=B3=E7=AE=B1=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E2=80=9C=E5=BD=93=E5=89=8D=E7=AE=B1=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E5=B7=B2=E5=AE=8C=E6=88=90=E8=A3=85=E7=AE=B1=E3=80=82?= =?UTF-8?q?=E8=AF=B7=E6=89=AB=E6=8F=8F=E4=B8=8B=E4=B8=80=E4=B8=AA=E7=AE=B1?= =?UTF-8?q?=E6=9D=A1=E7=A0=81=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/busi/IMesBoxingErrorProofingService.java | 4 +- .../busi/MesBoxingErrorProofingController.java | 6 +- .../busi/MesBoxingErrorProofingService.java | 128 +++++++++++---------- .../ext/mes/pcn/pojo/util/MesPcnExtConstWords.java | 4 + 4 files changed, 75 insertions(+), 67 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesBoxingErrorProofingService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesBoxingErrorProofingService.java index 925aa72..423c400 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesBoxingErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesBoxingErrorProofingService.java @@ -26,10 +26,10 @@ public interface IMesBoxingErrorProofingService { Integer getIsMemory(String organizeCode, String userName); @ApiOperation(value = "扫描") - MesPackage doScan(MesPackageDetail mesPackageDetail); + ResultBean doScan(MesPackageDetail mesPackageDetail); @ApiOperation(value = "保存包装明细") - MesPackage saveMesPackageDetails(List mesPackage, String userName); + ResultBean saveMesPackageDetails(List mesPackage, String userName); @ApiOperation(value = "更新包装表") ResultBean updateMesPackage(MesPackage mesPackage); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java index bcb6b76..1e43637 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesBoxingErrorProofingController.java @@ -74,8 +74,7 @@ public class MesBoxingErrorProofingController { mesPackageDetail.setOrganizeCode(!StringUtils.isEmpty(mesPackageDetail.getOrganizeCode())?mesPackageDetail.getOrganizeCode():AuthUtil.getOrganizeCode()); ConvertBean.serviceModelInitialize(mesPackageDetail,!StringUtils.isEmpty(mesPackageDetail.getModifyUser())?mesPackageDetail.getModifyUser():AuthUtil.getSessionUser().getUserName()); - MesPackage mesPackage = mesBoxingErrorProofingService.doScan(mesPackageDetail); - return ResultBean.success("扫描成功").setResultObject(mesPackage); + return mesBoxingErrorProofingService.doScan(mesPackageDetail); } catch (ImppBusiException imppException) { return ResultBean.fail(imppException); } catch (Exception e) { @@ -94,8 +93,7 @@ public class MesBoxingErrorProofingController { }); MesPackageDetail next = mesPackageDetailList.iterator().next(); String userName = !StringUtils.isEmpty(next.getModifyUser())?next.getModifyUser():AuthUtil.getSessionUser().getUserName(); - MesPackage mesPackage = mesBoxingErrorProofingService.saveMesPackageDetails(mesPackageDetailList, userName); - return ResultBean.success("保存成功").setResultObject(mesPackage); + return mesBoxingErrorProofingService.saveMesPackageDetails(mesPackageDetailList, userName); } catch (ImppBusiException imppException) { return ResultBean.fail(imppException); } catch (Exception e) { diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java index 6c26e92..abdee0d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesBoxingErrorProofingService.java @@ -82,7 +82,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer public ListPager queryMesPackageDetailByPager(MesPackage mesPackage, Pager pager) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesPackage.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), "packageNo", packBean); + DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), MesPcnExtConstWords.PACKAGE_NO, packBean); pager = PagerHelper.getPager(pager, mesPackageDetailRDao.findByHqlWhereCount(packBean)); List resultList = mesPackageDetailRDao.findByHqlWherePage(packBean, pager); return new ListPager<>(resultList, pager); @@ -99,19 +99,17 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer } @Override - public MesPackage doScan(MesPackageDetail mesPackageDetail) { + public ResultBean doScan(MesPackageDetail mesPackageDetail) { //获取包装定义 MesPackingDefine packingDefine = getMesPackingDefine(mesPackageDetail); //扫描的是包装 if (mesPackageDetail.getIsScanPackageBoolean()) { checkNotNull(mesPackageDetail); MesPackage mesPackage = getMesPackage(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getPackageNo()); - if (Objects.nonNull(mesPackage)) { - return mesPackage; - }else{ + if (Objects.isNull(mesPackage)) { MesPart mesPart; Double qty; - String packageOneCode = ""; + String packageOneCode = MesPcnExtConstWords.EMPTY; //WMS打印的条码信息 MesPackageSn mesPackageSn = getMesPackageSn(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getPackageNo()); if(!Objects.isNull(mesPackageSn)){ @@ -121,7 +119,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer }else{ //解析获取信息保存 if (StringUtils.isEmpty(packingDefine.getSplitChar())) { - MesPcnException.throwMesBusiException("箱类别代号【%s】分隔符不能为空,请检查数据!", packingDefine.getPackCode()); + MesPcnException.throwMesBusiException("箱类别代号[%s]分隔符不能为空,请检查数据!", packingDefine.getPackCode()); } String[] split = mesPackageDetail.getPackageNo().split("\\" + packingDefine.getSplitChar()); //获取序列号 @@ -133,20 +131,20 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //获取数量信息是否存在 qty = getQty(packingDefine, split); } - MesPackage packages = getMesPackage(mesPackageDetail, mesPart, qty, packingDefine,packageOneCode); - return mesPackageRDao.insert(packages); + mesPackage = mesPackageRDao.insert(getMesPackage(mesPackageDetail, mesPart, qty, packingDefine,packageOneCode)); } + return ResultBean.success("箱条码扫描成功,请扫零件条码!").setResultObject(mesPackage); } else { checkNotNull(mesPackageDetail); - //校验过程条码是否存在 + //校验零件条码是否存在 if (StringUtils.isEmpty(mesPackageDetail.getSerialNumber())) { - MesPcnException.throwMesBusiException("过程条码不允许为空,请检查数据!"); + MesPcnException.throwMesBusiException("零件条码不允许为空,请检查数据!"); } //校验包装条码信息 MesPackage mesPackage = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode()); //校验是否已关闭 if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { - MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码,请检查数据!"); + MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码,请检查数据!"); } //校验条码规则 MesPart mesPart = getMesPart(mesPackageDetail, mesPackage, packingDefine); @@ -161,18 +159,21 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //缓存是否记忆开关 saveRedis(getKey(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getModifyUser()),mesPackageDetail.getIsMemory()); mesPackage.setMesPackageDetail(saveMesPackageDetail); - return mesPackage; + if(mesPackage.getIsSealed() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){ + return ResultBean.success("当前箱条码已完成装箱,请扫描下一个箱条码!").setResultObject(mesPackage); + } + return ResultBean.success("零件条码扫描成功,请继续扫描零件条码!").setResultObject(mesPackage); } } @Override - public MesPackage saveMesPackageDetails(List mesPackageDetailList, String userName) { + public ResultBean saveMesPackageDetails(List mesPackageDetailList, String userName) { MesPackageDetail packageDetail = mesPackageDetailList.iterator().next(); //校验包装条码信息 MesPackage mesPackage = getMesPackageAndCheck(packageDetail.getPackageNo(), packageDetail.getOrganizeCode()); //校验是否已关闭 if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { - MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码,请检查数据!"); + MesPcnException.throwMesBusiException("箱条码已封箱,不允许扫描零件条码,请检查数据!"); } //去掉重复零件条码 List saveMesPackageDetailList = new ArrayList<>(); @@ -184,37 +185,40 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //更新包装表 updateMesPackage(mesPackage, userName, qty, false); } - return mesPackage; + if(mesPackage.getIsSealed() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){ + return ResultBean.success("当前箱条码已完成装箱,请扫描下一个箱条码!").setResultObject(mesPackage); + } + return ResultBean.success("提交成功,请继续扫描零件条码!").setResultObject(mesPackage); } @Override public ResultBean updateMesPackage(MesPackage mesPackage) { String userName = mesPackage.getModifyUser(); if (Objects.isNull(CommonEnumUtil.TRUE_OR_FALSE.valueOfDescription(mesPackage.getIsSealed()))) { - MesPcnException.throwMesBusiException("是否封箱不能为空,请检查数据!"); + MesPcnException.throwMesBusiException("是否封箱不能为空,请检查数据!"); } //查询包装条码信息 MesPackage mesPackageDb = getMesPackageAndCheck(mesPackage.getPackageNo(), mesPackage.getOrganizeCode()); if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackage.getIsSealed()) { if (CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == mesPackageDb.getIsSealed()) { - MesPcnException.throwMesBusiException("箱条码【%s】状态为已关箱,请勿重复操作,请检查数据!", mesPackage.getPackageNo()); + MesPcnException.throwMesBusiException("箱条码[%s]状态为已关箱,请勿重复操作,请检查数据!", mesPackage.getPackageNo()); } //校验是否存在包装明细 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackage.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), "packageNo", ddlPackBean); if (!mesPackageDetailRDao.isExitByHql(ddlPackBean)) { - MesPcnException.throwMesBusiException("箱条码【%s】下不存在零件条码,不允许关箱,请检查数据!", mesPackage.getPackageNo()); + MesPcnException.throwMesBusiException("箱条码[%s]下不存在零件条码,不允许关箱,请检查数据!", mesPackage.getPackageNo()); } //关箱 updateMesPackage(mesPackageDb, mesPackage.getModifyUser(), 0d, true); - return ResultBean.success("关箱成功"); + return ResultBean.success("关箱成功!"); } else { if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) { - MesPcnException.throwMesBusiException("箱条码【%s】状态不为已关箱,不需要拆箱,请检查数据!", mesPackage.getPackageNo()); + MesPcnException.throwMesBusiException("箱条码[%s]状态不为已关箱,不需要拆箱,请检查数据!", mesPackage.getPackageNo()); } //拆箱 unboxing(mesPackage, userName, mesPackageDb); - return ResultBean.success("拆箱成功"); + return ResultBean.success("拆箱成功!"); } } @@ -223,7 +227,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //查询包装条码信息 MesPackage mesPackageDb = getMesPackageAndCheck(mesPackageDetail.getPackageNo(), mesPackageDetail.getOrganizeCode()); if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == mesPackageDb.getIsSealed()) { - MesPcnException.throwMesBusiException("箱条码【%s】不为已关箱状态,不允许操作替换条码,请检查数据!", mesPackageDetail.getPackageNo()); + MesPcnException.throwMesBusiException("箱条码[%s]不为已关箱状态,不允许操作替换条码,请检查数据!", mesPackageDetail.getPackageNo()); } //校验是否重复扫描 List mesPackageDetails = getMesPackageDetailList(mesPackageDetail); @@ -233,7 +237,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer for (MesPackageDetail packageDetail : mesPackageDetails) { //替换条码是否已经存在 if (packageDetail.getSerialNumber().equals(mesPackageDetail.getSerialNumber())) { - MesPcnException.throwMesBusiException("零件条码【%s】已存在存在,请检查数据!", mesPackageDetail.getSerialNumber()); + MesPcnException.throwMesBusiException("零件条码[%s]已存在存在,请检查数据!", mesPackageDetail.getSerialNumber()); } //替换条码 if (packageDetail.getSerialNumber().equals(mesPackageDetail.getOldSerialNumber())) { @@ -246,7 +250,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer } } if(!exist){ - MesPcnException.throwMesBusiException("原零件条码【%s】不存在,请检查数据!", mesPackageDetail.getOldSerialNumber()); + MesPcnException.throwMesBusiException("原零件条码[%s]不存在,请检查数据!", mesPackageDetail.getOldSerialNumber()); } mesPackageDetailRDao.saveAll(mesPackageDetails); } @@ -254,11 +258,11 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private List getMesPackageDetailList(MesPackageDetail mesPackageDetail) { String[] serialNumberList = new String[]{mesPackageDetail.getSerialNumber(), mesPackageDetail.getOldSerialNumber()}; DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackageDetail.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesPackageDetail.getPackageNo(), "packageNo", ddlPackBean); - DdlPreparedPack.getInPackArray(serialNumberList, "serialNumber", ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesPackageDetail.getPackageNo(), MesPcnExtConstWords.PACKAGE_NO, ddlPackBean); + DdlPreparedPack.getInPackArray(serialNumberList, MesPcnExtConstWords.SERIAL_NUMBER, ddlPackBean); List mesPackageDetails = mesPackageDetailRDao.findByHqlWhere(ddlPackBean); if (CollectionUtils.isEmpty(mesPackageDetails)) { - MesPcnException.throwMesBusiException("零件条码【%s】不存在,请检查数据!", mesPackageDetail.getOldSerialNumber()); + MesPcnException.throwMesBusiException("零件条码[%s]不存在,请检查数据!", mesPackageDetail.getOldSerialNumber()); } return mesPackageDetails; } @@ -267,7 +271,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer public void unLock(String organizeCode, String pwd) { String cfgValue = configService.getCfgValue(organizeCode, MesCommonConstant.BOXING_ERROR_PROOFING_PWD); if (!Objects.equals(cfgValue, pwd)) { - MesPcnException.throwMesBusiException("解锁失败密码错误,请检查数据!"); + MesPcnException.throwMesBusiException("解锁失败密码错误,请检查数据!"); } } @@ -286,19 +290,18 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private void checkSerialNumber(MesPackageDetail mesPackageDetail) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackageDetail.getOrganizeCode()); -// DdlPreparedPack.getStringEqualPack(mesPackageDetail.getPackageNo(), "packageNo", ddlPackBean); - DdlPreparedPack.getStringEqualPack(mesPackageDetail.getSerialNumber(), "serialNumber", ddlPackBean); + DdlPreparedPack.getStringEqualPack(mesPackageDetail.getSerialNumber(), MesPcnExtConstWords.SERIAL_NUMBER, ddlPackBean); if (mesPackageDetailRDao.isExitByHql(ddlPackBean)) { - MesPcnException.throwMesBusiException("零件条码【%s】已装箱,请检查数据!", mesPackageDetail.getSerialNumber()); + MesPcnException.throwMesBusiException("零件条码[%s]已装箱,请检查数据!", mesPackageDetail.getSerialNumber()); } } private List getMesPackingDefineDetails(String organizeCode, String packCode) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(packCode, "packCode", ddlPackBean); + DdlPreparedPack.getStringEqualPack(packCode, MesPcnExtConstWords.PACK_CODE, ddlPackBean); List defineDetails = mesPackingDefineDetailsRDao.findByHqlWhere(ddlPackBean); if (CollectionUtils.isEmpty(defineDetails)) { - MesPcnException.throwMesBusiException("箱类别代号【%s】包装定义明细未维护,请检查数据!", packCode); + MesPcnException.throwMesBusiException("箱类别代号[%s]包装定义明细未维护,请检查数据!", packCode); } return defineDetails; } @@ -312,8 +315,9 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //软删包装明细 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesPackage.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), "packageNo", ddlPackBean); - mesPackageDetailRDao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "isDeleted"}, + DdlPreparedPack.getStringEqualPack(mesPackage.getPackageNo(), MesPcnExtConstWords.PACKAGE_NO, ddlPackBean); + mesPackageDetailRDao.updateByProperties( + new String[]{MesPcnExtConstWords.MODIFY_USER, MesPcnExtConstWords.MODIFY_DATE_TIME, MesPcnExtConstWords.IS_DELETED}, new Object[]{userName, TimeTool.getNowTime(true), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}, ddlPackBean); } @@ -322,7 +326,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private MesPackage getMesPackageAndCheck(String packageNo, String organizeCode) { MesPackage mesPackageDb = getMesPackage(organizeCode, packageNo); if (Objects.isNull(mesPackageDb)) { - MesPcnException.throwMesBusiException("箱条码【%s】信息不存在,请检查数据!", packageNo); + MesPcnException.throwMesBusiException("箱条码[%s]信息不存在,请检查数据!", packageNo); } return mesPackageDb; } @@ -370,7 +374,7 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private List getMesPackageDetailList(String organizeCode, String packageNo) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(packageNo, "packageNo", ddlPackBean); + DdlPreparedPack.getStringEqualPack(packageNo, MesPcnExtConstWords.PACKAGE_NO, ddlPackBean); List mesPackageDetails = mesPackageDetailRDao.findByHqlWhere(ddlPackBean); return mesPackageDetails; } @@ -392,10 +396,12 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer if (!CollectionUtils.isEmpty(produceSnList)) { MesProduceSn nextMesProduceSn = produceSnList.stream().sorted(Comparator.comparing(MesProduceSn::getCreateDatetime).reversed()).collect(Collectors.toList()).iterator().next(); if (!MesExtEnumUtil.PRODUCE_SN_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getSnStatus()) || !MesExtEnumUtil.PRODUCE_QC_STATUS.checkAllowBoxingErrorProofing(nextMesProduceSn.getQcStatus())) { - MesPcnException.throwMesBusiException("条码【%s】状态【%s】质量状态【%s】不允许操作装箱防错,请检查数据!", mesPackageDetail.getSerialNumber(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(nextMesProduceSn.getSnStatus()), MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(nextMesProduceSn.getQcStatus())); + MesPcnException.throwMesBusiException("条码[%s]状态[%s]质量状态[%s]不允许操作装箱防错,请检查数据!", + mesPackageDetail.getSerialNumber(), MesExtEnumUtil.PRODUCE_SN_STATUS.valueOfDescription(nextMesProduceSn.getSnStatus()), + MesExtEnumUtil.PRODUCE_QC_STATUS.valueOfDescription(nextMesProduceSn.getQcStatus())); } if(!partNo.equals(nextMesProduceSn.getPartNo())){ - MesPcnException.throwMesBusiException("条码【%s】零件号【%s】和箱零件【%s】不匹配,请检查数据!", mesPackageDetail.getSerialNumber(), nextMesProduceSn.getPartNo(), partNo); + MesPcnException.throwMesBusiException("条码[%s]零件号[%s]和箱零件[%s]不匹配,请检查数据!", mesPackageDetail.getSerialNumber(), nextMesProduceSn.getPartNo(), partNo); } } //工艺校验 @@ -403,15 +409,15 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer //查询加工记录 List productionRecordList = mesProductionRecordService.findProductionRecordList(mesPackageDetail.getOrganizeCode(), mesPackageDetail.getSerialNumber()); if(CollectionUtils.isEmpty(productionRecordList)){ - MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺失败,加工记录信息不存在,请检查数据!", mesPackageDetail.getSerialNumber()); + MesPcnException.throwMesBusiException("条码[%s]校验装箱防错对应工艺失败,加工记录信息不存在,请检查数据!", mesPackageDetail.getSerialNumber()); } if(StringUtils.isEmpty(packingDefine.getCraft())){ - MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺为空,请检查数据!", mesPackageDetail.getSerialNumber()); + MesPcnException.throwMesBusiException("条码[%s]校验装箱防错对应工艺为空,请检查数据!", mesPackageDetail.getSerialNumber()); } //校验条码是否经过该工艺 Optional productionRecordOptional = productionRecordList.stream().filter(t -> !StringUtils.isEmpty(t.getCraftCode()) && packingDefine.getCraft().equals(t.getCraftCode())).findFirst(); if(!productionRecordOptional.isPresent()){ - MesPcnException.throwMesBusiException("条码【%s】校验装箱防错对应工艺【%s】失败,请检查数据!", mesPackageDetail.getSerialNumber(),packingDefine.getCraft()); + MesPcnException.throwMesBusiException("条码[%s]校验装箱防错对应工艺[%s]失败,请检查数据!", mesPackageDetail.getSerialNumber(),packingDefine.getCraft()); } } } @@ -422,9 +428,9 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer for (MesPackingDefineDetails defineDetail : defineDetails) { //条码规则为空 if (StringUtils.isEmpty(defineDetail.getPackageBarcodeRule())) { - MesPcnException.throwMesBusiException("箱类别代号【%s】零件号【%s】条码规则未维护,请检查数据!", mesPackage.getPackageSn(), defineDetail.getPartNo()); + MesPcnException.throwMesBusiException("箱类别代号[%s]零件号[%s]条码规则未维护,请检查数据!", mesPackage.getPackageSn(), defineDetail.getPartNo()); } - packageBarcodeRule = defineDetail.getPackageBarcodeRule().replace("*", ""); + packageBarcodeRule = defineDetail.getPackageBarcodeRule().replace(MesPcnExtConstWords.ASTERISK, MesPcnExtConstWords.EMPTY); //包含箱条码 if (mesPackageDetail.getSerialNumber().contains(packageBarcodeRule)) { partNo = defineDetail.getPartNo(); @@ -432,28 +438,28 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer } } if (Objects.isNull(partNo)) { - MesPcnException.throwMesBusiException("零件条码【%s】未匹配到符合条码规则的数据,请检查数据!", mesPackageDetail.getSerialNumber()); + MesPcnException.throwMesBusiException("零件条码[%s]未匹配到符合条码规则的数据,请检查数据!", mesPackageDetail.getSerialNumber()); } //校验零件是否一致 if (!partNo.equals(mesPackage.getPartNo())) { - MesPcnException.throwMesBusiException("零件条码【%s】包装定义明细零件【%s】和箱零件【%s】不一致,请检查数据!", mesPackageDetail.getSerialNumber(), partNo, mesPackage.getPartNo()); + MesPcnException.throwMesBusiException("零件条码[%s]包装定义明细零件[%s]和箱零件[%s]不一致,请检查数据!", mesPackageDetail.getSerialNumber(), partNo, mesPackage.getPartNo()); } return partNo; } private void checkNotNull(MesPackageDetail mesPackageDetail) { if (StringUtils.isEmpty(mesPackageDetail.getPackageNo())) { - MesPcnException.throwMesBusiException("包装编码不能为空,请检查数据!"); + MesPcnException.throwMesBusiException("包装编码不能为空,请检查数据!"); } if (StringUtils.isEmpty(mesPackageDetail.getScanType())) { - MesPcnException.throwMesBusiException("客户条码规则不能为空,请检查数据!"); + MesPcnException.throwMesBusiException("客户条码规则不能为空,请检查数据!"); } } private void checkSerial(MesPackingDefine packingDefine, String[] split) { if (StringUtils.isEmpty(packingDefine.getSerialIdIndex()) || packingDefine.getSerialIdIndex() > split.length || StringUtils.isEmpty(split[packingDefine.getSerialIdIndex() - 1])) { - MesPcnException.throwMesBusiException("序列号所在位置不存在,请检查数据!"); + MesPcnException.throwMesBusiException("序列号所在位置不存在,请检查数据!"); } String serialNo = split[packingDefine.getSerialIdIndex() - 1]; } @@ -461,28 +467,28 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private void checkOrganizeCode(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine, String[] split) { if (StringUtils.isEmpty(packingDefine.getOrganizeIndex()) || packingDefine.getOrganizeIndex() > split.length || StringUtils.isEmpty(split[packingDefine.getOrganizeIndex() - 1])) { - MesPcnException.throwMesBusiException("工厂所在位置不存在,请检查数据!"); + MesPcnException.throwMesBusiException("工厂所在位置不存在,请检查数据!"); } String organizeCode = split[packingDefine.getOrganizeIndex() - 1]; if (!Objects.equals(organizeCode, mesPackageDetail.getOrganizeCode())) { - MesPcnException.throwMesBusiException("箱条码工厂【%s】和当前工厂【%s】不匹配,请检查数据!", organizeCode, mesPackageDetail.getOrganizeCode()); + MesPcnException.throwMesBusiException("箱条码工厂[%s]和当前工厂[%s]不匹配,请检查数据!", organizeCode, mesPackageDetail.getOrganizeCode()); } } private MesPart getMesPart(MesPackageDetail mesPackageDetail, MesPackingDefine packingDefine, String[] split) { if (StringUtils.isEmpty(packingDefine.getPartNoIndex()) || packingDefine.getPartNoIndex() > split.length || StringUtils.isEmpty(split[packingDefine.getPartNoIndex() - 1])) { - MesPcnException.throwMesBusiException("物料号所在位置不存在,请检查数据!"); + MesPcnException.throwMesBusiException("物料号所在位置不存在,请检查数据!"); } return getPart(mesPackageDetail.getOrganizeCode(), split[packingDefine.getPartNoIndex() - 1]); } private MesPart getPart(String organizeCode, String partNo) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(partNo, "partNo", packBean); + DdlPreparedPack.getStringEqualPack(partNo, MesPcnExtConstWords.PART_NO, packBean); MesPart mesPart = partRDao.getByProperty(packBean); if (Objects.isNull(mesPart)) { - MesPcnException.throwMesBusiException("物料【%s】信息不存在,请检查数据!", partNo); + MesPcnException.throwMesBusiException("物料[%s]信息不存在,请检查数据!", partNo); } return mesPart; } @@ -490,11 +496,11 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private Double getQty(MesPackingDefine packingDefine, String[] split) { if (StringUtils.isEmpty(packingDefine.getQtyIndex()) || packingDefine.getQtyIndex() > split.length || StringUtils.isEmpty(split[packingDefine.getQtyIndex() - 1])) { - MesPcnException.throwMesBusiException("数量所在位置不存在,请检查数据!"); + MesPcnException.throwMesBusiException("数量所在位置不存在,请检查数据!"); } //校验是否数字 if (!CheckTool.isNumber(split[packingDefine.getQtyIndex() - 1])) { - MesPcnException.throwMesBusiException("数量所在位置不为数字类型,请检查数据!"); + MesPcnException.throwMesBusiException("数量所在位置不为数字类型,请检查数据!"); } return Double.parseDouble(split[packingDefine.getQtyIndex() - 1]); } @@ -518,22 +524,22 @@ public class MesBoxingErrorProofingService implements IMesBoxingErrorProofingSer private MesPackage getMesPackage(String organizeCode, String packageNo) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(packageNo, "packageNo", packBean); + DdlPreparedPack.getStringEqualPack(packageNo, MesPcnExtConstWords.PACKAGE_NO, packBean); return mesPackageRDao.getByProperty(packBean); } private MesPackageSn getMesPackageSn(String organizeCode, String packageNo) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(packageNo, "packageNo", packBean); + DdlPreparedPack.getStringEqualPack(packageNo, MesPcnExtConstWords.PACKAGE_NO, packBean); return mesPackageSnRDao.getByProperty(packBean); } private MesPackingDefine getMesPackingDefine(MesPackageDetail mesPackageDetail) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesPackageDetail.getOrganizeCode()); - DdlPreparedPack.getStringEqualPack(mesPackageDetail.getScanType(), "scanType", packBean); + DdlPreparedPack.getStringEqualPack(mesPackageDetail.getScanType(), MesPcnExtConstWords.SCAN_TYPE, packBean); MesPackingDefine packingDefine = mesPackingDefineRDao.getByProperty(packBean); if (Objects.isNull(packingDefine)) { - MesPcnException.throwFlowException("客户条码规则在包装定义界面未维护,请检查数据!"); + MesPcnException.throwFlowException("客户条码规则在包装定义界面未维护,请检查数据!"); } return packingDefine; } diff --git a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java index 871df7f..0f1fa42 100644 --- a/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java +++ b/modules/i3plus-ext-mes-pcn-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pcn/pojo/util/MesPcnExtConstWords.java @@ -239,6 +239,8 @@ public class MesPcnExtConstWords { public static final String CAR_MODEL_CODE = "carModelCode"; // 客户订单号 public static final String CUST_ORDER_NO = "custOrderNo"; + //包装条码 + public static final String PACKAGE_NO = "packageNo"; //包条码 public static final String PACKAGE_SN = "packageSn"; //包类型 @@ -279,6 +281,8 @@ public class MesPcnExtConstWords { public static final String REPORT_TYPE = "reportType"; //发运时间 public static final String SHIPPING_TIME = "shippingTime"; + //扫描类别 + public static final String SCAN_TYPE = "scanType"; //BaseBean字段不包含工厂, 用于对象复制剔除属性BeanUtils.copyProperties(Object source, Object target, String... ignoreProperties)