From 9010f98800d7fe0e47188e6dff533aa8c9d04251 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 6 Dec 2023 11:22:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=8C=83=E5=9B=B4=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=9D=A1=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/bu/BuWorkOrderExtController.java | 1 + ...xWorkCelITaktCollectRecordReportController.java | 2 +- .../serviceimpl/base/bu/BuWorkOrderExtService.java | 170 ++++++++------------- .../busi/SxNumberRuleCheckAttributeService.java | 4 + .../excel/jx/SxReworkOrderBindSnExcelService.java | 1 - .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 4 + 6 files changed, 75 insertions(+), 107 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/bu/BuWorkOrderExtController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/bu/BuWorkOrderExtController.java index 9ef085d..e5d31a0 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/bu/BuWorkOrderExtController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/bu/BuWorkOrderExtController.java @@ -63,6 +63,7 @@ public class BuWorkOrderExtController extends MesBaseController { .notNull("workCenterCode",workOrderDto.getWorkCenterCode()) .notNull("startTime",workOrderDto.getStartTime()) .notNull("endTime",workOrderDto.getEndTime()); + workOrderDto.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); workOrderExtService.insertManualGenerate(workOrderDto); return ResultBean.success(); } catch (ImppBusiException busExcep) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/jx/SxWorkCelITaktCollectRecordReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/jx/SxWorkCelITaktCollectRecordReportController.java index e4638d3..c5c50d9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/jx/SxWorkCelITaktCollectRecordReportController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/busi/jx/SxWorkCelITaktCollectRecordReportController.java @@ -40,7 +40,7 @@ public class SxWorkCelITaktCollectRecordReportController extends MesBaseControll try { workCelITaktCollectRecord.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); ListPager listPager = workCellTaktCollectRecordService.queryWorkCellTaktCollectRecrodLByPager(workCelITaktCollectRecord, pager); - return ResultBean.success("操作成功").setListPager(listPager) + return ResultBean.success("查询成功").setListPager(listPager) .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java index fe89f8e..63189d5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/bu/BuWorkOrderExtService.java @@ -213,54 +213,7 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { mesWorkOrderExt.setOrderNo(getOrderNo(userName,organizeCode)); mesWorkOrderExt.setWorkOrderSource(MesExtEnumUtil.WORK_ORDER_SOURCE.MANUALLY_GENERATE.getValue()); - doBindSn(workOrderDto, insertNewWorkOrder(mesWorkOrderExt), data); - } - - private MesWorkOrderExt insertNewWorkOrder(MesWorkOrderExt mesWorkOrderExt) { - String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); - Integer workOrderType = mesWorkOrderExt.getWorkOrderType(); - //如果是返工工单 设置是否生成条码为不生成 - if (MesExtEnumUtil.WORK_ORDER_TYPE.REWORK_ORDER.getValue() == workOrderType) { - mesWorkOrderExt.setSnCreateStatus(MesExtEnumUtil.WORK_ORDER_SN_CREATE_STATUS.NO_CREATE.getValue()); - } else { - //不是返工工单 - MesPartExt mesPart = partExtRepository.getByProperty( - new String[]{"partNo", "organizeCode", "isValid", "isDeleted"}, - new Object[]{mesWorkOrderExt.getPartNo(), organizeCode, - CommonEnumUtil.IS_VAILD.VAILD.getValue(), - CommonEnumUtil.IS_DEAL.NO.getValue()}); - //判断物料是否需要生成条码 - if (!ObjectUtils.isEmpty(mesPart)) { - Integer isCreateSn = mesPart.getIsCreateSn(); - if (isCreateSn != null && CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == isCreateSn) { - mesWorkOrderExt.setSnCreateStatus(MesExtEnumUtil.WORK_ORDER_SN_CREATE_STATUS.UN_CREATE.getValue()); - } else { - mesWorkOrderExt.setSnCreateStatus(MesExtEnumUtil.WORK_ORDER_SN_CREATE_STATUS.NO_CREATE.getValue()); - } - } - } - boolean havePart = isHavePart(mesWorkOrderExt.getPartNo(), organizeCode); - if (!havePart) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("物料号[%s]不存在", - mesWorkOrderExt.getPartNo()) - .build(); - } - mesWorkOrderExt.setWorkOrderStatus(MesExtEnumUtil.WORK_ORDER_STATUS.CREATE.getValue()); - - mesWorkOrderExt.setOrganizeCode(organizeCode); - - mesWorkOrderExt.setSeq(MathOperation.add(getWorkOrderExtMaxSeq(organizeCode, 1), new Double(1))); - - ConvertBean.modelInitialize(mesWorkOrderExt, AuthUtil.getSessionUser()); - mesWorkOrderExt.setSystemSyncStatus(MesExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); - new ConvertBeanExt(mesWorkOrderExt).convertBean(mesWorkOrderExt); - MesWorkOrderExt workOrderExt = workOrderExtRepository.insert(mesWorkOrderExt); - insertMesWorkOrderLog(workOrderExt); - - return workOrderExt; + doBindSn(workOrderDto, addWorkOrder(mesWorkOrderExt), data); } private void doBindSn(GenerateWorkOrderDto workOrderDto, MesWorkOrderExt mesWorkOrderExt, Object data) { @@ -288,16 +241,6 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { for (MesProduceSnExt produceSnExt : produceSnExtList) { - ConvertBean.serviceModelUpdate(produceSnExt, mesWorkOrderExt.getModifyUser()); - new ConvertBeanExt(produceSnExt).convertBean(produceSnExt); - produceSnExt.setLastWorkOrderNo(mesWorkOrderExt.getOrderNo()); - produceSnExt.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.REPAIR.getValue()); - produceSnExt.setRouteCode(null); - produceSnExt.setProcessCode(null); - produceSnExt.setWorkCellCode(null); - produceSnExt.setSystemSyncStatus(MesExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); - new ConvertBeanExt(produceSnExt).convertBean(produceSnExt); - MesProduceSnRepair produceSnRepair = new MesProduceSnRepair(); produceSnRepair.setSerialNumber(produceSnExt.getSerialNumber()); produceSnRepair.setProductSn(produceSnExt.getProductSn()); @@ -312,12 +255,21 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { produceSnRepair.setSystemSyncStatus(MesExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); produceSnRepairList.add(produceSnRepair); + ConvertBean.serviceModelUpdate(produceSnExt, mesWorkOrderExt.getModifyUser()); + new ConvertBeanExt(produceSnExt).convertBean(produceSnExt); + produceSnExt.setLastWorkOrderNo(mesWorkOrderExt.getOrderNo()); + produceSnExt.setSnStatus(MesExtEnumUtil.PRODUCE_SN_STATUS.REPAIR.getValue()); + produceSnExt.setRouteCode(null); + produceSnExt.setProcessCode(null); + produceSnExt.setWorkCellCode(null); + produceSnExt.setSystemSyncStatus(MesExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); + new ConvertBeanExt(produceSnExt).convertBean(produceSnExt); + MesReworkOrderBindSnTravel reworkOrderBindSnTravel = new MesReworkOrderBindSnTravel(); BeanUtils.copyProperties(produceSnRepair, reworkOrderBindSnTravel); reworkOrderBindSnTravel.setBindStatus(MesExtEnumUtil.BIND_STATUS.BINGDING.getValue()); reworkOrderBindSnTravelList.add(reworkOrderBindSnTravel); - MesPackageDetail packageDetail = packageExtService.getPackageDetailByProductSn(mesWorkOrderExt.getOrganizeCode(), produceSnExt.getProductSn()); if (null != packageDetail) { MesPackageExt packageExt = packageExtService.getPackageByPackNo(mesWorkOrderExt.getOrganizeCode(), packageDetail.getPackageNo()); @@ -435,51 +387,51 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { checkSn(workOrderDto, produceSnExtDbList); - //编码规则 - String[] serialNoArray = numberRuleExt.getNumberRule().split("}\\{"); - //规则属性长度拼接 - String[] ruleLengthSpiltArray = numberRuleExt.getRuleLengthSpilt().split(","); - String serialNoStr = "serialno"; - int serialNoIndex = -1; - for (int index = 0; index < serialNoArray.length; index++) { - if(serialNoArray[index].contains(serialNoStr)) serialNoIndex = index; - } - - int ruleLengthTotal = 0; - if(serialNoIndex != -1){ - for (int index = 0; index < serialNoIndex; index++) { - ruleLengthTotal += Integer.parseInt(ruleLengthSpiltArray[index]); - } - } - int finalRuleLengthTotal = ruleLengthTotal; - int finalSerialNoIndex = serialNoIndex; + ////编码规则 + //String[] serialNoArray = numberRuleExt.getNumberRule().split("}\\{"); + ////规则属性长度拼接 + //String[] ruleLengthSpiltArray = numberRuleExt.getRuleLengthSpilt().split(","); + //String serialNoStr = "serialno"; + //int serialNoIndex = -1; + //for (int index = 0; index < serialNoArray.length; index++) { + // if(serialNoArray[index].contains(serialNoStr)) serialNoIndex = index; + //} + // + //int ruleLengthTotal = 0; + //if(serialNoIndex != -1){ + // for (int index = 0; index < serialNoIndex; index++) { + // ruleLengthTotal += Integer.parseInt(ruleLengthSpiltArray[index]); + // } + //} + //int finalRuleLengthTotal = ruleLengthTotal; + //int finalSerialNoIndex = serialNoIndex; produceSnExtDbList = produceSnExtDbList.stream().sorted(Comparator.comparing(MesProduceSnExt::getProductSn)).collect(Collectors.toList()); - Integer lastSerialNo = null; - String lastProductSn = null; - for (MesProduceSnExt produceSnExt : produceSnExtDbList) { - - int curSerialNo = Integer.parseInt(produceSnExt.getSerialNumber().substring(finalRuleLengthTotal, finalRuleLengthTotal + Integer.parseInt(ruleLengthSpiltArray[finalSerialNoIndex]))); - - if (lastSerialNo == null) { - - lastSerialNo = curSerialNo; - lastProductSn = produceSnExt.getProductSn(); - continue; - } - - if (curSerialNo - lastSerialNo !=1 ) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("上一个产品条码[%s]与产品条码[%s]流水号存在跳号", lastProductSn, produceSnExt.getProductSn()) - .build(); - } - - lastProductSn = produceSnExt.getProductSn(); - lastSerialNo = curSerialNo; - } + //Integer lastSerialNo = null; + //String lastProductSn = null; + //for (MesProduceSnExt produceSnExt : produceSnExtDbList) { + // + // int curSerialNo = Integer.parseInt(produceSnExt.getSerialNumber().substring((Integer) numberRuleResultMap.get(MesExtConstWords.SEQNO_START_INDEX), (Integer) numberRuleResultMap.get(MesExtConstWords.SEQNO_END_INDEX))); + // + // if (lastSerialNo == null) { + // + // lastSerialNo = curSerialNo; + // lastProductSn = produceSnExt.getProductSn(); + // continue; + // } + // + // if (curSerialNo - lastSerialNo !=1 ) { + // throw ImppExceptionBuilder.newInstance() + // .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + // .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + // .setErrorDetail("上一个产品条码[%s]与产品条码[%s]流水号存在跳号", lastProductSn, produceSnExt.getProductSn()) + // .build(); + // } + // + // lastProductSn = produceSnExt.getProductSn(); + // lastSerialNo = curSerialNo; + //} return produceSnExtDbList; } @@ -550,7 +502,9 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { return !CollectionUtils.isEmpty(produceSnRepairList) ? produceSnRepairList.get(0) : null; } - private void checkProduceNumberRuleIsValid(MesPartExt partExtDb, String ruleCode, MesNumberRuleExt numberRuleExt, String... productSnArr) { + private Map checkProduceNumberRuleIsValid(MesPartExt partExtDb, String ruleCode, MesNumberRuleExt numberRuleExt, String... productSnArr) { + + Map resultMap = new HashMap<>(); for (String productSn : productSnArr) { Map map = new HashMap<>(); @@ -558,16 +512,19 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { map.put(MesExtConstWords.NUMBER_RULE_EXT, numberRuleExt); map.put(MesExtConstWords.PART_EXT, partExtDb); - Map resultMap = numberRuleCheckAttributeService.doCheckNumberRule(map); + resultMap = numberRuleCheckAttributeService.doCheckNumberRule(map); + if ((Boolean)resultMap.get(MesExtConstWords.RESULT) == false) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("条码[%s]关联物料[%s]配置的编码规则代码[%s]无效", productSn, partExtDb.getPartNo(), ruleCode) + .setErrorDetail("条码[%s]关联物料[%s]配置的编码规则代码[%s]编码规则不匹配", productSn, partExtDb.getPartNo(), ruleCode) .build(); } } + return resultMap; + } private void checkProductSnValid(String organizeCode, String partNo, String... produceSnArr) { @@ -790,7 +747,7 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { if(workOrderDto.getPlanQty() > workOrderDto.getQty()) throw new BaseImppException("计划返工数量不能大于计划生产数量"); } - private void addWorkOrder(MesWorkOrderExt mesWorkOrderExt) { + private MesWorkOrderExt addWorkOrder(MesWorkOrderExt mesWorkOrderExt) { String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); Integer workOrderType = mesWorkOrderExt.getWorkOrderType(); MesPartExt mesPart = getPart(mesWorkOrderExt, organizeCode); @@ -892,7 +849,10 @@ public class BuWorkOrderExtService implements IBuWorkOrderExtService { mesWorkOrderExt.setSystemSyncStatus(MesExtEnumUtil.IF_SYNC_STATUS.NO_SYNC.getValue()); new ConvertBeanExt(mesWorkOrderExt).convertBean(mesWorkOrderExt); MesWorkOrderExt workOrderExt = workOrderExtRepository.save(mesWorkOrderExt); + insertMesWorkOrderLog(workOrderExt); + + return workOrderExt; } private MesPartExt getPart(MesWorkOrderExt mesWorkOrderExt, String organizeCode) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/SxNumberRuleCheckAttributeService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/SxNumberRuleCheckAttributeService.java index b1b3bce..bd300c5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/SxNumberRuleCheckAttributeService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/SxNumberRuleCheckAttributeService.java @@ -128,6 +128,8 @@ public class SxNumberRuleCheckAttributeService implements ISxNumberRuleCheckAttr } + resultMap.put("ruleLengthList", new ArrayList<>(ruleLengthList)); + int snIndex = 0; for (String s : numberRuleList) { switch (s) { @@ -195,6 +197,8 @@ public class SxNumberRuleCheckAttributeService implements ISxNumberRuleCheckAttr } resultMap.put(MesExtConstWords.SN_WITHOUT_SEQNO, snWithoutSeqNoBuffer.replace(snIndex, snIndex + ruleLengthList.get(0), MesExtConstWords.SEQNO)); + resultMap.put(MesExtConstWords.SEQNO_START_INDEX, snIndex); + resultMap.put(MesExtConstWords.SEQNO_END_INDEX, snIndex + ruleLengthList.get(0)); snIndex += ruleLengthList.get(0); serialNumberList.remove(0); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/jx/SxReworkOrderBindSnExcelService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/jx/SxReworkOrderBindSnExcelService.java index df56481..3ac4166 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/jx/SxReworkOrderBindSnExcelService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/excel/jx/SxReworkOrderBindSnExcelService.java @@ -289,7 +289,6 @@ public class SxReworkOrderBindSnExcelService implements IExcelImportExtService { finalWorkOrderNoBySn.put(produceSnExt.getProductSn(), workOrderNo); if (!StringUtils.isEmpty(packageNo)) finalWorkOrderNoByPackSn.put(packageNo, workOrderNo); - produceSnDbList.add(produceSnExt); successRowNum ++; } else { diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index 40e3cca..bfdc767 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -946,5 +946,9 @@ public class MesExtConstWords { public static final String PART_EXT = "PART_EXT"; public static final String LEFT_BRACE = "{"; public static final String RIGHT_BRACE = "}"; + //流水号起始位置 + public static final String SEQNO_START_INDEX = "SEQNO_START_INDEX"; + //流水号截至位置 + public static final String SEQNO_END_INDEX = "SEQNO_END_INDEX"; }