Commit 8624e0bc authored by hcing's avatar hcing

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents 356c1ed6 e5df3ad7
...@@ -578,7 +578,7 @@ ...@@ -578,7 +578,7 @@
</select> </select>
<select id="getListPageCount" resultType="long"> <select id="getListPageCount" resultType="long">
SELECT <![CDATA[/*+ set(query_dop 16)*/]]> COUNT(DISTINCT ur.sequence_nbr) SELECT <![CDATA[/*+ use_cplan tablescan(ur) tablescan(re) tablescan(jri) tablescan(other) set(query_dop 16)*/]]> COUNT(DISTINCT ur.sequence_nbr)
FROM tzs_jg_use_registration ur FROM tzs_jg_use_registration ur
LEFT JOIN tzs_jg_use_registration_eq re ON ur.sequence_nbr = re.equip_transfer_id LEFT JOIN tzs_jg_use_registration_eq re ON ur.sequence_nbr = re.equip_transfer_id
LEFT JOIN idx_biz_jg_register_info jri ON re.equ_id = jri."RECORD" LEFT JOIN idx_biz_jg_register_info jri ON re.equ_id = jri."RECORD"
......
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 平台操作接口类型枚举
*
***/
@Getter
@AllArgsConstructor
public enum PlatformOpMethodTypeEnum {
INSERT("insert", "插入"),
UPDATE("update", "更新"),
DELETE("delete", "删除");
private String code;
private String name;
public static PlatformOpMethodTypeEnum getEnumByCode(String code) {
for (PlatformOpMethodTypeEnum status : PlatformOpMethodTypeEnum.values()) {
if (status.getCode().equals(code)) {
return status;
}
}
return null;
}
}
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 平台操作接口类型枚举
*
***/
@Getter
@AllArgsConstructor
public enum PlatformOpTopicEnum {
OPERATION_LOG("/amos/operation/log", "平台操作日志主题"),
COMPANY_ORG_CODE_UPDATE("amos/company/orgCode/update", "单位orgCode变更主题");
private String topic;
private String desc;
public static PlatformOpTopicEnum getEnumByCode(String code) {
for (PlatformOpTopicEnum status : PlatformOpTopicEnum.values()) {
if (status.getTopic().equals(code)) {
return status;
}
}
return null;
}
}
...@@ -61,6 +61,15 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI ...@@ -61,6 +61,15 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
Map<String, Object> getProblemInfoBySourceId(@Param("sourceId")String sourceId); Map<String, Object> getProblemInfoBySourceId(@Param("sourceId")String sourceId);
/**
* 批量更新企业单位orgCode
* @param superviseOrgName 新监管单位名称
* @param oldSuperviseOrgCode 旧监管单位orgCode
* @param preSuperviseOrgCode 新监管单位orgCode
* @param oldOrgCode 企业旧orgCode
* @param preOrgCode 企业新orgCode
* @param sequenceNbr 企业表id
*/
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);
...@@ -81,5 +90,11 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI ...@@ -81,5 +90,11 @@ public interface TzBaseEnterpriseInfoMapper extends BaseMapper<TzBaseEnterpriseI
* @param oldOrgCode 单位旧orgCode * @param oldOrgCode 单位旧orgCode
* @param newOrgCode 单位新orgCode * @param newOrgCode 单位新orgCode
*/ */
void updateUnitOrgCode(@Param("oldOrgCode") String oldOrgCode, @Param("newOrgCode") String newOrgCode); void updateUnitOrgCode(@Param("oldOrgCode") String oldOrgCode, @Param("newOrgCode") String newOrgCode, @Param("useCode") String useCode);
List<String> selectEquipmentBySupervisionOrgCode(String oldOrgCode);
List<String> selectCompanyBySupervisionOrgCode(String oldOrgCode);
void updateRedundantSupervisionOrgCode(String newOrgCode, String oldOrgCode);
} }
...@@ -49,4 +49,6 @@ public interface IEquipmentCategoryService { ...@@ -49,4 +49,6 @@ public interface IEquipmentCategoryService {
* 企业设备树查询 * 企业设备树查询
*/ */
List<Map<String, Object>> unitEquipTree(); List<Map<String, Object>> unitEquipTree();
void deleteRegulatorUnitTree();
} }
...@@ -11,7 +11,6 @@ import com.yeejoin.amos.boot.module.tcm.api.entity.BaseUnitLicence; ...@@ -11,7 +11,6 @@ import com.yeejoin.amos.boot.module.tcm.api.entity.BaseUnitLicence;
import com.yeejoin.amos.boot.module.tcm.api.entity.PageParam; import com.yeejoin.amos.boot.module.tcm.api.entity.PageParam;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo; import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -60,6 +59,8 @@ public interface ITzBaseEnterpriseInfoService extends IService<TzBaseEnterpriseI ...@@ -60,6 +59,8 @@ public interface ITzBaseEnterpriseInfoService extends IService<TzBaseEnterpriseI
TzIndividualityDto personalInfoUpdateById(Map<String, Object> map); TzIndividualityDto personalInfoUpdateById(Map<String, Object> map);
void refreshCompanyInfo(JSONObject dataResult); void refreshCompanyInfo(JSONObject dataResult, String method);
void refreshCompanyOrgCode(JSONObject dataResult, String newOrgCode, String oldOrgCode);
} }
...@@ -200,50 +200,187 @@ ...@@ -200,50 +200,187 @@
UPDATE tz_base_enterprise_info UPDATE tz_base_enterprise_info
SET org_code = #{newOrgCode} SET org_code = #{newOrgCode}
WHERE WHERE
org_code = #{oldOrgCode}; <if test="useCode != null and useCode != ''">
UPDATE cb_org_usr use_code = #{useCode};
SET amos_org_code = #{newOrgCode} </if>
WHERE <if test="oldOrgCode != null and oldOrgCode != ''">
amos_org_code = #{oldOrgCode}; UPDATE cb_org_usr
UPDATE p_static_day SET amos_org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE amos_org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_static_day
UPDATE p_static_week SET org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_static_week
UPDATE p_static_month SET org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_static_month
UPDATE p_check SET org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_check
UPDATE p_check_input SET org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_check_input
UPDATE p_check_shot SET org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_check_shot
UPDATE p_plan_task SET org_code = #{newOrgCode}
SET org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
org_code = #{oldOrgCode}; UPDATE p_plan_task
UPDATE tzs_feedback_suggestions SET org_code = #{newOrgCode}
SET supervise_org_code = #{newOrgCode} WHERE
WHERE org_code = #{oldOrgCode};
supervise_org_code = #{oldOrgCode}; UPDATE tzs_feedback_suggestions
UPDATE p_plan SET supervise_org_code = #{newOrgCode}
SET user_dept = "replace" ( user_dept, #{oldOrgCode}, #{newOrgCode} ) WHERE
WHERE supervise_org_code = #{oldOrgCode};
user_dept LIKE CONCAT('%', #{oldOrgCode}, '%'); UPDATE p_plan
UPDATE p_plan_task SET user_dept = "replace" ( user_dept, #{oldOrgCode}, #{newOrgCode} )
SET user_dept = "replace" ( user_dept, #{oldOrgCode}, #{newOrgCode} ) WHERE
WHERE user_dept LIKE CONCAT('%', #{oldOrgCode}, '%');
user_dept LIKE CONCAT('%', #{oldOrgCode}, '%'); UPDATE p_plan_task
SET user_dept = "replace" ( user_dept, #{oldOrgCode}, #{newOrgCode} )
WHERE
user_dept LIKE CONCAT('%', #{oldOrgCode}, '%');
</if>
</update>
<select id="selectEquipmentBySupervisionOrgCode" resultType="java.lang.String">
select "RECORD"
from idx_biz_jg_supervision_info
where "ORG_BRANCH_CODE" LIKE CONCAT(#{oldOrgCode}, '%')
</select>
<select id="selectCompanyBySupervisionOrgCode" resultType="java.lang.String">
select sequence_nbr
from tz_base_enterprise_info
where supervise_org_code LIKE CONCAT(#{oldOrgCode}, '%')
</select>
<update id="updateRedundantSupervisionOrgCode">
update tz_base_enterprise_info
set supervise_org_code = replace(supervise_org_code, #{oldOrgCode}, #{newOrgCode})
where supervise_org_code like concat(#{oldOrgCode}, '%');
update tz_base_enterprise_info
set org_code = replace(org_code, #{oldOrgCode}, #{newOrgCode})
where org_code like concat(#{oldOrgCode}, '%');
update tzs_three_systems
set supervisory_unit_org_code = replace(supervisory_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_org_code like concat(#{oldOrgCode}, '%');
update tzs_two_staffing
set supervisory_unit_orgcode = replace(supervisory_unit_orgcode, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_orgcode like concat(#{oldOrgCode}, '%');
update biz_jg_equipment_category_data
set org_branch_code = replace(org_branch_code, #{oldOrgCode}, #{newOrgCode})
where org_branch_code like concat(#{oldOrgCode}, '%');
update tzs_jg_vehicle_information
set org_branch_code = replace(org_branch_code, #{oldOrgCode}, #{newOrgCode})
where org_branch_code like concat(#{oldOrgCode}, '%');
update idx_biz_jg_project_contraption
set org_code = replace(org_code, #{oldOrgCode}, #{newOrgCode})
where org_code like concat(#{oldOrgCode}, '%');
update idx_biz_jg_supervision_info
set "ORG_BRANCH_CODE" = replace("ORG_BRANCH_CODE", #{oldOrgCode}, #{newOrgCode})
where "ORG_BRANCH_CODE" like concat(#{oldOrgCode}, '%');
update tzs_jg_use_registration_manage
set supervise_org_code = replace(supervise_org_code, #{oldOrgCode}, #{newOrgCode})
where supervise_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_certificate_change_record
set receive_company_code = replace(receive_company_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_code like concat(#{oldOrgCode}, '%');
update tzs_jg_change_registration_reform
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_change_registration_transfer
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_change_registration_unit
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_change_vehicle_registration_unit
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_change_vehicle_registration_unit
set org_branch_code = replace(org_branch_code, #{oldOrgCode}, #{newOrgCode})
where org_branch_code like concat(#{oldOrgCode}, '%');
update tzs_jg_maintain_notice
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_maintenance_contract
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_reform_notice
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_transfer_notice
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_installation_notice
set org_branch_code = replace(org_branch_code, #{oldOrgCode}, #{newOrgCode})
where org_branch_code like concat(#{oldOrgCode}, '%');
update tzs_jg_installation_notice
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_registration_history
set change_data = replace(change_data, #{oldOrgCode}, #{newOrgCode})
where change_data like concat('%', #{oldOrgCode}, '%');
update tzs_jg_use_registration
set receive_company_org_code = replace(receive_company_org_code, #{oldOrgCode}, #{newOrgCode})
where receive_company_org_code like concat(#{oldOrgCode}, '%');
update tzs_jg_use_registration
set supervision_org_code = replace(supervision_org_code, #{oldOrgCode}, #{newOrgCode})
where supervision_org_code like concat(#{oldOrgCode}, '%');
update tzs_safety_problem_tracing
set governing_body_code = replace(governing_body_code, #{oldOrgCode}, #{newOrgCode})
where governing_body_code like concat(#{oldOrgCode}, '%');
update tz_alert_called
set biz_org_code = replace(biz_org_code, #{oldOrgCode}, #{newOrgCode})
where biz_org_code like concat(#{oldOrgCode}, '%');
update tz_dispatch_paper
set org_code = replace(org_code, #{oldOrgCode}, #{newOrgCode})
where org_code like concat(#{oldOrgCode}, '%');
update tzs_alert_dispatch_statistics
set supervisory_unit_org_code = replace(supervisory_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_org_code like concat(#{oldOrgCode}, '%');
update tzs_alert_maintenance_unit_statistics
set supervisory_unit_org_code = replace(supervisory_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_org_code like concat(#{oldOrgCode}, '%');
update tzs_alert_rescue_statistics
set supervisory_unit_org_code = replace(supervisory_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_org_code like concat(#{oldOrgCode}, '%');
update tzs_alert_statistics
set supervisory_unit_org_code = replace(supervisory_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_org_code like concat(#{oldOrgCode}, '%');
update tzs_alert_use_unit_statistics
set supervisory_unit_org_code = replace(supervisory_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where supervisory_unit_org_code like concat(#{oldOrgCode}, '%');
update tzs_feedback_suggestions
set supervise_org_code = replace(supervise_org_code, #{oldOrgCode}, #{newOrgCode})
where supervise_org_code like concat(#{oldOrgCode}, '%');
update tzs_risk_report
set all_risk_disposal_unit_org_code = replace(all_risk_disposal_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where all_risk_disposal_unit_org_code like concat('%', #{oldOrgCode}, '%');
update tzs_risk_report
set risk_disposal_unit_org_code = replace(risk_disposal_unit_org_code, #{oldOrgCode}, #{newOrgCode})
where risk_disposal_unit_org_code like concat(#{oldOrgCode}, '%');
</update> </update>
</mapper> </mapper>
...@@ -47,4 +47,11 @@ public class HistoryDataDealController { ...@@ -47,4 +47,11 @@ public class HistoryDataDealController {
return ResponseHelper.buildResponse(historyDataDealService.unitOrgCodeUpdate(oldOrgCode, newOrgCode)); return ResponseHelper.buildResponse(historyDataDealService.unitOrgCodeUpdate(oldOrgCode, newOrgCode));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/handleCompanyHisOrgCode")
@ApiOperation(httpMethod = "PUT", value = "监管单位层级调整后,业务表(企业、设备、统计等)冗余的所有旧orgCode替换为新orgCode", notes = "监管单位层级调整后,业务表(企业、设备、统计等)冗余的所有旧orgCode替换为新orgCode")
public ResponseModel<String> handleCompanyHisOrgCode(@RequestParam String newOrgCode, @RequestParam String oldOrgCode) {
return ResponseHelper.buildResponse(historyDataDealService.handleCompanyHisOrgCode(newOrgCode, oldOrgCode));
}
} }
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; ...@@ -5,6 +5,7 @@ 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;
import com.yeejoin.amos.boot.module.tcm.api.enums.PlatformOpTopicEnum;
import com.yeejoin.amos.boot.module.tcm.api.service.IEquipmentCategoryService; import com.yeejoin.amos.boot.module.tcm.api.service.IEquipmentCategoryService;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzBaseEnterpriseInfoService; import com.yeejoin.amos.boot.module.tcm.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService; import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
...@@ -13,12 +14,15 @@ import lombok.extern.slf4j.Slf4j; ...@@ -13,12 +14,15 @@ import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqKeeper; import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.component.emq.EmqxListener; import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Objects;
@Component @Component
@Slf4j @Slf4j
...@@ -29,9 +33,16 @@ public class PlatformUserTopicMessage extends EmqxListener { ...@@ -29,9 +33,16 @@ public class PlatformUserTopicMessage extends EmqxListener {
@Value("${amos.operation.log}") @Value("${amos.operation.log}")
private String amosOperationLog; private String amosOperationLog;
@Value("${amos.orgCode.update:amos/company/orgCode/update}")
private String amosOrgCodeUpdateTopic;
@Value("${spring.application.name}")
private String applicationName;
@PostConstruct @PostConstruct
void init() throws Exception { void init() throws Exception {
emqKeeper.subscript(amosOperationLog, 2, this); emqKeeper.subscript(amosOperationLog, 2, this);
emqKeeper.subscript(buildShareTopic(amosOrgCodeUpdateTopic), 2, this);
} }
@Value("${amos.agency.code}") @Value("${amos.agency.code}")
...@@ -54,30 +65,63 @@ public class PlatformUserTopicMessage extends EmqxListener { ...@@ -54,30 +65,63 @@ public class PlatformUserTopicMessage extends EmqxListener {
@Override @Override
public void processMessage(String topic, MqttMessage message) { public void processMessage(String topic, MqttMessage message) {
platformTokenService.setRequestContext(); log.info("平台推送消息开始同步");
JSONObject jsonObject = JSON.parseObject(message.toString()); switch (Objects.requireNonNull(PlatformOpTopicEnum.getEnumByCode(topic))) {
JSONObject result = jsonObject.getJSONObject("result"); case OPERATION_LOG:
JSONArray dataResultList = new JSONArray(); // 处理 平台操作日志
JSONObject dataResult = new JSONObject(); processOpMessage(message);
if (result.get("result") instanceof JSONArray) { break;
dataResultList = JSON.parseArray(result.get("result").toString()); case COMPANY_ORG_CODE_UPDATE:
// 处理 dataList // 处理 单位orgCode变更
} else { processOrgCodeUpdateMessage(message);
// 处理 data break;
dataResult = result.getJSONObject("result");
} }
String path = result.getString("path"); log.info("平台推送消息同步完成");
String agencyCode = jsonObject.getString("agencyCode"); }
if (!amosAgencyCode.equals(agencyCode)) {
return; @Async
protected void processOrgCodeUpdateMessage(MqttMessage message) {
try {
if (ValidationUtil.isEmpty(message)) {
return;
}
JSONObject jsonObject = JSON.parseObject(message.toString());
String newOrgCode = jsonObject.getString("newOrgCode");
String oldOrgCode = jsonObject.getString("oldOrgCode");
tzBaseEnterpriseInfoService.refreshCompanyOrgCode(jsonObject, newOrgCode, oldOrgCode);
} catch (Exception e) {
log.info("平台同步消息失败:{}", e.getMessage());
e.printStackTrace();
} }
}
@Async
protected void processOpMessage(MqttMessage message) {
try { try {
if (StringUtils.isNotEmpty(path)) { if (ValidationUtil.isEmpty(message)) {
return;
}
JSONObject jsonObject = JSON.parseObject(message.toString());
JSONObject result = jsonObject.getJSONObject("result");
JSONArray dataResultList = null;
JSONObject dataResult = null;
if (!ValidationUtil.isEmpty(result) && result.get("result") instanceof JSONArray) {
dataResultList = JSON.parseArray(result.get("result").toString());
} else if (!ValidationUtil.isEmpty(result) && result.get("result") instanceof JSONObject) {
dataResult = result.getJSONObject("result");
}
String path = result.getString("path");
String method = jsonObject.getString("methodName");
String agencyCode = jsonObject.getString("agencyCode");
if (!amosAgencyCode.equals(agencyCode)) {
return;
}
if (!ValidationUtil.isEmpty(dataResult) && StringUtils.isNotEmpty(path)) {
if (path.contains("company")) { if (path.contains("company")) {
if ("监管机构".equals(dataResult.get("companyType"))) { if ("监管机构".equals(dataResult.get("companyType"))) {
equipmentCategoryService.creatTree(); equipmentCategoryService.deleteRegulatorUnitTree();
} }
tzBaseEnterpriseInfoService.refreshCompanyInfo(dataResult); tzBaseEnterpriseInfoService.refreshCompanyInfo(dataResult, method);
} else if (path.contains("agencyuser")) { } else if (path.contains("agencyuser")) {
regUnitInfoService.updateAdminInfo(dataResult); regUnitInfoService.updateAdminInfo(dataResult);
} }
...@@ -86,6 +130,9 @@ public class PlatformUserTopicMessage extends EmqxListener { ...@@ -86,6 +130,9 @@ public class PlatformUserTopicMessage extends EmqxListener {
log.info("平台同步消息失败:{}", e.getMessage()); log.info("平台同步消息失败:{}", e.getMessage());
e.printStackTrace(); e.printStackTrace();
} }
log.info("平台推送消息同步完成"); }
private String buildShareTopic(String topic) {
return "$share/" + applicationName + "/" + topic;
} }
} }
...@@ -16,6 +16,7 @@ import org.eclipse.paho.client.mqttv3.MqttMessage; ...@@ -16,6 +16,7 @@ import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.emq.EmqxListener; import org.typroject.tyboot.component.emq.EmqxListener;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
...@@ -33,6 +34,7 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener { ...@@ -33,6 +34,7 @@ public class PrivilegeCompanyUpdateAddListener extends EmqxListener {
Logger logger = LoggerFactory.getLogger(PrivilegeCompanyUpdateAddListener.class); Logger logger = LoggerFactory.getLogger(PrivilegeCompanyUpdateAddListener.class);
@Autowired @Autowired
@Lazy
TzBaseEnterpriseInfoServiceImpl tzBaseEnterpriseInfoService; TzBaseEnterpriseInfoServiceImpl tzBaseEnterpriseInfoService;
@Autowired @Autowired
......
...@@ -308,6 +308,13 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD ...@@ -308,6 +308,13 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
} }
/** /**
* 删除缓存中管辖机构树
*/
public void deleteRegulatorUnitTree() {
redisUtils.del(REGULATOR_UNIT_TREE);
}
/**
* 将管辖机构树中children为[]的修改为null * 将管辖机构树中children为[]的修改为null
* *
* @param result * @param result
......
...@@ -126,4 +126,17 @@ public class HistoryDataDealServiceImpl { ...@@ -126,4 +126,17 @@ public class HistoryDataDealServiceImpl {
log.info("用企业新orgCode替换各个表缓存orgCode结束"); log.info("用企业新orgCode替换各个表缓存orgCode结束");
return true; return true;
} }
/**
* 监管单位层级调整后,业务表(企业、设备、统计等)冗余的所有旧orgCode替换为新orgCode
*
* @param newOrgCode 新orgCode
* @param oldOrgCode 旧orgCode
* @return
*/
@Transactional(rollbackFor = Exception.class)
public String handleCompanyHisOrgCode(String newOrgCode, String oldOrgCode) {
baseEnterpriseInfoService.refreshCompanyOrgCode(null, newOrgCode, oldOrgCode);
return "success";
}
} }
...@@ -17,15 +17,14 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; ...@@ -17,15 +17,14 @@ 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.module.common.api.constant.TZSCommonConstant;
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.api.enums.UnitDataSourceEnum;
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.*; import com.yeejoin.amos.boot.module.tcm.api.dto.*;
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.*;
import com.yeejoin.amos.boot.module.tcm.api.enums.LicenceTypeEnum;
import com.yeejoin.amos.boot.module.tcm.api.enums.ProblemStatusEnum;
import com.yeejoin.amos.boot.module.tcm.api.enums.UnitTypeEnum;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzBaseEnterpriseInfoService; import com.yeejoin.amos.boot.module.tcm.api.service.ITzBaseEnterpriseInfoService;
...@@ -34,7 +33,6 @@ import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitIcDto; ...@@ -34,7 +33,6 @@ import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitIcDto;
import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitInfoDto; import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitInfoDto;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitIc; import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitIc;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo; import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.common.api.enums.UnitDataSourceEnum;
import com.yeejoin.amos.boot.module.tcm.flc.api.feign.AccessFeignService; import com.yeejoin.amos.boot.module.tcm.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.boot.module.tcm.flc.api.mapper.RegUnitInfoMapper; import com.yeejoin.amos.boot.module.tcm.flc.api.mapper.RegUnitInfoMapper;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitIcServiceImpl; import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitIcServiceImpl;
...@@ -48,21 +46,27 @@ import com.yeejoin.amos.feign.privilege.util.DesUtil; ...@@ -48,21 +46,27 @@ import com.yeejoin.amos.feign.privilege.util.DesUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
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.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.emq.EmqKeeper;
import org.typroject.tyboot.core.foundation.context.RequestContext; 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 org.typroject.tyboot.core.restful.exception.instance.TooManyRequests; import org.typroject.tyboot.core.restful.exception.instance.TooManyRequests;
import java.nio.charset.StandardCharsets;
import java.text.ParseException; import java.text.ParseException;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -98,6 +102,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -98,6 +102,7 @@ public class TzBaseEnterpriseInfoServiceImpl
RegUnitIcServiceImpl regUnitIcService; RegUnitIcServiceImpl regUnitIcService;
@Autowired @Autowired
@Lazy
RegUnitInfoServiceImpl regUnitInfoService; RegUnitInfoServiceImpl regUnitInfoService;
@Autowired @Autowired
DataDictionaryServiceImpl iDataDictionaryService; DataDictionaryServiceImpl iDataDictionaryService;
...@@ -114,8 +119,6 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -114,8 +119,6 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired @Autowired
private AccessFeignService accessFeignService; private AccessFeignService accessFeignService;
@Autowired @Autowired
private ITzBaseEnterpriseInfoService tzBaseEnterpriseInfoService;
@Autowired
private TzsUserInfoMapper tzsUserInfoMapper; private TzsUserInfoMapper tzsUserInfoMapper;
@Autowired @Autowired
private EquipmentCategoryServiceImpl equipmentCategoryService; private EquipmentCategoryServiceImpl equipmentCategoryService;
...@@ -124,6 +127,9 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -124,6 +127,9 @@ public class TzBaseEnterpriseInfoServiceImpl
@Autowired @Autowired
private RedissonClient redissonClient; private RedissonClient redissonClient;
@Autowired
private EmqKeeper emqKeeper;
private static final Map<String ,String> JYJC_CERT_MAP = new HashMap<>(); private static final Map<String ,String> JYJC_CERT_MAP = new HashMap<>();
@Autowired @Autowired
...@@ -619,7 +625,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -619,7 +625,7 @@ public class TzBaseEnterpriseInfoServiceImpl
public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map, ReginParams reginParams) { public TzBaseEnterpriseInfoDto companyInfoUpdate(Map<String, Object> map, ReginParams reginParams) {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo(); TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString())); tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo = tzBaseEnterpriseInfoService.getById(tzBaseEnterpriseInfo.getSequenceNbr()); tzBaseEnterpriseInfo = this.getById(tzBaseEnterpriseInfo.getSequenceNbr());
//修改基本信息 //修改基本信息
tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory"))); tzBaseEnterpriseInfo.setEquipCategory(JSON.toJSONString(map.get("equipCategory")));
Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude"); Map<String, String> map1 = (Map<String, String>) map.get("longitudeLatitude");
...@@ -713,7 +719,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -713,7 +719,7 @@ public class TzBaseEnterpriseInfoServiceImpl
ArrayList<String> newData = new ArrayList<>(); ArrayList<String> newData = new ArrayList<>();
JSONArray objects = JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory()); JSONArray objects = JSON.parseArray(tzBaseEnterpriseInfo.getEquipCategory());
objects.forEach(item -> newData.add(item.toString())); objects.forEach(item -> newData.add(item.toString()));
boolean b = tzBaseEnterpriseInfoService.updateById(tzBaseEnterpriseInfo); boolean b = this.updateById(tzBaseEnterpriseInfo);
if (b) { if (b) {
try { try {
CompanyModel updateModel = Privilege.companyClient.queryByCompanyCode(String.valueOf(map.get("useCode"))).getResult(); CompanyModel updateModel = Privilege.companyClient.queryByCompanyCode(String.valueOf(map.get("useCode"))).getResult();
...@@ -1084,7 +1090,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1084,7 +1090,7 @@ public class TzBaseEnterpriseInfoServiceImpl
try { try {
TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo(); TzBaseEnterpriseInfo tzBaseEnterpriseInfo = new TzBaseEnterpriseInfo();
tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString())); tzBaseEnterpriseInfo.setSequenceNbr(Long.valueOf(map.get("sequenceNbr").toString()));
tzBaseEnterpriseInfo = tzBaseEnterpriseInfoService.getById(tzBaseEnterpriseInfo.getSequenceNbr()); tzBaseEnterpriseInfo = this.getById(tzBaseEnterpriseInfo.getSequenceNbr());
String newSuperviseOrgCode = ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode")); String newSuperviseOrgCode = ObjectUtils.isEmpty(map.get("superviseOrgCode")) ? null : String.valueOf(map.get("superviseOrgCode"));
...@@ -1169,7 +1175,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1169,7 +1175,7 @@ public class TzBaseEnterpriseInfoServiceImpl
tzBaseEnterpriseInfo.setAppId(regUnitInfo.getAppId()); tzBaseEnterpriseInfo.setAppId(regUnitInfo.getAppId());
tzBaseEnterpriseInfo.setUnitType(String.join("#", unitTypes)); tzBaseEnterpriseInfo.setUnitType(String.join("#", unitTypes));
boolean updateResult = tzBaseEnterpriseInfoService.updateById(tzBaseEnterpriseInfo); boolean updateResult = this.updateById(tzBaseEnterpriseInfo);
if (updateResult) { if (updateResult) {
log.info("更新企业信息, 单位类型 => {}", tzBaseEnterpriseInfo.getUseUnitCode()); log.info("更新企业信息, 单位类型 => {}", tzBaseEnterpriseInfo.getUseUnitCode());
String useCode = String.valueOf(map.get("useCode")); String useCode = String.valueOf(map.get("useCode"));
...@@ -1221,7 +1227,7 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1221,7 +1227,7 @@ public class TzBaseEnterpriseInfoServiceImpl
UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<TzBaseEnterpriseInfo> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("org_code", newOrgCode); updateWrapper.set("org_code", newOrgCode);
updateWrapper.eq("sequence_nbr", tzBaseEnterpriseInfo.getSequenceNbr()); updateWrapper.eq("sequence_nbr", tzBaseEnterpriseInfo.getSequenceNbr());
tzBaseEnterpriseInfoService.update(updateWrapper); this.update(updateWrapper);
} }
private void handleUnitType(Map<String, Object> map, RegUnitInfo regUnitInfo, AgencyUserModel agencyUserModel) { private void handleUnitType(Map<String, Object> map, RegUnitInfo regUnitInfo, AgencyUserModel agencyUserModel) {
...@@ -1387,22 +1393,124 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1387,22 +1393,124 @@ public class TzBaseEnterpriseInfoServiceImpl
* @date 2025/7/3 14:03 * @date 2025/7/3 14:03
*/ */
@Override @Override
public void refreshCompanyInfo(JSONObject dataResult) { public void refreshCompanyInfo(JSONObject dataResult, String method) {
try { try {
CompanyBo companyBo = JSON.parseObject(dataResult.toJSONString(), CompanyBo.class); CompanyBo companyBo = JSON.parseObject(dataResult.toJSONString(), CompanyBo.class);
// 调用平台获取子单位 // 调用平台获取子单位
platformTokenService.setRequestContext(); // 异步调用需要设置请求上下文
FeignClientResult<List<CompanyModel>> result = Privilege.companyClient.queryListByOrgCode(companyBo.getOrgCode()); FeignClientResult<List<CompanyModel>> result = Privilege.companyClient.queryListByOrgCode(companyBo.getOrgCode());
if (result == null || result.getResult() == null) { if (result == null || result.getResult() == null) {
log.error("平台获取子单位失败"); log.error("平台获取子单位失败");
return; return;
} }
List<CompanyModel> companyModels = result.getResult(); List<CompanyModel> companyModels = result.getResult().stream().filter(i -> !i.getCompanyType().equals("监管机构")).collect(Collectors.toList());
// 如果消息中的单位是企业
if (!companyBo.getCompanyType().equals("监管机构")) {
switch (Objects.requireNonNull(PlatformOpMethodTypeEnum.getEnumByCode(method))) {
case INSERT:
case DELETE:
// 暂无操作
break;
case UPDATE:
// 更新企业单位对应业务表冗余信息
updateCompanyInfo(companyModels);
break;
}
}
} catch (Exception e) {
willInfo("refreshCompanyInfo", dataResult, method, e);
e.printStackTrace();
log.error("刷新企业信息发生异常", e);
}
}
private void willInfo(String willKey, JSONObject dataResult, String method, Exception e) {
Map<String, Object> willInfo = new HashMap<>();
willInfo.put("dataResult", dataResult);
willInfo.put("method", method);
willInfo.put("errorMessage", e.getMessage());
redisUtil.set(willKey + "_" + System.currentTimeMillis(), JSONObject.toJSONString(willInfo));
}
/**
* 平台编辑监管单位层级信息后, 异步通知, 刷新tz_base_enterprise_info表orgCode
* 同时更新其他表缓存的监管单位orgCode
*
* @param newOrgCode 新orgCode
* @param oldOrgCode 旧orgCode
*
*/
@Override
@Transactional
public void refreshCompanyOrgCode(JSONObject dataResult, String newOrgCode, String oldOrgCode) {
try {
if (!ValidationUtil.isEmpty(newOrgCode) && !ValidationUtil.isEmpty(oldOrgCode) && !newOrgCode.equals(oldOrgCode)) {
// 1. 查询旧属地监管部门orgCode对应所有的公司
List<String> companySeqList = tzBaseEnterpriseInfoMapper.selectCompanyBySupervisionOrgCode(oldOrgCode);
// 2. 查询旧属地监管部门orgCode对应的所有设备
List<String> equipmentRecordList = tzBaseEnterpriseInfoMapper.selectEquipmentBySupervisionOrgCode(oldOrgCode);
// 3. 更新其他业务表冗余的监管单位orgCode
tzBaseEnterpriseInfoMapper.updateRedundantSupervisionOrgCode(newOrgCode, oldOrgCode);
// 4. 发送数据刷新事件 - 内存分页处理
// 处理企业数据
publishDataRefreshEvents(companySeqList, DataRefreshEvent.DataType.enterprise, 1000);
// 处理设备数据
publishDataRefreshEvents(equipmentRecordList, DataRefreshEvent.DataType.equipment, 1000);
}
} catch (Exception e) {
willInfo("refreshCompanyOrgCode", dataResult, "orgCodeUpdate", e);
log.error("刷新单位orgCode发生异常", e);
}
}
/**
* 分批发布数据刷新事件
* @param dataIds 数据ID列表
* @param dataType 数据类型
* @param batchSize 批次大小
*/
private void publishDataRefreshEvents(List<String> dataIds, DataRefreshEvent.DataType dataType, int batchSize) {
if (ValidationUtil.isEmpty(dataIds)) {
return;
}
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
int total = dataIds.size();
int pages = (total + batchSize - 1) / batchSize; // 计算总页数
for (int page = 0; page < pages; page++) {
int fromIndex = page * batchSize;
int toIndex = Math.min((page + 1) * batchSize, total);
List<String> subList = dataIds.subList(fromIndex, toIndex);
if (!ValidationUtil.isEmpty(subList)) {
try {
emqKeeper.getMqttClient().publish(String.format(TZSCommonConstant.DATA_REFRESH_TOPIC, dataType.name(), DataRefreshEvent.Operation.UPDATE), JSONObject.toJSONString(subList).getBytes(StandardCharsets.UTF_8), 2, false);
} catch (MqttException e) {
throw new RuntimeException(e);
}
}
}
// 休眠50毫秒再发送
try {
Thread.sleep(100);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
});
}
/**
* 更新企业单位对应业务表冗余信息
* @param companyModels 企业列表
*/
private void updateCompanyInfo(List<CompanyModel> companyModels) {
if (!ValidationUtil.isEmpty(companyModels)) {
// 只处理非监管机构 // 只处理非监管机构
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())) {
useCodes.add(companyBo.getCompanyCode());
}
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
...@@ -1426,15 +1534,12 @@ public class TzBaseEnterpriseInfoServiceImpl ...@@ -1426,15 +1534,12 @@ public class TzBaseEnterpriseInfoServiceImpl
} }
log.info("刷新企业信息成功,共更新{}条数据", updateCount); log.info("刷新企业信息成功,共更新{}条数据", updateCount);
} }
} catch (Exception e) {
e.printStackTrace();
log.error("刷新企业信息发生异常", e);
} }
} }
public void updateUnitOrgCode(TzBaseEnterpriseInfo tzBaseEnterpriseInfo, CompanyModel parentModel, String oldSuperviseOrgCode, String newSuperviseOrgCode, String oldOrgCode, String newOrgCode) { 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.updateSubCompanyOrgCode(parentModel.getCompanyName(), oldSuperviseOrgCode, newSuperviseOrgCode, oldOrgCode, newOrgCode, tzBaseEnterpriseInfo.getSequenceNbr());
tzBaseEnterpriseInfoMapper.updateUnitOrgCode(oldOrgCode, newOrgCode); tzBaseEnterpriseInfoMapper.updateUnitOrgCode(oldOrgCode, newOrgCode, tzBaseEnterpriseInfo.getUseCode());
publisher.publish(new DataRefreshEvent(this, Collections.singletonList(tzBaseEnterpriseInfo.getSequenceNbr() + ""), DataRefreshEvent.DataType.enterprise.name(), DataRefreshEvent.Operation.UPDATE)); publisher.publish(new DataRefreshEvent(this, Collections.singletonList(tzBaseEnterpriseInfo.getSequenceNbr() + ""), DataRefreshEvent.DataType.enterprise.name(), DataRefreshEvent.Operation.UPDATE));
} }
} }
...@@ -81,6 +81,7 @@ import org.elasticsearch.search.sort.SortOrder; ...@@ -81,6 +81,7 @@ import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -134,6 +135,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI ...@@ -134,6 +135,7 @@ public class TzsUserInfoServiceImpl extends BaseService<TzsUserInfoDto, TzsUserI
@Autowired @Autowired
DataDictionaryServiceImpl iDataDictionaryService; DataDictionaryServiceImpl iDataDictionaryService;
@Autowired @Autowired
@Lazy
TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService; TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService;
@Autowired @Autowired
TzsBaseIndividualityServiceImpl individualityService; TzsBaseIndividualityServiceImpl individualityService;
......
...@@ -17,6 +17,7 @@ import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil; ...@@ -17,6 +17,7 @@ import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser; import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService; import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr; import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
import com.yeejoin.amos.boot.module.common.api.enums.UnitDataSourceEnum;
import com.yeejoin.amos.boot.module.common.api.enums.UnitTypeNewEnum; import com.yeejoin.amos.boot.module.common.api.enums.UnitTypeNewEnum;
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;
...@@ -32,13 +33,15 @@ import com.yeejoin.amos.boot.module.tcm.api.enums.CompanyLevelEnum; ...@@ -32,13 +33,15 @@ import com.yeejoin.amos.boot.module.tcm.api.enums.CompanyLevelEnum;
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.mapper.TzBaseEnterpriseInfoMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsBaseInstitutionMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsBaseInstitutionMapper;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.*; import com.yeejoin.amos.boot.module.tcm.biz.service.impl.BaseUnitLicenceServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.EquipmentCategoryServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzBaseEnterpriseInfoServiceImpl;
import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil; import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitIcDto; import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitIcDto;
import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitInfoDto; import com.yeejoin.amos.boot.module.tcm.flc.api.dto.RegUnitInfoDto;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitIc; import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitIc;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo; import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.common.api.enums.UnitDataSourceEnum;
import com.yeejoin.amos.boot.module.tcm.flc.api.feign.AccessFeignService; import com.yeejoin.amos.boot.module.tcm.flc.api.feign.AccessFeignService;
import com.yeejoin.amos.boot.module.tcm.flc.api.feign.IdxFeignService; import com.yeejoin.amos.boot.module.tcm.flc.api.feign.IdxFeignService;
import com.yeejoin.amos.boot.module.tcm.flc.api.feign.UgpServiceFeignClient; import com.yeejoin.amos.boot.module.tcm.flc.api.feign.UgpServiceFeignClient;
...@@ -60,6 +63,7 @@ import org.apache.logging.log4j.Logger; ...@@ -60,6 +63,7 @@ import org.apache.logging.log4j.Logger;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
...@@ -113,6 +117,7 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI ...@@ -113,6 +117,7 @@ public class RegUnitInfoServiceImpl extends BaseService<RegUnitInfoDto, RegUnitI
RegUnitIcServiceImpl regUnitIcService; RegUnitIcServiceImpl regUnitIcService;
@Autowired @Autowired
@Lazy
TzBaseEnterpriseInfoServiceImpl tzBaseEnterpriseInfoService; TzBaseEnterpriseInfoServiceImpl tzBaseEnterpriseInfoService;
@Autowired @Autowired
......
...@@ -19,7 +19,6 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.PageParam; ...@@ -19,7 +19,6 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.PageParam;
import com.yeejoin.amos.boot.module.ymt.api.entity.SpeUseUnit; import com.yeejoin.amos.boot.module.ymt.api.entity.SpeUseUnit;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.service.IBaseUnitLicenceService;
import com.yeejoin.amos.boot.module.ymt.api.service.ITzBaseEnterpriseInfoService; import com.yeejoin.amos.boot.module.ymt.api.service.ITzBaseEnterpriseInfoService;
import com.yeejoin.amos.boot.module.ymt.biz.utils.RedisUtil; import com.yeejoin.amos.boot.module.ymt.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.ymt.flc.api.dto.RegUnitIcDto; import com.yeejoin.amos.boot.module.ymt.flc.api.dto.RegUnitIcDto;
...@@ -34,8 +33,6 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult; ...@@ -34,8 +33,6 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel; import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.privilege.model.IdPasswordAuthModel;
import com.yeejoin.amos.feign.privilege.util.DesUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
......
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