From d3651cf4ddf88e4fb626e8588f56198dfb5e96a9 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Tue, 13 Aug 2024 17:57:24 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0BI?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=E5=8F=8ASAP=E5=BC=82=E5=B8=B8=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/user/material/MaterialHomeApi.java | 19 +++- .../material/config/MaterialHomeBiConfig.java | 29 +++++ .../material/pojo/vo/MaterialHomeBiVO.java | 31 +++++ .../product/bomnew/api/user/BomHomeApi.java | 106 ++++++++++++++++++ .../bomnew/constant/SapErrorMsgTypeEnum.java | 21 ++++ .../bomnew/pojo/vo/BomNewSapErrorMsgVO.java | 37 ++++++ 6 files changed, 238 insertions(+), 5 deletions(-) create mode 100644 nflg_project_dev/material/src/main/java/com/nflg/product/material/config/MaterialHomeBiConfig.java create mode 100644 nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/SapErrorMsgTypeEnum.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewSapErrorMsgVO.java diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java index cf0a5621..1e06b389 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java @@ -1,15 +1,17 @@ package com.nflg.product.material.api.user.material; import cn.hutool.core.date.DateUtil; -import cn.hutool.db.Session; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.conmon.util.SessionUtil; +import com.nflg.product.material.config.MaterialHomeBiConfig; +import com.nflg.product.material.config.NacosConfig; import com.nflg.product.material.constant.MaterialProcessStateEnum; import com.nflg.product.material.constant.MaterialUpdateBillStateEnum; import com.nflg.product.material.pojo.entity.*; +import com.nflg.product.material.pojo.vo.MaterialHomeBiVO; import com.nflg.product.material.pojo.vo.MaterialHomeMainVO; import com.nflg.product.material.pojo.vo.StandardPartPickRuleHomeVO; import com.nflg.product.material.service.*; @@ -23,10 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -68,6 +67,9 @@ public class MaterialHomeApi extends BaseApi { @Value("${material.home.day:30}") private Integer homeDay; + @Resource + private MaterialHomeBiConfig materialHomeBiConfig; + @GetMapping("materialManagement") @ApiOperation("物料管理") public ResultVO>> materialManagement(){ @@ -155,4 +157,11 @@ public class MaterialHomeApi extends BaseApi { return ResultVO.success(mp); } + @GetMapping("getBiUrlList") + @ApiOperation("获取BI地址") + public ResultVO> getBiUrlList(){ + return ResultVO.success(Optional.ofNullable(materialHomeBiConfig) + .map(MaterialHomeBiConfig::getList).orElse(Lists.newArrayList())); + } + } \ No newline at end of file diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/config/MaterialHomeBiConfig.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/config/MaterialHomeBiConfig.java new file mode 100644 index 00000000..371f694a --- /dev/null +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/config/MaterialHomeBiConfig.java @@ -0,0 +1,29 @@ +package com.nflg.product.material.config; + +import com.nflg.product.material.pojo.vo.MaterialHomeBiVO; +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * packageName com.nflg.product.material.config + * + * @author luohj + * @className MaterialHomeBiConfig + * @date 2024/8/13 0013 + * @description TODO + */ + +@Component +@Data +@RefreshScope +@ConfigurationProperties(prefix = "material.home.bi") +public class MaterialHomeBiConfig { + + private List list; +} \ No newline at end of file diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java new file mode 100644 index 00000000..f29cdd03 --- /dev/null +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java @@ -0,0 +1,31 @@ +package com.nflg.product.material.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * packageName com.nflg.product.material.pojo.vo + * + * @author luohj + * @className MaterialHomeBiUrlVO + * @date 2024/8/13 0013 + * @description TODO + */ +@Data +@Accessors(chain = true) +@ApiModel(value="首页bi链接配置") +public class MaterialHomeBiVO { + + @ApiModelProperty(value = "1iframe,2跳转") + private String type; + + @ApiModelProperty(value = "链接名称") + private String name; + + @ApiModelProperty(value = "链接地址") + private String url; + + +} \ No newline at end of file diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java new file mode 100644 index 00000000..eda0281f --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java @@ -0,0 +1,106 @@ +package com.nflg.product.bomnew.api.user; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Maps; +import com.nflg.product.base.core.api.BaseApi; +import com.nflg.product.base.core.conmon.util.SessionUtil; +import com.nflg.product.bomnew.constant.SapErrorMsgTypeEnum; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewLogEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; +import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity; +import com.nflg.product.bomnew.pojo.query.BomNewLogQuery; +import com.nflg.product.bomnew.pojo.vo.BomNewSapErrorMsgVO; +import com.nflg.product.bomnew.service.BomNewEbomParentService; +import com.nflg.product.bomnew.service.BomNewPbomParentService; +import com.nflg.product.bomnew.service.BomNewSapErrorMsgService; +import com.nflg.product.bomnew.util.EnumUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import nflg.product.common.vo.ResultVO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * packageName com.nflg.product.bomnew.api.user + * + * @author luohj + * @className BomHomeApi + * @date 2024/8/12 0012 + * @description 首页接口 + */ +@Api(tags = "首页") +@RestController +@RequestMapping("bomHome") +@RefreshScope +public class BomHomeApi extends BaseApi { + + @Value("${material.home.day:30}") + private Integer homeDay; + + @Resource + private BomNewSapErrorMsgService sapErrorMsgService; + + @Resource + private BomNewEbomParentService ebomParentService; + + @Resource + private BomNewPbomParentService pbomParentService; + + @GetMapping("sapMsgList") + @ApiOperation("sap异常消息") + public ResultVO> sapMsgList() { + //仅取90天内的数据 + Date date90 = DateUtil.offsetDay(new Date(),-homeDay); + int limitNums = 5; + List msgList = sapErrorMsgService.list(Wrappers.lambdaQuery() + .ge(BomNewSapErrorMsgEntity::getCreatedTime,date90) + .eq(BomNewSapErrorMsgEntity::getCreatedName,SessionUtil.getRealName()) + .orderByDesc(BomNewSapErrorMsgEntity::getCreatedTime) + .last(String.format("limit %d",limitNums))); + List reList = Convert.toList(BomNewSapErrorMsgVO.class,msgList); + List eBomIdList = reList.stream().filter(re -> Objects.equals(re.getType(),SapErrorMsgTypeEnum.EBOM.getValue())).distinct() + .map(BomNewSapErrorMsgVO::getTargetRowId).collect(Collectors.toList()); + Map eBomMap = Maps.newHashMap(); + if(!eBomIdList.isEmpty()){ + List eBomList = ebomParentService.listByIds(eBomIdList); + eBomMap = eBomList.stream().collect(Collectors.toMap(BomNewEbomParentEntity::getRowId, Function.identity())); + } + List pBomIdList = reList.stream().filter(re -> Objects.equals(re.getType(),SapErrorMsgTypeEnum.PBOM.getValue())).distinct() + .map(BomNewSapErrorMsgVO::getTargetRowId).collect(Collectors.toList()); + Map pBomMap = Maps.newHashMap(); + if(!pBomIdList.isEmpty()){ + List pBomList = pbomParentService.listByIds(pBomIdList); + pBomMap = pBomList.stream().collect(Collectors.toMap(BomNewPbomParentEntity::getRowId,Function.identity())); + } + + Map finalEBomMap = eBomMap; + Map finalPBomMap = pBomMap; + reList.forEach(re -> { + re.setTypeName(EnumUtils.getEnumDescription(SapErrorMsgTypeEnum.class,re.getType())); + if(Objects.equals(SapErrorMsgTypeEnum.EBOM.getValue(),re.getType())){ + re.setMaterialNo(Optional.ofNullable(finalEBomMap + .get(re.getTargetRowId())).map(BomNewEbomParentEntity::getMaterialNo).orElse("")); + re.setMaterialDesc(Optional.ofNullable(finalEBomMap + .get(re.getTargetRowId())).map(BomNewEbomParentEntity::getMaterialDesc).orElse("")); + } + if(Objects.equals(SapErrorMsgTypeEnum.PBOM.getValue(),re.getType())){ + re.setMaterialNo(Optional.ofNullable(finalPBomMap + .get(re.getTargetRowId())).map(BomNewPbomParentEntity::getMaterialNo).orElse("")); + re.setMaterialDesc(Optional.ofNullable(finalPBomMap + .get(re.getTargetRowId())).map(BomNewPbomParentEntity::getMaterialDesc).orElse("")); + } + }); + return ResultVO.success(reList); + } + +} \ No newline at end of file diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/SapErrorMsgTypeEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/SapErrorMsgTypeEnum.java new file mode 100644 index 00000000..d564d2ea --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/SapErrorMsgTypeEnum.java @@ -0,0 +1,21 @@ +package com.nflg.product.bomnew.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 曹鹏飞 + * @date 2024/6/27 09:25:44 + */ +@AllArgsConstructor +@Getter +public enum SapErrorMsgTypeEnum implements ValueEnum { + + EBOM(0, "EBOM"), + PBOM(1, "PBOM"), + MBOM(2, "MBOM"), + DQBOM(3, "电气BOM"); + + private final Integer value; + private final String description; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewSapErrorMsgVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewSapErrorMsgVO.java new file mode 100644 index 00000000..c3dcb293 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewSapErrorMsgVO.java @@ -0,0 +1,37 @@ +package com.nflg.product.bomnew.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * packageName com.nflg.product.bomnew.pojo.vo + * + * @author luohj + * @className BomNewSapErrorMsgVO + * @date 2024/8/12 0012 + * @description 首页 》 消息提醒 sap异常消息 + */ +@Data +@Accessors(chain = true) +public class BomNewSapErrorMsgVO implements Serializable { + + @ApiModelProperty(value = "主键行ID-雪花") + private Long targetRowId; + + @ApiModelProperty(value = "物料编码") + private String materialNo; + + @ApiModelProperty(value = "物料描述") + private String materialDesc; + + @ApiModelProperty(value = "类别,0-ebom;1-pbom;2-mbom;3-电气bom") + private Integer type; + + @ApiModelProperty(value = "类别名称") + private String typeName; + + +} \ No newline at end of file From ea8f277d1ce1d5a5a05d1a756c10dc5dd3cab732 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Wed, 14 Aug 2024 14:15:59 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=A6=96=E9=A1=B5bi=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=92=E5=BA=8F=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/material/api/user/material/MaterialHomeApi.java | 3 ++- .../com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java | 3 +++ .../java/com/nflg/product/bomnew/api/user/BomHomeApi.java | 4 +++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java index 1e06b389..1eff1f39 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialHomeApi.java @@ -161,7 +161,8 @@ public class MaterialHomeApi extends BaseApi { @ApiOperation("获取BI地址") public ResultVO> getBiUrlList(){ return ResultVO.success(Optional.ofNullable(materialHomeBiConfig) - .map(MaterialHomeBiConfig::getList).orElse(Lists.newArrayList())); + .map(MaterialHomeBiConfig::getList) + .map(ls -> ls.stream().sorted(Comparator.comparing(MaterialHomeBiVO::getSort)).collect(Collectors.toList())).orElse(Lists.newArrayList())); } } \ No newline at end of file diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java index f29cdd03..47ef5c52 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialHomeBiVO.java @@ -27,5 +27,8 @@ public class MaterialHomeBiVO { @ApiModelProperty(value = "链接地址") private String url; + @ApiModelProperty(value = "排序字段") + private Integer sort; + } \ No newline at end of file diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java index eda0281f..a227ee59 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomHomeApi.java @@ -2,6 +2,7 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Maps; @@ -65,6 +66,7 @@ public class BomHomeApi extends BaseApi { List msgList = sapErrorMsgService.list(Wrappers.lambdaQuery() .ge(BomNewSapErrorMsgEntity::getCreatedTime,date90) .eq(BomNewSapErrorMsgEntity::getCreatedName,SessionUtil.getRealName()) + .orderByAsc(BomNewSapErrorMsgEntity::getType) .orderByDesc(BomNewSapErrorMsgEntity::getCreatedTime) .last(String.format("limit %d",limitNums))); List reList = Convert.toList(BomNewSapErrorMsgVO.class,msgList); @@ -100,7 +102,7 @@ public class BomHomeApi extends BaseApi { .get(re.getTargetRowId())).map(BomNewPbomParentEntity::getMaterialDesc).orElse("")); } }); - return ResultVO.success(reList); + return ResultVO.success(reList.stream().filter(re-> StrUtil.isNotBlank(re.getMaterialNo())).collect(Collectors.toList())); } } \ No newline at end of file From c4dc0f7a13041e1bf2f495a53d5014db19a13335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 19 Aug 2024 09:07:14 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix(pbom):=20=E7=A7=BB=E9=99=A4=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AF=BC=E5=85=A5SAP=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=AE=B0=E5=BD=95=E4=B8=AD=E7=9A=84=E6=A0=B9?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E7=8E=B0=E5=9C=A8=E5=8F=AF=E4=BB=A5=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E4=BB=BB=E6=84=8F=E8=8A=82=E7=82=B9=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/master/BomNewPbomParentMapper.xml | 1 - 1 file changed, 1 deletion(-) 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 2a33a071..01377be5 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 @@ -284,7 +284,6 @@ SELECT *, row_id AS bomRowId FROM t_bom_new_pbom_parent WHERE status >= 4 - AND (root_is = 1 OR user_root_is = 1 OR root_state = 1) AND sap_state > 3 AND created_by = #{userCode} ORDER BY release_time DESC From aa335e3fe102422b4df2500a667fa29259bb551a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 19 Aug 2024 12:42:46 +0800 Subject: [PATCH 4/4] =?UTF-8?q?optimize:=20=E5=AF=BC=E5=85=A5=E5=88=B0SAP?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=B8=8B?= =?UTF-8?q?=E7=BA=A7=E8=8A=82=E7=82=B9=E5=AD=98=E5=9C=A8=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E7=8A=B6=E6=80=81=EF=BC=8C=E5=88=99?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=AF=BC=E5=85=A5=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/service/BomNewEbomExportToSAP.java | 13 +++++++++++-- .../service/BomNewPbomExportToSAPImpl.java | 17 +++++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) 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 9223ed8e..fa6ae997 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 @@ -38,6 +38,7 @@ public class BomNewEbomExportToSAP { private final String dateYMD = DateUtil.format(new Date(), "yyyyMMdd"); private final List children = new ArrayList<>(); + private final Set liPIds = new HashSet<>(); private final static Logger LOGGER = LoggerFactory.getLogger(BomNewEbomExportToSAP.class); @@ -133,6 +134,14 @@ public class BomNewEbomExportToSAP { sapErrorMsgEntity.setCreatedTime(LocalDateTime.now()); bomNewSapErrorMsgService.saveOrUpdate(sapErrorMsgEntity); } + + if (CollUtil.isEmpty(liErrMsg) && CollUtil.isNotEmpty(liPIds)) { + bomNewEbomParentService.lambdaUpdate() + .in(BomNewEbomParentEntity::getRowId, liPIds) + .set(BomNewEbomParentEntity::getSapTime, LocalDateTime.now()) + .set(BomNewEbomParentEntity::getSapState, SapStatusEnum.PUB_SUCCESS.getValue()) + .update(); + } } private void addToT1(T1ExtDTO dto) { @@ -173,8 +182,8 @@ public class BomNewEbomExportToSAP { .orderByDesc(BomNewEbomParentEntity::getCurrentVersion) .last(" limit 1") .one(); - if (Objects.nonNull(p)) { - LOGGER.debug("BomNewEbomParentEntity:" + JSON.toJSONString(p)); + if (Objects.nonNull(p) && p.getSapState() >= SapStatusEnum.PUB_ERROR.getValue()) { + liPIds.add(p.getRowId()); } return p; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java index 06826265..9b72bd04 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomExportToSAPImpl.java @@ -46,6 +46,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { private final String dateYMD = DateUtil.format(new Date(), "yyyyMMdd"); private final Map> cmap = new HashMap<>(); private final List children = new ArrayList<>(); + private final Set liPIds = new HashSet<>(); private final static Logger LOGGER = LoggerFactory.getLogger(BomNewPbomExportToSAPImpl.class); @@ -166,11 +167,19 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { sapErrorMsgEntity.setCreatedTime(LocalDateTime.now()); bomNewSapErrorMsgService.saveOrUpdate(sapErrorMsgEntity); } + + if (CollUtil.isEmpty(liErrMsg) && CollUtil.isNotEmpty(liPIds)) { + bomNewPbomParentService.lambdaUpdate() + .in(BomNewPbomParentEntity::getRowId, liPIds) + .set(BomNewPbomParentEntity::getSapTime, LocalDateTime.now()) + .set(BomNewPbomParentEntity::getSapState, SapStatusEnum.PUB_SUCCESS.getValue()) + .update(); + } } private void updateSapState(Long rootBomRowId, SapStatusEnum sapState) { bomNewPbomParentService.lambdaUpdate() - .in(BomNewPbomParentEntity::getRowId, rootBomRowId) + .eq(BomNewPbomParentEntity::getRowId, rootBomRowId) .set(BomNewPbomParentEntity::getSapTime, LocalDateTime.now()) .set(BomNewPbomParentEntity::getSapState, sapState.getValue()) .update(); @@ -278,7 +287,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { } private BomNewPbomParentEntity getParent(BomNewPbomChildEntity child) { - return bomNewPbomParentService.lambdaQuery() + BomNewPbomParentEntity parent = bomNewPbomParentService.lambdaQuery() .eq(BomNewPbomParentEntity::getMaterialNo, child.getMaterialNo()) .ge(BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) .eq(BomNewPbomParentEntity::getFacCode, child.getFacCode()) @@ -286,6 +295,10 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP { .orderByDesc(BomNewPbomParentEntity::getCurrentVersion) .last(" limit 1") .one(); + if (Objects.nonNull(parent) && parent.getSapState() >= SapStatusEnum.PUB_ERROR.getValue()) { + liPIds.add(parent.getRowId()); + } + return parent; } /**