Commit 86653211 authored by tianbo's avatar tianbo

fix(module:jg): 修复监管单位查看功能及优化数据修正逻辑

- 修复监管单位查看功能,增加 client 参数区分不同客户端类型 - 优化数据修正逻辑,分别针对人员资质、企业许可、设备维保和检验超期问题进行修复 - 更新 ES 设备信息以反映最新的监管单位变更
parent 7583ea0a
......@@ -30,8 +30,9 @@ public interface JgChangeRegistrationNameMapper extends BaseMapper<JgChangeRegis
@Param("sort") SortVo sortMap,
@Param("dto") JgChangeRegistrationNameDto dto,
@Param("roleIds") List<String> roleIds,
@Param("companyCode") String companyCode,
@Param("currentUserId") String exeUserId);
@Param("superviseOrgCode") String superviseOrgCode,
@Param("currentUserId") String exeUserId,
@Param("client") String client);
List<ChangeRegistrationNameVo> queryChangeRegistrationNameInIds(@Param("ids") List<String> ids);
......
......@@ -2714,7 +2714,7 @@
tup.cert_no certNo,
tup.expiry_date expiryDate,
tup.expiry_date as problemTime,
tui.name userName,
tui.name userName,
tui.sequence_nbr userSeq
FROM
tzs_user_permission tup
......
......@@ -18,27 +18,31 @@
</delete>
<sql id="page_list">
select ur.sequence_nbr as sequenceNbr,
ur.instance_id as instanceId,
ur.audit_status as auditStatus,
ur.apply_no as applyNo,
DATE_FORMAT(ur.rec_date,'%Y-%m-%d') as recDate,
DATE_FORMAT(ur.create_date,'%Y-%m-%d') as createDate,
DATE_FORMAT(ur.audit_pass_date,'%Y-%m-%d') as auditPassDate,
ur.receive_org_code as receiveOrgCode,
ur.receive_org_name as receiveOrgName,
ur.receive_company_code as receiveCompanyCode,
ur.use_unit_name as useUnitName,
ur.new_use_unit_name AS newUseUnitName,
ur.promoter,
ur.create_user_id as createUserId,
ur.next_executor_ids as nextExecutorIds,
ur.next_execute_user_ids as nextExecuteUserIds,
ur.next_task_id as nextTaskId,
(select group_concat(use_registration_code) from (SELECT use_registration_code from tzs_jg_use_registration_manage where sequence_nbr in (SELECT
certificate_seq from tzs_jg_change_registration_name_eq where name_change_registration_id = ur.sequence_nbr )order by rec_date desc)) as
certificateCodes
from tzs_jg_change_registration_name ur
SELECT
ur.sequence_nbr AS sequenceNbr,
ur.instance_id AS instanceId,
ur.audit_status AS auditStatus,
ur.apply_no AS applyNo,
DATE_FORMAT(ur.rec_date, '%Y-%m-%d') AS recDate,
DATE_FORMAT(ur.create_date, '%Y-%m-%d') AS createDate,
DATE_FORMAT(ur.audit_pass_date, '%Y-%m-%d') AS auditPassDate,
ur.receive_org_code AS receiveOrgCode,
ur.receive_org_name AS receiveOrgName,
ur.receive_company_code AS receiveCompanyCode,
ur.use_unit_name AS useUnitName,
ur.new_use_unit_name AS newUseUnitName,
ur.promoter,
ur.create_user_id AS createUserId,
ur.next_executor_ids AS nextExecutorIds,
ur.next_execute_user_ids AS nextExecuteUserIds,
ur.next_task_id AS nextTaskId,
GROUP_CONCAT(DISTINCT urm.use_registration_code) AS certificateCodes,
GROUP_CONCAT(DISTINCT urm.supervise_org_code) AS superviseOrgCode
FROM tzs_jg_change_registration_name ur
LEFT JOIN tzs_jg_change_registration_name_eq eq
ON ur.sequence_nbr = eq.name_change_registration_id
LEFT JOIN tzs_jg_use_registration_manage urm
ON eq.certificate_seq = urm.sequence_nbr
</sql>
<select id="getListPage" resultType="java.util.Map">
......@@ -69,15 +73,23 @@
</foreach>
</if>
<if test="dto.type == 'supervision'">
AND (ur.receive_company_code = #{companyCode} or ur.transfer_to_user_ids LIKE concat ('%',
#{currentUserId}, '%'))
AND ur.instance_id is not null
<choose>
<when test="client == 'jgLook'">
and urm.supervise_org_code like concat(#{superviseOrgCode},'%')
</when>
<otherwise>
AND (ur.receive_company_code = #{dto.receiveCompanyCode} or ur.transfer_to_user_ids LIKE concat ('%',
#{currentUserId}, '%'))
AND ur.instance_id is not null
</otherwise>
</choose>
</if>
<if test="dto.type == 'company'">
and (ur.use_unit_credit_code = #{dto.useUnitCreditCode} or ur.transfer_to_user_ids LIKE concat ('%',
#{currentUserId}, '%'))
</if>
</where>
group by ur.sequence_nbr
order by
<if test="sort != null">
ur.${sort.field} ${sort.sortType},
......
......@@ -13,6 +13,7 @@ import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationName
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
......@@ -115,7 +116,9 @@ public class JgChangeRegistrationNameController extends BaseController {
public ResponseModel<Page<Map<String, Object>>> getList(JgChangeRegistrationNameDto dto,
@RequestParam(value = "sort",required = false) String sort,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
@RequestParam(value = "size") int size,
@ApiParam(value = "客户端类型: jgAudit-监管审核;jgLook-监管查看")
@RequestParam(value = "client", required = false, defaultValue = "jgAudit") String client) {
Page<Map<String, Object>> page = new Page<>(current, size);
ReginParams reginParams = getSelectedOrgInfo();
if(reginParams.getCompany().getLevel().equals(COMPANY_TYPE_COMPANY)){
......@@ -123,8 +126,9 @@ public class JgChangeRegistrationNameController extends BaseController {
dto.setUseUnitCreditCode(reginParams.getCompany().getCompanyCode());
} else {
dto.setType(COMPANY_TYPE_SUPERVISION);
dto.setReceiveCompanyCode(reginParams.getCompany().getCompanyCode());
}
return ResponseHelper.buildResponse(jgChangeRegistrationNameService.getList(dto,sort, page, dto.getRoleIds(),reginParams.getCompany().getCompanyCode()));
return ResponseHelper.buildResponse(jgChangeRegistrationNameService.getList(dto,sort, page, dto.getRoleIds(), reginParams.getCompany().getOrgCode(), client));
}
......
......@@ -218,7 +218,7 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "生成维保、检验检测超期数据", notes = "生成维保、检验检测超期数据")
@GetMapping(value = "/gen/test1")
public ResponseModel<String> test1() {
......@@ -231,7 +231,7 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "生成检验检测超期数据", notes = "生成检验检测超期数据")
@GetMapping(value = "/gen/test2")
public ResponseModel<String> test2() {
......@@ -244,7 +244,7 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "生成维保超期数据", notes = "生成维保超期数据")
@GetMapping(value = "/gen/test3")
public ResponseModel<String> test3() {
......@@ -257,7 +257,7 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "生成人员资质超期数据", notes = "生成人员资质超期数据")
@GetMapping(value = "/gen/test4")
public ResponseModel<String> test4() {
......@@ -269,12 +269,30 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@ApiOperation(httpMethod = "GET", value = "修改维保超期脏数据 && 修改检验检测超期数据",
notes = "修改维保超期脏数据 && 修改检验检测超期数据")
@GetMapping(value = "/gen/update3")
public ResponseModel<String> update3() {
safetyProblemTracingGenService.update3MaintenanceCheck();
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "修复维保超期脏数据 && 修复检验检测超期数据",
notes = "修复维保超期脏数据 && 修复检验检测超期数据")
@GetMapping(value = "/repair/maintenanceInspectionOverdue")
public ResponseModel<String> repairMaintenanceAndInspectionOverdueProblem() {
safetyProblemTracingGenService.repairMaintenanceAndInspectionOverdueProblem();
return ResponseHelper.buildResponse("success");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "修复企业许可超期数据",
notes = "修复企业许可超期数据")
@GetMapping(value = "/repair/unitLicenceOverdue")
public ResponseModel<String> repairEnterpriseOverdueProblem() {
safetyProblemTracingGenService.repairEnterpriseOverdueProblem();
return ResponseHelper.buildResponse("success");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "修复人员资质超期数据",
notes = "修复人员资质超期数据")
@GetMapping(value = "/repair/personnelQualificationOverdue")
public ResponseModel<String> repairPersonnelQualificationOverdueProblem() {
safetyProblemTracingGenService.repairPersonnelQualificationOverdueProblem();
return ResponseHelper.buildResponse("success");
}
......@@ -283,7 +301,7 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "成企业许可超期问题数据", notes = "成企业许可超期问题数据")
@GetMapping(value = "/gen/unitLicenseProblem")
public ResponseModel<String> genUnitLicenseProblem() {
......@@ -296,7 +314,7 @@ public class SafetyProblemTracingController extends BaseController {
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "生成超设计使用年限问题", notes = "生成超设计使用年限问题")
@GetMapping(value = "/gen/overDesignLifeProblem")
public ResponseModel<String> genOverDesignLifeProblem() {
......
......@@ -18,7 +18,9 @@ import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgChangeRegistrationNameEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgChangeRegistrationNameMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgRegistrationHistoryMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationNameService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
......@@ -27,10 +29,8 @@ import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICompensateFlowDataOfRedis;
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......@@ -1089,7 +1089,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
public Page<Map<String, Object>> getList(JgChangeRegistrationNameDto dto, String sort, Page<Map<String, Object>> page, List<String> roleIds, String companyCode) {
public Page<Map<String, Object>> getList(JgChangeRegistrationNameDto dto, String sort, Page<Map<String, Object>> page, List<String> roleIds, String superviseOrgCode, String client) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(dto.getReceiveOrgCode())) {
String[] receiveOrgIdList = dto.getReceiveOrgCode().split("_");
if (receiveOrgIdList.length > 1) {
......@@ -1098,7 +1098,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
}
SortVo sortMap = commonService.sortFieldConversion(sort);
return this.baseMapper.getListPage(page, sortMap, dto, roleIds, companyCode, RequestContext.getExeUserId());
return this.baseMapper.getListPage(page, sortMap, dto, roleIds, superviseOrgCode, RequestContext.getExeUserId(), client);
}
@Override
......
......@@ -13,7 +13,9 @@ import com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgOtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
import org.eclipse.paho.client.mqttv3.MqttException;
......@@ -56,6 +58,10 @@ public class SafetyProblemTracingGenServiceImpl{
@Autowired
TzsUserInfoMapper tzsUserInfoMapper;
@Autowired
TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Scheduled(cron = "0 0 1 * * ?")
@SchedulerLock(name = "executeSafetyProblemCheck", lockAtMostFor = "PT5H", lockAtLeastFor = "PT10M")
public void executeSafetyProblemCheck() {
......@@ -118,8 +124,87 @@ public class SafetyProblemTracingGenServiceImpl{
logger.info("企业许可超期检查结束");
}
public void update3MaintenanceCheck() {
logger.info("开始修正数据");
public void repairPersonnelQualificationOverdueProblem() {
logger.info("开始人员资质超期数据修正");
// 查询当天资质超期的人员数据
List<Map<String, Object>> outOfQualificationRecords = commonMapper.queryOutOfCertificationRecord();
if (ValidationUtil.isEmpty(outOfQualificationRecords)) {
return;
}
Set<String> realOutOfQualificationRecord = outOfQualificationRecords.stream().map(m -> m.get("problemSourceId").toString()).collect(Collectors.toSet());
// 需要修正业务表的数据
List<String> correctData = Lists.newArrayList();
List<SafetyProblemTracing> problemList = safetyProblemTracingService.list(new LambdaQueryWrapper<SafetyProblemTracing>()
.select(SafetyProblemTracing::getSourceId, SafetyProblemTracing::getPrincipalUnitCode)
.eq(SafetyProblemTracing::getProblemStatusCode, SafetyProblemStatusEnum.UNHANDLED.getCode())
.eq(SafetyProblemTracing::getProblemTypeCode, SafetyProblemTypeEnum.ZZCQ.getProblemTypeCode())
.eq(SafetyProblemTracing::getIsDelete,Boolean.FALSE)
);
if (!ValidationUtil.isEmpty(problemList)) {
Set<String> problemIds = problemList.stream().map(SafetyProblemTracing::getSourceId).collect(Collectors.toSet());
problemIds.removeAll(realOutOfQualificationRecord);
correctData.addAll(problemIds);
if (!ValidationUtil.isEmpty(correctData)) {
// 更新问题表
safetyProblemTracingService.lambdaUpdate()
.set(SafetyProblemTracing::getProblemStatusCode, SafetyProblemStatusEnum.HANDLED.getCode())
.set(SafetyProblemTracing::getProblemStatus, SafetyProblemStatusEnum.HANDLED.getName())
.in(SafetyProblemTracing::getSourceId, correctData)
.eq(SafetyProblemTracing::getProblemTypeCode, SafetyProblemTypeEnum.ZZCQ.getProblemTypeCode())
.eq(SafetyProblemTracing::getIsDelete,Boolean.FALSE)
.update();
}
}
logger.info("人员资质超期数据修正结束,更新数据:{}条", correctData.size());
}
public void repairEnterpriseOverdueProblem() {
logger.info("开始企业许可超期数据修正");
// 查询当天许可超期的企业许可数据
List<Map<String, Object>> outOfQualificationRecords = commonMapper.queryOutOfQualificationRecord();
if (ValidationUtil.isEmpty(outOfQualificationRecords)) {
return;
}
Set<String> realOutOfQualificationRecord = outOfQualificationRecords.stream().map(m -> m.get("problemSourceId").toString()).collect(Collectors.toSet());
// 需要修正业务表的数据
List<String> correctData = Lists.newArrayList();
List<SafetyProblemTracing> problemList = safetyProblemTracingService.list(new LambdaQueryWrapper<SafetyProblemTracing>()
.select(SafetyProblemTracing::getSourceId, SafetyProblemTracing::getPrincipalUnitCode)
.eq(SafetyProblemTracing::getProblemStatusCode, SafetyProblemStatusEnum.UNHANDLED.getCode())
.eq(SafetyProblemTracing::getProblemTypeCode, SafetyProblemTypeEnum.XKCQ.getProblemTypeCode())
.eq(SafetyProblemTracing::getIsDelete,Boolean.FALSE)
);
if (!ValidationUtil.isEmpty(problemList)) {
Set<String> problemIds = problemList.stream().map(SafetyProblemTracing::getSourceId).collect(Collectors.toSet());
problemIds.removeAll(realOutOfQualificationRecord);
correctData.addAll(problemIds);
if (!ValidationUtil.isEmpty(correctData)) {
// 更新问题表
safetyProblemTracingService.lambdaUpdate()
.set(SafetyProblemTracing::getProblemStatusCode, SafetyProblemStatusEnum.HANDLED.getCode())
.set(SafetyProblemTracing::getProblemStatus, SafetyProblemStatusEnum.HANDLED.getName())
.in(SafetyProblemTracing::getSourceId, correctData)
.eq(SafetyProblemTracing::getProblemTypeCode, SafetyProblemTypeEnum.XKCQ.getProblemTypeCode())
.eq(SafetyProblemTracing::getIsDelete,Boolean.FALSE)
.update();
}
// 更新企业表问题状态。同一企业所有资质都正常才更新
Set<String> problemUnitCreditCode = problemList.stream().map(SafetyProblemTracing::getPrincipalUnitCode).collect(Collectors.toSet());
Set<String> problemUnitCodes = outOfQualificationRecords.stream().map(item -> item.get("useUnitCode").toString()).collect(Collectors.toSet());
// 错误问题企业如果没在当天的许可超期数据中,则更新企业状态为正常
problemUnitCreditCode.removeAll(problemUnitCodes);
if (!ValidationUtil.isEmpty(problemUnitCreditCode)) {
tzBaseEnterpriseInfoMapper.update(new TzBaseEnterpriseInfo(),
new LambdaUpdateWrapper<TzBaseEnterpriseInfo>()
.set(TzBaseEnterpriseInfo::getStatus, "1")
.in(TzBaseEnterpriseInfo::getUseCode, problemUnitCreditCode));
}
}
logger.info("企业许可超期数据修正结束,更新数据:{}条", correctData.size());
}
public void repairMaintenanceAndInspectionOverdueProblem() {
logger.info("开始设备维保备案和建议检查超期数据修正");
Set<String> realOutOfMaintenanceRecord = commonMapper.queryOutOfMaintenanceRecord().stream().map(m -> m.get("RECORD").toString()).collect(Collectors.toSet());
Set<String> realOutOfInspectRecord = commonMapper.queryOutOfInspectionRecord().stream().map(m -> m.get("RECORD").toString()).collect(Collectors.toSet());
// 需要修正业务表+es的数据
......@@ -149,7 +234,7 @@ public class SafetyProblemTracingGenServiceImpl{
// 没有则可以愉快地更新设备状态为正常
correctData.addAll(maintenanceSet);
// 再次查询检验这些数据有没有维保超期问题
inspectionSet.retainAll(realOutOfMaintenanceRecord);
inspectionSet.removeAll(realOutOfMaintenanceRecord);
// 没有则可以愉快地更新设备状态为正常
correctData.addAll(inspectionSet);
......@@ -161,7 +246,7 @@ public class SafetyProblemTracingGenServiceImpl{
equipEsDto.setProblemStatus(null);
}
esEquipmentCategory.saveAll(equipEsDtoIter);
logger.info("修改正数据条数:{}", correctData.size());
logger.info("设备维保备案和检验超期数据修正完成,更新数据:{}条", correctData.size());
}
private List<String> handleOutOfMaintenanceErrorData(Set<String> realOutOfMaintenanceRecord) {
......
......@@ -18,6 +18,8 @@ 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.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.common.api.dto.UserPermissionDto;
import com.yeejoin.amos.boot.module.common.api.enums.UnitDataSourceEnum;
import com.yeejoin.amos.boot.module.common.biz.event.CommonPublisher;
......@@ -131,6 +133,9 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired
private EmqKeeper emqKeeper;
@Autowired
private ESEquipmentCategory esEquipmentCategory;
private static final Map<String ,String> JYJC_CERT_MAP = new HashMap<>();
@Autowired
......@@ -1458,7 +1463,9 @@ public class TzBaseEnterpriseInfoServiceImpl
tzBaseEnterpriseInfoMapper.updateRedundantSupervisionOrgCodeUnit(newModel.getString("companyName"), newOrgCode, oldOrgCode);
// 3.2 更新业务表统计表冗余的监管单位orgCode
tzBaseEnterpriseInfoMapper.updateRedundantSupervisionOrgCodeStatistics(newOrgCode, oldOrgCode);
// 4. 发送数据刷新事件 - 内存分页处理
// 4. 更新idx_biz_view_jg_all es设备信息
updateEquipmentJgAllEs(newOrgCode, oldOrgCode, equipmentRecordList);
// 5. 发送数据刷新事件 - 内存分页处理
// 处理企业数据
publishDataRefreshEvents(companySeqList, DataRefreshEvent.DataType.enterprise, 1000);
// 处理设备数据
......@@ -1470,6 +1477,33 @@ public class TzBaseEnterpriseInfoServiceImpl
}
}
private void updateEquipmentJgAllEs(String newOrgCode, String oldOrgCode, List<String> equipmentRecordList) {
if (ValidationUtil.isEmpty(equipmentRecordList)) {
return;
}
int batchSize = 1000;
for (int i = 0; i < equipmentRecordList.size(); i += batchSize) {
int endIndex = Math.min(i + batchSize, equipmentRecordList.size());
List<String> subList = equipmentRecordList.subList(i, endIndex);
Iterable<ESEquipmentCategoryDto> equipmentCategoryIterator = esEquipmentCategory.findAllById(subList);
List<ESEquipmentCategoryDto> updatedCategories = new ArrayList<>();
equipmentCategoryIterator.forEach(equipmentCategory -> {
if (ValidationUtil.isEmpty(equipmentCategory.getORG_BRANCH_CODE())) {
equipmentCategory.setORG_BRANCH_CODE(newOrgCode);// 补偿旧数据es属地监管部门为空,则用数据库中设备属地监管部门更新
} else {
equipmentCategory.setORG_BRANCH_CODE(equipmentCategory.getORG_BRANCH_CODE().replace(oldOrgCode, newOrgCode));
}
updatedCategories.add(equipmentCategory);
});
if (!updatedCategories.isEmpty()) {
esEquipmentCategory.saveAll(updatedCategories);
}
}
}
/**
* 分批发布数据刷新事件
* @param dataIds 数据ID列表
......
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