From 44ff90fb268c1b57bca5bdf0756be2829b40270d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Wed, 24 Apr 2024 15:16:55 +0800 Subject: [PATCH 01/12] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/DQBomApi.java | 17 ++- .../bomnew/pojo/query/BomExceptionQuery.java | 33 +++++ .../bomnew/pojo/vo/BomExceptionVO.java | 37 +++++ .../bomnew/service/DQBomImportService.java | 9 +- .../product/bomnew/service/DQBomService.java | 134 +++++++++++++----- .../mapper/master/BomNewDQbomParentMapper.xml | 2 +- .../bomnew/service/test/OtherTest.java | 6 + 7 files changed, 190 insertions(+), 48 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomExceptionQuery.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomExceptionVO.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java index 1208a21e..5cd096c5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/DQBomApi.java @@ -7,13 +7,11 @@ import com.google.common.collect.ImmutableList; import com.mzt.logapi.context.LogRecordContext; import com.mzt.logapi.starter.annotation.LogRecord; import com.nflg.product.base.core.api.BaseApi; +import com.nflg.product.bomnew.pojo.query.BomExceptionQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomPageQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomSaveQuery; -import com.nflg.product.bomnew.pojo.vo.BomDQbomEditDetailVO; -import com.nflg.product.bomnew.pojo.vo.BomNewDQbomVO; -import com.nflg.product.bomnew.pojo.vo.DQbomExcelVO; -import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO; +import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.DQBomImportService; import com.nflg.product.bomnew.service.DQBomService; import com.nflg.product.bomnew.util.EecExcelUtil; @@ -227,4 +225,15 @@ public class DQBomApi extends BaseApi { public ResultVO editDetail(@Valid @RequestParam("rowId") @NotNull Long rowId, @Valid @RequestParam("bomRowId") @NotNull Long bomRowId) { return ResultVO.success(dQBomService.editDetail(rowId, bomRowId)); } + + /** + * 获取节点异常状态 + * @param query query + * @return 节点异常状态 + */ + @PostMapping("getBomException") + @ApiOperation("获取节点异常状态") + public ResultVO> getBomException(@Valid @RequestBody @NotEmpty List query) { + return ResultVO.success(dQBomService.getBomException(query)); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomExceptionQuery.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomExceptionQuery.java new file mode 100644 index 00000000..85a9bd8a --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomExceptionQuery.java @@ -0,0 +1,33 @@ +package com.nflg.product.bomnew.pojo.query; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @author 曹鹏飞 + * @date 2024/4/24 14:24:21 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "com-nflg-product-bomnew-pojo-new-query-BomExceptionQuery") +public class BomExceptionQuery implements Serializable { + + /** + * bomRowId + */ + @ApiModelProperty(value = "bomRowId", required = true) + @NotNull + protected Long bomRowId; + + /** + * rowId + */ + @ApiModelProperty(value = "rowId", required = true) + @NotNull + protected Long rowId; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomExceptionVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomExceptionVO.java new file mode 100644 index 00000000..688404fc --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomExceptionVO.java @@ -0,0 +1,37 @@ +package com.nflg.product.bomnew.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @author 曹鹏飞 + * @date 2024/4/24 13:32:57 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "com-nflg-product-bomnew-pojo-new-vo-BomExceptionVO") +public class BomExceptionVO implements Serializable { + + /** + * bom行编号 + */ + @ApiModelProperty(value = "bom行编号") + public Long bomRowId; + + /** + * 物料编码 + */ + @ApiModelProperty(value = "物料编码") + public String materialNo; + + /** + * 异常状态 + * @see com.nflg.product.bomnew.constant.EBomExceptionStatusEnum + */ + @ApiModelProperty(value = "异常状态") + private Integer exceptionStatus = -1; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java index 76f9b2a2..e73652b7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomImportService.java @@ -2,6 +2,7 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -138,7 +139,7 @@ public class DQBomImportService { //BomNewDQbomParentEntity oldParent = dQBomParentService.getLatestByMaterialNo(parent.getMaterialNo()); boolean isSame = true; if (Objects.isNull(oldParent)) { - return isSame; + return false; } isSame = Objects.equals(parent.getMaterialUnit(), oldParent.getMaterialUnit()) && NumberUtil.equals(parent.getNum(), oldParent.getNum()) @@ -176,14 +177,14 @@ public class DQBomImportService { log.debug("checkInconsistentData,entity:" + JsonUtil.toJson(child)); List oldChildren = dQBomChildService.getBom(parentRowId, child.getMaterialNo()); boolean isSame = true; - if (CollUtil.isEmpty(oldChildren)) return isSame; + if (CollUtil.isEmpty(oldChildren)) return false; BomNewDQbomVO oldChild; if (oldChildren.size() == 1) { oldChild = oldChildren.get(0); } else { oldChild = oldChildren.stream().filter(c -> Objects.equals(c.getOrderNumber(), child.getOrderNumber())).findFirst().orElse(null); if (Objects.isNull(oldChild)) { - return isSame; + return false; } } isSame = Objects.equals(child.getMaterialUnit(), oldChild.getMaterialUnit()) @@ -364,7 +365,7 @@ public class DQBomImportService { dQbomExcelVO.setRowNum(rowNum.get()); if (dQbomExcelVO.getProjectType().equals("T")) { - long id = System.currentTimeMillis(); + String id = RandomUtil.randomNumbers(9); dQbomExcelVO.setMaterialNo(BomConstant.NO_TEMPORARY_PREFIX + id); dQbomExcelVO.setDrawingNo(BomConstant.NO_TEMPORARY_PREFIX + id); if (StrUtil.isBlank(dQbomExcelVO.getMaterialUnit())) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java index 1f01f992..885d1c0f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/DQBomService.java @@ -12,7 +12,6 @@ import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.google.common.collect.Sets; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO; @@ -21,13 +20,11 @@ import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; +import com.nflg.product.bomnew.pojo.query.BomExceptionQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomPageQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomQuery; import com.nflg.product.bomnew.pojo.query.BomNewDQbomSaveQuery; -import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; -import com.nflg.product.bomnew.pojo.vo.BomDQbomEditDetailVO; -import com.nflg.product.bomnew.pojo.vo.BomNewDQbomVO; -import com.nflg.product.bomnew.pojo.vo.DQbomExcelVO; +import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.util.BomUtil; import com.nflg.product.bomnew.util.VUtils; import com.nflg.product.bomnew.util.VersionUtil; @@ -253,15 +250,17 @@ public class DQBomService { //修改数据 // VUtils.isTure(!SessionUtil.getUserCode().equals(parent.getCreatedBy())).throwMessage("不能修改他人的数据"); - if (CollUtil.isEmpty(query.getChildren())) { - dQBomChildService.deleteAllChildren(parent.getRowId()); - return query; - } //删除 dQBomChildService.deleteAllChildren(parent.getRowId()); - parent.setBomExist(1); parent.setModifyTime(LocalDateTime.now()); - dQBomParentService.updateById(parent); + if (CollUtil.isEmpty(query.getChildren())) { + //dQBomChildService.deleteAllChildren(parent.getRowId()); + parent.setBomExist(0); + dQBomParentService.saveOrUpdate(parent); + return query; + } + parent.setBomExist(1); + dQBomParentService.saveOrUpdate(parent); } //处理child List children = Convert.toList(BomNewDQbomChildEntity.class, query.getChildren()); @@ -271,6 +270,9 @@ public class DQBomService { c.setRowId(IdWorker.getId()); c.setCreatedBy(SessionUtil.getUserCode()); c.setCreatedName(SessionUtil.getRealName()); + String id = RandomUtil.randomNumbers(9); + c.setMaterialNo(BomConstant.NO_TEMPORARY_PREFIX + id); + c.setDrawingNo(BomConstant.NO_TEMPORARY_PREFIX + id); } else { c.setModifyTime(LocalDateTime.now()); } @@ -327,6 +329,11 @@ public class DQBomService { .set(BomNewDQbomParentEntity::getEditStatus, EbomEditStatusEnum.HANDLER_FINISHED.getValue()) .set(BomNewDQbomParentEntity::getModifyTime, LocalDateTime.now()) .update(); + dQBomChildService.lambdaUpdate() + .eq(BomNewDQbomChildEntity::getParentRowId, query.getParent().getRowId()) + .set(BomNewDQbomChildEntity::getEditStatus, EbomEditStatusEnum.HANDLER_FINISHED.getValue()) + .set(BomNewDQbomChildEntity::getModifyTime, LocalDateTime.now()) + .update(); //checkException(CollUtil.toList(query.getParent().getRowId())); } @@ -393,15 +400,23 @@ public class DQBomService { } public BomDQbomEditDetailVO editDetail(Long rowId, Long bomRowId) { + VUtils.isTure(Objects.isNull(rowId) && Objects.isNull(bomRowId)).throwMessage("无效的数据"); + BomDQbomEditDetailVO vo = new BomDQbomEditDetailVO(); - BomNewDQbomParentEntity parent = dQBomParentService.getById(bomRowId); - BomNewDQbomChildEntity child = dQBomChildService.getById(rowId); - VUtils.isTure(Objects.isNull(parent) && Objects.isNull(child)).throwMessage("无效的数据"); - if (!Objects.isNull(parent)) { + if (bomRowId == 0) { + BomNewDQbomChildEntity child = dQBomChildService.getById(rowId); + BomNewDQbomVO p = Convert.convert(BomNewDQbomVO.class, child); + p.setRootIs(0); + p.setUserRootIs(0); + p.setRowId(IdWorker.getId()); + p.setCreatedTime(LocalDateTime.now()); + p.setCreatedBy(SessionUtil.getUserCode()); + p.setModifyTime(null); + vo.setParent(p); + } else { + BomNewDQbomParentEntity parent = dQBomParentService.getById(bomRowId); vo.setParent(Convert.convert(BomNewDQbomVO.class, parent)); vo.setDatas(getChild(bomRowId)); - } else if (!Objects.isNull(child)) { - vo.setParent(Convert.convert(BomNewDQbomVO.class, child)); } return vo; } @@ -438,13 +453,17 @@ public class DQBomService { BomNewDQbomParentEntity root = dQBomParentService.getById(rootBomRowId); VUtils.isTure(Objects.isNull(root)).throwMessage("未找到数据"); + VUtils.isTure(root.getStatus() == 2).throwMessage("已转pbom不能再次转换"); + if (Objects.equals(root.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) { + //如果没有异常,则再进行一次异常检查,避免手动添加数据后没做异常检查就转pbom + checkException(rootBomRowId); + } VUtils.isTure(!Objects.equals(root.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) .throwMessage("异常状态不能转pbom"); - VUtils.isTure(root.getStatus() == 2).throwMessage("已转pbom不能再次转换"); List parents = new ArrayList<>(); List children = new ArrayList<>(); - buildPbom(root, parents, children); + buildTree(root, parents, children); dQBomParentService.updateBatchById(parents); dQBomChildService.updateBatchById(children); savePbomParents(parents); @@ -467,12 +486,18 @@ public class DQBomService { c.setModifyTime(null); c.setIdentityNo(c.getParentRowId() + "_" + c.getRowId()); if (CollUtil.isNotEmpty(materialBaseInfos)) { - BaseMaterialVO materialVO = materialBaseInfos.stream().filter(m -> m.getMaterialNo().equals(c.getMaterialNo())).findFirst().orElse(null); + BaseMaterialVO materialVO = materialBaseInfos.stream() + .filter(m -> m.getMaterialNo().equals(c.getMaterialNo())) + .findFirst() + .orElse(null); if (!Objects.isNull(materialVO)) { c.setMaterialCategoryCode(materialVO.getMaterialCategoryCode()); } } - BomNewDQbomParentEntity parent = parents.stream().filter(p -> p.getMaterialNo().equals(c.getMaterialNo())).findFirst().orElse(null); + BomNewDQbomParentEntity parent = parents.stream() + .filter(p -> p.getMaterialNo().equals(c.getMaterialNo())) + .findFirst() + .orElse(null); if (!Objects.isNull(parent)) { c.setBomVersionRowId(parent.getRowId()); } @@ -496,7 +521,7 @@ public class DQBomService { bomNewPbomParentService.saveBatch(pparents); } - private void buildPbom(BomNewDQbomParentEntity parent, List parents, List children) { + private void buildTree(BomNewDQbomParentEntity parent, List parents, List children) { parent.setStatus(2); parent.setConvertToPbomTime(LocalDateTime.now()); parent.setModifyTime(LocalDateTime.now()); @@ -521,24 +546,25 @@ public class DQBomService { VUtils.isTure(true).throwMessage(StrUtil.format("{}的当前版本为{},比pbom中版本{}低", parent.getMaterialNo() , parent.getCurrentVersion(), pp.getCurrentVersion())); } else { - if (pp.getStatus() == 4) { - List dqChildren = getChild(parent.getRowId()); - Set pChildren = bomNewPbomChildService.lambdaQuery() - .select(BomNewPbomChildEntity::getMaterialNo) - .eq(BomNewPbomChildEntity::getParentRowId, pp.getRowId()) - .list() - .stream() - .map(BomNewPbomChildEntity::getMaterialNo) - .collect(Collectors.toSet()); - if (dqChildren.size() != pChildren.size() - || !Sets.difference(dqChildren.stream().map(BomNewDQbomVO::getMaterialNo).collect(Collectors.toSet()), pChildren).isEmpty()) { - parent.setCurrentVersion(VersionUtil.getNextVersion(parent.getCurrentVersion())); - pp.setLastVersionIs(0); - bomNewPbomParentService.updateById(pp); - } + if (pp.getStatus() >= 4) { + // List dqChildren = getChild(parent.getRowId()); + // Set pChildren = bomNewPbomChildService.lambdaQuery() + // .select(BomNewPbomChildEntity::getMaterialNo) + // .eq(BomNewPbomChildEntity::getParentRowId, pp.getRowId()) + // .list() + // .stream() + // .map(BomNewPbomChildEntity::getMaterialNo) + // .collect(Collectors.toSet()); + // if (dqChildren.size() != pChildren.size() + // || !Sets.difference(dqChildren.stream().map(BomNewDQbomVO::getMaterialNo).collect(Collectors.toSet()), pChildren).isEmpty()) { + parent.setCurrentVersion(VersionUtil.getNextVersion(pp.getCurrentVersion())); + pp.setLastVersionIs(0); + bomNewPbomParentService.updateById(pp); + // } } else { + parent.setCurrentVersion(pp.getCurrentVersion()); bomNewPbomParentService.getBaseMapper().deleteById(pp.getRowId()); - bomNewPbomChildService.getBaseMapper().delete(new LambdaQueryWrapper() + bomNewPbomChildService.getBaseMapper().delete(bomNewPbomChildService.lambdaQuery() .eq(BomNewPbomChildEntity::getParentRowId, pp.getRowId())); } } @@ -548,7 +574,7 @@ public class DQBomService { .in(BomNewDQbomParentEntity::getMaterialNo, cc.stream().map(BomNewDQbomChildEntity::getMaterialNo).collect(Collectors.toList())) .eq(BomNewDQbomParentEntity::getStatus, 1) .list() - .forEach(p -> buildPbom(p, parents, children)); + .forEach(p -> buildTree(p, parents, children)); } private int versionCompare(String version1, String version2) { @@ -556,4 +582,34 @@ public class DQBomService { if (StrUtil.isBlank(version2)) return -1; return Integer.parseInt(version1.substring(1)) - Integer.parseInt(version2.substring(1)); } + + public List getBomException(List query) { + List datas = new ArrayList<>(); + for (int index = 0, count = query.size(); index < count; index++) { + BomExceptionQuery bom = query.get(index); + if (index == 0) { + checkException(bom.getBomRowId()); + + BomNewDQbomParentEntity parent = dQBomParentService.getById(bom.getBomRowId()); + BomExceptionVO vo = new BomExceptionVO(); + vo.setBomRowId(bom.getBomRowId()); + vo.setMaterialNo(parent.getMaterialNo()); + vo.setExceptionStatus(parent.getExceptionStatus()); + datas.add(vo); + } else { + BomExceptionVO vo = new BomExceptionVO(); + vo.setBomRowId(bom.getBomRowId()); + BomNewDQbomChildEntity child = dQBomChildService.getById(bom.getRowId()); + vo.setMaterialNo(child.getMaterialNo()); + if (Objects.equals(child.getExceptionStatus(), EBomExceptionStatusEnum.OK.getValue())) { + BomNewDQbomParentEntity parent = dQBomParentService.getById(bom.getBomRowId()); + vo.setExceptionStatus(parent.getExceptionStatus()); + } else { + vo.setExceptionStatus(child.getExceptionStatus()); + } + } + } + return datas; + } + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml index 19752668..6f5b2fe6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewDQbomParentMapper.xml @@ -30,7 +30,7 @@ SELECT - ifnull(c.row_id,0) row_id, + ifnull(c.row_id,p.row_id) row_id, p.row_id bomRowId, p.created_by bomCreateBy, p.* @@ -67,9 +67,10 @@ ifnull(p.bom_exist, 0) bom_exist, ifnull(p.sap_state, 1) sap_state, c.* - FROM t_bom_new_dqbom_parent p - RIGHT JOIN t_bom_new_dqbom_child c ON p.material_no = c.material_no - WHERE c.parent_row_id = #{bomRowId} + FROM t_bom_new_dqbom_child c + INNER JOIN t_bom_new_dqbom_parent p2 ON p2.row_id = c.parent_row_id + LEFT JOIN t_bom_new_dqbom_parent p ON p.material_no = c.material_no AND p.status = p2.status + WHERE p2.row_id = #{bomRowId} ORDER BY c.order_number From 9df131228de198e2077314963c06421611181a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 25 Apr 2024 10:11:23 +0800 Subject: [PATCH 05/12] =?UTF-8?q?fix:=20=E7=94=B5=E6=B0=94=E4=B8=93?= =?UTF-8?q?=E7=94=A8bom=E6=B7=BB=E5=8A=A0T=E7=89=A9=E6=96=99=E7=9A=84?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=E6=98=AF=E5=90=A6=E4=B8=BA=E7=A9=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BomNewDQbomExceptionCheckService.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java index 14bd07eb..6063cd52 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewDQbomExceptionCheckService.java @@ -3,7 +3,6 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.nflg.product.bomnew.constant.BomConstant; import com.nflg.product.bomnew.constant.EBomExceptionStatusEnum; import com.nflg.product.bomnew.constant.MaterialGetEnum; import com.nflg.product.bomnew.pojo.entity.BomNewDQbomChildEntity; @@ -125,9 +124,11 @@ public class BomNewDQbomExceptionCheckService { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; if (parent.getRootIs() == 1 || parent.getUserRootIs() == 1) { if ("T".equals(parent.getProjectType())) { - parent.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); - } else if (parent.getMaterialNo().startsWith(BomConstant.NO_TEMPORARY_PREFIX)) { - status = EBomExceptionStatusEnum.EXCEPT_NO_4; + if (StrUtil.isBlank(parent.getMaterialName())) { + status = EBomExceptionStatusEnum.EXCEPT_NO_4; + } + // } else if (parent.getMaterialNo().startsWith(BomConstant.NO_TEMPORARY_PREFIX)) { + // status = EBomExceptionStatusEnum.EXCEPT_NO_4; } else { BaseMaterialVO materialVO = materialVOS.stream().filter(v -> v.getMaterialNo().equals(parent.getMaterialNo())) .findFirst() @@ -163,9 +164,11 @@ public class BomNewDQbomExceptionCheckService { private void checkChild(BomNewDQbomChildEntity child) { EBomExceptionStatusEnum status = EBomExceptionStatusEnum.OK; if ("T".equals(child.getProjectType())) { - child.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); - } else if (child.getMaterialNo().startsWith(BomConstant.NO_TEMPORARY_PREFIX)) { - status = EBomExceptionStatusEnum.EXCEPT_NO_4; + if (StrUtil.isBlank(child.getMaterialName())) { + status = EBomExceptionStatusEnum.EXCEPT_NO_4; + } + // } else if (child.getMaterialNo().startsWith(BomConstant.NO_TEMPORARY_PREFIX)) { + // status = EBomExceptionStatusEnum.EXCEPT_NO_4; } else { BaseMaterialVO materialVO = materialVOS.stream().filter(v -> v.getMaterialNo().equals(child.getMaterialNo())) .findFirst() From 67160f8f1f08cd24bbb822f115cd56721bdf6ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 25 Apr 2024 11:46:48 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4ebom=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=86=8D=E9=9C=80=E8=A6=81=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E5=8E=9F=E5=A7=8Bbom=E7=9A=84=E5=AF=B9=E5=BA=94=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/BomNewEbomParentService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 3b89df67..62a9594b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -1681,10 +1681,10 @@ public class BomNewEbomParentService extends ServiceImpl rowIds = eBomDel.getRevertOBom().stream().map(BomNewEbomParentVO::getSourceRowId).collect(Collectors.toList()); - SpringUtil.getBean(BomNewOriginalParentService.class).revertBom(rowIds); - } + // if (CollectionUtil.isNotEmpty(eBomDel.getRevertOBom())) { + // List rowIds = eBomDel.getRevertOBom().stream().map(BomNewEbomParentVO::getSourceRowId).collect(Collectors.toList()); + // SpringUtil.getBean(BomNewOriginalParentService.class).revertBom(rowIds); + // } if (CollectionUtil.isNotEmpty(eBomDel.getDelEBom())) { From b34beca4f28b29b51c9193b64b531133cc3d094d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 25 Apr 2024 13:33:18 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat:=20=E7=9B=B8=E5=90=8C=E7=BC=96?= =?UTF-8?q?=E5=8F=B7=E7=9A=84=E7=89=A9=E6=96=99=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=B1=BB=E5=9E=8B=E4=B8=8D=E5=90=8C=EF=BC=8C?= =?UTF-8?q?=E5=88=99=E5=88=A4=E6=96=AD=E4=B8=BA=E6=AD=A3=E5=B8=B8=EF=BC=8C?= =?UTF-8?q?=E5=90=A6=E5=88=99=E6=8F=90=E7=A4=BA=E6=95=B0=E6=8D=AE=E9=87=8D?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/service/domain/EBom/CheckEBomException.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java index 68deccdf..03822e61 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java @@ -158,11 +158,15 @@ public class CheckEBomException { for (String key : childMaterialMap.keySet()) { List materialGroupList = childMaterialMap.get(key); if (materialGroupList.size() > 1) { - materialGroupList.forEach(u -> { - u.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_6.getValue()); + Map> m2 = ListCommonUtil.listGroupMap(materialGroupList, BomNewEbomParentVO::getProjectType); + m2.forEach((mk, mv) -> { + if (mv.size() > 1) { + mv.forEach(u -> { + u.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_6.getValue()); + }); + } }); } - } if (ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue().equals(parent.getProjectType())) { List qList = child.stream().filter(u -> ProjectTypeInputTypeEnum.ProjectTypeEnum.TYPE_Q.getValue().equals(u.getProjectType())).collect(Collectors.toList()); From 36e0e5c2934dc67c47aae678dd0c69b1da30a5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 25 Apr 2024 14:26:01 +0800 Subject: [PATCH 08/12] =?UTF-8?q?feat:=20=E5=A6=82=E6=9E=9C=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E7=9A=84=E5=8D=95=E4=BD=8D=E8=B7=9F=E7=89=A9=E6=96=99?= =?UTF-8?q?=E4=B8=BB=E6=95=B0=E6=8D=AE=E5=8D=95=E4=BD=8D=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=EF=BC=8C=E5=88=99=E6=8F=90=E7=A4=BA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 16 +++++------ .../bomnew/service/MaterialMainService.java | 5 +++- .../domain/EBom/CheckEBomException.java | 28 ++++++++++--------- .../nflg/product/bomnew/util/StringUtil.java | 6 ++++ 4 files changed, 33 insertions(+), 22 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 62a9594b..01438e3a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -626,14 +626,14 @@ public class BomNewEbomParentService extends ServiceImpl list, List unCheckList) { - CheckEBomException checkEBomException = new CheckEBomException(list); - checkEBomException.setUnCheckExcept(unCheckList); - checkEBomException.checkException(); - - //保存异常 - saveException(checkEBomException); - } + // public void checkBomException(List list, List unCheckList) { + // CheckEBomException checkEBomException = new CheckEBomException(list); + // checkEBomException.setUnCheckExcept(unCheckList); + // checkEBomException.checkException(); + // + // //保存异常 + // saveException(checkEBomException); + // } /** diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java index 2796ee78..0dc86b18 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java @@ -19,6 +19,7 @@ import com.nflg.product.bomnew.util.VUtils; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.BiConsumer; @@ -108,12 +109,14 @@ public class MaterialMainService extends ServiceImpl void intiMaterialInfo(List data , String ... ignorePropertyList) { + public List intiMaterialInfo(List data, String... ignorePropertyList) { List materialNos = data.stream().map(BaseMaterialVO::getMaterialNo).filter(StrUtil::isNotBlank).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { List materialBaseInfos = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos); intiMaterialInfo(data, materialBaseInfos, ignorePropertyList); + return materialBaseInfos; } + return Collections.emptyList(); } public void intiMaterialInfo(List data ,List materialBaseInfos, String ... ignorePropertyList) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java index 03822e61..95f69909 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckEBomException.java @@ -14,10 +14,7 @@ import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.service.BomNewEbomParentService; import com.nflg.product.bomnew.service.MaterialMainService; -import com.nflg.product.bomnew.util.BomLevelUtil; -import com.nflg.product.bomnew.util.ListCommonUtil; -import com.nflg.product.bomnew.util.TreeUtils; -import com.nflg.product.bomnew.util.VUtils; +import com.nflg.product.bomnew.util.*; import lombok.Getter; import lombok.Setter; import nflg.product.common.constant.STATE; @@ -88,28 +85,27 @@ public class CheckEBomException { */ public void initException() { //初始化物料信息 - SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + List materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); - checkException(); + checkException(materialBaseInfo); } public void initException(List unCheckException) { //初始化物料信息 - SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + List materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); this.unCheckExcept=unCheckException; - checkException(); + checkException(materialBaseInfo); } public void initException(String... ignorePropertyList) { - - SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, ignorePropertyList); - checkException(); + List materialBaseInfo = SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, ignorePropertyList); + checkException(materialBaseInfo); } - public void checkException() { + public void checkException(List materialBaseInfo) { for (BomNewEbomParentVO vo : allBomDetail) { // if(Objects.isNull(vo.getExceptionStatus())) { //忽略不检查的如14 @@ -118,7 +114,10 @@ public class CheckEBomException { && unCheckExcept.contains(vo.getExceptionStatus())) { continue; } - + BaseMaterialVO mainVO = materialBaseInfo.stream() + .filter(u -> StrUtil.equals(u.getMaterialNo(), vo.getMaterialNo())) + .findFirst() + .orElse(null); vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); // } if (StrUtil.isNotBlank(vo.getMaterialNo()) @@ -132,6 +131,9 @@ public class CheckEBomException { } else if (StrUtil.isBlank(vo.getProjectType()) && !Objects.equals(vo.getRootIs(), 1) && !Objects.equals(vo.getUserRootIs(), 1) && !Objects.equals(vo.getRootIsForWaitReview(), 1)) { vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_8.getValue()); + } else if ((StrUtil.equals("KG", StringUtil.toUpperCase(vo.getMaterialUnit())) && !StrUtil.equals(StringUtil.toUpperCase(vo.getMaterialUnit()), "PC")) + || (!Objects.isNull(mainVO) && !StrUtil.equals(vo.getMaterialUnit(), mainVO.getMaterialUnit()))) { + vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_12.getValue()); } else if (StrUtil.isNotBlank(vo.getNoticeNums()) && EBomExceptionStatusEnum.EXCEPT_NO_11.equalsValue(vo.getExceptionStatus())) { vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java index 3bcdf746..bf9642bd 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/util/StringUtil.java @@ -1,5 +1,6 @@ package com.nflg.product.bomnew.util; +import cn.hutool.core.util.StrUtil; import org.apache.commons.lang3.StringUtils; /** @@ -134,4 +135,9 @@ public class StringUtil { } return count; } + + public static String toUpperCase(String str) { + if (StrUtil.isBlank(str)) return str; + return str.toUpperCase(); + } } From 515a72c325a856917b926f2ade1fc771e441c987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 25 Apr 2024 14:53:55 +0800 Subject: [PATCH 09/12] =?UTF-8?q?fix:=20=E8=AE=BE=E8=AE=A1=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=8F=AA=E8=83=BD=E6=9F=A5=E7=9C=8B=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=9A=84=E5=BE=85=E5=A4=8D=E6=A0=B8=E5=92=8C=E5=B7=B2=E9=80=80?= =?UTF-8?q?=E5=9B=9E=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/master/BomNewEbomParentMapper.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index abf2eb34..b3043205 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -384,15 +384,15 @@