This commit is contained in:
mashuai 2024-10-24 13:17:43 +08:00
parent a926edc370
commit 5d7116b4f0
2 changed files with 44 additions and 35 deletions

View File

@ -46,11 +46,14 @@ public class BmUnit extends BaseEntity
private String typeName; private String typeName;
/** 所属分公司 */ /** 所属分公司 */
@Excel(name = "所属分公司")
@ApiModelProperty(value = "所属分公司") @ApiModelProperty(value = "所属分公司")
@NotBlank(message = "所属分公司不能为空") @NotBlank(message = "所属分公司不能为空")
private Long deptId; private Long deptId;
@Excel(name = "所属分公司")
@ApiModelProperty(value = "所属分公司名称")
private String deptName;
/** 联系人 */ /** 联系人 */
@Excel(name = "联系人") @Excel(name = "联系人")
@ApiModelProperty(value = "联系人") @ApiModelProperty(value = "联系人")

View File

@ -4,7 +4,6 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
import cn.hutool.core.util.PhoneUtil; import cn.hutool.core.util.PhoneUtil;
import com.alibaba.nacos.common.utils.CollectionUtils; 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.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; 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.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.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -41,7 +42,11 @@ public class BmUnitServiceImpl implements IBmUnitService
private BmUnitMapper bmUnitMapper; private BmUnitMapper bmUnitMapper;
@Resource @Resource
private RemoteDictDataService remoteDictDataService; private RemoteConfig remoteConfig;
@Resource
private RemoteDeptService remoteDeptService;
/** /**
* 查询往来单位管理 * 查询往来单位管理
@ -52,7 +57,9 @@ public class BmUnitServiceImpl implements IBmUnitService
@Override @Override
public BmUnit selectBmUnitByUnitId(Long unitId) 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<BmUnit> selectBmUnitList(BmUnit bmUnit) public List<BmUnit> selectBmUnitList(BmUnit bmUnit)
{ {
List<BmUnit> bmUnitList = bmUnitMapper.selectBmUnitList(bmUnit); List<BmUnit> bmUnitList = bmUnitMapper.selectBmUnitList(bmUnit);
extracted(bmUnitList); if (CollectionUtils.isNotEmpty(bmUnitList)) {
bmUnitList.forEach(item -> {
extracted(item);
});
}
return bmUnitList; return bmUnitList;
} }
private void extracted(List<BmUnit> bmUnitList) { /**
try { * 方法抽取
AjaxResult ajaxResult = remoteDictDataService.dictType("bm_unit_type", SecurityConstants.INNER); * @param unit
if (ajaxResult.isSuccess()) { */
// 假设 ajaxResult.get("data") 返回的是 List<LinkedHashMap> private void extracted(BmUnit unit) {
List<LinkedHashMap> rawData = (List<LinkedHashMap>) ajaxResult.get("data"); Map<String, String> labelMap = remoteConfig.getDictValue("bm_unit_type");
ObjectMapper objectMapper = new ObjectMapper(); if (unit.getUnitId() != null) {
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //根据单位id去人员绑定中查询是否绑定赋值绑定状态
// rawData 转换为 SysDictData 列表 unit.setIsBind(bmUnitMapper.selectBmUnitPersonByUnitId(unit.getUnitId()) > 0 ? 1 : 0);
List<SysDictData> dataList = rawData.stream() }
.map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class)) if (unit.getTypeId() != null) {
.collect(Collectors.toList()); unit.setTypeName(labelMap.get(unit.getTypeId().toString()) == null ? "" : labelMap.get(unit.getTypeId().toString()));
// 使用 Map 存储字典数据以提高查找速度 }
Map<String, String> dictMap = dataList.stream() AjaxResult ajaxResult = remoteDeptService.getInfo(unit.getDeptId(), SecurityConstants.INNER);
.collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); //健壮性判断
if (CollectionUtils.isNotEmpty(bmUnitList)) { if (ajaxResult.isSuccess()) {
for (BmUnit unit : bmUnitList) { // ajaxResult.get("data") 返回的是 LinkedHashMap
if (unit.getUnitId() != null) { LinkedHashMap rawDataList = (LinkedHashMap) ajaxResult.get("data");
//根据单位id去人员绑定中查询是否绑定赋值绑定状态 ObjectMapper objectMapper = new ObjectMapper();
unit.setIsBind(bmUnitMapper.selectBmUnitPersonByUnitId(unit.getUnitId()) > 0 ? 1 : 0); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
} if (rawDataList != null) {
String typeName = dictMap.get(unit.getTypeId().toString()); SysDept sysDept = objectMapper.convertValue(rawDataList, SysDept.class);
if (typeName != null) { unit.setDeptName(sysDept.getDeptName() == null ? "" : sysDept.getDeptName());
unit.setTypeName(typeName);
}
}
}
} }
} catch (Exception e) {
log.error("远程服务调用查询失败:", e.getMessage());
} }
} }
/** /**
* 新增往来单位管理 * 新增往来单位管理
* *