This commit is contained in:
parent
a926edc370
commit
5d7116b4f0
|
|
@ -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 = "联系人")
|
||||
|
|
|
|||
|
|
@ -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<BmUnit> selectBmUnitList(BmUnit bmUnit)
|
||||
{
|
||||
List<BmUnit> bmUnitList = bmUnitMapper.selectBmUnitList(bmUnit);
|
||||
extracted(bmUnitList);
|
||||
if (CollectionUtils.isNotEmpty(bmUnitList)) {
|
||||
bmUnitList.forEach(item -> {
|
||||
extracted(item);
|
||||
});
|
||||
}
|
||||
return bmUnitList;
|
||||
}
|
||||
|
||||
private void extracted(List<BmUnit> bmUnitList) {
|
||||
try {
|
||||
AjaxResult ajaxResult = remoteDictDataService.dictType("bm_unit_type", SecurityConstants.INNER);
|
||||
if (ajaxResult.isSuccess()) {
|
||||
// 假设 ajaxResult.get("data") 返回的是 List<LinkedHashMap>
|
||||
List<LinkedHashMap> rawData = (List<LinkedHashMap>) ajaxResult.get("data");
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
// 将 rawData 转换为 SysDictData 列表
|
||||
List<SysDictData> dataList = rawData.stream()
|
||||
.map(rawDatum -> objectMapper.convertValue(rawDatum, SysDictData.class))
|
||||
.collect(Collectors.toList());
|
||||
// 使用 Map 存储字典数据以提高查找速度
|
||||
Map<String, String> 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<String, String> 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增往来单位管理
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue