From 5fdbceff472617497f27034350ca4379065666e3 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Fri, 30 Aug 2024 18:02:35 +0800 Subject: [PATCH 1/5] =?UTF-8?q?PBOM=E5=BA=93=E5=AD=98=E5=9C=B0=E7=82=B9?= =?UTF-8?q?=E3=80=81ebom=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/EbomApi.java | 13 +++++ .../nflg/product/bomnew/api/user/PBomApi.java | 54 ++++++++++++++++++- .../bomnew/pojo/vo/BomNewPbomParentVO.java | 3 +- ...enerateVirtualPackageServiceFor31Impl.java | 15 ++++++ .../service/BomNewPbomParentService.java | 22 ++++++++ .../product/bomnew/service/SapService.java | 32 +++++++++++ 6 files changed, 137 insertions(+), 2 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index 0866466d..f08f2dbc 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -1,7 +1,9 @@ package com.nflg.product.bomnew.api.user; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.EnumUtil; @@ -10,6 +12,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.mzt.logapi.starter.annotation.LogRecord; import com.nflg.product.base.core.api.BaseApi; @@ -411,6 +414,16 @@ public class EbomApi extends BaseApi { checkDeleteRule(dto); bomNewEbomParentService.deleteBomChild(dto.getDelDatas(), dto.getParent()); + //修改排序号的值,按照物料编码升序 by 10002327 0830 + if(CollectionUtil.isNotEmpty(dto.getDatas())){ + List copyList = ListUtil.toCopyOnWriteArrayList(dto.getDatas()); + List sortedList = copyList.stream().sorted(Comparator.comparing(BaseMaterialVO::getMaterialNo)).collect(Collectors.toList()); + Map materialMap = sortedList.stream().collect(Collectors.toMap(BaseMaterialVO::getMaterialNo,bom -> { + int idx = sortedList.indexOf(bom); + return StrUtil.padPre(String.valueOf(idx + 1),3,'0'); + },(k1,k2)->k1)); + dto.getDatas().forEach(bom -> bom.setOrderNumber(materialMap.getOrDefault(bom.getMaterialNo(),bom.getOrderNumber()))); + } BomNewEbomParentVO temporary = bomNewEbomParentService.temporary(dto); return ResultVO.success(temporary); 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 1c55aa50..3c79e1f0 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 @@ -1,6 +1,7 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -25,6 +26,7 @@ import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import nflg.product.common.vo.ResultVO; +import org.apache.commons.compress.utils.Lists; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -38,6 +40,8 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.ExecutionException; +import java.util.function.Consumer; +import java.util.stream.Collectors; /** * t_bom_new_pbom_parent 表控制层 @@ -67,13 +71,61 @@ public class PBomApi extends BaseApi { @Resource private MaterialMainService materialMainService; + @Resource + SapService sapService; @PostMapping("workDetailsListByPage") @ApiOperation("PBom工作列表") public ResultVO> workDetailsListByPage(@RequestBody BomNewPbomParentQuery query) { - return ResultVO.success(bomNewPbomParentService.workDetailsListByPage(query)); + IPage r = bomNewPbomParentService.workDetailsListByPage(query); + //添加仓库地点 by 10002327 0830 + if(!r.getRecords().isEmpty()){ + List materialNoList = Lists.newArrayList(); + List facList = Lists.newArrayList(); + +// r.getRecords().forEach(bom -> { +// materialNoList.add(bom.getMaterialNo()); +// facList.add(bom.getFacCode()); +// if(CollectionUtil.isNotEmpty(bom.getChildNodes())){ +// materialNoList.addAll(bom.getChildNodes().stream().map(BaseMaterialVO::getMaterialNo).collect(Collectors.toList())); +// facList.addAll(bom.getChildNodes().stream().map(BomNewPbomParentVO::getFacCode).collect(Collectors.toList())); +// } +// }); + this.get(r.getRecords(),materialNoList,facList); + List> lgproList = sapService.lgproByList(materialNoList,facList); + Map lgproMap = lgproList.stream().collect(Collectors.toMap(m-> { + return String.valueOf(m.get("MATNR")) + String.valueOf(m.get("WERKS")); + },m->String.valueOf(m.get("LGPRO")),(k1,k2)->k1)); + this.set(r.getRecords(),lgproMap); +// r.getRecords().forEach(re -> { +// re.setLgpro(lgproMap.get(StrUtil.padPre(re.getMaterialNo(),18,"0") +re.getFacCode())); +// if(CollectionUtil.isNotEmpty(re.getChildNodes())){ +// re.getChildNodes().forEach(cn -> cn.setLgpro(lgproMap.get(StrUtil.padPre(cn.getMaterialNo(),18,"0") +cn.getFacCode()))); +// } +// }); + + } + return ResultVO.success(r); } + private void get(List list,List materialNoList,List facList){ + list.forEach(l -> { + if(CollectionUtil.isNotEmpty(l.getChildNodes())){ + get(l.getChildNodes(),materialNoList,facList); + } + materialNoList.add(l.getMaterialNo()); + facList.add(l.getFacCode()); + }); + } + + private void set(List list,Map lgproMap){ + list.forEach(l -> { + if(CollectionUtil.isNotEmpty(l.getChildNodes())){ + set(l.getChildNodes(),lgproMap); + } + l.setLgpro(lgproMap.get(StrUtil.padPre(l.getMaterialNo(),18,"0") + l.getFacCode())); + }); + } @PostMapping("releaseListByPage") 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 d9497e22..8362e825 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 @@ -314,7 +314,8 @@ public class BomNewPbomParentVO extends BaseMaterialVO implements Serializable { @ApiModelProperty("原始项目类别") private String originalProjectType; - + @ApiModelProperty("生产仓储地点") + private String lgpro; private String materialNoAndProjectType; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java index 23d0f936..393c1031 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java @@ -6,6 +6,8 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.client.MaterialMainClient; @@ -190,6 +192,19 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew private void save() { TransactionDefinition def = new DefaultTransactionDefinition(); TransactionStatus status = transactionManager.getTransaction(def); + if(CollUtil.isNotEmpty(childrenForAdd)){ + //按 "(发货)","(制作)","(直发)","(发货前装配)" 放在同一个组内排序 by 10002327 0830 + Map> chMap = childrenForAdd.stream().collect(Collectors.groupingBy(c -> { + return c.getDrawingNo().replaceAll("\\(发货\\)|\\(制作\\)|\\(直发\\)|\\(发货前装配\\)",""); + })); + //对map的值,进行排序 + List>> mpList = new ArrayList<>(chMap.entrySet()); + mpList.sort(Map.Entry.comparingByValue((c1,c2) -> Optional.ofNullable(c1).map(l->l.get(0)).map(BomNewEbomChildEntity::getOrderNumber).orElse("") + .compareTo(Optional.of(c2).map(l->l.get(0)).map(BomNewEbomChildEntity::getOrderNumber).orElse("")))); + childrenForAdd.removeAll(childrenForAdd); + mpList.forEach(m -> childrenForAdd.addAll(m.getValue())); + } + try { getMaterialNoForAdd(); if (CollUtil.isNotEmpty(childRowIdsForDel)) { 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 ae9bab04..f0092424 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 @@ -119,6 +119,8 @@ public class BomNewPbomParentService extends ServiceImpl(query.getPage(), query.getPageSize()), query); } + //添加仓库地点 by 10002327 0830 + if(!result.getRecords().isEmpty()){ + List> lgproList = sapService.lgproByList(result.getRecords().stream().map(BaseMaterialVO::getMaterialNo).distinct().collect(Collectors.toList()), + result.getRecords().stream().map(BomNewPbomParentVO::getFacCode).distinct().collect(Collectors.toList())); + Map lgproMap = lgproList.stream().collect(Collectors.toMap(m-> { + return String.valueOf(m.get("MATNR")) + String.valueOf(m.get("WERKS")); + },m->String.valueOf(m.get("LGPRO")),(k1,k2)->k1)); + result.getRecords().forEach(r -> r.setLgpro(lgproMap.get(StrUtil.padPre(r.getMaterialNo(),18,"0") +r.getFacCode()))); + } materialMainService.intiMaterialInfo(result.getRecords(), EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT); return result; } @@ -400,6 +411,17 @@ public class BomNewPbomParentService extends ServiceImpl> lgproList = sapService.lgproByList(parentChild.stream().map(BaseMaterialVO::getMaterialNo).distinct().collect(Collectors.toList()), + parentChild.stream().map(BomNewPbomParentVO::getFacCode).distinct().collect(Collectors.toList())); + Map lgproMap = lgproList.stream().collect(Collectors.toMap(m-> { + return String.valueOf(m.get("MATNR")) + String.valueOf(m.get("WERKS")); + },m->String.valueOf(m.get("LGPRO")),(k1,k2)->k1)); + parentChild.forEach(r -> r.setLgpro(lgproMap.get(StrUtil.padPre(r.getMaterialNo(),18,"0") +r.getFacCode()))); + } + //主数据初始化 materialMainService.intiMaterialInfo(parentChild, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT3); return parentChild; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java index da21bb70..1ffb0461 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/SapService.java @@ -1,5 +1,7 @@ package com.nflg.product.bomnew.service; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import com.nflg.product.bomnew.pojo.dto.sap.SapReqParams; import com.nflg.product.bomnew.pojo.dto.sap.SapResult; import com.sap.conn.jco.*; @@ -14,6 +16,7 @@ import org.springframework.stereotype.Service; import java.io.File; import java.io.FileOutputStream; import java.util.*; +import java.util.stream.Collectors; /** * sap服務 @@ -300,4 +303,33 @@ public class SapService implements ApplicationContextAware { public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { initProperties(); } + + /** + * 获取物料库存地点 + * @param materialNoList 物料编码集合 + * @param facList 工厂集合 + * @return + */ + public List> lgproByList(List materialNoList,List facList){ + SapReqParams params = new SapReqParams(); + // 接口名 + params.setFunName("ZMDM_MM_MAT_LOCTION_SYNC"); + Map>> inputTables = Maps.newHashMap(); + List> materList = materialNoList.stream().map(m -> { + Map mp = Maps.newHashMap(); + mp.put("MATNR",m); + return mp; + }).collect(Collectors.toList()); + List> werksList = facList.stream().map(m -> { + Map mp = Maps.newHashMap(); + mp.put("WERKS",m); + return mp; + }).collect(Collectors.toList()); + inputTables.put("IT_MATNR",materList); + inputTables.put("IT_WERKS",werksList); + params.setInputTables(inputTables); + SapResult sapResult = doSapFun(params); + Map>> outTablesMap = sapResult.getOutTablesMap(); + return outTablesMap.get("OUTPUT"); + } } From ef5e9e23ae9b10485ee1f113c39f571d416987c6 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Fri, 30 Aug 2024 18:05:41 +0800 Subject: [PATCH 2/5] =?UTF-8?q?PBOM=E5=BA=93=E5=AD=98=E5=9C=B0=E7=82=B9?= =?UTF-8?q?=E3=80=81ebom=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/PBomApi.java | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) 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 3c79e1f0..cf3e1824 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 @@ -83,26 +83,12 @@ public class PBomApi extends BaseApi { List materialNoList = Lists.newArrayList(); List facList = Lists.newArrayList(); -// r.getRecords().forEach(bom -> { -// materialNoList.add(bom.getMaterialNo()); -// facList.add(bom.getFacCode()); -// if(CollectionUtil.isNotEmpty(bom.getChildNodes())){ -// materialNoList.addAll(bom.getChildNodes().stream().map(BaseMaterialVO::getMaterialNo).collect(Collectors.toList())); -// facList.addAll(bom.getChildNodes().stream().map(BomNewPbomParentVO::getFacCode).collect(Collectors.toList())); -// } -// }); this.get(r.getRecords(),materialNoList,facList); List> lgproList = sapService.lgproByList(materialNoList,facList); - Map lgproMap = lgproList.stream().collect(Collectors.toMap(m-> { - return String.valueOf(m.get("MATNR")) + String.valueOf(m.get("WERKS")); - },m->String.valueOf(m.get("LGPRO")),(k1,k2)->k1)); + Map lgproMap = lgproList.stream().collect(Collectors.toMap(m-> + String.valueOf(m.get("MATNR")) + String.valueOf(m.get("WERKS")) + ,m->String.valueOf(m.get("LGPRO")),(k1,k2)->k1)); this.set(r.getRecords(),lgproMap); -// r.getRecords().forEach(re -> { -// re.setLgpro(lgproMap.get(StrUtil.padPre(re.getMaterialNo(),18,"0") +re.getFacCode())); -// if(CollectionUtil.isNotEmpty(re.getChildNodes())){ -// re.getChildNodes().forEach(cn -> cn.setLgpro(lgproMap.get(StrUtil.padPre(cn.getMaterialNo(),18,"0") +cn.getFacCode()))); -// } -// }); } return ResultVO.success(r); @@ -127,7 +113,6 @@ public class PBomApi extends BaseApi { }); } - @PostMapping("releaseListByPage") @ApiOperation("PBom已发布工作列表") public ResultVO> releaseListByPage(@RequestBody BomNewPbomParentQuery query) { From 2ab79e68bc54fc80d5d96faff724772ee892ce72 Mon Sep 17 00:00:00 2001 From: 10002327 Date: Mon, 2 Sep 2024 10:46:06 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=8F=B7=E7=9A=84=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nflg/product/bomnew/api/user/EbomApi.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index f08f2dbc..68af4923 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -414,18 +414,7 @@ public class EbomApi extends BaseApi { checkDeleteRule(dto); bomNewEbomParentService.deleteBomChild(dto.getDelDatas(), dto.getParent()); - //修改排序号的值,按照物料编码升序 by 10002327 0830 - if(CollectionUtil.isNotEmpty(dto.getDatas())){ - List copyList = ListUtil.toCopyOnWriteArrayList(dto.getDatas()); - List sortedList = copyList.stream().sorted(Comparator.comparing(BaseMaterialVO::getMaterialNo)).collect(Collectors.toList()); - Map materialMap = sortedList.stream().collect(Collectors.toMap(BaseMaterialVO::getMaterialNo,bom -> { - int idx = sortedList.indexOf(bom); - return StrUtil.padPre(String.valueOf(idx + 1),3,'0'); - },(k1,k2)->k1)); - dto.getDatas().forEach(bom -> bom.setOrderNumber(materialMap.getOrDefault(bom.getMaterialNo(),bom.getOrderNumber()))); - } BomNewEbomParentVO temporary = bomNewEbomParentService.temporary(dto); - return ResultVO.success(temporary); } From 6f14256fb5a4f826670e945490b07685c468b8af Mon Sep 17 00:00:00 2001 From: 10002327 Date: Tue, 3 Sep 2024 09:17:01 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E5=8C=85=E6=8C=89?= =?UTF-8?q?=E5=8F=91=E8=B4=A7-=E7=9B=B4=E5=8F=91-=E5=88=B6=E4=BD=9C?= =?UTF-8?q?=E7=9A=84=E9=A1=BA=E5=BA=8F=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...enerateVirtualPackageServiceFor31Impl.java | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java index 393c1031..0a68788d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomGenerateVirtualPackageServiceFor31Impl.java @@ -39,6 +39,7 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -193,7 +194,7 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew TransactionDefinition def = new DefaultTransactionDefinition(); TransactionStatus status = transactionManager.getTransaction(def); if(CollUtil.isNotEmpty(childrenForAdd)){ - //按 "(发货)","(制作)","(直发)","(发货前装配)" 放在同一个组内排序 by 10002327 0830 + //按 "(发货)","(直发)","(制作)","(发货前装配)" 放在同一个组内排序 by 10002327 0830 Map> chMap = childrenForAdd.stream().collect(Collectors.groupingBy(c -> { return c.getDrawingNo().replaceAll("\\(发货\\)|\\(制作\\)|\\(直发\\)|\\(发货前装配\\)",""); })); @@ -201,8 +202,26 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew List>> mpList = new ArrayList<>(chMap.entrySet()); mpList.sort(Map.Entry.comparingByValue((c1,c2) -> Optional.ofNullable(c1).map(l->l.get(0)).map(BomNewEbomChildEntity::getOrderNumber).orElse("") .compareTo(Optional.of(c2).map(l->l.get(0)).map(BomNewEbomChildEntity::getOrderNumber).orElse("")))); + //对map值的集合按照 按发货-直发-制作的顺序排序 + Function sortFn = (ent) -> { + String num = "1"; + String desc = Optional.ofNullable(ent).map(BomNewEbomChildEntity::getMaterialDesc).orElse(""); + if(desc.contains("(发货)")){ + num = "1"; + } + if(desc.contains("(直发)")){ + num = "2"; + } + if(desc.contains("(制作)")){ + num = "3"; + } + if(desc.contains("(发货前装配)")){ + num = "4"; + } + return num; + }; childrenForAdd.removeAll(childrenForAdd); - mpList.forEach(m -> childrenForAdd.addAll(m.getValue())); + mpList.forEach(m -> childrenForAdd.addAll(m.getValue().stream().sorted(Comparator.comparing(sortFn::apply)).collect(Collectors.toList()))); } try { @@ -419,27 +438,38 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew } } + /** + * 按发货-直发-制作的顺序 by 10002327 240903 + * @param root + * @param child + */ private void build1010VirtualPackage(BomNewEbomParentEntity root, BomNewEbomChildEntity child) { //发货包 BomNewEbomChildEntity qc1 = buildVirtualPackage(false, root.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DELIVERY_PACKAGE, child.getOrderNumber()); BomNewEbomParentEntity qp1 = buildVirtualPackage(root, qc1); //制作包 - BomNewEbomChildEntity qc2 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "001"); + BomNewEbomChildEntity qc2 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "002"); BomNewEbomParentEntity qp2 = buildVirtualPackage(qp1, qc2); child.setParentRowId(qp2.getRowId()); child.setModifyTime(LocalDateTime.now()); childrenForUpdate.add(child); //直发包 - BomNewEbomChildEntity qc3 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "002"); + BomNewEbomChildEntity qc3 = buildVirtualPackage(false, qp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "001"); buildVirtualPackage(qp1, qc3); } + /** + * 按发货-直发-制作的顺序 by 10002327 240903 + * @param root + * @param mount + * @param child + */ private void build1020VirtualPackage(BomNewEbomParentEntity root, boolean mount, BomNewEbomChildEntity child) { //发货包 BomNewEbomChildEntity xc1 = buildVirtualPackage(true, root.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DELIVERY_PACKAGE, child.getOrderNumber()); BomNewEbomParentEntity xp1 = buildVirtualPackage(root, xc1); //制作包 - BomNewEbomChildEntity xc2 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "001"); + BomNewEbomChildEntity xc2 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.MAKING_PACKAGE, "002"); BomNewEbomParentEntity xp2 = buildVirtualPackage(xp1, xc2); if (mount) { child.setParentRowId(xp2.getRowId()); @@ -447,7 +477,7 @@ public class BomNewEbomGenerateVirtualPackageServiceFor31Impl implements IBomNew childrenForUpdate.add(child); } //直发包 - BomNewEbomChildEntity xc3 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "002"); + BomNewEbomChildEntity xc3 = buildVirtualPackage(true, xp1.getRowId(), root, child.getMaterialName(), child.getDrawingNo(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE, "001"); buildVirtualPackage(xp1, xc3); } From c02ecb336d38cf85d43f0e66eeac571097a88a5c Mon Sep 17 00:00:00 2001 From: 10002327 Date: Thu, 5 Sep 2024 10:12:46 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B8=85=E9=99=A4redis=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomNewLogApi.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomNewLogApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomNewLogApi.java index 15908bc1..cd01fa97 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomNewLogApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomNewLogApi.java @@ -8,12 +8,12 @@ import com.nflg.product.bomnew.service.BomNewLogService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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.hibernate.validator.constraints.Length; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.Set; /** * t_bom_new_log 表控制层 @@ -27,6 +27,8 @@ import javax.annotation.Resource; @RequestMapping("bomNewLogEntity") public class BomNewLogApi extends BaseApi { + @Resource + private RedisTemplate redisTemplate; /** * 服务对象 */ @@ -44,7 +46,15 @@ public class BomNewLogApi extends BaseApi { public ResultVO> selectBomNewLogEntityPageByCondition(@RequestBody BomNewLogQuery query) { return ResultVO.success(bomNewLogService.getListByPage(query)); } - + + @GetMapping("delRedisKey") + public ResultVO delRedisKey(@RequestParam(name = "key") @Length(min = 4, message = "长度不能少于4个字符") String key){ + Set keys = redisTemplate.keys(key); + if(!keys.isEmpty()){ + return ResultVO.success(redisTemplate.delete(keys)); + } + return ResultVO.success(0l); + } }