Commit 5f8b487c authored by suhuiguang's avatar suhuiguang

feat(综合搜索):增量数据刷库增加口

1.企业、单位、人员增加
parent 782a0f11
......@@ -435,30 +435,17 @@ public class ESEquipmentInfo {
if (Double.isNaN(value) || Double.isInfinite(value)) {
return value; // 保留特殊值原样返回
}
// 默认精度处理
int scale = (precision != null) ?
Math.min(precision, 16) : 6; // 最大支持16位小数
// 银行家舍入法(HALF_EVEN)减少统计误差
BigDecimal bd = BigDecimal.valueOf(value); // 注意:必须用valueOf避免精度丢失
bd = bd.setScale(scale, RoundingMode.HALF_EVEN);
bd = bd.setScale(scale, RoundingMode.HALF_UP);
// 处理科学计数法(避免1.23E-4这样的输出)
return bd.stripTrailingZeros().doubleValue();
}
private Date convertToDate(Object value) {
if (value instanceof Date) return (Date) value;
if (value instanceof Long) return new Date((Long) value);
if (value instanceof String) {
try {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) value);
} catch (ParseException e) {
throw new IllegalArgumentException("Invalid date format");
}
}
throw new IllegalArgumentException("Unsupported date type");
}
private void resetFields() {
this.strValue = null;
this.longValue = null;
......
......@@ -16,6 +16,7 @@ import org.springframework.transaction.event.TransactionalEventListener;
import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
......@@ -74,7 +75,7 @@ public class DataRefreshListener {
}
private List<TzsDataRefreshMessage> createMsg(DataRefreshEvent event) {
List<TzsDataRefreshMessage> messages = event.getDataIds().stream().map(dataId -> {
List<TzsDataRefreshMessage> messages = event.getDataIds().stream().filter(Objects::nonNull).map(dataId -> {
TzsDataRefreshMessage message = new TzsDataRefreshMessage();
message.setDataId(dataId);
message.setDataType(event.getDataType());
......
......@@ -121,33 +121,8 @@ public class JgMaintenanceContractController extends BaseController {
String.valueOf(map.get("operate")),
String.valueOf(map.get("comment")),
true,
String.valueOf(map.get("nextTaskId")));
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
if (map.containsKey("formData") && !ObjectUtils.isEmpty(map.get("formData"))) {
JgMaintenanceContract dto = new JgMaintenanceContract();
Map<String, Object> formData = (Map<String, Object>) map.get("formData");
BeanUtil.copyProperties(formData, dto);
JgMaintenanceContract result = new JgMaintenanceContract();
if (!ObjectUtils.isEmpty(dto.getMaintenanceManagerOneId())) {
result.setSequenceNbr(dto.getSequenceNbr());
// 维保人员一
String[] maintenanceManagerOneInfo = dto.getMaintenanceManagerOneId().split("_");
result.setMaintenanceManagerOneId(maintenanceManagerOneInfo[0]);
result.setMaintenanceManagerOneName(maintenanceManagerOneInfo[1]);
result.setMaintenanceManagerOnePhone(dto.getMaintenanceManagerOnePhone());
result.setMaintenanceManagerOneIdNum(dto.getMaintenanceManagerOneIdNum());
// 维保人员二
String[] maintenanceManagerTwoInfo = dto.getMaintenanceManagerTwoId().split("_");
result.setMaintenanceManagerTwoId(maintenanceManagerTwoInfo[0]);
result.setMaintenanceManagerTwoName(maintenanceManagerTwoInfo[1]);
result.setMaintenanceManagerTwoPhone(dto.getMaintenanceManagerTwoPhone());
result.setMaintenanceManagerTwoIdNum(dto.getMaintenanceManagerTwoIdNum());
result.setPromoter(reginParams.getUserModel().getUserId());
}
jgMaintenanceContractServiceImpl.getBaseMapper().updateById(result);
}
String.valueOf(map.get("nextTaskId")),
map);
return ResponseHelper.buildResponse("ok");
}
......
......@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
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.jg.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
......@@ -20,6 +22,7 @@ import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
......@@ -35,6 +38,8 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
private final EsUpdateService esUpdateService;
private final CommonPublisher publisher;
@Override
public HandleResult handle(Map<String, Object> changeData, String record) {
......@@ -140,6 +145,8 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
this.updateOtherEquipInSameCert(useInfoNew, registerInfoNew, registerInfoOld, allChangeColumns);
// 设备技术参数入库处理
commonEquipDataProcessService.updateTechParamInfo(registerInfoOld.getEquList(), record, changeData, allChangeColumns);
// 发送数据刷新消息
publisher.publish(new DataRefreshEvent(this, Collections.singletonList(record), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
return HandleResult.builder().fieldChangeMetas(allChangeColumns).build();
}
......
......@@ -9,6 +9,8 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
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.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant;
import com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.service.EsUpdateService;
......@@ -45,6 +47,8 @@ public class SingleProjectEquipChangeProcess implements IEquipChangeDataProcessS
private final EsUpdateService esUpdateService;
private final CommonPublisher publisher;
@Override
public HandleResult handle(Map<String, Object> changeData, String projectContraptionId) {
......@@ -116,9 +120,16 @@ public class SingleProjectEquipChangeProcess implements IEquipChangeDataProcessS
pieLineDataChangeService.updateEs(projectContraptionChangeDataDto);
// 5.更新管道长度,按照装置下的已经入库的全量更新(todo 流程中编辑时数据不体现在这 还是原数据)
pieLineDataChangeService.updatePipelineLength(projectContraptionChangeDataDto.getProjectContraptionId());
this.sendDataRefreshMsgProjectContraption(pmap.values());
return HandleResult.builder().fieldChangeMetas(allChangeColumns).pipelineChangeItemMap(pmap).build();
}
private void sendDataRefreshMsgProjectContraption(Collection<List<PipelineChangeItemDto>> values) {
List<String> records = values.stream().flatMap(Collection::stream).collect(Collectors.toList()).stream().map(TechParamsPipelineChangeFieldDto::getRecord).collect(Collectors.toList());
publisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
private void buildTechParamChangeLog(String record, PipelineChangeItemDto pipelineNew, PipelineChangeItemDto pipelineOld, ProjectContraptionChangeDataDto projectContraptionChangeDataDto, List<FieldChangeMeta> allChangeColumns) {
TechParamsPipelineChangeFieldDto paramsPipelineChangeFieldNew = new TechParamsPipelineChangeFieldDto();
BeanUtil.copyProperties(pipelineNew, paramsPipelineChangeFieldNew, true);
......
package com.yeejoin.amos.boot.module.jg.biz.event.listener.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.event.dto.CancelEquipItem;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
......@@ -17,8 +19,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@Service
@Slf4j
......@@ -43,6 +48,15 @@ public class ManageStatusDataUpdateService {
});
// 装置评分处理
castEvent2EquipEditEvent(cancelEquipItem.getProjectContraptionIds());
// 发送数据刷新消息
sendPipelineRefreshMsg(cancelEquipItem.getProjectContraptionIds());
}
private void sendPipelineRefreshMsg(Set<String> projectContraptionIds) {
if (projectContraptionIds != null && !projectContraptionIds.isEmpty()) {
List<String> records = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().in(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionIds).select(IdxBizJgUseInfo::getRecord)).stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toList());
publisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
}
/**
......@@ -82,6 +96,7 @@ public class ManageStatusDataUpdateService {
}
esEquipmentCategoryDao.save(esEquipmentCategoryDto);
});
publisher.publish(new DataRefreshEvent(this, Collections.singletonList(record), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
} catch (Exception e) {
log.error("设备作废异常:{}", e.getMessage());
}
......
......@@ -52,7 +52,7 @@ public class EquipRefreshHandler implements IDataRefreshHandler {
@Override
public void doRefresh(TzsDataRefreshMessage message) {
log.info("3库数据,设备开始刷库:唯一标识:{}", message.getDataId());
log.info("库数据,设备开始刷库:唯一标识:{}", message.getDataId());
switch (DataRefreshEvent.Operation.valueOf(message.getOperation())) {
case DELETE:
esEquipmentDao.deleteById(message.getDataId());
......
......@@ -64,8 +64,9 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
lambda.eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr());
lambda.select(JgUseRegistrationEq::getEquId);
List<String> records = useRegisterReminderParse.getJgRelationEquipMapper().selectList(lambda).stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toList());
Map<String, Object> historyData = getValuesFromHistory(useRegistration);
List<ReminderItemDto> itemDtoList = useRegisterReminderParse.getJgUseRegistrationMapper().queryForUnitVehiclePageForReminder(records);
itemDtoList.forEach(item -> item.setDetailData(this.buildSetUseDataByStatus(useRegistration, item.getEquipId())));
itemDtoList.forEach(item -> item.setDetailData(this.buildSetUseDataByStatus(historyData, item.getEquipId())));
re.addAll(itemDtoList);
}
// 台套设备
......@@ -83,14 +84,14 @@ public class UseRegisterReminderAdapter extends DefaultReminder {
reminderItemDto.setEquipId(record);
reminderItemDto.setEquipNo(idxBizJgUseInfo.getUseInnerCode());
reminderItemDto.setEquipName(registerInfo.getProductName());
reminderItemDto.setDetailData(this.buildSetUseDataByStatus(useRegistration, record));
Map<String, Object> historyData = getValuesFromHistory(useRegistration);
reminderItemDto.setDetailData(this.buildSetUseDataByStatus(historyData, record));
re.add(reminderItemDto);
}
return re;
}
private Map<String, Object> buildSetUseDataByStatus(JgUseRegistration useRegistration, String record) {
Map<String, Object> re = getValuesFromHistory(useRegistration);
private Map<String, Object> buildSetUseDataByStatus(Map<String, Object> re, String record) {
if (re != null) return re;
return useRegisterReminderParse.getEquipDetailByRecord(record);
}
......
......@@ -26,6 +26,7 @@ import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dao.ExcelImportErrorLogDao;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.common.api.dto.ExcelImportErrorLogDto;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.converter.DictParamsConverter;
import com.yeejoin.amos.boot.module.jg.api.converter.EquCategoryConverter;
import com.yeejoin.amos.boot.module.jg.api.converter.EquDefineConverter;
......@@ -184,6 +185,7 @@ public class DataDockServiceImpl {
})).toArray(CompletableFuture[]::new)
).join();
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, new ArrayList<>(recordSet), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.INSERT));
return Boolean.TRUE;
}
......@@ -1773,6 +1775,7 @@ public class DataDockServiceImpl {
}
}
}
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.INSERT));
return Boolean.TRUE;
}
......@@ -2445,6 +2448,7 @@ public class DataDockServiceImpl {
})).toArray(CompletableFuture[]::new)
).join();
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, new ArrayList<>(recordSet), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.INSERT));
return Boolean.TRUE;
}
......
......@@ -4333,6 +4333,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
Optional.of(esEquipmentCategoryList).filter(list -> !list.isEmpty()).ifPresent(esEquipmentCategory::saveAll);
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, new ArrayList<>(recordSet), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.INSERT));
return String.format("导入完成,成功导入: %d 条数据!", useInfoList.size());
}
......
......@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
......@@ -23,11 +24,13 @@ import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
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;
......@@ -133,6 +136,9 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
@Autowired
private JgCertificateChangeRecordEqServiceImpl jgCertificateChangeRecordEqService;
@Autowired
private EventPublisher eventPublisher;
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationName> save2(String submitType, JSONObject requestParam) {
......@@ -794,12 +800,17 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
TaskV2Model taskV2Model = updateTaskModel(jgChangeRegistrationName, operate);
// 修改业务信息
updateInfoOther(taskV2Model, jgChangeRegistrationName);
this.sendDataRefreshMsg(jgChangeRegistrationName);
}
// 保存redis最新流程数据
commonService.saveExecuteFlowData2Redis(jgChangeRegistrationName.getInstanceId(), this.buildInstanceRuntimeData(jgChangeRegistrationName));
this.getBaseMapper().updateById(jgChangeRegistrationName);
}
private void sendDataRefreshMsg(JgChangeRegistrationName jgChangeRegistrationName) {
eventPublisher.publish(new DataRefreshEvent(this, Collections.singletonList(jgChangeRegistrationName.getUseUnitCreditCode()), DataRefreshEvent.DataType.enterprise.name(), DataRefreshEvent.Operation.UPDATE));
}
public InstanceRuntimeData buildInstanceRuntimeData(JgChangeRegistrationName jgChangeRegistrationName) {
return InstanceRuntimeData.builder()
.nextExecuteUserIds(jgChangeRegistrationName.getNextExecuteUserIds())
......
......@@ -20,6 +20,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
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.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
......@@ -33,6 +34,7 @@ import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.changeRegistrationReform.ChangeRegisterReformBackupManager;
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.*;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
......@@ -73,6 +75,7 @@ import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
import static java.util.stream.Collectors.toList;
......@@ -189,6 +192,9 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
@Autowired
private IdxBizJgTechParamsPipelineServiceImpl idxBizJgTechParamsPipelineServiceImpl;
@Autowired
private EventPublisher eventPublisher;
/***
* @deprecated 根据查询调教获取分页对象
* @param dto 查询的dto对象
......@@ -631,13 +637,25 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// 3.清除设备及装置的安改维单位信息
this.clearUscWithEquipAndCon(jgChangeRegistrationReform);
}
this.sendDataRefreshMsg(jgChangeRegistrationReform);
}
// redis流程实时数据更新
commonServiceImpl.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jgChangeRegistrationReform));
this.getBaseMapper().updateById(jgChangeRegistrationReform);
}
private void sendDataRefreshMsg(JgChangeRegistrationReform jgChangeRegistrationReform) {
List<String> records = new ArrayList<>();
if(StringUtils.isNotEmpty(jgChangeRegistrationReform.getProjectContraptionId())){
records = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, jgChangeRegistrationReform.getProjectContraptionId()).select(IdxBizJgUseInfo::getRecord)).stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toList());
} else {
records = jgChangeRegistrationReformEqMapper.selectList(new LambdaQueryWrapper<JgChangeRegistrationReformEq>()
.eq(JgChangeRegistrationReformEq::getEquipTransferId, jgChangeRegistrationReform.getSequenceNbr())
.select(JgChangeRegistrationReformEq::getEquId)).stream().map(JgChangeRegistrationReformEq::getEquId).collect(Collectors.toList());
}
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
/**
* 审批通过后删除安改维单位信息
*
......@@ -1480,6 +1498,8 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
this.updateById(jgChangeRegistrationReform);
// 2.更新关联的业务
this.processElseDataByStatus(oldStatus, jgChangeRegistrationReform);
// 3.发送数据变更消息
this.sendDataRefreshMsg(jgChangeRegistrationReform);
return jgChangeRegistrationReform;
}
......
......@@ -17,6 +17,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.common.StringUtil;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
......@@ -29,6 +30,7 @@ import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
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.*;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
......@@ -143,6 +145,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
@Autowired
private IIdxBizJgOtherInfoService otherInfoService;
@Autowired
private EventPublisher eventPublisher;
/**
* 新增移装变更登记
*
......@@ -826,15 +831,23 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
map.put("relationId", jgChangeRegistrationTransfer.getInstanceId());
map.put("model", jgChangeRegistrationTransfer);
TaskV2Model taskV2Model = commonService.updateTaskModel(map);
//新增使用登记证和设备变更记录
// 新增使用登记证和设备变更记录
this.saveChangeRecord(jgChangeRegistrationTransfer, taskV2Model);
// 事务提交后发送数据刷新消息
this.sendDataRefreshMsg(jgChangeRegistrationTransfer);
}
// redis流程实时数据更新
commonServiceImpl.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jgChangeRegistrationTransfer));
this.getBaseMapper().updateById(jgChangeRegistrationTransfer);
}
private void sendDataRefreshMsg(JgChangeRegistrationTransfer jgChangeRegistrationTransfer) {
LambdaQueryWrapper<JgChangeRegistrationTransferEq> lambda = new QueryWrapper<JgChangeRegistrationTransferEq>().lambda();
lambda.eq(JgChangeRegistrationTransferEq::getEquipTransferId, jgChangeRegistrationTransfer.getSequenceNbr());
List<String> records = jgChangeRegistrationTransferEqService.getBaseMapper().selectList(lambda).stream().map(JgChangeRegistrationTransferEq::getEquId).collect(Collectors.toList());
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
private Map<String, String> create96333Code(JgRegistrationHistory historyData, String record) {
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
List<JSONObject> registrationList = (List<JSONObject>) changeData.get("registrationList");
......
......@@ -17,6 +17,7 @@ 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.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
......@@ -25,6 +26,7 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationUnitServ
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
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.feign.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
......@@ -106,13 +108,10 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
UseInfoMapper useInfoMapper;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
SupervisoryCodeInfoMapper supervisoryCodeInfoMapper;
@Autowired
CommonServiceImpl commonServiceImpl;
@Autowired
WorkFlowFeignService workFlowFeginService;
@Autowired
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
......@@ -186,6 +185,9 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
@Autowired
private IdxBizJgProjectContraptionServiceImplService projectContraptionService;
@Autowired
private EventPublisher eventPublisher;
/**
* 根据sequenceNbr查询:1、查询单位变更信息,2、查询使用登记证列表
*
......@@ -1290,6 +1292,8 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
useRegistrationManageService.updateBatchById(list);
}
// 发送数据变更消息
this.sendDataRefreshMsg(registration);
} else {
registration.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(registration.getInstanceStatus())) {
......@@ -1329,6 +1333,14 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
}
private void sendDataRefreshMsg(JgChangeRegistrationUnit registration) {
LambdaQueryWrapper<JgChangeRegistrationUnitEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registration.getSequenceNbr());
queryWrapper.select(JgChangeRegistrationUnitEq::getEquId);
List<String> records = JgChangeRegistrationUnitEqMapper.selectList(queryWrapper).stream().map(JgChangeRegistrationUnitEq::getEquId).filter(Objects::nonNull).collect(Collectors.toList());
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
/**
* 处理工业管道
*
......
......@@ -13,6 +13,7 @@ import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
......@@ -25,6 +26,7 @@ import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
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.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICompensateFlowDataOfRedis;
......@@ -118,6 +120,9 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
@Autowired
private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoServiceImpl;
@Autowired
private EventPublisher eventPublisher;
public void changeData(JgChangeVehicleRegistrationUnit dto, CompanyBo company) {
if (!ObjectUtils.isEmpty(dto.getReceiveCompanyCode())) {
......@@ -443,13 +448,23 @@ public class JgChangeVehicleRegistrationUnitServiceImpl extends BaseService<JgCh
TaskV2Model taskV2Model = updateAgency(jgChangeVehicleRegistrationUnit);
// 修改设备信息、添加证、设备流水信息
saveRecord(jgChangeVehicleRegistrationUnit, taskV2Model);
// 审核通过发送数据变更消息
this.sendDataRefreshMsgEquip(jgChangeVehicleRegistrationUnit);
}
this.getBaseMapper().updateById(jgChangeVehicleRegistrationUnit);
commonServiceImpl.saveExecuteFlowData2Redis(jgChangeVehicleRegistrationUnit.getInstanceId(), this.buildInstanceRuntimeData(jgChangeVehicleRegistrationUnit));
return jgChangeVehicleRegistrationUnit;
}
private void sendDataRefreshMsgEquip(JgChangeVehicleRegistrationUnit vehicleRegistrationUnit) {
LambdaQueryWrapper<JgChangeVehicleRegistrationUnitEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgChangeVehicleRegistrationUnitEq::getUnitChangeId, vehicleRegistrationUnit.getSequenceNbr());
queryWrapper.select(JgChangeVehicleRegistrationUnitEq::getEquId);
List<String> records = jgChangeVehicleRegistrationUnitEqService.list(queryWrapper).stream().map(JgChangeVehicleRegistrationUnitEq::getEquId).collect(Collectors.toList());
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
public void updateEsData(List<String> ids, JgChangeVehicleRegistrationUnit
jgChangeVehicleRegistrationUnit, String useRegistCode) {
// 更新es
......
......@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisable;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisableEq;
......@@ -26,6 +27,7 @@ import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
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.service.ICompensateFlowDataOfRedis;
......@@ -111,6 +113,9 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
@Autowired
private JgUseRegistrationManageServiceImpl useRegistrationManageService;
@Autowired
private EventPublisher eventPublisher;
/**
* 设备状态:启用
*/
......@@ -572,6 +577,8 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
// 更新业务数据
updateInfoOther(jgEnableDisable);
commonService.updateTaskModel(taskMap);
// 完成后发送数据刷新消息
this.sendDataRefreshMsg(jgEnableDisable);
} else {
jgEnableDisable.setNextExecutorIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgEnableDisable.getExecuteSequence())) {
......@@ -646,6 +653,14 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
}
}
private void sendDataRefreshMsg(JgEnableDisable jgEnableDisable) {
LambdaQueryWrapper<JgEnableDisableEq> lambdaEq = new QueryWrapper<JgEnableDisableEq>().lambda();
lambdaEq.eq(JgEnableDisableEq::getEnableDisableApplyId, jgEnableDisable.getSequenceNbr());
lambdaEq.select(JgEnableDisableEq::getEquId);
List<String> records = jgEnableDisableEqMapper.selectList(lambdaEq).stream().map(JgEnableDisableEq::getEquId).collect(Collectors.toList());
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
private void updateInfoOther(JgEnableDisable jgEnableDisable) {
// 1.更新设备的使用信息:启用->停用,停用->启用
LambdaQueryWrapper<JgEnableDisableEq> lambdaEq = new QueryWrapper<JgEnableDisableEq>().lambda();
......
......@@ -24,6 +24,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
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.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
......@@ -189,8 +190,6 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
private IdxBizJgProjectContraptionServiceImplService projectContraptionService;
@Autowired
private ObjectMapper objectMapper;
@Autowired
private IdxBizJgProjectConstructionMapper projectConstructionMapper;
@Autowired
private IdxBizJgProjectContraptionMapper projectContraptionMapper;
......@@ -1440,7 +1439,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
}
// 更新关联设备表
jgInstallationNoticeEqService.updateBatchById(jgRelationEquips);
// 发送数据刷新消息
eventPublisher.publish(new DataRefreshEvent(this, jgRelationEquips.stream().map(JgInstallationNoticeEq::getEquId).collect(Collectors.toList()), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
} else {
jgInstallationNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
jgInstallationNotice.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
......
......@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContractEq;
......@@ -201,7 +202,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void flowExecute(Long id, String instanceId, String operate, String comment, Boolean update, String nextTaskId) {
public void flowExecute(Long id, String instanceId, String operate, String comment, Boolean update, String nextTaskId, JSONObject map) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
try {
......@@ -220,18 +221,43 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
HashMap<String, Object> variableMap = new HashMap<>();
variableMap.put("approvalStatus", operate);
if (WorkFlowStatusEnum.MAIN_SUBMIT.getReject().equals(contract.getStatus()) || WorkFlowStatusEnum.MAIN_SUBMIT.getRollBack().equals(contract.getStatus())) {
map.put("approvalStatus", "提交");
variableMap.put("approvalStatus", "提交");
}
dto.setVariable(map);
dto.setVariable(variableMap);
// 下一节点执行人单位(下节点接收机构code)
dto.setNextExecuteUserCompanyCode(getNextUserOrgCode(operate, contract));
ProcessTaskDTO complete = workflowService.completeOrReject(taskId, dto, operate);
// 更新下一步执行人、创建待办
updateExecuteIds(instanceId, id, operate, complete);
this.delRepeatUseEquipData(contract.getSequenceNbr(), contract.getStatus(), contract.getUseUnitCode());
// 更新维保信息
if (map.containsKey("formData") && !ObjectUtils.isEmpty(map.get("formData"))) {
JgMaintenanceContract maintenanceContract = new JgMaintenanceContract();
Map<String, Object> formData = (Map<String, Object>) map.get("formData");
BeanUtil.copyProperties(formData, maintenanceContract);
JgMaintenanceContract result = new JgMaintenanceContract();
if (!ObjectUtils.isEmpty(maintenanceContract.getMaintenanceManagerOneId())) {
result.setSequenceNbr(maintenanceContract.getSequenceNbr());
// 维保人员一
String[] maintenanceManagerOneInfo = maintenanceContract.getMaintenanceManagerOneId().split("_");
result.setMaintenanceManagerOneId(maintenanceManagerOneInfo[0]);
result.setMaintenanceManagerOneName(maintenanceManagerOneInfo[1]);
result.setMaintenanceManagerOnePhone(maintenanceContract.getMaintenanceManagerOnePhone());
result.setMaintenanceManagerOneIdNum(maintenanceContract.getMaintenanceManagerOneIdNum());
// 维保人员二
String[] maintenanceManagerTwoInfo = maintenanceContract.getMaintenanceManagerTwoId().split("_");
result.setMaintenanceManagerTwoId(maintenanceManagerTwoInfo[0]);
result.setMaintenanceManagerTwoName(maintenanceManagerTwoInfo[1]);
result.setMaintenanceManagerTwoPhone(maintenanceContract.getMaintenanceManagerTwoPhone());
result.setMaintenanceManagerTwoIdNum(maintenanceContract.getMaintenanceManagerTwoIdNum());
result.setPromoter(RequestContext.getExeUserId());
}
this.getBaseMapper().updateById(result);
}
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
......@@ -257,7 +283,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
}
}
private List<String> getEquList(Long id) {
private List<String> getRecords(Long id) {
List<JgMaintenanceContractEq> list = jgMaintenanceContractEqService.lambdaQuery().eq(JgMaintenanceContractEq::getEquipTransferId, id).list();
return list.stream().map(JgMaintenanceContractEq::getEquId).collect(Collectors.toList());
}
......@@ -687,6 +713,8 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
TaskV2Model taskV2Model = updateTaskModel(contract, "0");
// 添加设备维保信息
updateEquipMessage(contract.getSequenceNbr(), taskV2Model);
// 发送数据刷新消息
this.sendDataRefreshMsg(sequenceNbr);
}
this.getBaseMapper().updateById(contract);
......@@ -694,6 +722,10 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(contract));
}
private void sendDataRefreshMsg(Long sequenceNbr) {
eventPublisher.publish(new DataRefreshEvent(this,getRecords(sequenceNbr), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
/**
* 流程结束后添加设备维保信息
*
......@@ -863,7 +895,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
eventPublisher.publish(new CancellationEvent(this, getEquList(maintenanceContract.getSequenceNbr())));
eventPublisher.publish(new CancellationEvent(this, getRecords(maintenanceContract.getSequenceNbr())));
}
});
return maintenanceContract;
......
......@@ -21,6 +21,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
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.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgReformNotice;
import com.yeejoin.amos.boot.module.jg.api.entity.JgReformNoticeEq;
......@@ -140,6 +141,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
private final IdxBizJgInspectionDetectionInfoServiceImpl idxBizJgInspectionDetectionInfoService;
private final IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService;
private final JgUseRegistrationServiceImpl useRegistrationService;
private final UseInfoMapper useInfoMapper;
@ResultFieldMapping({
......@@ -969,6 +971,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
this.YLGDDataPassHandler(jgReformNotice);
this.updateLastTodo(jgReformNotice, FlowStatusEnum.TO_BE_FINISHED);
this.updateById(jgReformNotice);
this.sendDataRefreshMsg(jgReformNotice, noticeEqs);
} else {
jgReformNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgReformNotice.getInstanceStatus())) {
......@@ -1007,6 +1010,16 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
}
private void sendDataRefreshMsg(JgReformNotice jgReformNotice, List<JgReformNoticeEq> noticeEqs) {
List<String> records;
if(!StringUtils.isEmpty(jgReformNotice.getProjectContraptionId())){
records = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, jgReformNotice.getProjectContraptionId()).select(IdxBizJgUseInfo::getRecord)).stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toList());
} else {
records = noticeEqs.stream().map(JgReformNoticeEq::getEquId).collect(Collectors.toList());
}
eventPublisher.publish(new DataRefreshEvent(this,records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
/**
* redis获取用户信息
**/
......
......@@ -13,6 +13,7 @@ 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.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
......@@ -27,6 +28,7 @@ import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
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.ICompensateFlowDataOfRedis;
import com.yeejoin.amos.boot.module.ymt.api.entity.SuperviseInfo;
......@@ -114,6 +116,9 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@Autowired
private SnowflakeIdUtil sequence;
@Autowired
private EventPublisher eventPublisher;
/**
* 移装移装注销/报废注销判断
*
......@@ -958,9 +963,18 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
TaskV2Model taskV2Model = updateTaskModel(scrapCancelDto, operate);
// 修改业务信息
updateInfoOther(jgScrapCancel, taskV2Model.getRoutePath());
// 发送数据变更消息
this.sendDataRefreshMsg(jgScrapCancel);
}
this.getBaseMapper().updateById(jgScrapCancel);
}
private void sendDataRefreshMsg(JgScrapCancel jgScrapCancel) {
LambdaQueryWrapper<JgScrapCancelEq> lambdaEq = new QueryWrapper<JgScrapCancelEq>().lambda();
lambdaEq.eq(JgScrapCancelEq::getEquipTransferId, jgScrapCancel.getSequenceNbr());
lambdaEq.select(JgScrapCancelEq::getEquId);
List<String> records = jgScrapCancelEqService.list(lambdaEq).stream().map(JgScrapCancelEq::getEquId).collect(Collectors.toList());
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
private void updateInfoOther(JgScrapCancel jgScrapCancel, String routePath) {
LambdaQueryWrapper<JgScrapCancelEq> lambdaEq = new LambdaQueryWrapper<>();
......
......@@ -31,6 +31,7 @@ import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
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.enums.JYJCResultEnum;
import com.yeejoin.amos.boot.module.common.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
......@@ -1297,6 +1298,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgRegistrationHistory.setChangeData(JSON.toJSONString(mapData));
jgRegistrationHistoryService.updateById(jgRegistrationHistory);
this.publish2CalGrade(jgUseRegistration, records);
eventPublisher.publish(new DataRefreshEvent(this, records, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
this.getBaseMapper().updateById(jgUseRegistration);
commonServiceImpl.saveExecuteFlowData2Redis(jgUseRegistration.getInstanceId(), this.buildInstanceRuntimeData(jgUseRegistration));
......@@ -1730,6 +1732,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
certificateChangeRecordEqService.save(changeRecordEq);
});
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_USAGE_REGISTRATION.name(), Sets.newHashSet(registerInfo.getRecord()), EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, Collections.singletonList(registerInfo.getRecord()), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
}
this.getBaseMapper().updateById(jgUseRegistration);
commonServiceImpl.saveExecuteFlowData2Redis(jgUseRegistration.getInstanceId(), this.buildInstanceRuntimeData(jgUseRegistration));
......@@ -4360,6 +4363,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
}
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), Sets.newHashSet(equipId), EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, Collections.singletonList(equipId), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.UPDATE));
return this.baseMapper.getDetailById(jgUseRegistration.getSequenceNbr());
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
......
......@@ -24,6 +24,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
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.biz.refresh.DataRefreshEvent;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
......@@ -1018,6 +1019,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
);
// 车用气瓶评分
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.name(), Sets.newHashSet(equipIdList), EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, equipIdList, DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.INSERT));
}
this.getBaseMapper().updateById(jgVehicleInformation);
commonService.saveExecuteFlowData2Redis(jgVehicleInformation.getInstanceId(), this.buildInstanceRuntimeData(jgVehicleInformation));
......@@ -2186,6 +2188,7 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
.map(v -> (String) v.get("record"))
.collect(Collectors.toSet());
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
eventPublisher.publish(new DataRefreshEvent(this, new ArrayList<>(recordSet), DataRefreshEvent.DataType.equipment.name(), DataRefreshEvent.Operation.INSERT));
return Collections.singletonList(vehicleInformation);
}
......
......@@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@Component
......@@ -46,8 +47,13 @@ public class EnterpriseRefreshHandler implements IDataRefreshHandler {
@Override
public void doRefresh(TzsDataRefreshMessage message) {
log.info("3库数据,企业开始刷库:唯一标识:{}", message.getDataId());
TzBaseEnterpriseInfo enterpriseInfo = tzBaseEnterpriseInfoMapper.selectById(message.getDataId());
log.info("三库数据,企业开始刷库:唯一标识:{}", message.getDataId());
TzBaseEnterpriseInfo enterpriseInfo = Optional.ofNullable(tzBaseEnterpriseInfoMapper.selectById(message.getDataId())).orElse(
tzBaseEnterpriseInfoMapper.selectOne(new LambdaQueryWrapper<TzBaseEnterpriseInfo>().eq(TzBaseEnterpriseInfo::getUseUnitCode, message.getDataId()))
);
if (enterpriseInfo == null) {
throw new RuntimeException(String.format("刷企业信息es时,企业:%s,未找到", message.getDataId()));
}
switch (DataRefreshEvent.Operation.valueOf(message.getOperation())) {
case DELETE:
enterpriseInfoDao.deleteById(message.getDataId());
......
......@@ -39,7 +39,7 @@ public class UserRefreshHandler implements IDataRefreshHandler {
@Override
public void doRefresh(TzsDataRefreshMessage message) {
log.info("3库数据,人员开始刷库:唯一标识:{}", message.getDataId());
log.info("库数据,人员开始刷库:唯一标识:{}", message.getDataId());
switch (DataRefreshEvent.Operation.valueOf(message.getOperation())) {
case DELETE:
esUserInfoDao.deleteById(message.getDataId());
......
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