Commit 050956d8 authored by 韩桐桐's avatar 韩桐桐

fix(tcm):多角色登录选择某个角色后,展示对应角色的资质/许可信息

parent d4829c2a
...@@ -8,10 +8,13 @@ import com.alibaba.fastjson.TypeReference; ...@@ -8,10 +8,13 @@ import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl; import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.module.tcm.api.dto.BaseUnitLicenceDto; import com.yeejoin.amos.boot.module.tcm.api.dto.BaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.EquEnterDto; import com.yeejoin.amos.boot.module.tcm.api.dto.EquEnterDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseEnterpriseInfoDto; import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseEnterpriseInfoDto;
...@@ -42,12 +45,15 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -42,12 +45,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.sql.Array;
import java.text.ParseException; import java.text.ParseException;
import java.util.*; import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -62,7 +68,10 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -62,7 +68,10 @@ public class TzBaseEnterpriseInfoServiceImpl
implements ITzBaseEnterpriseInfoService { implements ITzBaseEnterpriseInfoService {
public static final String HZXM = "HZXM"; public static final String HZXM = "HZXM";
/** public static final String INSPECTION_AND_TESTING_INSTITUTIONS = "检验检测机构";
public static final String INSPECTION_AGENCY = "检验机构";
public static final String TESTING_INSTITUTIONS = "检测机构";
/**
* 企业管理员变更缓存key前缀 * 企业管理员变更缓存key前缀
*/ */
private final String adminChange = "ADMIN_CHANGE_"; private final String adminChange = "ADMIN_CHANGE_";
...@@ -97,6 +106,13 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -97,6 +106,13 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired @Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService; private EquipmentCategoryServiceImpl equipmentCategoryService;
/**
* 用户选择信心redis获取
**/
protected ReginParams getSelectedOrgInfo() {
return JSONObject.parseObject(redisUtil.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
@Override @Override
public List<EquEnterDto> getInfo(String sequenceNbr) { public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr); return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
...@@ -139,12 +155,29 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -139,12 +155,29 @@ public class TzBaseEnterpriseInfoServiceImpl
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur())); tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory())); tzBaseEnterpriseInfoDto.setEquipCategory(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getEquipCategory()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()));
} }
// 许可信息
ReginParams selectedOrgInfo = getSelectedOrgInfo();
String companyType = selectedOrgInfo.getCompany().getCompanyType();
// 修改当前登录人选择的单位类型
tzBaseEnterpriseInfoDto.setUnitType(companyType);
// 当前用户选择角色的许可信息(使用。。安改维。。检验检测。。)
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>() List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode())); .eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>(); List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<>();
if (!ValidationUtil.isEmpty(unitLicences)) { Predicate<BaseUnitLicence> certTypePredicate;
for (BaseUnitLicence baseUnitLicence : unitLicences) { if (INSPECTION_AND_TESTING_INSTITUTIONS.equals(companyType)) {
certTypePredicate = baseUnitLicence -> INSPECTION_AGENCY.equals(baseUnitLicence.getCertType()) ||
TESTING_INSTITUTIONS.equals(baseUnitLicence.getCertType());
} else {
certTypePredicate = baseUnitLicence -> companyType.contains(baseUnitLicence.getCertType());
}
List<BaseUnitLicence> unitLicencesCollect = unitLicences.stream()
.filter(certTypePredicate)
.collect(Collectors.toList());
if (!ValidationUtil.isEmpty(unitLicencesCollect)) {
for (BaseUnitLicence baseUnitLicence : unitLicencesCollect) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto(); BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto); BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto); unitLicenceDtos.add(baseUnitLicenceDto);
...@@ -536,29 +569,16 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -536,29 +569,16 @@ public class TzBaseEnterpriseInfoServiceImpl
} }
//修改许可信息 //修改许可信息
// 1、先删除原有许可信息
List<BaseUnitLicenceDto> baseUnitLicenceDtos = baseUnitLicenceService.queryForBaseUnitLicenceList(tzBaseEnterpriseInfo.getUseCode());
if (!ValidationUtil.isEmpty(baseUnitLicenceDtos)) {
List<Long> seqs = Lists.newArrayList();
baseUnitLicenceDtos.forEach(b -> {
seqs.add(b.getSequenceNbr());
});
baseUnitLicenceService.deleteBatchSeq(seqs);
}
// 2、再保存新许可信息
List<BaseUnitLicence> licences = Lists.newArrayList(); List<BaseUnitLicence> licences = Lists.newArrayList();
JSON.parseArray(JSON.toJSONString(map.get("unitLicences"))).forEach(obj -> { JSON.parseArray(JSON.toJSONString(map.get("unitLicences"))).forEach(obj -> {
BaseUnitLicence baseUnitLicence = JSON.toJavaObject((JSONObject )obj, BaseUnitLicence.class); BaseUnitLicence baseUnitLicence = JSON.toJavaObject((JSONObject )obj, BaseUnitLicence.class);
baseUnitLicence.setUnitCode(ObjectUtils.isEmpty(map.get("useCode")) ? null : (String)map.get("useCode")); baseUnitLicence.setUnitCode(ObjectUtils.isEmpty(map.get("useCode")) ? null : (String)map.get("useCode"));
baseUnitLicence.setUnitName(ObjectUtils.isEmpty(map.get("useUnit")) ? null : (String)map.get("useUnit")); baseUnitLicence.setUnitName(ObjectUtils.isEmpty(map.get("useUnit")) ? null : (String)map.get("useUnit"));
// 处理许可字典值对应名称 // 处理许可字典值对应名称
handleDictName(baseUnitLicence); handleDictName(baseUnitLicence);
licences.add(baseUnitLicence); licences.add(baseUnitLicence);
}); });
baseUnitLicenceService.saveOrUpdateBatch(licences);
baseUnitLicenceService.saveBatch(licences);
// 企业信息变更-同步修改企业下人员绑定设备类型 // 企业信息变更-同步修改企业下人员绑定设备类型
ArrayList<String> newData = new ArrayList<>(); ArrayList<String> newData = new ArrayList<>();
JSONArray objects = JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()); JSONArray objects = JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory());
...@@ -597,14 +617,23 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -597,14 +617,23 @@ public class TzBaseEnterpriseInfoServiceImpl
private void handleDictName(BaseUnitLicence baseUnitLicence) { private void handleDictName(BaseUnitLicence baseUnitLicence) {
// 初始化所有数据字典列表 // 初始化所有数据字典列表
List<DataDictionary> dictionaries = regUnitInfoService.initAllDataDictionaryList(); List<DataDictionary> dictionaries = regUnitInfoService.initAllDataDictionaryList();
// 当前登录账户信息
ReginParams selectedOrgInfo = getSelectedOrgInfo();
String companyType = selectedOrgInfo.getCompany().getCompanyType();
// 根据新的单位类型代码查询许可证书类型名称 // 根据新的单位类型代码查询许可证书类型名称
Optional<String> certTypeOptional = dictionaries.stream() Optional<String> certTypeOptional;
.filter(d -> "UNIT_TYPE_NEW".equals(d.getType()) && baseUnitLicence.getCertTypeCode().startsWith(d.getCode())) if (INSPECTION_AND_TESTING_INSTITUTIONS.equals(companyType)) {
.map(DataDictionary::getName) certTypeOptional = Optional.of(baseUnitLicence.getCertType());
.findFirst(); } else {
// 设置许可证书类型 certTypeOptional = dictionaries.stream()
certTypeOptional.ifPresent(baseUnitLicence::setCertType); .filter(d -> "UNIT_TYPE_NEW".equals(d.getType()) && baseUnitLicence.getCertTypeCode().startsWith(d.getCode()))
.map(DataDictionary::getName)
.findFirst();
}
// 设置许可证书类型
certTypeOptional.ifPresent(baseUnitLicence::setCertType);
// 查询项目代码对应的名称 // 查询项目代码对应的名称
Optional<String> itemCodeOptional = dictionaries.stream() Optional<String> itemCodeOptional = dictionaries.stream()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment