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

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

parent d4829c2a
......@@ -8,10 +8,13 @@ import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
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.service.impl.DataDictionaryServiceImpl;
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.EquEnterDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseEnterpriseInfoDto;
......@@ -42,12 +45,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
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.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.sql.Array;
import java.text.ParseException;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
/**
......@@ -62,7 +68,10 @@ public class TzBaseEnterpriseInfoServiceImpl
implements ITzBaseEnterpriseInfoService {
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前缀
*/
private final String adminChange = "ADMIN_CHANGE_";
......@@ -97,6 +106,13 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService;
/**
* 用户选择信心redis获取
**/
protected ReginParams getSelectedOrgInfo() {
return JSONObject.parseObject(redisUtil.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
@Override
public List<EquEnterDto> getInfo(String sequenceNbr) {
return tzBaseEnterpriseInfoMapper.getInfo(sequenceNbr);
......@@ -139,12 +155,29 @@ public class TzBaseEnterpriseInfoServiceImpl
tzBaseEnterpriseInfoDto.setUnitExequatur(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitExequatur()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitExequatur()));
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>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<BaseUnitLicenceDto>();
if (!ValidationUtil.isEmpty(unitLicences)) {
for (BaseUnitLicence baseUnitLicence : unitLicences) {
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<>();
Predicate<BaseUnitLicence> certTypePredicate;
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();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
......@@ -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();
JSON.parseArray(JSON.toJSONString(map.get("unitLicences"))).forEach(obj -> {
BaseUnitLicence baseUnitLicence = JSON.toJavaObject((JSONObject )obj, BaseUnitLicence.class);
baseUnitLicence.setUnitCode(ObjectUtils.isEmpty(map.get("useCode")) ? null : (String)map.get("useCode"));
baseUnitLicence.setUnitName(ObjectUtils.isEmpty(map.get("useUnit")) ? null : (String)map.get("useUnit"));
// 处理许可字典值对应名称
handleDictName(baseUnitLicence);
licences.add(baseUnitLicence);
});
baseUnitLicenceService.saveBatch(licences);
baseUnitLicenceService.saveOrUpdateBatch(licences);
// 企业信息变更-同步修改企业下人员绑定设备类型
ArrayList<String> newData = new ArrayList<>();
JSONArray objects = JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory());
......@@ -597,14 +617,23 @@ public class TzBaseEnterpriseInfoServiceImpl
private void handleDictName(BaseUnitLicence baseUnitLicence) {
// 初始化所有数据字典列表
List<DataDictionary> dictionaries = regUnitInfoService.initAllDataDictionaryList();
// 当前登录账户信息
ReginParams selectedOrgInfo = getSelectedOrgInfo();
String companyType = selectedOrgInfo.getCompany().getCompanyType();
// 根据新的单位类型代码查询许可证书类型名称
Optional<String> certTypeOptional = dictionaries.stream()
.filter(d -> "UNIT_TYPE_NEW".equals(d.getType()) && baseUnitLicence.getCertTypeCode().startsWith(d.getCode()))
.map(DataDictionary::getName)
.findFirst();
// 设置许可证书类型
certTypeOptional.ifPresent(baseUnitLicence::setCertType);
Optional<String> certTypeOptional;
if (INSPECTION_AND_TESTING_INSTITUTIONS.equals(companyType)) {
certTypeOptional = Optional.of(baseUnitLicence.getCertType());
} else {
certTypeOptional = dictionaries.stream()
.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()
......
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