Commit 726288f9 authored by tianbo's avatar tianbo

refactor(tcm): 优化企业信息更新和 orgCode 替换逻辑

- 新增 unitOrgCodeUpdate 方法,用于企业 orgCode调整历史数据修复 - 优化平台编辑单位层级信息后的数据同步逻辑
parent d28b1d6c
...@@ -8,7 +8,6 @@ import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseEnterpriseInfoDto; ...@@ -8,7 +8,6 @@ import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo; import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.feign.privilege.model.CompanyModel; import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -62,8 +61,25 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI ...@@ -62,8 +61,25 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
Map<String, Object> getProblemInfoBySourceId(@Param("sourceId")String sourceId); Map<String, Object> getProblemInfoBySourceId(@Param("sourceId")String sourceId);
@Update ("update tz_base_enterprise_info set SUPERVISE_ORG_NAME = #{superviseOrgName},SUPERVISE_ORG_CODE = REPLACE(SUPERVISE_ORG_CODE, #{oldSuperviseOrgCode}, #{preSuperviseOrgCode}), ORG_CODE = REPLACE(ORG_CODE, #{oldOrgCode}, #{preOrgCode}) where sequence_nbr = #{sequenceNbr}")
void updateSubCompanyOrgCode(@Param("superviseOrgName") String superviseOrgName, @Param("oldSuperviseOrgCode") String oldSuperviseOrgCode, @Param("preSuperviseOrgCode") String preSuperviseOrgCode, void updateSubCompanyOrgCode(@Param("superviseOrgName") String superviseOrgName, @Param("oldSuperviseOrgCode") String oldSuperviseOrgCode, @Param("preSuperviseOrgCode") String preSuperviseOrgCode,
@Param("oldOrgCode") String oldOrgCode, @Param("preOrgCode") String preOrgCode, @Param("sequenceNbr") Long sequenceNbr); @Param("oldOrgCode") String oldOrgCode, @Param("preOrgCode") String preOrgCode, @Param("sequenceNbr") Long sequenceNbr);
/**
* 用企业新orgCode替换各个表缓存orgCode
* 企业信息
* tz_base_enterprise_info:org_code、
* 人员信息
* cb_org_usr:amos_org_code
* 两个规定
* p_static_day、p_static_week、p_static_month:org_code
* p_check、p_check_input、p_check_shot:org_code
* p_plan:user_dept
* p_plan_task:org_code、user_dept
* 监管业务
* tzs_feedback_suggestions:supervise_org_code
*
* @param oldOrgCode 单位旧orgCode
* @param newOrgCode 单位新orgCode
*/
void updateUnitOrgCode(@Param("oldOrgCode") String oldOrgCode, @Param("newOrgCode") String newOrgCode);
} }
...@@ -187,4 +187,63 @@ ...@@ -187,4 +187,63 @@
select sequence_nbr, org_code, company_code, company_name, company_type from privilege_company where company_code = #{companyCode} and is_deleted = false limit 1 select sequence_nbr, org_code, company_code, company_name, company_type from privilege_company where company_code = #{companyCode} and is_deleted = false limit 1
</select> </select>
<update id="updateSubCompanyOrgCode">
update tz_base_enterprise_info
set SUPERVISE_ORG_NAME = #{superviseOrgName},
SUPERVISE_ORG_CODE = REPLACE(SUPERVISE_ORG_CODE, #{oldSuperviseOrgCode}, #{preSuperviseOrgCode}),
ORG_CODE = IFNULL(REPLACE(ORG_CODE, #{oldOrgCode}, #{preOrgCode}), #{preOrgCode}) -- 兼容旧数据,如果为空则使用新值
where sequence_nbr = #{sequenceNbr}
</update>
<update id="updateUnitOrgCode">
UPDATE tz_base_enterprise_info
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE cb_org_usr
SET amos_org_code = #{newOrgCode}
WHERE
amos_org_code = #{oldOrgCode};
UPDATE p_static_day
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE p_static_week
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE p_static_month
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE p_check
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE p_check_input
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE p_check_shot
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE p_plan_task
SET org_code = #{newOrgCode}
WHERE
org_code = #{oldOrgCode};
UPDATE tzs_feedback_suggestions
SET supervise_org_code = #{newOrgCode}
WHERE
supervise_org_code = #{oldOrgCode};
UPDATE p_plan
SET user_dept = "replace" ( user_dept, #{oldOrgCode}, #{newOrgCode} )
WHERE
user_dept LIKE CONCAT('%', #{oldOrgCode}, '%');
UPDATE p_plan_task
SET user_dept = "replace" ( user_dept, #{oldOrgCode}, #{newOrgCode} )
WHERE
user_dept LIKE CONCAT('%', #{oldOrgCode}, '%');
</update>
</mapper> </mapper>
...@@ -5,6 +5,7 @@ import io.swagger.annotations.Api; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
...@@ -39,4 +40,11 @@ public class HistoryDataDealController { ...@@ -39,4 +40,11 @@ public class HistoryDataDealController {
return ResponseHelper.buildResponse(historyDataDealService.userPersonTypeUpdate()); return ResponseHelper.buildResponse(historyDataDealService.userPersonTypeUpdate());
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/orgCode/update")
@ApiOperation(httpMethod = "PUT", value = "企业orgCode调整历史数据修复")
public ResponseModel<Boolean> unitOrgCodeUpdate(@RequestParam String oldOrgCode, @RequestParam String newOrgCode) {
return ResponseHelper.buildResponse(historyDataDealService.unitOrgCodeUpdate(oldOrgCode, newOrgCode));
}
} }
...@@ -27,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -27,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
...@@ -37,7 +36,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper; ...@@ -37,7 +36,6 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
/** /**
...@@ -308,7 +306,7 @@ public class TzBaseEnterpriseInfoController extends BaseController { ...@@ -308,7 +306,7 @@ public class TzBaseEnterpriseInfoController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyInfoUpdateById", method = RequestMethod.POST) @RequestMapping(value = "/companyInfoUpdateById", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "根据ID修改企业信息", notes = "根据ID修改企业信息") @ApiOperation(httpMethod = "POST", value = "根据ID修改企业信息-监管单位使用", notes = "根据ID修改企业信息-监管单位使用")
public ResponseModel<TzBaseEnterpriseInfoDto> companyInfoUpdateById(@RequestBody Map<String, Object> map) { public ResponseModel<TzBaseEnterpriseInfoDto> companyInfoUpdateById(@RequestBody Map<String, Object> map) {
return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.updateCompanyInfoById(map, getSelectedOrgInfo())); return ResponseHelper.buildResponse(iTzBaseEnterpriseInfoService.updateCompanyInfoById(map, getSelectedOrgInfo()));
} }
......
package com.yeejoin.amos.boot.module.tcm.biz.listener; package com.yeejoin.amos.boot.module.tcm.biz.listener;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
...@@ -56,7 +57,15 @@ public class PlatformUserTopicMessage extends EmqxListener { ...@@ -56,7 +57,15 @@ public class PlatformUserTopicMessage extends EmqxListener {
platformTokenService.setRequestContext(); platformTokenService.setRequestContext();
JSONObject jsonObject = JSON.parseObject(message.toString()); JSONObject jsonObject = JSON.parseObject(message.toString());
JSONObject result = jsonObject.getJSONObject("result"); JSONObject result = jsonObject.getJSONObject("result");
JSONObject dataResult = result.getJSONObject("result"); JSONArray dataResultList = new JSONArray();
JSONObject dataResult = new JSONObject();
if (result.get("result") instanceof JSONArray) {
dataResultList = JSON.parseArray(result.get("result").toString());
// 处理 dataList
} else {
// 处理 data
dataResult = result.getJSONObject("result");
}
String path = result.getString("path"); String path = result.getString("path");
String agencyCode = jsonObject.getString("agencyCode"); String agencyCode = jsonObject.getString("agencyCode");
if (!amosAgencyCode.equals(agencyCode)) { if (!amosAgencyCode.equals(agencyCode)) {
...@@ -65,8 +74,10 @@ public class PlatformUserTopicMessage extends EmqxListener { ...@@ -65,8 +74,10 @@ public class PlatformUserTopicMessage extends EmqxListener {
try { try {
if (StringUtils.isNotEmpty(path)) { if (StringUtils.isNotEmpty(path)) {
if (path.contains("company")) { if (path.contains("company")) {
if ("监管机构".equals(dataResult.get("companyType"))) {
equipmentCategoryService.creatTree();
}
tzBaseEnterpriseInfoService.refreshCompanyInfo(dataResult); tzBaseEnterpriseInfoService.refreshCompanyInfo(dataResult);
// equipmentCategoryService.creatTree();
} else if (path.contains("agencyuser")) { } else if (path.contains("agencyuser")) {
regUnitInfoService.updateAdminInfo(dataResult); regUnitInfoService.updateAdminInfo(dataResult);
} }
......
...@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission; import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo; import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -14,6 +17,7 @@ import org.springframework.util.StopWatch; ...@@ -14,6 +17,7 @@ import org.springframework.util.StopWatch;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**
...@@ -27,9 +31,12 @@ public class HistoryDataDealServiceImpl { ...@@ -27,9 +31,12 @@ public class HistoryDataDealServiceImpl {
private TzsUserPermissionServiceImpl userPermissionService; private TzsUserPermissionServiceImpl userPermissionService;
public HistoryDataDealServiceImpl(TzsUserInfoServiceImpl userInfoService, TzsUserPermissionServiceImpl userPermissionService) { private TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService;
public HistoryDataDealServiceImpl(TzsUserInfoServiceImpl userInfoService, TzsUserPermissionServiceImpl userPermissionService, TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService) {
this.userInfoService = userInfoService; this.userInfoService = userInfoService;
this.userPermissionService = userPermissionService; this.userPermissionService = userPermissionService;
this.baseEnterpriseInfoService = baseEnterpriseInfoService;
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -88,4 +95,35 @@ public class HistoryDataDealServiceImpl { ...@@ -88,4 +95,35 @@ public class HistoryDataDealServiceImpl {
log.info("刷存量人员类型结束,人员数量:{},耗时:{}秒", users.size(), stopWatch.getTotalTimeSeconds()); log.info("刷存量人员类型结束,人员数量:{},耗时:{}秒", users.size(), stopWatch.getTotalTimeSeconds());
return users.size(); return users.size();
} }
/**
* 用企业新orgCode替换各个表缓存orgCode
* 企业信息
* tz_base_enterprise_info:org_code、
* 人员信息
* cb_org_usr:amos_org_code
* 两个规定
* p_static_day、p_static_week、p_static_month:org_code
* p_check、p_check_input、p_check_shot:org_code
* p_plan:user_dept
* p_plan_task:org_code、user_dept
* 监管业务
* tzs_feedback_suggestions:supervise_org_code
*
* @param oldOrgCode 单位旧orgCode
* @param newOrgCode 单位新orgCode
* @return
*/
@Transactional(rollbackFor = Exception.class)
public Boolean unitOrgCodeUpdate(String oldOrgCode, String newOrgCode) {
log.info("用企业新orgCode替换各个表缓存orgCode开始");
String newSuperviseOrgCode = newOrgCode.substring(0, newOrgCode.lastIndexOf("*"));
HashMap<String, Object> platformCompanyInfo = (HashMap<String, Object>) Privilege.companyClient.queryByOrgcode(newSuperviseOrgCode).getResult();
// 目前平台返回key为compnay(存在拼写错误)
CompanyModel parentModel = JSON.parseObject(JSON.toJSONString(platformCompanyInfo.get("compnay")), CompanyModel.class);
TzBaseEnterpriseInfo baseCompanyInfo = baseEnterpriseInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<TzBaseEnterpriseInfo>().eq(TzBaseEnterpriseInfo::getOrgCode, oldOrgCode));
baseEnterpriseInfoService.updateUnitOrgCode(baseCompanyInfo, parentModel, baseCompanyInfo.getSuperviseOrgCode(), newSuperviseOrgCode, oldOrgCode, newOrgCode);
log.info("用企业新orgCode替换各个表缓存orgCode结束");
return true;
}
} }
...@@ -17,15 +17,10 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; ...@@ -17,15 +17,10 @@ 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.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RequestContextWrapper;
import com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto; import com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto;
import com.yeejoin.amos.boot.module.common.biz.event.CommonPublisher; import com.yeejoin.amos.boot.module.common.biz.event.CommonPublisher;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent; import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.tcm.api.dto.BaseUnitLicenceDto; import com.yeejoin.amos.boot.module.tcm.api.dto.*;
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.TzIndividualityDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzsBaseInstitutionDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.*; import com.yeejoin.amos.boot.module.tcm.api.entity.*;
import com.yeejoin.amos.boot.module.tcm.api.enums.EnterpriseEnums; import com.yeejoin.amos.boot.module.tcm.api.enums.EnterpriseEnums;
import com.yeejoin.amos.boot.module.tcm.api.enums.LicenceTypeEnum; import com.yeejoin.amos.boot.module.tcm.api.enums.LicenceTypeEnum;
...@@ -1085,9 +1080,9 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1085,9 +1080,9 @@ public class TzBaseEnterpriseInfoServiceImpl
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString())); tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo = tzBaseEnterpriseInfoService.getById(tzBaseEnterpriseInfo.getSequenceNbr()); tzBaseEnterpriseInfo = tzBaseEnterpriseInfoService.getById(tzBaseEnterpriseInfo.getSequenceNbr());
String superviseOrgCode = ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")); String newSuperviseOrgCode = ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode"));
if (!tzBaseEnterpriseInfo.getSuperviseCode().equals(superviseOrgCode)) { if (!tzBaseEnterpriseInfo.getSuperviseCode().equals(newSuperviseOrgCode)) {
System.out.println("监管单位变更"); System.out.println("监管单位变更");
} }
...@@ -1104,7 +1099,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1104,7 +1099,7 @@ public class TzBaseEnterpriseInfoServiceImpl
tzBaseEnterpriseInfo.setContactPhone(ObjectUtils.isEmpty(map.get("contactPhone")) ? null : String.valueOf(map.get("contactPhone"))); 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.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.setIndustrySupervisor(ObjectUtils.isEmpty(map.get("industrySupervisor")) ? null : String.valueOf(map.get("industrySupervisor")));
tzBaseEnterpriseInfo.setSuperviseOrgCode(superviseOrgCode); tzBaseEnterpriseInfo.setSuperviseOrgCode(newSuperviseOrgCode);
tzBaseEnterpriseInfo.setSuperviseOrgName(ObjectUtils.isEmpty(map.get("superviseOrgName")) ? null : String.valueOf(map.get("superviseOrgName"))); 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.setOtherAccessories(ObjectUtils.isEmpty(map.get("otherAccessories")) ? null : JSON.toJSONString(map.get("otherAccessories")));
tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : (String)map.get("legalPerson")); tzBaseEnterpriseInfo.setLegalPerson(ObjectUtils.isEmpty(map.get("legalPerson")) ? null : (String)map.get("legalPerson"));
...@@ -1211,11 +1206,11 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1211,11 +1206,11 @@ public class TzBaseEnterpriseInfoServiceImpl
log.error("更新单位错误: {}", companyResult); log.error("更新单位错误: {}", companyResult);
throw new BadRequest("更新单位失败!"); throw new BadRequest("更新单位失败!");
} }
String orgCode = Optional.ofNullable(companyResult.getResult()).map(CompanyModel::getOrgCode).orElse(null); String newOrgCode = Optional.ofNullable(companyResult.getResult()).map(CompanyModel::getOrgCode).orElse(null);
updateModel.setOrgCode(orgCode); updateModel.setOrgCode(newOrgCode);
// 更新企业的org_code // 更新企业的org_code
UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("org_code", orgCode); updateWrapper.set("org_code", newOrgCode);
updateWrapper.eq("sequence_nbr", tzBaseEnterpriseInfo.getSequenceNbr()); updateWrapper.eq("sequence_nbr", tzBaseEnterpriseInfo.getSequenceNbr());
tzBaseEnterpriseInfoService.update(updateWrapper); tzBaseEnterpriseInfoService.update(updateWrapper);
} }
...@@ -1374,8 +1369,8 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1374,8 +1369,8 @@ public class TzBaseEnterpriseInfoServiceImpl
} }
/** /**
* 平台编辑单位信息后, 异步通知, 刷新tz_base_enterprise_info表org_code * 平台编辑单位层级信息后, 异步通知, 刷新tz_base_enterprise_info表org_code
* * 同时更新其他表缓存的企业org_code
* *
* @param dataResult dataResult * @param dataResult dataResult
* @author yangyang * @author yangyang
...@@ -1392,6 +1387,8 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1392,6 +1387,8 @@ public class TzBaseEnterpriseInfoServiceImpl
return; return;
} }
List<CompanyModel> companyModels = result.getResult(); List<CompanyModel> companyModels = result.getResult();
// 只处理非监管机构
companyModels = companyModels.stream().filter(i -> !i.getCompanyType().equals("监管机构")).collect(Collectors.toList());
List<String> useCodes = companyModels.stream().map(CompanyModel::getCompanyCode).filter(Objects::nonNull).collect(Collectors.toList()); List<String> useCodes = companyModels.stream().map(CompanyModel::getCompanyCode).filter(Objects::nonNull).collect(Collectors.toList());
if (!ValidationUtil.isEmpty(companyBo.getCompanyCode())) { if (!ValidationUtil.isEmpty(companyBo.getCompanyCode())) {
useCodes.add(companyBo.getCompanyCode()); useCodes.add(companyBo.getCompanyCode());
...@@ -1399,23 +1396,34 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1399,23 +1396,34 @@ public class TzBaseEnterpriseInfoServiceImpl
Map<String, List<CompanyModel>> companyModelMap = companyModels.stream().collect(Collectors.groupingBy(CompanyModel::getCompanyCode)); Map<String, List<CompanyModel>> companyModelMap = companyModels.stream().collect(Collectors.groupingBy(CompanyModel::getCompanyCode));
List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectList(new QueryWrapper<TzBaseEnterpriseInfo>().in("use_code", useCodes)); List<TzBaseEnterpriseInfo> tzBaseEnterpriseInfos = tzBaseEnterpriseInfoMapper.selectList(new QueryWrapper<TzBaseEnterpriseInfo>().in("use_code", useCodes));
// privilege_company 有触发器更新,只需要更新 tz_base_enterprise_info // privilege_company 有触发器更新,只需要更新 tz_base_enterprise_info
int updateCount = 0;
if (!ValidationUtil.isEmpty(tzBaseEnterpriseInfos)) { if (!ValidationUtil.isEmpty(tzBaseEnterpriseInfos)) {
for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) { for (TzBaseEnterpriseInfo tzBaseEnterpriseInfo : tzBaseEnterpriseInfos) {
String oldOrgCode = tzBaseEnterpriseInfo.getOrgCode();// 旧的org_code String oldOrgCode = tzBaseEnterpriseInfo.getOrgCode();// 旧的org_code
CompanyModel companyModel = companyModelMap.get(tzBaseEnterpriseInfo.getUseCode()).get(0); CompanyModel companyModel = companyModelMap.get(tzBaseEnterpriseInfo.getUseCode()).get(0);
String preOrgCode = companyModel.getOrgCode();// 新的org_code String newOrgCode = companyModel.getOrgCode();// 新的org_code
String oldSuperviseOrgCode = tzBaseEnterpriseInfo.getSuperviseOrgCode(); String oldSuperviseOrgCode = tzBaseEnterpriseInfo.getSuperviseOrgCode();
String preSuperviseOrgCode = companyModel.getOrgCode().replace("*" + companyModel.getCompanyOrgCode(), ""); String newSuperviseOrgCode = companyModel.getOrgCode().replace("*" + companyModel.getCompanyOrgCode(), "");
HashMap<String, Object> parentMessage = (HashMap<String, Object>) Privilege.companyClient.queryByOrgcode(preSuperviseOrgCode).getResult(); // 更新 tz_base_enterprise_info。只有管辖机构有改动才更新
if (!newSuperviseOrgCode.equals(oldSuperviseOrgCode)) {
HashMap<String, Object> parentMessage = (HashMap<String, Object>) Privilege.companyClient.queryByOrgcode(newSuperviseOrgCode).getResult();
// 目前平台返回key为compnay(存在拼写错误) // 目前平台返回key为compnay(存在拼写错误)
CompanyModel parentModel = JSON.parseObject(JSON.toJSONString(parentMessage.get("compnay")), CompanyModel.class); CompanyModel parentModel = JSON.parseObject(JSON.toJSONString(parentMessage.get("compnay")), CompanyModel.class);
// 更新 tz_base_enterprise_info
tzBaseEnterpriseInfoMapper.updateSubCompanyOrgCode(parentModel.getCompanyName(), oldSuperviseOrgCode, preSuperviseOrgCode, oldOrgCode, preOrgCode, tzBaseEnterpriseInfo.getSequenceNbr()); updateUnitOrgCode(tzBaseEnterpriseInfo, parentModel, oldSuperviseOrgCode, newSuperviseOrgCode, oldOrgCode, newOrgCode);
updateCount++;
}
} }
log.info("刷新企业信息成功,共更新{}条数据", updateCount);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("刷新企业信息发生异常", e); log.error("刷新企业信息发生异常", e);
} }
} }
public void updateUnitOrgCode(TzBaseEnterpriseInfo tzBaseEnterpriseInfo, CompanyModel parentModel, String oldSuperviseOrgCode, String newSuperviseOrgCode, String oldOrgCode, String newOrgCode) {
tzBaseEnterpriseInfoMapper.updateSubCompanyOrgCode(parentModel.getCompanyName(), oldSuperviseOrgCode, newSuperviseOrgCode, oldOrgCode, newOrgCode, tzBaseEnterpriseInfo.getSequenceNbr());
tzBaseEnterpriseInfoMapper.updateUnitOrgCode(oldOrgCode, newOrgCode);
}
} }
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