Commit 1161d1e5 authored by suhuiguang's avatar suhuiguang

feat(重要提醒):业务新增提醒开发联调

1.使用登记作废
parent 97771423
......@@ -4,6 +4,7 @@ import lombok.Getter;
import org.springframework.context.ApplicationEvent;
import java.util.List;
import java.util.Set;
/**
* @author Administrator
......@@ -13,6 +14,7 @@ public class CancellationEvent extends ApplicationEvent {
private List<String> records;
private Set<String> projectContraptionIds;
/**
* Create a new {@code ApplicationEvent}.
*
......@@ -23,4 +25,10 @@ public class CancellationEvent extends ApplicationEvent {
super(source);
this.records = records;
}
public CancellationEvent(Object source, List<String> records, Set<String> projectContraptionIds) {
super(source);
this.records = records;
this.projectContraptionIds = projectContraptionIds;
}
}
package com.yeejoin.amos.boot.module.jg.biz.event.listener;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Sets;
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.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.event.CancellationEvent;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.reminder.core.event.EquipCreateOrEditEvent;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgRegisterInfoServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgUseInfoServiceImpl;
......@@ -44,11 +48,24 @@ public class CancellationEventListener {
private BlockingQueue<String> queue = new LinkedBlockingQueue<>();
private final EventPublisher publisher;
@EventListener(value = CancellationEvent.class)
public void handleTransactionalEvent(CancellationEvent event) {
List<String> records = event.getRecords();
log.info("收到作废消息:{}", JSONObject.toJSONString(records));
queue.addAll(records);
castEvent2EquipEditEvent(event);
}
private void castEvent2EquipEditEvent(CancellationEvent event) {
if (event.getProjectContraptionIds() != null && !event.getProjectContraptionIds().isEmpty()) {
publisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_PROJECT.name(), event.getProjectContraptionIds(), EquipCreateOrEditEvent.EquipType.project));
}
}
private void castEvent2EquipEditEvent(String record) {
publisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), Sets.newHashSet(record), EquipCreateOrEditEvent.EquipType.equip));
}
@PostConstruct
......@@ -104,6 +121,7 @@ public class CancellationEventListener {
}
esEquipmentCategoryDao.save(esEquipmentCategoryDto);
});
castEvent2EquipEditEvent(record);
} catch (Exception e) {
log.error("设备作废异常:{}", e.getMessage());
}
......
......@@ -3306,14 +3306,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
Set<String> pIds = new HashSet<>();
pIds.add(jgUseRegistration.getProjectContraptionId());
pIds.addAll(Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(",")));
registerAfterCommitTask(records, pIds);
}else{
// 查询原工程装置及 useInfo 记录
List<String> originProjectContraptionIds = Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(","));
List<IdxBizJgProjectContraption> originProjectContraptionList = jgProjectContraptionService.lambdaQuery()
.in(BaseEntity::getSequenceNbr, originProjectContraptionIds)
.list();
records = idxBizJgUseInfoService.lambdaQuery()
.select(IdxBizJgUseInfo::getRecord)
.in(IdxBizJgUseInfo::getProjectContraptionId, originProjectContraptionIds)
......@@ -3321,10 +3320,12 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
.stream()
.map(IdxBizJgUseInfo::getRecord)
.collect(Collectors.toList());
// 统一处理设备的纳管状态
registerAfterCommitTask(records);
Set<String> pIds = new HashSet<>();
pIds.add(jgUseRegistration.getProjectContraptionId());
pIds.addAll(Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(",")));
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态
registerAfterCommitTask(records, pIds);
}
jgProjectContraptionService.updateById(projectContraption);
}
......@@ -3379,7 +3380,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
Set<String> pIds = new HashSet<>();
pIds.add(jgUseRegistration.getProjectContraptionId());
pIds.addAll(Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(",")));
registerAfterCommitTask(records, pIds);
}else{
// 查询原工程装置及 useInfo 记录
List<String> originProjectContraptionIds = Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(","));
......@@ -3396,7 +3400,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
.collect(Collectors.toList());
// 统一处理设备的纳管状态
registerAfterCommitTask(records);
Set<String> pIds = new HashSet<>();
pIds.add(jgUseRegistration.getProjectContraptionId());
pIds.addAll(Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(",")));
registerAfterCommitTask(records, pIds);
processElseDataByStatus(oldStatus, jgUseRegistration);
if (FlowStatusEnum.TO_BE_FINISHED.getName().equals(oldStatus)) {
// 计算管道长度并更新
......@@ -3421,9 +3428,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
this.updateTotalPieLineLength(null, jgUseRegistration.getProjectContraptionId());
}
// 统一处理设备的纳管状态【注册事务提交后的操作】
processElseDataByStatus(oldStatus, jgUseRegistration);
this.rollBackForPieLine(jgUseRegistration);
registerAfterCommitTask(records);
processElseDataByStatus(oldStatus, jgUseRegistration);
registerAfterCommitTask(records, Sets.newHashSet(jgUseRegistration.getProjectContraptionId()));
}
}
//气瓶
......@@ -3481,6 +3488,19 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
});
}
/**
* 注册事务提交后的同步操作
*/
private void registerAfterCommitTask(List<String> records, Set<String> projectContraptionIds) {
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
// 发布作废事件
eventPublisher.publish(new CancellationEvent(this, records, projectContraptionIds));
}
});
}
private void clearUseInfoOfEquip(JgUseRegistration jgUseRegistration) {
List<JgUseRegistrationEq> eqList = getJgUseRegistrationEqs(jgUseRegistration);
//非管道
......
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