From 841c20dff83dd766d79cdf95dca6fc88217e30f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Tue, 24 Sep 2024 17:18:24 +0800 Subject: [PATCH 01/18] =?UTF-8?q?pbom-=E5=BC=82=E5=B8=B8=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/PBomApi.java | 11 ++ .../bomnew/pojo/vo/BomNewPbomParentVO.java | 4 + .../service/BomNewPbomParentService.java | 41 +++++++ .../domain/EBom/CheckPBomException.java | 109 ++++++++++++++++++ 4 files changed, 165 insertions(+) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckPBomException.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 89ed62e8..568c4ed8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -25,6 +25,7 @@ import com.nflg.product.bomnew.util.EecExcelUtil; import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import nflg.product.common.vo.ResultVO; import org.apache.commons.compress.utils.Lists; import org.springframework.transaction.annotation.Transactional; @@ -439,4 +440,14 @@ public class PBomApi extends BaseApi { } + @GetMapping("checkException") + @ApiOperation("PBOM-数据异常检查") + @LogRecord(success = "PBom-BOM数据异常检查,操作结果:{{#_ret}}", bizNo = "{{#bomRowId.toString()}}", type = "PBom-数据异常检查") + public ResultVO checkException(@RequestParam("bomRowId") Long bomRowId, @ApiParam("pBomType:pbom类型: 0- pBom工作表 1-pBOM正式表")@RequestParam("pBomType") Integer pBomType) { + + bomNewPbomParentService.checkException(bomRowId,pBomType); + return ResultVO.success(true); + } + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java index 8362e825..aa3dd655 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java @@ -338,6 +338,10 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { //发布PBOM 时 ,对比Pbom已发布版是否一致,一致则不转PBOM正式,直接删除PBOM 草稿数据 private Integer delIs=0; + + @ApiModelProperty(value = "异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常 7=物料主数据不存在 8=项目类别为空 9=项目赋值异常(父级物料的项目类型为Q时,子级中不能存在项目类别为Q的物料) 10=项目赋值异常(当父级物料的项目类型为F时,子级中不能存在项目类型为F的物料) 11=未填写变更原因和技术通知单 12=数量需要用户确认 13=项目类型需要用户确认") + private Integer exceptionStatus; + private static final long serialVersionUID = 1L; @Override diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 2705b726..4fc69ac2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -28,6 +28,7 @@ import com.nflg.product.bomnew.pojo.query.BomNewPbomParentQuery; import com.nflg.product.bomnew.pojo.query.CopyPBomV2Query; import com.nflg.product.bomnew.pojo.query.PbomImportToSAPQuery; import com.nflg.product.bomnew.pojo.vo.*; +import com.nflg.product.bomnew.service.domain.EBom.CheckPBomException; import com.nflg.product.bomnew.service.domain.PBom.*; import com.nflg.product.bomnew.service.domain.Sap; import com.nflg.product.bomnew.util.*; @@ -769,6 +770,24 @@ public class BomNewPbomParentService extends ServiceImpl getFormalAllBom(Long rowId, Integer countLevelNum) { + List bomDetail = this.getBaseMapper().getParentChild(rowId); + AtomicInteger levelNum = new AtomicInteger(1); + BomNewPbomParentEntity parent = this.getBaseMapper().selectById(rowId); + PBomFormalTreeTask detailTask = new PBomFormalTreeTask(bomDetail, countLevelNum, levelNum,parent.getFacCode()); + ForkJoinTask> submit = bomDetailPool.submit(detailTask); + + List result = submit.join(); + return result.stream().distinct().collect(Collectors.toList()); + + } + public List getAllBom(Long rowId, Integer countLevelNum, Boolean generateDrawingNumberFalg) throws ExecutionException, InterruptedException { List bomDetail = this.getBaseMapper().getParentChild(rowId); AtomicInteger levelNum = new AtomicInteger(1); @@ -2004,5 +2023,27 @@ public class BomNewPbomParentService extends ServiceImpl allBom =new ArrayList<>(); + if(bomType==0){ + allBom= this.getAllBom(rowId, 0); + }else { + this.getFormalAllBom(rowId,0); + } + BomNewPbomParentVO convert = Convert.convert(BomNewPbomParentVO.class, parent); + convert.setBomRowId(convert.getRowId()); + convert.setParentRowId(0L); + allBom.add(convert); + CheckPBomException checkException=new CheckPBomException(allBom); + checkException.initException(); + + } + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckPBomException.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckPBomException.java new file mode 100644 index 00000000..dd76664d --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/CheckPBomException.java @@ -0,0 +1,109 @@ +package com.nflg.product.bomnew.service.domain.EBom; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.spring.SpringUtil; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Sets; +import com.nflg.product.base.core.exception.NflgBusinessException; +import com.nflg.product.bomnew.constant.*; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; +import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; +import com.nflg.product.bomnew.service.BomNewEbomChildService; +import com.nflg.product.bomnew.service.BomNewEbomParentService; +import com.nflg.product.bomnew.service.MaterialMainService; +import com.nflg.product.bomnew.util.*; +import lombok.Getter; +import lombok.Setter; +import nflg.product.common.constant.STATE; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 检查BOM 异常 + */ +public class CheckPBomException { + + @Getter + List allBomDetail; + + + + + + /** + * @param allBom 整颗BOM树(包含跟节点) + */ + public CheckPBomException(List allBom) { + allBomDetail = allBom; + } + + /** + * 初始化异常 + */ + public void initException() { + //初始化物料信息 + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); + + checkException(); + } + public void checkException() { + for (BomNewPbomParentVO vo : allBomDetail) { + vo.setExceptionStatus(EBomExceptionStatusEnum.OK.getValue()); + + if (StrUtil.isNotBlank(vo.getMaterialNo()) + && (MaterialGetEnum.MaterialStateEnum.STATE_NO_4.equalsValue(vo.getMaterialState()) + || MaterialGetEnum.MaterialStateEnum.STATE_NO_5.equalsValue(vo.getMaterialState()))) { + vo.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_2.getValue()); + } + } + } + /** + * 黄色警号异常 + * + * @param + */ + public void initExceptionYellowWarn() { + Set exceptionItems = allBomDetail.stream().filter(u -> EBomExceptionStatusEnum.EXCEPT_NO_2.equals(u.getExceptionStatus())).collect(Collectors.toSet()); + for (BomNewPbomParentVO vo : exceptionItems) { + initExceptionParent(vo); + } + + } + + + /** + * 初始化上级警告 + * @param vo + * @return + */ + protected void initExceptionParent(BomNewPbomParentVO vo) { + + List parentEnts = initExceptionParentDo(ImmutableList.of(vo)); + + while (CollUtil.isNotEmpty(parentEnts) ) { + parentEnts = initExceptionParentDo(parentEnts); + } + + } + + private List initExceptionParentDo(List vos) { + Set parentRowIds = vos.stream().filter(u->u.getParentRowId()>0).map(u -> u.getParentRowId()).collect(Collectors.toSet()); + List parents = allBomDetail.stream().filter(u ->parentRowIds.contains(u.getBomRowId())).collect(Collectors.toList()); + parents.forEach(u->u.setExceptionStatus(EBomExceptionStatusEnum.EXCEPT_NO_14.getValue())); + return parents; + } + + + + + + +} From 4fe36d5b9cefd003a24e87d0dd052ef61e929610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Wed, 25 Sep 2024 10:55:19 +0800 Subject: [PATCH 02/18] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java index b203a5f9..a3820a12 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/EBomToPBomForFormalNew.java @@ -125,7 +125,9 @@ public class EBomToPBomForFormalNew extends FormalEBomToPbomBase { continue; } //处理子级 - mergeChild=handlerArtPackage(parentEnt,mergeChild,facCode,parentList,vo.getVirtualPartType()); + if(!VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(vo.getVirtualPartType()) && !VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(vo.getVirtualPartType())) { + mergeChild = handlerArtPackage(parentEnt, mergeChild, facCode, parentList, vo.getVirtualPartType()); + } //检查是否用户跟用户节点() if(parentEnt.getMaterialNo().equals(parent.getMaterialNo())) { List childMaterialNos = SpringUtil.getBean(BomNewPbomParentMapper.class).getPBomExistMaterialInChildForWorkList(parent.getMaterialNo()); From 5ba4960667324ee0996dc9f0729f1d41b88e4192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Wed, 25 Sep 2024 15:04:21 +0800 Subject: [PATCH 03/18] =?UTF-8?q?bom-=E6=9F=A5=E7=9C=8B=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomReportApi.java | 12 ++++-- .../product/bomnew/pojo/vo/UpdateLogVO.java | 42 +++++++++++++++++++ .../bomnew/service/ForwardReportService.java | 5 +++ 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index f8c86720..1277b47d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -21,12 +21,10 @@ import com.nflg.product.bomnew.util.EecExcelUtil; import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.ttzero.excel.entity.ListSheet; import javax.annotation.Resource; @@ -127,6 +125,12 @@ public class BomReportApi extends BaseApi { return ResultVO.success(forwardReportService.factoryBomType(query)); } + @PostMapping("getUpdateLog") + @ApiOperation("bom-变更记录(和上一版本对比)") + public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId) { + return ResultVO.success(forwardReportService.getUpdateLog(bomRowId)); + } + @PostMapping("compareReport") @ApiOperation("bom-比对") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java new file mode 100644 index 00000000..29b39741 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java @@ -0,0 +1,42 @@ +package com.nflg.product.bomnew.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 版本变更-记录VO + */ +@Data +public class UpdateLogVO { + + @ApiModelProperty(value = "序号") + private String orderNumber; + + @ApiModelProperty("项目类别") + private String projectType; + + @ApiModelProperty("物料编码") + private String materialNo; + + @ApiModelProperty("物料名称") + private String materialName; + + @ApiModelProperty("物料描述") + private String materialDesc; + + @ApiModelProperty(value = "数量") + private BigDecimal num; + + @ApiModelProperty("单位") + private String materialUnit; + + @ApiModelProperty("排序字符串") + private String orderStr; + + @ApiModelProperty("操作类型") + private String opType; + + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index d670d798..3806ff9b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -402,4 +402,9 @@ public class ForwardReportService { } + public List getUpdateLog(Long bomRowId){ + + } + + } From 76870060450374f0e5c91b84cafa3ea21b5ea2a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Wed, 25 Sep 2024 15:04:21 +0800 Subject: [PATCH 04/18] =?UTF-8?q?bom-=E6=9F=A5=E7=9C=8B=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomReportApi.java | 12 ++++-- .../product/bomnew/pojo/vo/UpdateLogVO.java | 42 +++++++++++++++++++ .../bomnew/service/ForwardReportService.java | 5 +++ 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index f8c86720..1277b47d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -21,12 +21,10 @@ import com.nflg.product.bomnew.util.EecExcelUtil; import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.ttzero.excel.entity.ListSheet; import javax.annotation.Resource; @@ -127,6 +125,12 @@ public class BomReportApi extends BaseApi { return ResultVO.success(forwardReportService.factoryBomType(query)); } + @PostMapping("getUpdateLog") + @ApiOperation("bom-变更记录(和上一版本对比)") + public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId) { + return ResultVO.success(forwardReportService.getUpdateLog(bomRowId)); + } + @PostMapping("compareReport") @ApiOperation("bom-比对") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java new file mode 100644 index 00000000..29b39741 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java @@ -0,0 +1,42 @@ +package com.nflg.product.bomnew.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 版本变更-记录VO + */ +@Data +public class UpdateLogVO { + + @ApiModelProperty(value = "序号") + private String orderNumber; + + @ApiModelProperty("项目类别") + private String projectType; + + @ApiModelProperty("物料编码") + private String materialNo; + + @ApiModelProperty("物料名称") + private String materialName; + + @ApiModelProperty("物料描述") + private String materialDesc; + + @ApiModelProperty(value = "数量") + private BigDecimal num; + + @ApiModelProperty("单位") + private String materialUnit; + + @ApiModelProperty("排序字符串") + private String orderStr; + + @ApiModelProperty("操作类型") + private String opType; + + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index d670d798..3806ff9b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -402,4 +402,9 @@ public class ForwardReportService { } + public List getUpdateLog(Long bomRowId){ + + } + + } From f9829796c0e374d832180467335fa90fc586a852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Wed, 25 Sep 2024 16:14:45 +0800 Subject: [PATCH 05/18] =?UTF-8?q?bom-=E6=9F=A5=E7=9C=8B=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomReportApi.java | 4 +- .../product/bomnew/constant/BomConstant.java | 4 + .../product/bomnew/pojo/vo/UpdateLogVO.java | 7 ++ .../bomnew/service/ForwardReportService.java | 114 +++++++++++++++++- 4 files changed, 126 insertions(+), 3 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index 1277b47d..99c8db8b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -127,8 +127,8 @@ public class BomReportApi extends BaseApi { @PostMapping("getUpdateLog") @ApiOperation("bom-变更记录(和上一版本对比)") - public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId) { - return ResultVO.success(forwardReportService.getUpdateLog(bomRowId)); + public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId , @ApiParam("BOM 类型 0-原始BOM 1-EBom 2-PBom") @RequestParam("bomType") Integer bomType) { + return ResultVO.success(forwardReportService.getUpdateLog(bomRowId,bomType)); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java index af9ca74d..f0967714 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/BomConstant.java @@ -16,4 +16,8 @@ public class BomConstant { public static final Integer YES=1; public static final Integer NO=0; + + public static final String ADD="新增"; + public static final String UP="修改"; + public static final String DEL="删除"; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java index 29b39741..81c7e4d4 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/UpdateLogVO.java @@ -14,6 +14,10 @@ public class UpdateLogVO { @ApiModelProperty(value = "序号") private String orderNumber; + @ApiModelProperty(value = "版本号") + private String currentVersion; + + @ApiModelProperty("项目类别") private String projectType; @@ -38,5 +42,8 @@ public class UpdateLogVO { @ApiModelProperty("操作类型") private String opType; + @ApiModelProperty("旧版或新版 0-旧版 1-新版") + private Integer oldOrNewVersion=0; + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index 3806ff9b..bb784ed2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -1,10 +1,13 @@ package com.nflg.product.bomnew.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; +import com.google.common.collect.Sets; +import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.mapper.master.BomNewPbomParentMapper; import com.nflg.product.bomnew.pojo.entity.*; @@ -19,9 +22,12 @@ import com.nflg.product.bomnew.util.EecExcelUtil; import com.nflg.product.bomnew.util.ListCommonUtil; import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import com.nflg.product.bomnew.util.VUtils; +import nflg.product.common.constant.STATE; +import org.apache.ibatis.builder.ParameterExpression; import org.springframework.stereotype.Service; import org.ttzero.excel.entity.ListSheet; +import javax.annotation.Resource; import java.io.IOException; import java.io.OutputStream; import java.util.*; @@ -32,6 +38,19 @@ import java.util.stream.Collectors; @Service public class ForwardReportService { + @Resource + private BomNewEbomParentFormalService ebomParentFormalService; + + @Resource + private BomNewEbomChildFormalService ebomChildFormalService; + + + @Resource + private BomNewPbomParentFormalService pbomParentFormalService; + + @Resource + private BomNewPbomChildFormalService pbomChildFormalService; + public ReportBomVersionVO factoryVersion(ReverseReportQuery query) { //原始BOM @@ -402,8 +421,101 @@ public class ForwardReportService { } - public List getUpdateLog(Long bomRowId){ + /** + * 获取BOM变更记录 + * @param bomRowId bom版本rowId + * @param bomType BOM 类型 0-原始BOM 1-EBom 2-PBom + * @return + */ + public List getUpdateLog(Long bomRowId ,Integer bomType){ + //结果 + List result=new ArrayList<>(); + //eBom + if(bomType==1){ + BomNewEbomParentFormalEntity ebomVersion = ebomParentFormalService.getById(bomRowId); + if(Objects.nonNull(ebomVersion)){ + //上一个BOM版本 + BomNewEbomParentFormalEntity preBomVersion = ebomParentFormalService.lambdaQuery().eq(BomNewEbomParentFormalEntity::getMaterialNo, ebomVersion.getMaterialNo()) + .lt(BomNewEbomParentFormalEntity::getCurrentVersion, ebomVersion.getCurrentVersion()).orderByDesc(BomNewEbomParentFormalEntity::getCurrentVersion).last(" limit 1").one(); + if(Objects.nonNull(preBomVersion)) { + List newBomDetail = ebomChildFormalService.lambdaQuery().eq(BomNewEbomChildFormalEntity::getParentRowId, bomRowId).list(); + List oldBomDetail = ebomChildFormalService.lambdaQuery().eq(BomNewEbomChildFormalEntity::getParentRowId, preBomVersion.getRowId()).list(); + List newBomChild = Convert.toList(UpdateLogVO.class, newBomDetail); + List oldBomChild = Convert.toList(UpdateLogVO.class, oldBomDetail); + newBomChild.forEach(item->{item.setCurrentVersion(ebomVersion.getCurrentVersion()); item.setOldOrNewVersion(1);}); + oldBomChild.forEach(item->item.setCurrentVersion(preBomVersion.getCurrentVersion())); + result=compare(oldBomChild,newBomChild); + } + } + }//pBom + else if(bomType==2){ + BomNewPbomParentFormalEntity pbomVersion = pbomParentFormalService.getById(bomRowId); + if(Objects.nonNull(pbomVersion)){ + //上一个BOM版本 + BomNewPbomParentFormalEntity preBomVersion = pbomParentFormalService.lambdaQuery().eq(BomNewPbomParentFormalEntity::getMaterialNo, pbomVersion.getMaterialNo()) + .lt(BomNewPbomParentFormalEntity::getCurrentVersion, pbomVersion.getCurrentVersion()).orderByDesc(BomNewPbomParentFormalEntity::getCurrentVersion).last(" limit 1").one(); + if(Objects.nonNull(preBomVersion)) { + List newBomDetail = pbomChildFormalService.lambdaQuery().eq(BomNewPbomChildFormalEntity::getParentRowId, bomRowId).list(); + + List oldBomDetail = pbomChildFormalService.lambdaQuery().eq(BomNewPbomChildFormalEntity::getParentRowId, preBomVersion.getRowId()).list(); + List newBomChild = Convert.toList(UpdateLogVO.class, newBomDetail); + List oldBomChild = Convert.toList(UpdateLogVO.class, oldBomDetail); + newBomChild.forEach(item->{item.setCurrentVersion(pbomVersion.getCurrentVersion()); item.setOldOrNewVersion(1);}); + oldBomChild.forEach(item->item.setCurrentVersion(preBomVersion.getCurrentVersion())); + result=compare(oldBomChild,newBomChild); + } + } + } + else { + throw new NflgBusinessException(STATE.ParamErr ,"bomType参数错误:暂不支持该类型BOM"); + } + return result; + } + + + /** + * bom-对比(变更记录) + * @param oldBom + * @param newBom + * @return + */ + private List compare(List oldBom, List newBom){ + List result =new ArrayList<>(); + + Set oldSet = oldBom.stream().map(u -> u.getOrderNumber()).collect(Collectors.toSet()); + Set newSet =newBom.stream().map(u->u.getOrderNumber()).collect(Collectors.toSet()); + //删除的 + Set del = Sets.difference(oldSet, newSet); + for (String item: del) { + UpdateLogVO oldEnd=oldBom.stream().filter(u->u.getOrderNumber().equals(item)).findFirst().get(); + result.add(oldEnd); + UpdateLogVO newEnt =new UpdateLogVO(); + BeanUtil.copyProperties(oldEnd,newEnt); + newEnt.setOpType(BomConstant.DEL); + + } + + //新增 + Set add= Sets.difference(newSet,oldSet); + for (String item: add) { + UpdateLogVO updateLogVO=newBom.stream().filter(u->u.getOrderNumber().equals(item)).findFirst().get(); + updateLogVO.setOpType(BomConstant.ADD); + result.add(updateLogVO); + } + + //都有比较编辑字段 + Set intersection = Sets.intersection(oldSet,newSet); + for (String item: intersection) { + UpdateLogVO oldEnt = oldBom.stream().filter(u -> u.getOrderNumber().equals(item)).findFirst().get(); + UpdateLogVO newEnt = newBom.stream().filter(u -> u.getOrderNumber().equals(item)).findFirst().get(); + if(!oldEnt.getMaterialNo().equals(newEnt.getMaterialNo()) || ! oldEnt.getNum().equals(newEnt.getNum()) || oldEnt.getProjectType().equals(newEnt.getProjectType())){ + result.add(oldEnt); + newEnt.setOpType(BomConstant.UP); + result.add(newEnt); + } + } + return result; } From 7d22993707995f864bc772433c156bacaee93100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 26 Sep 2024 08:47:02 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=89=8D=E6=8F=90?= =?UTF-8?q?=E5=B1=82=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java | 2 +- .../service/domain/EBom/topbomnew/FormalEBomToPbomBase.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java index f82e5d73..fd993474 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomToPbomBase.java @@ -400,7 +400,7 @@ public abstract class EBomToPbomBase { //虚拟包 if (firstLevelBom.getVirtualPartType() > 0) { result.add(firstLevelBom); - if(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(firstLevelBom.getVirtualPartType()) && firstLevelBom.getBomRowId()<=0){ + if((VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(firstLevelBom.getVirtualPartType()) ||VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(firstLevelBom.getVirtualPartType()) ) && firstLevelBom.getBomRowId()<=0){ firstLevelBom.setBomRowId(IdWorker.getId()); firstLevelBom.setStatus(EBomStatusEnum.CHECKED.getValue()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java index 2a9437ad..fa423a46 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/topbomnew/FormalEBomToPbomBase.java @@ -380,7 +380,7 @@ public abstract class FormalEBomToPbomBase { //虚拟包 if (firstLevelBom.getVirtualPartType() > 0) { result.add(firstLevelBom); - if(VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(firstLevelBom.getVirtualPartType()) && firstLevelBom.getBomRowId()<=0){ + if((VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE.equalsValue(firstLevelBom.getVirtualPartType())|| VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.equalsValue(firstLevelBom.getVirtualPartType())) && firstLevelBom.getBomRowId()<=0){ firstLevelBom.setBomRowId(IdWorker.getId()); firstLevelBom.setStatus(EBomStatusEnum.CHECKED.getValue()); } From 582ccdc66a19187c82a45b89c9ba8757b59e71e6 Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Thu, 26 Sep 2024 08:48:26 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E2=88=9A2=E3=80=81=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=EF=BC=8C=E5=BC=B9=E7=AA=97=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=9A=84=E8=8B=B1=E6=96=87=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=20=E2=88=9A3=E3=80=81=E7=89=A9=E6=96=99=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=EF=BC=8C=E5=BC=B9=E7=AA=97=E6=98=BE=E7=A4=BA=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=9A=E5=8F=98=E6=9B=B4=E4=BA=BA=E3=80=81=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E3=80=81=E7=94=B3=E8=AF=B7=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E3=80=81=E5=8F=98=E6=9B=B4=E7=94=9F=E6=95=88?= =?UTF-8?q?=E6=97=B6=E9=97=B4=204=E3=80=81=E7=89=A9=E6=96=99=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=80=89=E5=A1=AB=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=20=E9=80=9A=E7=94=A8=E7=A8=8B=E5=BA=A6=EF=BC=9B?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E9=A1=B9=E7=9B=AE=E7=B1=BB=E5=88=AB=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/material/MaterialUpdateBillApi.java | 11 ++++++ .../material/pojo/vo/MaterialMainVO.java | 30 ++++++++++++++++ .../service/MaterialExcelService.java | 4 +-- .../material/service/MaterialMainService.java | 10 +++--- .../service/MaterialUpdateBillService.java | 36 +++++++++++++++++-- 5 files changed, 82 insertions(+), 9 deletions(-) diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java index 244adbae..1f9759cb 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java @@ -6,6 +6,7 @@ import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.material.pojo.dto.MaterialStateUpExcelDTO; import com.nflg.product.material.pojo.dto.MaterialUpdateBillDTO; import com.nflg.product.material.pojo.dto.TwentyMaterialTemplateExcelDTO; +import com.nflg.product.material.pojo.entity.MaterialAttrValueI18nEntity; import com.nflg.product.material.pojo.entity.MaterialUpdateBillEntity; import com.nflg.product.material.pojo.entity.MaterialUpdateImportTaskEntity; import com.nflg.product.material.pojo.query.MaterialUpdateBillQuery; @@ -198,4 +199,14 @@ public class MaterialUpdateBillApi extends BaseApi { public ResultVO> getMaterialUpdateImportTaskList() { return ResultVO.success(materialUpdateBillService.getMaterialUpdateImportTaskList()); } + + /** + * 获取制作物料名称国际化表 + * @param + */ + @GetMapping("getI18nForUpdate") + @ApiOperation("获取制作物料名称国际化表") + public ResultVO materialUpdateBillService(@RequestParam("attrValueCn") String attrValueCn, @RequestParam("type") String type) { + return materialUpdateBillService.materialUpdateBillService(attrValueCn, type); + } } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java index d0989b84..f60446c2 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java @@ -1,6 +1,7 @@ package com.nflg.product.material.pojo.vo; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import com.nflg.product.material.pojo.dto.MaterialMainAttrDTO; import com.nflg.product.material.pojo.entity.MaterialFilesEntity; import io.swagger.annotations.ApiModel; @@ -12,6 +13,7 @@ import org.ttzero.excel.annotation.ExcelColumn; import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -438,4 +440,32 @@ public class MaterialMainVO implements Serializable { */ @ApiModelProperty(value = "项目类别") private String projectType; + + // 变更弹窗字段 start + /** + * 变更人 + */ + @ApiModelProperty(value = "变更人") + private String updateCreatedByName; + + /** + * 变更部门 + */ + @ApiModelProperty(value = "变更部门") + private String updateApplyDeptName; + + /** + * 申请变更时间 + */ + @ApiModelProperty(value = "申请变更时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateCreatedTime; + + /** + * 变更生效时间 + */ + @ApiModelProperty(value = "变更生效时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateEffectTime; + // 变更弹窗字段 end } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java index 73418531..2c7d50eb 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java @@ -238,8 +238,8 @@ public class MaterialExcelService { throw new NflgBusinessException(STATE.ParamErr, StrUtil.join(",", diff).concat("分类代码在系统中不存在")); } - // 校验项目类别 - checkProjectType(datas); +// // 校验项目类别 +// checkProjectType(datas); //验证21 物料 check21Droring(datas); diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java index 05057f9a..c52dd775 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java @@ -1325,10 +1325,10 @@ public class MaterialMainService extends ServiceImpl projectTypeResult = checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto); - if (Objects.nonNull(projectTypeResult)) { - return projectTypeResult; - } +// ResultVO projectTypeResult = checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto); +// if (Objects.nonNull(projectTypeResult)) { +// return projectTypeResult; +// } // 工具工装,只验证图号是否重名,不验证前缀 if (materialCategoryEntity.getRelCategoryCode().equals(MaterialRelCategoryCodeEnum.relCategoryCode_71.getRelCategoryCode())) { @@ -1602,7 +1602,7 @@ public class MaterialMainService extends ServiceImpl getMaterialUpdateImportTaskList() { return materialUpdateImportTaskMapper.getMaterialUpdateImportTaskList(SessionUtil.getUserCode()); } + + public ResultVO materialUpdateBillService(String attrValueCn, String type) { + // 查询制作物料英文 + if ("20".equals(type)) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialAttrValueI18n21Entity::getAttrValueCn, attrValueCn).eq(MaterialAttrValueI18n21Entity::getEnableState, 1); + MaterialAttrValueI18n21Entity i18n21Entity = materialAttrValueI18n21Mapper.selectOne(queryWrapper); + return ResultVO.success(Convert.convert(MaterialAttrValueI18nEntity.class, i18n21Entity)); + } else { + // 查询采购物料英文 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialAttrValueEntity::getAttrRowId, 1).eq(MaterialAttrValueEntity::getAttrValueName, attrValueCn); + MaterialAttrValueEntity materialAttrValueEntity = materialAttrValueMapper.selectOne(queryWrapper); + if (ObjectUtil.isNotEmpty(materialAttrValueEntity)) { + LambdaQueryWrapper i18nQueryWrapper = new LambdaQueryWrapper<>(); + i18nQueryWrapper.eq(MaterialAttrValueI18nEntity::getAttrValueRowId, materialAttrValueEntity.getRowId()); + return ResultVO.success(materialAttrValueI18nMapper.selectOne(i18nQueryWrapper)); + } + } + return ResultVO.success(); + } } From 558f4feca684210909f25d9dcc9ec8238c49d6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 26 Sep 2024 09:08:19 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E5=90=88sit=20=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E6=89=93=E5=8C=85=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nflg/product/bomnew/service/ForwardReportService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index 3806ff9b..da59a682 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -403,7 +403,7 @@ public class ForwardReportService { public List getUpdateLog(Long bomRowId){ - + return null; } From cb403402575a2493a7d98c2a88bd4f643b35d822 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 26 Sep 2024 10:22:56 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E7=94=9F=E6=88=90PBOM=E6=97=B6=EF=BC=8Cb?= =?UTF-8?q?om=E6=B2=A1=E6=9C=89=E5=AD=90=E9=A1=B9=E7=9A=84=E8=AF=9D?= =?UTF-8?q?=EF=BC=8C=E4=BB=85=E7=94=9F=E6=88=90EBOM=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E4=B8=8D=E7=94=9F=E6=88=90PBOM=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=EF=BC=88=E4=BC=98=E5=8C=96=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/BomNewEbomParentService.java | 38 +++++++++++++++++++ .../PBom/TechnologyPackageParamBuilder.java | 10 ++++- .../src/main/resources/logback-prod.xml | 25 ++++++++++++ .../src/main/resources/logback-sit.xml | 25 ++++++++++++ 4 files changed, 97 insertions(+), 1 deletion(-) 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 905b0c8d..e2328aec 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 @@ -40,6 +40,7 @@ import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; +import org.checkerframework.checker.nullness.Opt; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -1026,6 +1027,24 @@ public class BomNewEbomParentService extends ServiceImpl !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) .collect(Collectors.toList()); if(!emptyChildParentList.isEmpty()){ + List fList = emptyChildParentList.stream().filter(p -> { + Optional opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst(); + if(opt.isPresent()){ + List cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList()); + if(cList.size() > 0){ + Map> ptMap = cList.stream().collect(Collectors.groupingBy(BaseMaterialVO::getProjectType)); + return ptMap.getOrDefault("F",Lists.newArrayList()).size() == cList.size(); + } + } + return false; + }).collect(Collectors.toList()); + if(!fList.isEmpty()){ + String m = fList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct().collect(Collectors.joining(",")); + OperationErrorMsgVO oem = new OperationErrorMsgVO(); + oem.setPrimaryKey(m); + oem.msg = String.format("物料%s因下级全部是F项,仅保存EBOM,未生成PBOM数据",m); + rList.add(oem); + } // rList = emptyChildParentList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct() // .map(m -> { // OperationErrorMsgVO oem = new OperationErrorMsgVO(); @@ -1200,6 +1219,25 @@ public class BomNewEbomParentService extends ServiceImpl !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) .collect(Collectors.toList()); if(!emptyChildParentList.isEmpty()){ + List fList = emptyChildParentList.stream().filter(p -> { + Optional opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst(); + if(opt.isPresent()){ + List cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList()); + if(cList.size() > 0){ + Map> ptMap = cList.stream().collect(Collectors.groupingBy(BaseMaterialVO::getProjectType)); + return ptMap.getOrDefault("F",Lists.newArrayList()).size() == cList.size(); + } + } + return false; + }).collect(Collectors.toList()); + if(!fList.isEmpty()){ + String m = fList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct().collect(Collectors.joining(",")); + OperationErrorMsgVO oem = new OperationErrorMsgVO(); + oem.setPrimaryKey(m); + oem.msg = String.format("物料%s因下级全部是F项,仅保存EBOM,未生成PBOM数据",m); + rList.add(oem); + } + // rList = emptyChildParentList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct() // .map(m -> { // OperationErrorMsgVO oem = new OperationErrorMsgVO(); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java index ff306733..05b6d296 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java @@ -2,6 +2,8 @@ package com.nflg.product.bomnew.service.domain.PBom; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -19,12 +21,14 @@ import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.util.VUtils; import com.nflg.product.bomnew.util.VersionUtil; import lombok.Getter; +import org.apache.commons.compress.utils.Lists; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Optional; /** * 工艺包构建 @@ -219,7 +223,11 @@ public class TechnologyPackageParamBuilder { child.setRowId(IdWorker.getId()); child.setParentRowId(parent.getRowId()); child.setFacCode(parent.getFacCode()); - child.setOrderNumber(StrUtil.padPre (String.valueOf(parentChildren.size()+1),3,"0")); + //虚拟包作为下级时,序号按照已有的子级取出最大的序号值+1 by 10002327 0925 + int orderNumber = parentChildren.stream().max((p1,p2) -> p1.getOrderNumber().compareTo(p2.getOrderNumber())) + .map(m -> Convert.toInt(m.getOrderNumber())).orElse(0); + + child.setOrderNumber(StrUtil.padPre (String.valueOf(orderNumber+1),3,"0")); child.setDrawingNo(packageMaterial.getDrawingNo()); child.setMaterialNo(packageMaterial.getMaterialNo()); child.setMaterialName(packageMaterial.getMaterialName()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml index c3bf93f4..f5833c6c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-prod.xml @@ -35,6 +35,28 @@ + + + + error + + ${logDir}/error/nflg-bom-new-error.log + + + ${logDir}/error/%d{yyyy-MM-dd}.%i.error.log + + 30 + + true + + ${splitSize} + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n + + + @@ -43,4 +65,7 @@ + + + \ No newline at end of file diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml index 75819510..d9453627 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/logback-sit.xml @@ -35,6 +35,28 @@ + + + + error + + ${logDir}/error/nflg-bom-new-error.log + + + ${logDir}/error/%d{yyyy-MM-dd}.%i.error.log + + 30 + + true + + ${splitSize} + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n + + + @@ -46,4 +68,7 @@ + + + \ No newline at end of file From cdcf08e70660beb59d8cb2329e3dae0ff963ed01 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 26 Sep 2024 10:44:01 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E7=94=9F=E6=88=90PBOM=E6=97=B6=EF=BC=8Cb?= =?UTF-8?q?om=E6=B2=A1=E6=9C=89=E5=AD=90=E9=A1=B9=E7=9A=84=E8=AF=9D?= =?UTF-8?q?=EF=BC=8C=E4=BB=85=E7=94=9F=E6=88=90EBOM=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E4=B8=8D=E7=94=9F=E6=88=90PBOM=E4=BB=BB?= =?UTF-8?q?=E5=8A=A12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/BomNewEbomParentService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 e2328aec..9d66b376 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 @@ -1022,9 +1022,10 @@ public class BomNewEbomParentService extends ServiceImpllambdaQuery().in(BomNewEbomChildEntity::getParentRowId,ebomParentIdList)); // } - //3、判断parent下是否有子级,如果没有的话,把parent给删除了 物料****因下级全部是F项,仅保存EBOM,未生成PBOM数据 + //3、判断parent下是否有子级,排除电控系统和仙桃的,如果没有的话,把parent给删除了 物料****因下级全部是F项,仅保存EBOM,未生成PBOM数据 仙桃) List emptyChildParentList = eBomToPBom.getPBomParentResult().stream() - .filter(p -> !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) + .filter(p -> !p.getMaterialDesc().contains("电控系统") && !p.getMaterialDesc().contains("仙桃)") + && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) .collect(Collectors.toList()); if(!emptyChildParentList.isEmpty()){ List fList = emptyChildParentList.stream().filter(p -> { @@ -1216,7 +1217,8 @@ public class BomNewEbomParentService extends ServiceImpl emptyChildParentList = eBomToPBom.getPBomParentResult().stream() - .filter(p -> !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) + .filter(p -> !p.getMaterialDesc().contains("电控系统") && !p.getMaterialDesc().contains("仙桃)") + && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) ) .collect(Collectors.toList()); if(!emptyChildParentList.isEmpty()){ List fList = emptyChildParentList.stream().filter(p -> { From 8d31889ccf744adc2bd17e12af8adc1b6bd7a307 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 26 Sep 2024 11:23:33 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E7=94=9F=E6=88=90PBOM=E6=97=B6=EF=BC=8Cb?= =?UTF-8?q?om=E6=B2=A1=E6=9C=89=E5=AD=90=E9=A1=B9=E7=9A=84=E8=AF=9D?= =?UTF-8?q?=EF=BC=8C=E4=BB=85=E7=94=9F=E6=88=90EBOM=E6=AD=A3=E5=BC=8F?= =?UTF-8?q?=E8=A1=A8=EF=BC=8C=E4=B8=8D=E7=94=9F=E6=88=90PBOM=E4=BB=BB?= =?UTF-8?q?=E5=8A=A12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/service/BomNewEbomParentService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 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 9d66b376..1b36fdac 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 @@ -1028,7 +1028,8 @@ public class BomNewEbomParentService extends ServiceImpl fList = emptyChildParentList.stream().filter(p -> { + //仅选择的第一层需要提示 + List fList = emptyChildParentList.stream().filter(p -> p.getSourceRowId().equals(bomRowId)).filter(p -> { Optional opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst(); if(opt.isPresent()){ List cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList()); @@ -1221,7 +1222,8 @@ public class BomNewEbomParentService extends ServiceImpl fList = emptyChildParentList.stream().filter(p -> { + //仅选择的第一层需要提示 + List fList = emptyChildParentList.stream().filter(p -> p.getSourceRowId().equals(bomRowId)).filter(p -> { Optional opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst(); if(opt.isPresent()){ List cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList()); From f96b5701f45b507b23f52eb834b54a8084c30487 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 26 Sep 2024 14:37:45 +0800 Subject: [PATCH 12/18] =?UTF-8?q?4=E3=80=81=E7=94=B5=E6=B0=94BOM=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2=E4=BC=98=E5=8C=96=205=E3=80=81BOM?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=9F=A5=E8=AF=A2=E5=88=97=E8=A1=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=89=A9=E6=96=99=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomReportApi.java | 19 +++++++++++++++++-- .../product/bomnew/api/user/DQBomApi.java | 12 ++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index f8c86720..5db97165 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -6,16 +6,19 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.ImmutableList; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.ReportConstant; +import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; import com.nflg.product.bomnew.pojo.query.ChildBomReportQuery; import com.nflg.product.bomnew.pojo.query.CompareReportQuery; import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.CompareReportService; import com.nflg.product.bomnew.service.ForwardReportService; +import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.ReverseReportService; import com.nflg.product.bomnew.util.EecExcelUtil; import com.nflg.product.bomnew.util.VUtils; @@ -34,7 +37,10 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; @Api(tags = "BOM-报表接口") @RestController @@ -50,6 +56,8 @@ public class BomReportApi extends BaseApi { @Resource CompareReportService compareReportService; + @Resource + MaterialMainService materialMainService; @PostMapping("reverseReport") @ApiOperation("bom-反查") @@ -123,8 +131,15 @@ public class BomReportApi extends BaseApi { if (resultVO != null) { return resultVO; } - - return ResultVO.success(forwardReportService.factoryBomType(query)); + //物料描述从 物料主数据获取 by 10002327 240926 + ReportBomVO r = forwardReportService.factoryBomType(query); + if(!r.getChildNodes().isEmpty()){ + Set materialNoSet = r.getChildNodes().stream().map(BaseMaterialVO::getMaterialNo).collect(Collectors.toSet()); + List materialMainList = materialMainService.list(Wrappers.lambdaQuery().in(MaterialMainEntity::getMaterialNo,materialNoSet)); + Map materialMainMap = materialMainList.stream().collect(Collectors.toMap(MaterialMainEntity::getMaterialNo,MaterialMainEntity::getMaterialDesc,(k1, k2)->k1)); + r.getChildNodes().forEach(c -> c.setMaterialDesc(materialMainMap.getOrDefault(c.getMaterialNo(),c.getMaterialDesc()))); + } + return ResultVO.success(r); } 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 d150a08a..6c68eed9 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 @@ -99,12 +99,12 @@ public class DQBomApi extends BaseApi { @ApiOperation("分页查询数据") public ResultVO> getPageList(@Valid @RequestBody @NotNull BomNewDQbomPageQuery query) { // 电气BOM正式表查询无须添加时间条件 by 10002327 240918 -// if (query.getStatus() == 2) { -// if (StrUtil.isBlank(query.getStartDate()) && StrUtil.isBlank(query.getEndDate())) { -// query.setStartDate(LocalDateTimeUtil.format(LocalDateTime.now().plusDays(-2), "yyyy-MM-dd")); -// query.setEndDate(LocalDateTimeUtil.format(LocalDateTime.now().plusDays(1), "yyyy-MM-dd")); -// } -// } + if (query.getStatus() == 2) { + if (StrUtil.isAllBlank(query.getDrawingNo(),query.getMaterialNo(),query.getMaterialName(),query.getStartDate(),query.getEndDate())) { + query.setStartDate(LocalDateTimeUtil.format(LocalDateTime.now().plusDays(-2), "yyyy-MM-dd")); + query.setEndDate(LocalDateTimeUtil.format(LocalDateTime.now().plusDays(1), "yyyy-MM-dd")); + } + } return ResultVO.success(dQBomService.getPageList(query)); } From f1b0f1a9da89b9d60ee48150f439ea8fc5a1c28d Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Thu, 26 Sep 2024 14:49:12 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E7=89=A9=E6=96=99=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=80=89=E5=A1=AB=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=20=E9=80=9A=E7=94=A8=E7=A8=8B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/user/material/MaterialMainApi.java | 12 ++++++++++++ .../material/pojo/dto/MaterialMainDTO.java | 6 ++++++ .../pojo/entity/MaterialMainEntity.java | 7 +++++++ .../material/pojo/vo/MaterialMainVO.java | 6 ++++++ .../material/service/MaterialMainService.java | 18 ++++++++++++++++++ 5 files changed, 49 insertions(+) diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java index c7f09d5b..3629c974 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java @@ -403,6 +403,18 @@ public class MaterialMainApi extends BaseApi { return materialMainService.updateProjectType(paramDto); } + /** + * 更新 + * 申请人才允许更新 + * @param paramDto + * @return + */ + @PostMapping("updateGeneralLevel") + @ApiOperation("更新通用程度") + public ResultVO updateGeneralLevel(@RequestBody MaterialMainDTO paramDto) { + return materialMainService.updateGeneralLevel(paramDto); + } + /** * 手动执行计算推荐度 */ diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java index 7206d25a..1190e0bf 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java @@ -190,5 +190,11 @@ public class MaterialMainDTO implements Serializable { @ApiModelProperty(value = "申请部门") private String applyDeptName; + /** + * 通用程度 + */ + @ApiModelProperty("通用程度") + private String generalLevel; + private static final long serialVersionUID = 1L; } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java index 1ff6c005..ef684677 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java @@ -369,6 +369,13 @@ public class MaterialMainEntity implements Serializable { @ApiModelProperty(value = "近两年使用量(新)") private BigDecimal twoYearsUsage; + /** + * 通用程度 + */ + @TableField(value = "general_level") + @ApiModelProperty("通用程度") + private String generalLevel; + private static final long serialVersionUID = 1L; } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java index f60446c2..b7d8aecf 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java @@ -441,6 +441,12 @@ public class MaterialMainVO implements Serializable { @ApiModelProperty(value = "项目类别") private String projectType; + /** + * 通用程度 + */ + @ApiModelProperty("通用程度") + private String generalLevel; + // 变更弹窗字段 start /** * 变更人 diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java index c52dd775..72c0b24b 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java @@ -2335,6 +2335,24 @@ public class MaterialMainService extends ServiceImpl updateGeneralLevel(MaterialMainDTO paramDto) { + // 暂且和更新项目类别权限一致 + if (!checkUpdateProjectTypeByDept(paramDto)) { + return ResultVO.error("无法更新本部门外申请物料的通用程度"); + } + MaterialMainEntity entity = new MaterialMainEntity(); + entity.setRowId(paramDto.getRowId()); + entity.setGeneralLevel(paramDto.getGeneralLevel()); + this.updateById(entity); + return ResultVO.success(); + } + /** * 通过部门判断是否有修改项目类别的权限,以下满足一个即可: * 1、自己申请的物料 From c422139480d96f5511002e0668a7839a9d9858de Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 26 Sep 2024 15:37:47 +0800 Subject: [PATCH 14/18] =?UTF-8?q?BOM=E6=9F=A5=E7=9C=8B=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=A9=BA=E6=8C=87=E9=92=88=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nflg/product/bomnew/api/user/BomReportApi.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index 5db97165..b7685d68 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -35,6 +35,7 @@ import org.ttzero.excel.entity.ListSheet; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import javax.xml.transform.Result; import java.io.IOException; import java.util.List; import java.util.Map; @@ -133,7 +134,10 @@ public class BomReportApi extends BaseApi { } //物料描述从 物料主数据获取 by 10002327 240926 ReportBomVO r = forwardReportService.factoryBomType(query); - if(!r.getChildNodes().isEmpty()){ + if(r == null){ + return ResultVO.error("查无数据~"); + } + if(CollUtil.isNotEmpty(r.getChildNodes())){ Set materialNoSet = r.getChildNodes().stream().map(BaseMaterialVO::getMaterialNo).collect(Collectors.toSet()); List materialMainList = materialMainService.list(Wrappers.lambdaQuery().in(MaterialMainEntity::getMaterialNo,materialNoSet)); Map materialMainMap = materialMainList.stream().collect(Collectors.toMap(MaterialMainEntity::getMaterialNo,MaterialMainEntity::getMaterialDesc,(k1, k2)->k1)); From 0e47cbc96e2eb7d7971675ba379ff5fe83f351ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 26 Sep 2024 16:32:13 +0800 Subject: [PATCH 15/18] =?UTF-8?q?pbom-=E5=BC=82=E5=B8=B8=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/pojo/entity/BomNewPbomChildEntity.java | 4 ++++ .../product/bomnew/pojo/entity/BomNewPbomParentEntity.java | 4 ++++ .../main/resources/mapper/master/BomNewPbomChildMapper.xml | 3 ++- .../main/resources/mapper/master/BomNewPbomParentMapper.xml | 3 ++- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomChildEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomChildEntity.java index 31fc3bd5..cbe4169b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomChildEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomChildEntity.java @@ -256,6 +256,10 @@ public class BomNewPbomChildEntity implements Serializable { @ApiModelProperty(value = "原始项目类别-来自ebom(不会变)") private String originalProjectType; + @TableField(value = "exception_status") + @ApiModelProperty(value = "异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常") + private Integer exceptionStatus; + private static final long serialVersionUID = -76633783850936076L; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomParentEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomParentEntity.java index 943e8717..ce3022c2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomParentEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewPbomParentEntity.java @@ -374,6 +374,10 @@ public class BomNewPbomParentEntity implements Serializable { @ApiModelProperty(value = "来源状态:1-EBOM导入、2-PBOM创建、3-E->P修改") private Integer sourceStatus; + @TableField(value = "exception_status") + @ApiModelProperty(value = "异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常") + private Integer exceptionStatus; + private static final long serialVersionUID = -31999878274445137L; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml index c4dd0571..24eaf22a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml @@ -38,11 +38,12 @@ + - row_id, parent_row_id, identity_no, fac_code, order_number, drawing_no, material_no, material_name, material_desc, material_texture, material_unit, material_category_code, unit_weight, num, total_weight, project_type, production_factory_code,production_factory_code_input_type, set_production_factory_time, super_material_status, virtual_part_is, created_by, created_time, modify_time, source_row_id, remark, source_parent_material_no ,virtual_part_type ,virtual_part_root_material_no ,bom_version_row_id ,original_material_no , original_num, original_project_type + row_id, parent_row_id, identity_no, fac_code, order_number, drawing_no, material_no, material_name, material_desc, material_texture, material_unit, material_category_code, unit_weight, num, total_weight, project_type, production_factory_code,production_factory_code_input_type, set_production_factory_time, super_material_status, virtual_part_is, created_by, created_time, modify_time, source_row_id, remark, source_parent_material_no ,virtual_part_type ,virtual_part_root_material_no ,bom_version_row_id ,original_material_no , original_num, original_project_type ,exception_status diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml index 2ba3a8b3..96c60af3 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml @@ -48,6 +48,7 @@ + @@ -57,7 +58,7 @@ should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is, virtual_package_is, source_row_id, devise_user_code, devise_name,technology_user_code,technology_user_name, created_by, created_time, created_job, release_time, release_user_name,last_convert_mbom_user_name,last_convert_mbom_time, expire_end_time, remark, dept_name, level_num, change_desc, notice_nums, - order_no, modify_time + order_no, modify_time,exception_status From ad7afba8f0bd7f0aea1ae6e2c2373baf88f60866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Thu, 26 Sep 2024 17:19:28 +0800 Subject: [PATCH 16/18] =?UTF-8?q?pbom-=E5=BC=82=E5=B8=B8=E6=A3=80=E6=9F=A5?= =?UTF-8?q?,=E5=8F=98=E6=9B=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomReportApi.java | 2 +- .../nflg/product/bomnew/api/user/PBomApi.java | 7 ++--- .../pojo/dto/PBomCheckExceptionDTO.java | 16 ++++++++++ .../bomnew/pojo/vo/BomNewPbomParentVO.java | 2 +- .../service/BomNewPbomParentService.java | 31 +++++++++++++++++++ .../bomnew/service/ForwardReportService.java | 2 -- 6 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/PBomCheckExceptionDTO.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index 99c8db8b..9b7a0e04 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -127,7 +127,7 @@ public class BomReportApi extends BaseApi { @PostMapping("getUpdateLog") @ApiOperation("bom-变更记录(和上一版本对比)") - public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId , @ApiParam("BOM 类型 0-原始BOM 1-EBom 2-PBom") @RequestParam("bomType") Integer bomType) { + public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId , @ApiParam("BOM 类型 1-EBom 2-PBom") @RequestParam("bomType") Integer bomType) { return ResultVO.success(forwardReportService.getUpdateLog(bomRowId,bomType)); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 568c4ed8..e168378a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -440,12 +440,11 @@ public class PBomApi extends BaseApi { } - @GetMapping("checkException") + @PostMapping("checkException") @ApiOperation("PBOM-数据异常检查") - @LogRecord(success = "PBom-BOM数据异常检查,操作结果:{{#_ret}}", bizNo = "{{#bomRowId.toString()}}", type = "PBom-数据异常检查") - public ResultVO checkException(@RequestParam("bomRowId") Long bomRowId, @ApiParam("pBomType:pbom类型: 0- pBom工作表 1-pBOM正式表")@RequestParam("pBomType") Integer pBomType) { + public ResultVO checkException(@RequestBody PBomCheckExceptionDTO checkExceptionDTO) { - bomNewPbomParentService.checkException(bomRowId,pBomType); + bomNewPbomParentService.checkException(checkExceptionDTO.getBomRowId(),checkExceptionDTO.getPBomType()); return ResultVO.success(true); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/PBomCheckExceptionDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/PBomCheckExceptionDTO.java new file mode 100644 index 00000000..9a90a5a0 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/PBomCheckExceptionDTO.java @@ -0,0 +1,16 @@ +package com.nflg.product.bomnew.pojo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class PBomCheckExceptionDTO { + + @ApiModelProperty("BOM版本ID") + private Long bomRowId; + + + + @ApiModelProperty("pbom类型: 0- pBom工作表 1-pBOM正式表") + private Integer pBomType; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java index aa3dd655..bbee485d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewPbomParentVO.java @@ -340,7 +340,7 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { @ApiModelProperty(value = "异常状态:1=正常、2=冻结/完全弃用异常、3=递归异常、4=数据不完整异常、5=超级物料异常、6=重复异常 7=物料主数据不存在 8=项目类别为空 9=项目赋值异常(父级物料的项目类型为Q时,子级中不能存在项目类别为Q的物料) 10=项目赋值异常(当父级物料的项目类型为F时,子级中不能存在项目类型为F的物料) 11=未填写变更原因和技术通知单 12=数量需要用户确认 13=项目类型需要用户确认") - private Integer exceptionStatus; + private Integer exceptionStatus=1; private static final long serialVersionUID = 1L; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 4fc69ac2..3a10eba2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -2042,7 +2042,38 @@ public class BomNewPbomParentService extends ServiceImpl allBom){ + //父级 + List parents = allBom.stream().filter(u -> u.getBomRowId() != null && u.getBomRowId() > 0 && u.getExceptionStatus()>1).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(parents)) { + List pentList = new ArrayList<>(); + parents.forEach(k -> { + BomNewPbomParentEntity pEnt = new BomNewPbomParentEntity(); + pEnt.setRowId(k.getBomRowId()); + pEnt.setExceptionStatus(k.getExceptionStatus()); + pentList.add(pEnt); + }); + if (CollUtil.isNotEmpty(pentList)) { + this.updateBatchById(pentList); + } + } + //子级 + List child = allBom.stream().filter(u -> u.getRowId() != null && u.getRowId() > 0 && u.getExceptionStatus()>1).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(parents)) { + List childList = new ArrayList<>(); + child.forEach(k -> { + BomNewPbomChildEntity pEnt = new BomNewPbomChildEntity(); + pEnt.setRowId(k.getRowId()); + pEnt.setExceptionStatus(k.getExceptionStatus()); + childList.add(pEnt); + }); + if (CollUtil.isNotEmpty(childList)) { + pbomChildService.updateBatchById(childList); + } + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index bb784ed2..232a685f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -495,7 +495,6 @@ public class ForwardReportService { newEnt.setOpType(BomConstant.DEL); } - //新增 Set add= Sets.difference(newSet,oldSet); for (String item: add) { @@ -503,7 +502,6 @@ public class ForwardReportService { updateLogVO.setOpType(BomConstant.ADD); result.add(updateLogVO); } - //都有比较编辑字段 Set intersection = Sets.intersection(oldSet,newSet); for (String item: intersection) { From 894978dc687a8c3384eb6deff1bab3c2ca2263d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Fri, 27 Sep 2024 08:33:45 +0800 Subject: [PATCH 17/18] =?UTF-8?q?pbom-=E5=BC=82=E5=B8=B8=E6=A3=80=E6=9F=A5?= =?UTF-8?q?,=E5=8F=98=E6=9B=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nflg/product/bomnew/api/user/BomReportApi.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index 65635e42..29dfe507 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -144,12 +144,6 @@ public class BomReportApi extends BaseApi { return ResultVO.success(r); } - @PostMapping("getUpdateLog") - @ApiOperation("bom-变更记录(和上一版本对比)") - public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId) { - return ResultVO.success(forwardReportService.getUpdateLog(bomRowId)); - } - @PostMapping("getUpdateLog") @ApiOperation("bom-变更记录(和上一版本对比)") public ResultVO> getUpdateLog(@ApiParam("bom版本RowId") @RequestParam("bomRowId") Long bomRowId , @ApiParam("BOM 类型 1-EBom 2-PBom") @RequestParam("bomType") Integer bomType) { From bd74999ef6e3bcc9714f52ecf619223fd40398c7 Mon Sep 17 00:00:00 2001 From: 10001392 <1055202292@qq.com> Date: Fri, 27 Sep 2024 13:38:01 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E5=A4=84=E7=90=86EBOM?= =?UTF-8?q?=E5=AF=BC=E5=85=A5SAP=E6=8A=A5=E9=94=99=E6=83=85=E5=86=B5?= =?UTF-8?q?=EF=BC=9ASAP=E4=BF=A1=E6=81=AF=E5=90=AB=E6=9C=89=E2=80=9C?= =?UTF-8?q?=E5=9C=A8=E5=B7=A5=E5=8E=821010=E4=B8=AD=E6=9C=AA=E8=A2=AB?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E2=80=9D=EF=BC=8C=E4=B8=8D=E7=AE=97=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/service/BomNewEbomExportToSAP.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java index cd7c39c9..f159c2f5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomExportToSAP.java @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; @@ -79,6 +80,7 @@ public class BomNewEbomExportToSAP { sapDto.setI_EMPNO(root.getCreatedBy()); sapDto.setT1(Convert.toList(T1DTO.class, this.children.stream().filter(c -> !c.isIgnore()).collect(Collectors.toList()))); liErrMsg = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null); + this.tempHandleSapErrMsg(liErrMsg); if (CollUtil.isEmpty(liErrMsg)) { state = SapStatusEnum.PUB_SUCCESS; } else if (sapDto.getT1().size() != liErrMsg.size()) { @@ -102,6 +104,18 @@ public class BomNewEbomExportToSAP { return liErrMsg; } + // 乔生要求,临时处理EBOM导入SAP报错情况:SAP信息含有“在工厂1010中未被维护”,不算报错 + // 后面可能取消掉 + private void tempHandleSapErrMsg(List liErrMsg) { + if (CollUtil.isEmpty(liErrMsg)) { + return; + } + List filterList = liErrMsg.stream().filter(item -> ObjectUtil.isNotEmpty(item.msg) && item.msg.contains("在工厂1010中未被维护")).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(filterList)) { + liErrMsg.removeAll(filterList); + } + } + /** * 构建child数据发包编号 * @param p 上级节点的parent