From 16f53a4fdb57cbe1507ff26bcf3ce106e6a4a4f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sat, 6 Jan 2024 16:08:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=ACEBOM=E5=90=88=E5=B9=B6=E7=9B=B8?= =?UTF-8?q?=E5=90=8C=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/config/NacosConfig.java | 21 ++++ .../mapper/master/BomNewPbomParentMapper.java | 2 + .../bomnew/pojo/dto/CrmGetTokenResultDTO.java | 19 ++++ .../service/BomNewEbomParentService.java | 2 +- .../service/BomNewPbomParentService.java | 20 +++- .../product/bomnew/service/CrmService.java | 101 ++++++++++++++++++ .../OriginalBom/OriginalBomToEBomConvert.java | 12 +++ .../service/domain/PBom/ConvertToMBom.java | 1 + .../mapper/master/BomNewPbomParentMapper.xml | 8 ++ 9 files changed, 184 insertions(+), 2 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/CrmGetTokenResultDTO.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/CrmService.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java index 40d0a68d..40098a5d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/config/NacosConfig.java @@ -84,6 +84,27 @@ public class NacosConfig { @Value("${material.add.url}") private String addMaterialUrl; + @Value("${crm.token.url}") + private String crmTokenUrl; + + @Value("${crm.order.url}") + private String crmOrderUrl; + + @Value("${crm.grant_type}") + private String crmGrantType; + + @Value("${crm.client_id}") + private String crmClientId; + + @Value("${crm.client_secret}") + private String crmClientSecret; + + @Value("${crm.username}") + private String crmUsername; + + @Value("${crm.password}") + private String crmPassword; + diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java index 19530b46..39085612 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java @@ -22,4 +22,6 @@ public interface BomNewPbomParentMapper extends BaseMapper workDetailsListByPage(Page page, @Param("query") BomNewPbomParentQuery query , @Param("userFac") String userFac); List getParentChild(@Param("parentRowId") Long parentRowId); + + void bomRelease(@Param("releaseUserName")String releaseUserName, @Param("rowIds") List rowIds ); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/CrmGetTokenResultDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/CrmGetTokenResultDTO.java new file mode 100644 index 00000000..37334b70 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/CrmGetTokenResultDTO.java @@ -0,0 +1,19 @@ +package com.nflg.product.bomnew.pojo.dto; + +import lombok.Data; + +/** + * crm 获取TONKEN 结果 + */ + +@Data +public class CrmGetTokenResultDTO { + + private String access_token; + + private String token_type; + + private String signature; + + private String instance_url; +} 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 5021cc88..6676fdf4 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 @@ -319,7 +319,7 @@ public class BomNewEbomParentService extends ServiceImpl allChild = getAllBom(bomRowId, 0); @@ -443,6 +450,17 @@ public class BomNewPbomParentService extends ServiceImpl bomRowIds = allChild.stream().filter(u -> u.getBomRowId() > 0).map(u -> u.getBomRowId()).collect(Collectors.toList()); + rootParent.setOrderNo("订单号"); + rootParent.setStatus(PBomStatusEnum.PUBLISH.getValue()); + this.updateById(rootParent); + if(CollUtil.isNotEmpty(bomRowIds)){ + this.getBaseMapper().bomRelease(SessionUtil.getRealName(),bomRowIds); + } + + + return true; } @@ -452,7 +470,7 @@ public class BomNewPbomParentService extends ServiceImpl crmTokenCache = CacheUtil.newTimedCache(expire); + + /** + * 获取token + * @return + * @throws IOException + */ + public String getToken() throws IOException { + try { + if (StrUtil.isBlank(crmTokenCache.get(tokenCacheKey))) { + HttpUtils httpUtils = new HttpUtils(); + Map paramMp = new HashMap<>(); + paramMp.put("grant_type", NacosConfig.getNacosConfig().getCrmGrantType()); + paramMp.put("client_id", NacosConfig.getNacosConfig().getCrmClientId()); + paramMp.put("username", NacosConfig.getNacosConfig().getCrmUsername()); + paramMp.put("password", NacosConfig.getNacosConfig().getCrmPassword()); + paramMp.put("client_secret", NacosConfig.getNacosConfig().getCrmClientSecret()); + String s = httpUtils.doformPost(NacosConfig.getNacosConfig().getCrmTokenUrl(), paramMp); + CrmGetTokenResultDTO result = JSONObject.parseObject(s, CrmGetTokenResultDTO.class); + if (Objects.nonNull(result) && StrUtil.isNotBlank(result.getAccess_token())) { + + crmTokenCache.put(tokenCacheKey, result.getAccess_token()); + } else { + VUtils.isTure(true).throwMessage("获取CRM-token 失败"); + } + } + return crmTokenCache.get(tokenCacheKey); + } + catch (Exception e) { + VUtils.isTure(true).throwMessage("获取CRM-token 失败:"+e.getMessage()); + } + return ""; + } + + /** + * 获取订单号 + * @param materialNo + * @return + */ + public String getOrderNo(String materialNo) { + try { + + + HttpUtils httpUtils = new HttpUtils(); + Map paramMp = new HashMap<>(); + List> reBody = new ArrayList<>(); + reBody.add(ImmutableMap.of("matnr", materialNo)); + String token = StrUtil.join(" ", "Bearer", getToken()); + String orderResult = httpUtils.doPost(NacosConfig.getNacosConfig().getCrmOrderUrl(), JSON.toJSONString(reBody), token); + JSONObject jsonObject = JSONObject.parseObject(orderResult); + String code = jsonObject.getString("code"); + if (code == "0") { + String orderMap = jsonObject.getString("orderMap"); + if (StrUtil.isNotBlank(orderMap)) { + JSONObject order = JSONObject.parseObject(orderMap); + return Objects.nonNull(order) ? order.getString(materialNo) : ""; + } + + } + return ""; + } + catch (Exception ex){ + VUtils.isTure(true).throwMessage("获取订单号失败:"+ex.getMessage()); + } + return ""; + + } + + + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java index 8bc13cb3..3708fe3c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java @@ -372,10 +372,22 @@ public class OriginalBomToEBomConvert extends BaseConvert { } + private void supplementMaterialInfoForNoMaterialNoByRel(List data){ + List noMateralList = data.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); + for ( BomOriginalListVO item: noMateralList) { + handlerCommonMaterialForReplace(item); + } + } + + + /** * 合并相同物料 */ private List mergeBOM(List list) { + //合并补充物料信息 + supplementMaterialInfoForNoMaterialNoByRel(list); + List result = new ArrayList(); result.addAll(list.stream().filter(u->StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList())); list = list.stream().filter(u -> StrUtil.isNotBlank(u.getMaterialNo())).collect(Collectors.toList()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java index c6371c73..45cb403e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/ConvertToMBom.java @@ -56,6 +56,7 @@ public class ConvertToMBom { List mBomDetailResult = new ArrayList<>(); + public ConvertToMBom(BomNewPbomParentEntity inRootParent, List inAllChild) { this.parent = inRootParent; this.allChild_1010 = Convert.toList(ConvertToMBomDTO.class, inAllChild); 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 f4f6a5e6..9782380e 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 @@ -85,6 +85,14 @@ + + + update t_bom_new_pbom_parent set status=4 , release_user_name=#{releaseUserName} , release_time=now() + where row_id in + + #{rowId} + +