Commit 483184fc authored by yangyang's avatar yangyang

feat(tcm): 增加企业信息详情查询和更新功能- 在 TzBaseEnterpriseInfoDto 中添加 unitTypeCodes 字段,用于存储单位类型代码

- 在 ITzBaseEnterpriseInfoService 接口中添加 getInfoById 和 updateCompanyInfoById 方法 - 在 TzBaseEnterpriseInfoController 中实现 infoById 和 companyInfoUpdateById 接口- 在 TzBaseEnterpriseInfoServiceImpl 中实现 getInfoById 和 updateCompanyInfoById 方法的逻辑 - 优化企业信息更新逻辑,处理单位类型、管理员信息、工商信息等多表关联更新
parent d2af7815
......@@ -49,6 +49,11 @@ public class TzBaseEnterpriseInfoDto extends BaseDto {
* 单位类型
*/
private String unitType;
/**
* 单位类型 Code
*/
@ApiModelProperty(value = "单位类型 Code")
private List<String> unitTypeCodes;
@ApiModelProperty(value = "使用单位统一信用代码")
/**
* 使用单位统一信用代码
......
......@@ -51,4 +51,9 @@ public interface ITzBaseEnterpriseInfoService extends IService<TzBaseEnterpriseI
BaseUnitLicence getUnitLicenceMessage(String unitCode);
Map<String, Object> getInfoByUseCodeMap(String useCode);
IPage<TzBaseEnterpriseInfoDto> getInfoById(Long sequenceNbr, String companyCode);
TzBaseEnterpriseInfoDto updateCompanyInfoById(Map<String, Object> map, ReginParams selectedOrgInfo);
}
......@@ -297,4 +297,18 @@ public class TzBaseEnterpriseInfoController extends BaseController {
public ResponseModel<BaseUnitLicence> getUnitLicenceMessage(@RequestParam("unitCode") String unitCode) {
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.getUnitLicenceMessage(unitCode));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getInfoById")
@ApiOperation(httpMethod = "GET", value = "根据ID查询企业详情", notes = "根据ID查询企业详情")
public ResponseModel<IPage<TzBaseEnterpriseInfoDto>> infoById(Long sequenceNbr, String companyCode) {
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.getInfoById(sequenceNbr, companyCode));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyInfoUpdateById", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "根据ID修改企业信息", notes = "根据ID修改企业信息")
public ResponseModel<TzBaseEnterpriseInfoDto> companyInfoUpdateById(@RequestBody Map<String, Object> map) {
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.updateCompanyInfoById(map, getSelectedOrgInfo()));
}
}
......@@ -42,6 +42,9 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock;
......@@ -60,6 +63,7 @@ import org.typroject.tyboot.core.restful.exception.instance.TooManyRequests;
import java.text.ParseException;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -68,6 +72,7 @@ import java.util.stream.Collectors;
* @author duanwei
* @date 2022-08-10
*/
@Slf4j
@Service
public class TzBaseEnterpriseInfoServiceImpl
extends BaseService<TzBaseEnterpriseInfoDto, TzBaseEnterpriseInfo, TzBaseEnterpriseInfoMapper>
......@@ -310,6 +315,10 @@ public class TzBaseEnterpriseInfoServiceImpl
private TzBaseEnterpriseInfoDto getDetail(TzBaseEnterpriseInfo tzBaseEnterpriseInfo){
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detail(tzBaseEnterpriseInfo.getSequenceNbr());
return convertDto(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
}
private TzBaseEnterpriseInfoDto convertDto(TzBaseEnterpriseInfo tzBaseEnterpriseInfo, TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto) {
if(!ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getOfficeRegion())){
List<Integer> officeRegion = new ArrayList<>();
for (String s : tzBaseEnterpriseInfo.getOfficeRegion().split("#")) {
......@@ -972,4 +981,319 @@ public class TzBaseEnterpriseInfoServiceImpl
}
@Override
public IPage<TzBaseEnterpriseInfoDto> getInfoById(Long sequenceNbr, String companyCode) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = this.getById(sequenceNbr);
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = detailById(tzBaseEnterpriseInfo);
convertDto(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
LambdaQueryWrapper<TzsBaseInstitution> lambda = new QueryWrapper<TzsBaseInstitution>().lambda();
lambda.eq(TzsBaseInstitution::getEnterpriseId, tzBaseEnterpriseInfo.getSequenceNbr());
TzsBaseInstitution tzsBaseInstitution = tzsBaseInstitutionService.getBaseMapper().selectOne(lambda);
tzBaseEnterpriseInfoDto.setRegUnitMessage(tzsBaseInstitution);
tzBaseEnterpriseInfoDto.setUserPermissionList(userInfoService.getUserPermissionOfCurrentLogin(UserPermissionDto.builder().cityCode(companyCode).build()));
Page<TzBaseEnterpriseInfoDto> page = new Page<>(1, 10);
page.setRecords(Arrays.asList(tzBaseEnterpriseInfoDto));
return page;
}
private TzBaseEnterpriseInfoDto detailById(TzBaseEnterpriseInfo tzBaseEnterpriseInfo) {
// region 根据ID获取详情
if (tzBaseEnterpriseInfo == null) {
return null;
}
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
tzBaseEnterpriseInfoDto.setSafetyTwoPhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyTwoPhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyTwoPhoto()));
tzBaseEnterpriseInfoDto.setSafetyOnePhoto(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getSafetyOnePhoto()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getSafetyOnePhoto()));
tzBaseEnterpriseInfoDto.setUnitBusinessLicense(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getUnitBusinessLicense()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getUnitBusinessLicense()));
tzBaseEnterpriseInfoDto.setOtherAccessories(ObjectUtils.isEmpty(tzBaseEnterpriseInfo.getOtherAccessories()) ? new ArrayList() : JSON.parseArray(tzBaseEnterpriseInfo.getOtherAccessories()));
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.setUnitType(tzBaseEnterpriseInfo.getUnitType());
List<String> unitTypes = Arrays.stream(tzBaseEnterpriseInfo.getUnitType().split("#")).collect(Collectors.toList());
List<DataDictionary> dataDictionaries = iDataDictionaryService.getByType("UNIT_TYPE_NEW");
tzBaseEnterpriseInfoDto.setUnitTypeCodes(dataDictionaries.stream()
.filter(e -> unitTypes.contains(e.getName())).map(DataDictionary::getCode).collect(Collectors.toList()));
// 当前用户选择角色的许可信息(使用。。安改维。。检验检测。。)
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<>();
List<BaseUnitLicence> unitLicencesCollect = Optional.ofNullable(unitLicences).orElse(Collections.emptyList());
if (!ValidationUtil.isEmpty(unitLicencesCollect)) {
for (BaseUnitLicence baseUnitLicence : unitLicencesCollect) {
BaseUnitLicenceDto baseUnitLicenceDto = new BaseUnitLicenceDto();
BeanUtils.copyProperties(baseUnitLicence, baseUnitLicenceDto);
unitLicenceDtos.add(baseUnitLicenceDto);
}
}
tzBaseEnterpriseInfoDto.setUnitLicences(unitLicenceDtos);
// 管理员信息
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(
new LambdaQueryWrapper<RegUnitInfo>().eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitInfoDto regUnitInfoDto = new RegUnitInfoDto();
if (regUnitInfo != null) {
BeanUtils.copyProperties(regUnitInfo, regUnitInfoDto);
}
regUnitInfoDto.setAdminIdCardPhoto((ValidationUtil.isEmpty(regUnitInfo)||ValidationUtil.isEmpty(regUnitInfo.getAdminIdCardPhoto())) ? new ArrayList() : JSON.parseArray(regUnitInfo.getAdminIdCardPhoto()));
tzBaseEnterpriseInfoDto.setRegUnitInfoDto(regUnitInfoDto);
// 工商信息
RegUnitIc regUnitIc = regUnitIcService.getOne(
new LambdaQueryWrapper<RegUnitIc>().eq(RegUnitIc::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
RegUnitIcDto regUnitIcDto = new RegUnitIcDto();
if (regUnitIc != null) {
BeanUtils.copyProperties(regUnitIc, regUnitIcDto);
}
tzBaseEnterpriseInfoDto.setRegUnitIcDto(regUnitIcDto);
return tzBaseEnterpriseInfoDto;
// endregion
}
@Transactional(rollbackFor = Exception.class)
@Override
public TzBaseEnterpriseInfoDto updateCompanyInfoById(Map<String, Object> map, ReginParams reginParams2) {
log.info("根据ID修改企业信息 => {}, 更新人 => {}", map, RequestContext.getExeUserId());
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo = tzBaseEnterpriseInfoService.getById(tzBaseEnterpriseInfo.getSequenceNbr());
//修改基本信息
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map1.get("address")) ? null : map1.get("address"));
tzBaseEnterpriseInfo.setLongitude(ObjectUtils.isEmpty(map1.get("longitude")) ? null : String.valueOf(map1.get("longitude")));
tzBaseEnterpriseInfo.setLatitude(ObjectUtils.isEmpty(map1.get("latitude")) ? null : String.valueOf(map1.get("latitude")));
tzBaseEnterpriseInfo.setUseContact(ObjectUtils.isEmpty(map.get("useContact")) ? null : String.valueOf(map.get("useContact")));
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone")));
tzBaseEnterpriseInfo.setUnitBusinessLicense(ObjectUtils.isEmpty(map.get("unitBusinessLicense")) ? null : JSON.toJSONString(map.get("unitBusinessLicense")));
tzBaseEnterpriseInfo.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")));
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName")));
tzBaseEnterpriseInfo.setOtherAccessories(ObjectUtils.isEmpty(map.get("otherAccessories")) ? null : JSON.toJSONString(map.get("otherAccessories")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : (String)map.get("legalPerson"));
String officeRegion = null;
if(!ObjectUtils.isEmpty(map.get("officeRegion"))){
List list = (List<Object>) map.get("officeRegion");
officeRegion = list.stream().map(String::valueOf).collect(Collectors.joining("#")).toString();
}
tzBaseEnterpriseInfo.setOfficeRegion(officeRegion);
tzBaseEnterpriseInfo.setOfficeAddress(ObjectUtils.isEmpty(map.get("officeAddress")) ? null : (String)map.get("officeAddress"));
// 修改事业单位信息
TzsBaseInstitutionDto baseInstitutionDto = JSON.toJavaObject(JSON.parseObject(JSON.toJSONString(map.get("regUnitMessage"))), TzsBaseInstitutionDto.class);
if (!ValidationUtil.isEmpty(baseInstitutionDto)) {
TzsBaseInstitution baseInstitution = new TzsBaseInstitution();
BeanUtils.copyProperties(baseInstitutionDto, baseInstitution);
// 用"单位信息"更新以下字段
tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map.get("address")) ? null : (String)map.get("address"));
tzBaseEnterpriseInfo.setProvince(baseInstitutionDto.getUnitAddress().get(0));
tzBaseEnterpriseInfo.setCity(baseInstitutionDto.getUnitAddress().get(1));
tzBaseEnterpriseInfo.setDistrict(baseInstitutionDto.getUnitAddress().get(2));
tzsBaseInstitutionService.saveOrUpdate(baseInstitution);
}
// 修改tz_flc_reg_unit_info表信息
LambdaQueryWrapper<RegUnitInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(RegUnitInfo::getUnitCode, tzBaseEnterpriseInfo.getUseCode());
RegUnitInfo regUnitInfo = regUnitInfoService.getOne(queryWrapper);
if (ValidationUtil.isEmpty(regUnitInfo)) {
throw new BadRequest("未找到单位注册信息");
}
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.queryByUserId(regUnitInfo.getAdminUserId());
AgencyUserModel agencyUserModel = Optional.ofNullable(userResult).map(FeignClientResult::getResult).orElse(null);
regUnitInfo.setName(tzBaseEnterpriseInfo.getUseUnit());
regUnitInfo.setUnitCode(tzBaseEnterpriseInfo.getUseCode());
regUnitInfo.setManagementUnit(tzBaseEnterpriseInfo.getGoverningBody());
// regUnitInfo.setManagementUnitId(tzBaseEnterpriseInfo.getGoverningBody());
regUnitInfo.setProvince(tzBaseEnterpriseInfo.getProvince());
regUnitInfo.setCity(tzBaseEnterpriseInfo.getCity());
regUnitInfo.setDistrict(tzBaseEnterpriseInfo.getDistrict());
regUnitInfo.setAddress(tzBaseEnterpriseInfo.getAddress());
regUnitInfo.setLegalPerson(tzBaseEnterpriseInfo.getLegalPerson());
regUnitInfo.setContactPerson(tzBaseEnterpriseInfo.getUseContact());
// 处理单位信息
handleUnitType(map, regUnitInfo, agencyUserModel);
String[] unitTypes = regUnitInfo.getUnitType().split(",");
regUnitInfoService.saveOrUpdate(regUnitInfo);
//修改工商信息
RegUnitIc regUnitIc = new RegUnitIc();
RegUnitIcDto regUnitIcDto = JSON.parseObject(JSON.toJSONString(map.get("regUnitIcDto")), new TypeReference<RegUnitIcDto>() {
});
if (!ValidationUtil.isEmpty(regUnitIcDto.getSequenceNbr())) {
List<String> addressList = (List<String>) map.get("registerAddressList");
tzBaseEnterpriseInfo.setProvince(addressList.get(0));
tzBaseEnterpriseInfo.setCity(addressList.get(1));
tzBaseEnterpriseInfo.setDistrict(addressList.get(2));
tzBaseEnterpriseInfo.setCommunity(ObjectUtils.isEmpty(map.get("community")) ? null : String.valueOf(map.get("community")));
tzBaseEnterpriseInfo.setStreet(ObjectUtils.isEmpty(map.get("street")) ? null : String.valueOf(map.get("street")));
// tzBaseEnterpriseInfo.setAddress(ObjectUtils.isEmpty(map.get("regAddress")) ? null : String.valueOf(map.get("regAddress")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : String.valueOf(map.get("legalPerson")));
regUnitIc.setIndustryName(ObjectUtils.isEmpty(map.get("industryName")) ? null : String.valueOf(map.get("industryName")));
DataDictionary regOrganCodeDict = iDataDictionaryService.getByCode(String.valueOf(map.get("registeredOrganCode")),"DJJG");
regUnitIc.setRegisteredOrgan(ObjectUtils.isEmpty(regOrganCodeDict) ? null : String.valueOf(regOrganCodeDict.getName()));
regUnitIc.setRegisteredOrganCode(ObjectUtils.isEmpty(map.get("registeredOrganCode")) ? null : String.valueOf(map.get("registeredOrganCode")));
Date approvedDate;
try {
approvedDate = DateUtils.dateParse(String.valueOf(map.get("approvedDate")), "yyyy-MM-dd");
} catch (ParseException e) {
throw new RuntimeException(e);
}
regUnitIc.setBusinessStateCode(ObjectUtils.isEmpty(map.get("businessState")) ? null : String.valueOf(map.get("businessState")));
DataDictionary businessStateDict = iDataDictionaryService.getByCode(String.valueOf(map.get("businessState")),"jyzt");
regUnitIc.setBusinessState(ObjectUtils.isEmpty(businessStateDict) ? null : businessStateDict.getName());
regUnitIc.setApprovedDate(ObjectUtils.isEmpty(map.get("approvedDate")) ? null : approvedDate);
regUnitIcService.update(regUnitIc, new QueryWrapper<RegUnitIc>().eq("unit_code", regUnitIcDto.getUnitCode()));
}
//许可信息先登录人选择的身份删除相应的许可信息,原因前端列表对数据可增减
String useCode = tzBaseEnterpriseInfo.getUseCode();
String certTypeCodes = Arrays.stream(unitTypes).map(e -> COMPANY_TYPE_CERT_TYPE_MAP.getOrDefault(e, "")).collect(Collectors.joining(","));
if (useCode != null && !certTypeCodes.isEmpty()) {
LambdaQueryWrapper<BaseUnitLicence> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BaseUnitLicence::getUnitCode, useCode);
wrapper.and(w -> Arrays.stream(certTypeCodes.split(","))
.forEach(certTypeCode -> w.or().likeRight(BaseUnitLicence::getCertTypeCode, certTypeCode)));
baseUnitLicenceService.remove(wrapper);
}
//报错许可许可信息
saveLicenceData(map);
// 企业信息变更-同步修改企业下人员绑定设备类型
ArrayList<String> newData = new ArrayList<>();
JSONArray objects = JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory());
objects.forEach(item -> newData.add(item.toString()));
tzBaseEnterpriseInfo.setUnitType(String.join("#", unitTypes));
boolean b = tzBaseEnterpriseInfoService.updateById(tzBaseEnterpriseInfo);
if (b) {
CompanyModel updateModel;
try {
updateModel = Privilege.companyClient.queryByCompanyCode(String.valueOf(map.get("useCode"))).getResult();
HashMap<String, Object> parentMessage = (HashMap<String, Object>) Privilege.companyClient.queryByOrgcode(String.valueOf(map.get("superviseOrgCode"))).getResult();
// 目前平台返回key为compnay(存在拼写错误)
CompanyModel parentModel = JSON.parseObject(JSON.toJSONString(parentMessage.get("compnay")), CompanyModel.class);
updateModel.setParentId(parentModel.getSequenceNbr());
updateModel.setCompanyType(regUnitInfo.getUnitType());// 更新单位类型
Privilege.companyClient.update(updateModel, updateModel.getSequenceNbr());
} catch (Exception e) {
throw new BadRequest("操作失败!");
}
updateUnit(map, regUnitInfo, agencyUserModel, updateModel);
updateUserInfo(newData, String.valueOf(map.get("useCode")));
TzBaseEnterpriseInfoDto tzBaseEnterpriseInfoDto = new TzBaseEnterpriseInfoDto();
BeanUtils.copyProperties(tzBaseEnterpriseInfo, tzBaseEnterpriseInfoDto);
return tzBaseEnterpriseInfoDto;
} else {
return null;
}
}
private void handleUnitType(Map<String, Object> map, RegUnitInfo regUnitInfo, AgencyUserModel agencyUserModel) {
Object unitTypeCodesObj = map.get("unitTypeCodes");
if (!(unitTypeCodesObj instanceof List<?>)) {
return;
}
@SuppressWarnings("unchecked")
List<String> unitTypeCodes = (List<String>) unitTypeCodesObj;
if (ValidationUtil.isEmpty(unitTypeCodes)) {
return;
}
List<DataDictionary> unitTypeList = regUnitInfoService.setAndGetUnitTypeList();
if (unitTypeList == null || unitTypeList.isEmpty()) {
return;
}
Map<String, DataDictionary> dataDictionaryMap = unitTypeList.stream()
.collect(Collectors.toMap(DataDictionary::getCode, Function.identity(), (k1, k2) -> k1));
List<String> unitTypeNameList = unitTypeCodes.stream()
.map(dataDictionaryMap::get)
.filter(Objects::nonNull)
.map(DataDictionary::getName)
.collect(Collectors.toList());
String unitTypeNames = String.join(",", unitTypeNameList);
String unitTypeCodesStr = String.join(",", unitTypeCodes);
regUnitInfo.setUnitType(unitTypeNames);
regUnitInfo.setUnitTypeCode(unitTypeCodesStr);
// 省内充装单位1231:生成对接数据账号
final String FILLING_UNIT_TYPE = RegUnitInfoServiceImpl.FILLING_UNIT_TYPE;
if (unitTypeCodes.contains(FILLING_UNIT_TYPE)
&& (ValidationUtil.isEmpty(regUnitInfo.getIsNationwide()) || "0".equals(regUnitInfo.getIsNationwide()))) {
if (ValidationUtil.isEmpty(regUnitInfo.getAppId())) {
String appId = DesUtil.encode(regUnitInfo.getAdminUserId(), RegUnitInfoServiceImpl.SECRETKEY);
if (agencyUserModel == null) {
AgencyUserModel shadowUser = new AgencyUserModel();
shadowUser.setUserId(regUnitInfo.getAdminUserId());
shadowUser.setUserName(appId);
shadowUser.setPassword(RegUnitInfoServiceImpl.DEFAULT_PASSWORD);
try {
Privilege.agencyUserClient.createLoginInfoAppId(shadowUser);
} catch (Exception e) {
// 记录日志并保留原始异常
log.error("创建登录信息失败", e);
throw new RuntimeException("创建登录信息失败", e);
}
}
regUnitInfo.setAppId(appId);
}
}
}
private void updateUnit(Map<String, Object> map, RegUnitInfo regUnitInfo, AgencyUserModel agencyUserModel, CompanyModel companyInfo) {
List<String> unitTypeCodes = (List<String>) map.get("unitTypeCodes");
if (ValidationUtil.isEmpty(unitTypeCodes)) {
return;
}
// 2.更新管理员的角色
Set<String> appCodesSet = new HashSet<>();
Map<Long, List<Long>> roleSeqMap = new HashMap<>();
Map<Long, List<RoleModel>> orgRoles = new HashMap<>();
List<RoleModel> userRoleList = new ArrayList<>();
List<Long> roleIds = new ArrayList<>();
Set<String> roleNameSet = new HashSet<>();
FeignClientResult<List<RoleModel>> roleListResult = Privilege.roleClient.queryRoleList(null, null);
List<RoleModel> roleModels = roleListResult.getResult();
List<DataDictionary> unitTypeList = regUnitInfoService.setAndGetUnitTypeList();
Map<String, DataDictionary> dataDictionaryMap = unitTypeList.stream().collect(Collectors.toMap(DataDictionary::getCode, Function.identity(), (k1, k2) -> k1));
for (String typeCode : unitTypeCodes) {
DataDictionary unitType = dataDictionaryMap.get(typeCode);
String appCode = unitType.getTypeDesc() != null ? unitType.getTypeDesc() : "";
String[] appCodes = appCode.split(",");
Collections.addAll(appCodesSet, appCodes);
roleNameSet.add(unitType.getName());
userRoleList.addAll(roleModels.stream()
.filter(r -> unitType.getExtend().contains(r.getSequenceNbr().toString())).collect(Collectors.toList()));
userRoleList.forEach(r -> {
if (!roleIds.contains(r.getSequenceNbr())) {
roleIds.add(r.getSequenceNbr());
}
});
roleSeqMap.put(companyInfo.getSequenceNbr(), roleIds);
orgRoles.put(companyInfo.getSequenceNbr(), userRoleList);
}
agencyUserModel.setAppCodes(new ArrayList<>(appCodesSet));
agencyUserModel.setOrgRoles(orgRoles);
agencyUserModel.setOrgRoleSeqs(roleSeqMap);
FeignClientResult<AgencyUserModel> userResult = Privilege.agencyUserClient.update(agencyUserModel, regUnitInfo.getAdminUserId());
System.out.println(userResult);
if (userResult == null || userResult.getResult() == null) {
throw new BadRequest("单位更新失败");
}
}
}
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