Commit 2e894106 authored by 刘林's avatar 刘林

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

parents 9fd8a6da 463a150a
......@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.RegistrationVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
import java.util.Set;
......@@ -124,4 +125,6 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> {
List<JgUseRegistrationDto> getListOfPass();
List<JgUseRegistrationDto> selectMissingSupOrgCodeUseList();
Set<Long> queryListByEqsAndStatus(@Param("records") Set<String> records, @Param("status") String status, @Param("applyNo") String applyNo);
}
......@@ -1499,4 +1499,20 @@
AND u."project_contraption_id" IS NOT NULL ORDER BY u.audit_pass_date
</select>
<select id="queryListByEqsAndStatus" resultType="java.lang.Long">
SELECT
distinct ur.sequence_nbr as sequence_nbr
FROM
"tzs_jg_use_registration" ur,
tzs_jg_use_registration_eq re
WHERE
ur.status = #{status}
and ur.is_delete = 0
and re.equip_transfer_id = ur.sequence_nbr
and ur.apply_no !=#{applyNo}
and re.equ_id in
<foreach collection="records" item="record" open="(" close=")" separator=",">
#{record}
</foreach>
</select>
</mapper>
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.event.handler;
import org.springframework.context.ApplicationEvent;
public interface IChangeUpdateHandler<T extends ApplicationEvent> {
public interface IChangeEventBizHandler<T extends ApplicationEvent> {
void handle(T event);
Boolean supports(T event);
......
......@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.ESDataChangeLogDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgBizChangeLog;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
import com.yeejoin.amos.boot.module.jg.api.service.IJgBizChangeLogService;
import com.yeejoin.amos.boot.module.jg.biz.event.ChangeDataEvent;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgBizChangeLogServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgInstallationNoticeServiceImpl;
......@@ -17,7 +16,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Set;
......@@ -25,7 +23,7 @@ import java.util.Set;
@Component
@RequiredArgsConstructor
@Slf4j
public class InstallNoticeUpdateUpdateHandler implements IChangeUpdateHandler<ChangeDataEvent> {
public class InstallNoticeChangeEventHandler implements IChangeEventBizHandler<ChangeDataEvent> {
private final JgInstallationNoticeServiceImpl jgInstallationNoticeService;
......@@ -49,6 +47,7 @@ public class InstallNoticeUpdateUpdateHandler implements IChangeUpdateHandler<Ch
// es记录日志
this.log2es(beforeData, afterData, installationNotice, event);
});
log.info("更新安装告知的单据数量:{}", installationNoticeIds.size());
}
private void log2es(JSONObject beforeData, JSONObject afterData, JgInstallationNotice installationNotice, ChangeDataEvent event) {
......@@ -62,19 +61,18 @@ public class InstallNoticeUpdateUpdateHandler implements IChangeUpdateHandler<Ch
changeLog.setOId(event.getRequestContext().getTraceId());
changeLog.setBizType("installationNotice");
changeLog.setRecUserId(event.getRequestContext().getExcutedUserId());
ESDataChangeLogDto changeLogDto = new ESDataChangeLogDto();
changeLogDto.setColumnKey("changeData");
changeLogDto.setColumnKeyLabel("历史json数据");
changeLogDto.setBeforeData(beforeData.toJSONString());
changeLogDto.setAfterData(afterData.toJSONString());
changeLogDto.setUserId(event.getRequestContext().getExcutedUserId());
changeLogDto.setCreateDate(date.getTime());
changeLogDto.setRequestDate(DateUtil.formatDateTime(date));
changeLogDto.setChangeId(installationNotice.getApplyNo());
changeLogDto.setColumnFamily("tzs_jg_installation_notice");
changeLogDto.setBizType(changeLog.getBizType());
changeLogDto.setBatchId(changeLog.getSequenceNbr() + "");
jgBizChangeLogService.save2DbAndEs(changeLog, Collections.singletonList(changeLogDto));
ESDataChangeLogDto esDataChangeLogDto = new ESDataChangeLogDto();
esDataChangeLogDto.setColumnKey("changeData");
esDataChangeLogDto.setColumnKeyLabel("历史json数据");
esDataChangeLogDto.setBeforeData(beforeData.toJSONString());
esDataChangeLogDto.setAfterData(afterData.toJSONString());
esDataChangeLogDto.setUserId(event.getRequestContext().getExcutedUserId());
esDataChangeLogDto.setCreateDate(date.getTime());
esDataChangeLogDto.setRequestDate(DateUtil.formatDateTime(date));
esDataChangeLogDto.setChangeId(installationNotice.getApplyNo());
esDataChangeLogDto.setColumnFamily("tzs_jg_installation_notice");
esDataChangeLogDto.setBizType(changeLog.getBizType());
jgBizChangeLogService.save2DbAndEs(changeLog, Collections.singletonList(esDataChangeLogDto));
}
private Set<Long> getRelationInstallNoticeList(ChangeDataEvent event) {
......@@ -86,6 +84,7 @@ public class InstallNoticeUpdateUpdateHandler implements IChangeUpdateHandler<Ch
@Override
public Boolean supports(ChangeDataEvent event) {
return event.getBizRelationData().getBizType().equals(UseRegisterDataChangeHandleImpl.BIZ_TYPE);
return UseRegisterDataChangeHandleImpl.BIZ_TYPE.equals(event.getBizRelationData().getBizType());
}
}
......@@ -4,10 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.ESDataChangeLogDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgBizChangeLog;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract;
import com.yeejoin.amos.boot.module.jg.biz.event.ChangeDataEvent;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgBizChangeLogServiceImpl;
......@@ -26,7 +24,7 @@ import java.util.Set;
@Component
@RequiredArgsConstructor
@Slf4j
public class MaintenanceContractUpdateUpdateHandler implements IChangeUpdateHandler<ChangeDataEvent> {
public class MaintenanceContractChangeEventHandler implements IChangeEventBizHandler<ChangeDataEvent> {
private final JgMaintenanceContractServiceImpl jgMaintenanceContractService;
......@@ -51,6 +49,7 @@ public class MaintenanceContractUpdateUpdateHandler implements IChangeUpdateHand
// es记录日志
this.log2es(beforeData, afterData, maintenanceContract, event);
});
log.info("更新维保备案的单据数量:{}", maintenanceContractList.size());
}
private Set<Long> getRelationMaintenanceContractList(ChangeDataEvent event) {
......@@ -62,7 +61,7 @@ public class MaintenanceContractUpdateUpdateHandler implements IChangeUpdateHand
@Override
public Boolean supports(ChangeDataEvent event) {
return event.getBizRelationData().getBizType().equals(UseRegisterDataChangeHandleImpl.BIZ_TYPE);
return UseRegisterDataChangeHandleImpl.BIZ_TYPE.equals(event.getBizRelationData().getBizType());
}
private void log2es(JSON beforeData, JSON afterData, JgMaintenanceContract maintenanceContract, ChangeDataEvent event) {
......@@ -76,18 +75,17 @@ public class MaintenanceContractUpdateUpdateHandler implements IChangeUpdateHand
changeLog.setOId(event.getRequestContext().getTraceId());
changeLog.setBizType("maintenanceContract");
changeLog.setRecUserId(event.getRequestContext().getExcutedUserId());
ESDataChangeLogDto changeLogDto = new ESDataChangeLogDto();
changeLogDto.setColumnKey("changeData");
changeLogDto.setColumnKeyLabel("历史json数据");
changeLogDto.setBeforeData(beforeData.toJSONString());
changeLogDto.setAfterData(afterData.toJSONString());
changeLogDto.setUserId(event.getRequestContext().getExcutedUserId());
changeLogDto.setCreateDate(date.getTime());
changeLogDto.setRequestDate(DateUtil.formatDateTime(date));
changeLogDto.setChangeId(maintenanceContract.getApplyNo());
changeLogDto.setColumnFamily("tzs_jg_maintenance_contract");
changeLogDto.setBizType(changeLog.getBizType());
changeLogDto.setBatchId(changeLog.getSequenceNbr() + "");
jgBizChangeLogService.save2DbAndEs(changeLog, Collections.singletonList(changeLogDto));
ESDataChangeLogDto esDataChangeLogDto = new ESDataChangeLogDto();
esDataChangeLogDto.setColumnKey("changeData");
esDataChangeLogDto.setColumnKeyLabel("历史json数据");
esDataChangeLogDto.setBeforeData(beforeData.toJSONString());
esDataChangeLogDto.setAfterData(afterData.toJSONString());
esDataChangeLogDto.setUserId(event.getRequestContext().getExcutedUserId());
esDataChangeLogDto.setCreateDate(date.getTime());
esDataChangeLogDto.setRequestDate(DateUtil.formatDateTime(date));
esDataChangeLogDto.setChangeId(maintenanceContract.getApplyNo());
esDataChangeLogDto.setColumnFamily("tzs_jg_maintenance_contract");
esDataChangeLogDto.setBizType(changeLog.getBizType());
jgBizChangeLogService.save2DbAndEs(changeLog, Collections.singletonList(esDataChangeLogDto));
}
}
package com.yeejoin.amos.boot.module.jg.biz.event.handler;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.ESDataChangeLogDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgBizChangeLog;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.biz.event.ChangeDataEvent;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgBizChangeLogServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.UseRegisterDataChangeHandleImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.UseRegisterUpdateService;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.Date;
import java.util.Set;
@Component
@RequiredArgsConstructor
@Slf4j
public class UseRegisterChangeEventHandler implements IChangeEventBizHandler<ChangeDataEvent> {
private final JgUseRegistrationServiceImpl jgUseRegistrationService;
private final JgBizChangeLogServiceImpl jgBizChangeLogService;
private final UseRegisterUpdateService registerUpdateService;
@Override
@Async
public void handle(ChangeDataEvent event) {
log.info("开始更新使用登记json数据:{}", event);
// 查询关联的单据-未删除且已完成状态-不包括原始使用登记的修改
Set<Long> useRegistrationIds = this.getRelationUseRegisterList(event);
// 更新历史json
useRegistrationIds.forEach(seq -> {
// 更新json
JgUseRegistration useRegistration = jgUseRegistrationService.getById(seq);
// 查询之前数据json
JSONObject beforeData = jgUseRegistrationService.getHisData(useRegistration);
registerUpdateService.updateHisData(useRegistration.getApplyNo());
// 查询之后数据json
JSONObject afterData = jgUseRegistrationService.getHisData(useRegistration);
// es记录日志
this.log2es(beforeData, afterData, useRegistration, event);
});
log.info("更新使用登记的单据数量:{}", useRegistrationIds.size());
}
private void log2es(JSONObject beforeData, JSONObject afterData, JgUseRegistration jgUseRegistration, ChangeDataEvent event) {
Date date = DateUtil.date();
JgBizChangeLog changeLog = new JgBizChangeLog();
BeanUtil.copyProperties(event.getBizRelationData(), changeLog);
changeLog.setRecDate(date);
changeLog.setBizId(jgUseRegistration.getApplyNo());
// todo 与原始编辑进行关联
changeLog.setOId(event.getRequestContext().getTraceId());
changeLog.setBizType(changeLog.getBizType());
changeLog.setBizTable("tzs_jg_use_registration");
changeLog.setRecUserId(event.getRequestContext().getExcutedUserId());
ESDataChangeLogDto esDataChangeLogDto = new ESDataChangeLogDto();
esDataChangeLogDto.setColumnKey("changeData");
esDataChangeLogDto.setColumnKeyLabel("历史json数据");
esDataChangeLogDto.setBeforeData(beforeData.toJSONString());
esDataChangeLogDto.setAfterData(afterData.toJSONString());
esDataChangeLogDto.setUserId(event.getRequestContext().getExcutedUserId());
esDataChangeLogDto.setCreateDate(date.getTime());
esDataChangeLogDto.setRequestDate(DateUtil.formatDateTime(date));
esDataChangeLogDto.setChangeId(jgUseRegistration.getApplyNo());
esDataChangeLogDto.setColumnFamily(changeLog.getBizTable());
esDataChangeLogDto.setBizType(changeLog.getBizType());
jgBizChangeLogService.save2DbAndEs(changeLog, Collections.singletonList(esDataChangeLogDto));
}
private Set<Long> getRelationUseRegisterList(ChangeDataEvent event) {
// 变化的设备
Set<String> records = event.getBizRelationData().getRecords();
String applyNo = event.getBizRelationData().getBizId();
// 查询设备关联的已完成状态的单据-来更新其json
return jgUseRegistrationService.getBaseMapper().queryListByEqsAndStatus(records, FlowStatusEnum.TO_BE_FINISHED.getName(), applyNo);
}
@Override
public Boolean supports(ChangeDataEvent event) {
return UseRegisterDataChangeHandleImpl.BIZ_TYPE.equals(event.getBizRelationData().getBizType());
}
}
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.event.listener;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.event.ChangeDataEvent;
import com.yeejoin.amos.boot.module.jg.biz.event.handler.IChangeUpdateHandler;
import com.yeejoin.amos.boot.module.jg.biz.event.handler.IChangeEventBizHandler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
......@@ -30,7 +30,7 @@ public class RelationBizApplyUpdateListener {
@Value("${relation.data.deal.thread.number:1}")
private int threadNumber;
private final List<IChangeUpdateHandler<ApplicationEvent>> changeUpdateHandlers;
private final List<IChangeEventBizHandler<ApplicationEvent>> changeUpdateHandlers;
private final BlockingQueue<ChangeDataEvent> queue = new LinkedBlockingQueue<>();
......
......@@ -4514,4 +4514,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
public Object countUseTimesForInvalid(Object code) {
return jgUseRegistrationMapper.countUseTimesForInvalid(code) == 0;
}
public JSONObject getHisData(JgUseRegistration jgUseRegistration){
return commonService.queryHistoryData(jgUseRegistration.getSequenceNbr());
}
}
\ No newline at end of file
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