Commit f9bc41a9 authored by tianbo's avatar tianbo

feat(module-jg): 新增设备创建和编辑事件发布功能

- 为项目装置表和设备使用信息表添加创建日期字段
parent 5565e50a
......@@ -15,6 +15,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.google.common.collect.Sets;
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.DateUtils;
......@@ -40,7 +41,9 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationMapper;
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.reminder.core.event.EquipCreateOrEditEvent;
import com.yeejoin.amos.boot.module.jg.biz.service.*;
import com.yeejoin.amos.boot.module.jg.biz.utils.CodeUtil;
import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
......@@ -60,6 +63,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
......@@ -70,6 +74,7 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
......@@ -80,6 +85,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.alibaba.fastjson.JSON.toJSONString;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgRegisterInfoServiceImpl.toCamelCase;
......@@ -152,6 +158,9 @@ public class DataDockServiceImpl {
// 模版上传集合
public static final String EQU_LISTS = "equLists";
@Autowired
private EventPublisher eventPublisher;
/**
* 西安数据对接-保存设备信息
*
......@@ -164,19 +173,22 @@ public class DataDockServiceImpl {
String appKey = RequestContext.getAppKey();
String product = RequestContext.getProduct();
String token = RequestContext.getToken();
Set<String> recordSet = new HashSet<>();
CompletableFuture.allOf(
equLists.parallelStream().map(equ -> CompletableFuture.runAsync(() -> {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
saveEquipmentDataInTransaction(equ, "jg_his_xa", null);
String record = saveEquipmentDataInTransaction(equ, "jg_his_xa", null);
recordSet.add(record);
})).toArray(CompletableFuture[]::new)
).join();
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
return Boolean.TRUE;
}
@GlobalTransactional(rollbackFor = Exception.class)
public void saveEquipmentDataInTransaction(Map<String, Object> equ, String dataSource, String remark) {
public String saveEquipmentDataInTransaction(Map<String, Object> equ, String dataSource, String remark) {
String record = UUID.randomUUID().toString();
try {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
......@@ -201,7 +213,7 @@ public class DataDockServiceImpl {
saveTechParams(equ, record, equList);
// 保存到ES
saveEquInfoToEs(record, isCompleteXa);
// return null;
return record;
// });
} catch (Exception e) {
esEquipmentCategory.deleteById(record);
......@@ -356,6 +368,7 @@ public class DataDockServiceImpl {
useInfo.setLongitudeLatitude(String.format("{\"latitude\":\"%s\",\"longitude\":\"%s\"}", latitude, longitude));
}
useInfo.setRecDate(new Date());
useInfo.setCreateDate(new Date());
useInfo.setRecord(record);
useInfo.setDataSource(dataSource);
useInfo.setIsNotEs("1");
......@@ -1725,6 +1738,9 @@ public class DataDockServiceImpl {
this.checkTheUnitProConAlreadyExists(paramsDto);
// 生成工程装置表信息
IdxBizJgProjectContraption proCon = this.saveProjectContraption(paramsDto);
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_PROJECT.name(), Sets.newHashSet(proCon.toString()), EquipCreateOrEditEvent.EquipType.project));
// 保存管道对应的idx表数据
List<String> records = this.savePipInfoToIdxTables(equLists, paramsDto, proCon);
if (isGYGD) {
......@@ -1972,6 +1988,7 @@ public class DataDockServiceImpl {
useInfo.setRecord(record);
useInfo.setSequenceNbr(null);
useInfo.setRecDate(new Date());
useInfo.setCreateDate(new Date());
useInfo.setDataSource(paramsDto.getDataSource());
useInfo.setIsIntoManagement(Boolean.TRUE);
useInfo.setEquState(EquimentEnum.ZAIYONG.getCode().toString());
......@@ -2349,6 +2366,7 @@ public class DataDockServiceImpl {
.endLatitudeLongitude(paramsDto.getEndLatitudeLongitude())
.supervisoryCode(idxBizJgRegisterInfoServiceImpl.getSupervisoryCode(paramsDto.getVehicleApanage(), paramsDto.getEquCategoryCode())).isIntoManagement(Boolean.TRUE).dataSource(paramsDto.getDataSource()).equCode(paramsDto.getEquCode()).isFirstMerge(Boolean.FALSE).build();
contraption.setSequenceNbr(seq);
contraption.setCreateDate(new Date());
paramsDto.setProjectContraptionSeq(String.valueOf(seq));
idxBizJgProjectContraptionService.save(contraption);
return contraption;
......@@ -2388,20 +2406,23 @@ public class DataDockServiceImpl {
String product = RequestContext.getProduct();
String token = RequestContext.getToken();
String exeUserId = RequestContext.getExeUserId();
Set<String> recordSet = new HashSet<>();
CompletableFuture.allOf(
equLists.parallelStream().map(equ -> CompletableFuture.runAsync(() -> {
RequestContext.setAppKey(appKey);
RequestContext.setProduct(product);
RequestContext.setToken(token);
RequestContext.setExeUserId(exeUserId);
saveElevatorDataInTransaction(equ, "jg_his_xa", null);
String record = saveElevatorDataInTransaction(equ, "jg_his_xa", null);
recordSet.add(record);
})).toArray(CompletableFuture[]::new)
).join();
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
return Boolean.TRUE;
}
@GlobalTransactional(rollbackFor = Exception.class)
public void saveElevatorDataInTransaction(Map<String, Object> equ, String dataSource, String remark) {
public String saveElevatorDataInTransaction(Map<String, Object> equ, String dataSource, String remark) {
String record = Optional.ofNullable(equ.get("record")).map(String::valueOf).orElse(UUID.randomUUID().toString());
String equList = Optional.ofNullable(equ.get("equList")).map(String::valueOf).orElse("");
String businessId = Optional.ofNullable(equ.get("businessId")).map(String::valueOf).orElse("");
......@@ -2434,6 +2455,7 @@ public class DataDockServiceImpl {
.orElseGet(() -> equ.get("supervisionDepartmentCode"));
this.updateOrgBranchInfo(record, orgBranchName, orgBranchCode);
}
return record;
} catch (Exception e) {
// esEquipmentCategory.deleteById(record);
// superviseInfoMapper.deleteDataAll(Collections.singletonList(record));
......
......@@ -164,6 +164,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 新增修改标识
private static final String OPERATESAVE = "save";
private static final String OPERATEEDIT = "edit";
private static final String ADD = "add";
private static final String EDIT = "edit";
//市区县
private static final String CITY = "CITY";
private static final String COUNTY = "COUNTY";
......@@ -550,6 +554,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
projectContraption.setUscUnitCreditCode(companyInfoMap.get("creditCode").toString());
}
projectContraption.setIsFirstMerge(false);
if ("add".equals(submitType)) {
projectContraption.setCreateDate(date);
}
idxBizJgProjectContraptionService.saveOrUpdateData(projectContraption);
List<IdxBizJgUseInfo> useInfoList = initializeList();
......@@ -604,6 +611,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
useInfo.setRecord(record);
useInfo.setSequenceNbr(null);
useInfo.setRecDate(date);
useInfo.setCreateDate(date);
useInfo.setDataSource(dataSource);
useInfo.setIsIntoManagement(Boolean.FALSE);
if (companyTypeStr.contains(CompanyTypeEnum.USE.getCode()) || companyTypeStr.contains(CompanyTypeEnum.INDIVIDUAL.getCode())) {
......@@ -3301,7 +3309,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 其他信息
IdxBizJgOtherInfo otherInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgOtherInfo.class);
// 检验检测 【新增时】 固定式压力容器(2100)和 气瓶(2300)可以添加检验检测信息
if ("add".equals(submitType) || isCopy) {
if (ADD.equals(submitType) || isCopy) {
// 历史无证设备创建且是检验信息齐全时才创建检验信息
if (dataSource.contains("jg_his_black") && InspectIsInPeriodEnum.IN_PERIOD_YES.getValue().equals(registerInfo.getInInspectionPeriod())) {
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(JSON.toJSONString(equipmentInfoForm), IdxBizJgInspectionDetectionInfo.class);
......@@ -3365,6 +3373,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
useInfo.setUseUnitCreditCode(companyInfoMap.get("creditCode").toString());
useInfo.setUseUnitName(companyInfoMap.get("companyName").toString());
}
if (OPERATESAVE.equals(operateType)) {
useInfo.setCreateDate(date);
}
if (isCopy) {
// 设备状态置空
......@@ -3882,6 +3893,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
orgBranchName = "";
orgBranchCode = "";
}
Set<String> recordSet = new HashSet<>();
equipInfoCylinderExcelDtoList.forEach(data -> {
JgUseRegistrationEq jgRelationEquip = new JgUseRegistrationEq();
if ("his".equals(equipInfoDto.getDataSource()) && "1".equals(data.getWhetherVehicleCylinder())) {
......@@ -3896,6 +3908,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
this.checkUseRegistrationCode(equipInfoDto.getUseOrgCode(), "cylinder");
}
String record = UUID.randomUUID().toString();
recordSet.add(record);
jgRelationEquip.setEquId(record);
jgRelationEquip.setSequenceNbr(sequence.nextId());
jgRelationEquipList.add(jgRelationEquip);
......@@ -3916,6 +3929,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
BeanUtils.copyProperties(data, useInfo);
useInfo.setRecord(record);
useInfo.setRecDate(new Date());
useInfo.setCreateDate(new Date());
useInfo.setDataSource("his".equals(equipInfoDto.getDataSource()) ? "jg_his" : "jg");// 区分历史设备和新增设备
useInfo.setEquState(null);
useInfo.setIsIntoManagement("his".equals(equipInfoDto.getDataSource()));// 历史气瓶导入为已纳管设备
......@@ -4189,6 +4203,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
Optional.of(paramsVesselList).filter(list -> !list.isEmpty()).ifPresent(idxBizJgTechParamsVesselService::saveBatch);
Optional.of(inspectionDetectionInfoList).filter(list -> !list.isEmpty()).ifPresent(idxBizJgInspectionDetectionInfoService::saveBatch);
Optional.of(esEquipmentCategoryList).filter(list -> !list.isEmpty()).ifPresent(esEquipmentCategory::saveAll);
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
return String.format("导入完成,成功导入: %d 条数据!", useInfoList.size());
}
......
......@@ -3,10 +3,11 @@ package com.yeejoin.amos.boot.module.ymt.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 管道工程装置表
*
......@@ -305,4 +306,10 @@ public class IdxBizJgProjectContraption extends BaseEntity {
*/
@TableField("data_quality_score")
private String dataQualityScore;
/**
* 创建日期
*/
@TableField("create_date")
private Date createDate;
}
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