From 5d7116b4f0430d89ac446d513e5c6ee60e66b6c0 Mon Sep 17 00:00:00 2001 From: mashuai Date: Thu, 24 Oct 2024 13:17:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/material/basic/domain/BmUnit.java | 5 +- .../basic/service/impl/BmUnitServiceImpl.java | 74 ++++++++++--------- 2 files changed, 44 insertions(+), 35 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java index b161223f..95504979 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmUnit.java @@ -46,11 +46,14 @@ public class BmUnit extends BaseEntity private String typeName; /** 所属分公司 */ - @Excel(name = "所属分公司") @ApiModelProperty(value = "所属分公司") @NotBlank(message = "所属分公司不能为空") private Long deptId; + @Excel(name = "所属分公司") + @ApiModelProperty(value = "所属分公司名称") + private String deptName; + /** 联系人 */ @Excel(name = "联系人") @ApiModelProperty(value = "联系人") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitServiceImpl.java index 497ed2c1..7f629d37 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmUnitServiceImpl.java @@ -4,7 +4,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.stream.Collectors; import cn.hutool.core.util.PhoneUtil; import com.alibaba.nacos.common.utils.CollectionUtils; @@ -14,8 +13,10 @@ import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.purchase.config.RemoteConfig; +import com.bonus.system.api.RemoteDeptService; import com.bonus.system.api.RemoteDictDataService; -import com.bonus.system.api.domain.SysDictData; +import com.bonus.system.api.domain.SysDept; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; @@ -41,7 +42,11 @@ public class BmUnitServiceImpl implements IBmUnitService private BmUnitMapper bmUnitMapper; @Resource - private RemoteDictDataService remoteDictDataService; + private RemoteConfig remoteConfig; + + @Resource + private RemoteDeptService remoteDeptService; + /** * 查询往来单位管理 @@ -52,7 +57,9 @@ public class BmUnitServiceImpl implements IBmUnitService @Override public BmUnit selectBmUnitByUnitId(Long unitId) { - return bmUnitMapper.selectBmUnitByUnitId(unitId); + BmUnit unit = bmUnitMapper.selectBmUnitByUnitId(unitId); + extracted(unit); + return unit; } /** @@ -65,43 +72,42 @@ public class BmUnitServiceImpl implements IBmUnitService public List selectBmUnitList(BmUnit bmUnit) { List bmUnitList = bmUnitMapper.selectBmUnitList(bmUnit); - extracted(bmUnitList); + if (CollectionUtils.isNotEmpty(bmUnitList)) { + bmUnitList.forEach(item -> { + extracted(item); + }); + } return bmUnitList; } - private void extracted(List bmUnitList) { - try { - AjaxResult ajaxResult = remoteDictDataService.dictType("bm_unit_type", SecurityConstants.INNER); - if (ajaxResult.isSuccess()) { - // 假设 ajaxResult.get("data") 返回的是 List - List rawData = (List) ajaxResult.get("data"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - // 将 rawData 转换为 SysDictData 列表 - List dataList = rawData.stream() - .map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class)) - .collect(Collectors.toList()); - // 使用 Map 存储字典数据以提高查找速度 - Map dictMap = dataList.stream() - .collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); - if (CollectionUtils.isNotEmpty(bmUnitList)) { - for (BmUnit unit : bmUnitList) { - if (unit.getUnitId() != null) { - //根据单位id去人员绑定中查询是否绑定,赋值绑定状态 - unit.setIsBind(bmUnitMapper.selectBmUnitPersonByUnitId(unit.getUnitId()) > 0 ? 1 : 0); - } - String typeName = dictMap.get(unit.getTypeId().toString()); - if (typeName != null) { - unit.setTypeName(typeName); - } - } - } + /** + * 方法抽取 + * @param unit + */ + private void extracted(BmUnit unit) { + Map labelMap = remoteConfig.getDictValue("bm_unit_type"); + if (unit.getUnitId() != null) { + //根据单位id去人员绑定中查询是否绑定,赋值绑定状态 + unit.setIsBind(bmUnitMapper.selectBmUnitPersonByUnitId(unit.getUnitId()) > 0 ? 1 : 0); + } + if (unit.getTypeId() != null) { + unit.setTypeName(labelMap.get(unit.getTypeId().toString()) == null ? "" : labelMap.get(unit.getTypeId().toString())); + } + AjaxResult ajaxResult = remoteDeptService.getInfo(unit.getDeptId(), SecurityConstants.INNER); + //健壮性判断 + if (ajaxResult.isSuccess()) { + // ajaxResult.get("data") 返回的是 LinkedHashMap + LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data"); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + if (rawDataList != null) { + SysDept sysDept = objectMapper.convertValue(rawDataList, SysDept.class); + unit.setDeptName(sysDept.getDeptName() == null ? "" : sysDept.getDeptName()); } - } catch (Exception e) { - log.error("远程服务调用查询失败:", e.getMessage()); } } + /** * 新增往来单位管理 *