Commit dd18b918 authored by hcing's avatar hcing

Merge branch 'refs/heads/develop_tzs_bugfix' into develop_tzs_register

# Conflicts: # amos-boot-system-tzs/amos-boot-module-tcm/amos-boot-module-tcm-biz/src/main/java/com/yeejoin/amos/boot/module/tcm/biz/service/impl/TzsUserInfoServiceImpl.java
parents 76ae1d28 248cb335
......@@ -162,6 +162,17 @@ public class DataDockController {
}
/**
* 管道设备表省市区缺失字段补充
**/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/updatePipingUseInfo")
@ApiOperation(httpMethod = "GET", value = "管道设备表省市区缺失字段补充", notes = "管道设备表省市区缺失字段补充")
@RestEventTrigger(value = "updatePipingUseInfo")
public ResponseModel<String> updatePipingUseInfo() {
return ResponseHelper.buildResponse(dataDockService.updatePipingUseInfo());
}
/**
* 公用、长输道批量检查
**/
@TycloudOperation(ApiLevel = UserType.AGENCY)
......
......@@ -24,7 +24,6 @@ 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.common.DataDockTemplateVersionUtils;
import com.yeejoin.amos.boot.module.jg.api.converter.DictParamsConverter;
import com.yeejoin.amos.boot.module.jg.api.converter.EquCategoryConverter;
......@@ -34,14 +33,10 @@ 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;
import com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgVehicleInformationMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
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.CancellationEvent;
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;
......@@ -63,7 +58,6 @@ import lombok.extern.slf4j.Slf4j;
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;
......@@ -163,6 +157,8 @@ public class DataDockServiceImpl {
@Autowired
private EventPublisher eventPublisher;
@Autowired
private JgUseRegistrationManageMapper jgUseRegistrationManageMapper;
/**
* 西安数据对接-保存设备信息
......@@ -1875,19 +1871,25 @@ public class DataDockServiceImpl {
// 1. 判断是否使用未来系统生成编号
idxBizJgRegisterInfoServiceImpl.checkUseRegistrationCode(paramsDto.getUseOrgCode(), "unit");
// 2. 获取使用登记管理列表
List<JgUseRegistration> useRegistrationList = jgUseRegistrationMapper.selectList(
new LambdaQueryWrapper<JgUseRegistration>()
.eq(JgUseRegistration::getUseRegistrationCode, paramsDto.getUseOrgCode())
.eq(JgUseRegistration::getIsDelete, 0)
.eq(JgUseRegistration::getStatus, "已完成")
.orderByDesc(JgUseRegistration::getRecDate)
.last("limit 1"));
if (!useRegistrationList.isEmpty()) {
if (useRegistrationList.stream().filter(map -> !"1".equals(map.getRegType())).count() > 1) {
throw new BadRequest("该使用登记证编号已由系统自动生成,不能导入,请确认使用登记证编号是否正确!");
}
if (useRegistrationList.stream().anyMatch(map -> !paramsDto.getCompanyCode().equals(map.getUseUnitCreditCode()))) {
// List<JgUseRegistration> useRegistrationList = jgUseRegistrationMapper.selectList(
// new LambdaQueryWrapper<JgUseRegistration>()
// .eq(JgUseRegistration::getUseRegistrationCode, paramsDto.getUseOrgCode())
// .eq(JgUseRegistration::getIsDelete, 0)
// .eq(JgUseRegistration::getStatus, "已完成")
// .orderByDesc(JgUseRegistration::getRecDate)
// .last("limit 1"));
List<JgUseRegistrationManage> useRegistrationManageList = jgUseRegistrationManageMapper.selectList(
new LambdaQueryWrapper<JgUseRegistrationManage>()
.eq(JgUseRegistrationManage::getUseRegistrationCode, paramsDto.getUseOrgCode())
.eq(JgUseRegistrationManage::getIsDelete, 0)
.eq(JgUseRegistrationManage::getCertificateStatus, "已登记")
.orderByDesc(JgUseRegistrationManage::getRecDate));
if (!useRegistrationManageList.isEmpty()) {
// if (useRegistrationList.stream().filter(map -> !"1".equals(map.getRegType())).count() > 1) {
// throw new BadRequest("该使用登记证编号已由系统自动生成,不能导入,请确认使用登记证编号是否正确!");
// }
if (useRegistrationManageList.stream().anyMatch(map -> !paramsDto.getCompanyCode().equals(map.getUseUnitCreditCode()))) {
throw new BadRequest("该使用登记证编号在其他企业使用,不能导入,请确认使用登记证编号是否正确!");
}
haveUseRegistration = true;
......@@ -2046,6 +2048,15 @@ public class DataDockServiceImpl {
useInfo.setCreateDate(new Date());
useInfo.setDataSource(paramsDto.getDataSource());
useInfo.setIsIntoManagement(Boolean.TRUE);
useInfo.setProvince(paramsDto.getProvince());
useInfo.setCity(paramsDto.getCity());
useInfo.setCounty(paramsDto.getCounty());
useInfo.setFactoryUseSiteStreet(paramsDto.getStreet());
useInfo.setProvinceName(paramsDto.getProvinceName());
useInfo.setCityName(paramsDto.getCityName());
useInfo.setCountyName(paramsDto.getCountyName());
useInfo.setStreetName(paramsDto.getStreetName());
useInfo.setAddress(paramsDto.getAddress());
useInfo.setEquState(Optional.ofNullable(paramsDto.getEquState()).orElse(String.valueOf(EquimentEnum.ZAIYONG.getCode())));
useInfo.setUseUnitCreditCode(paramsDto.getCompanyCode());
useInfo.setUseUnitName(paramsDto.getCompanyName());
......@@ -2928,4 +2939,37 @@ public class DataDockServiceImpl {
}
}
public String updatePipingUseInfo() {
LambdaQueryWrapper<IdxBizJgProjectContraption> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IdxBizJgProjectContraption::getIsDelete, 0);
queryWrapper.isNotNull(IdxBizJgProjectContraption::getProvince);
List<IdxBizJgProjectContraption> idxBizJgProjectContraptions = idxBizJgProjectContraptionServiceImpl.getBaseMapper().selectList(queryWrapper);
if (!ObjectUtils.isEmpty(idxBizJgProjectContraptions)) {
List<Long> seqList = idxBizJgProjectContraptions.stream().map(e -> e.getSequenceNbr()).collect(Collectors.toList());
LambdaQueryWrapper<IdxBizJgUseInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(IdxBizJgUseInfo::getProjectContraptionId, seqList);
List<IdxBizJgUseInfo> useInfoList = idxBizJgUseInfoService.getBaseMapper().selectList(lambdaQueryWrapper);
List<IdxBizJgUseInfo> newList = new ArrayList<>();
if (!ObjectUtils.isEmpty(useInfoList)) {
for (IdxBizJgUseInfo useInfo : useInfoList) {
List<IdxBizJgProjectContraption> collect = idxBizJgProjectContraptions.stream().filter(e -> useInfo.getProjectContraptionId().equals(e.getSequenceNbr().toString())).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(collect)) {
IdxBizJgProjectContraption idxBizJgProjectContraption = collect.get(0);
useInfo.setProvince(idxBizJgProjectContraption.getProvince());
useInfo.setCity(idxBizJgProjectContraption.getCity());
useInfo.setCounty(idxBizJgProjectContraption.getCounty());
useInfo.setFactoryUseSiteStreet(idxBizJgProjectContraption.getStreet());
useInfo.setProvinceName(idxBizJgProjectContraption.getProvinceName());
useInfo.setCityName(idxBizJgProjectContraption.getCityName());
useInfo.setCountyName(idxBizJgProjectContraption.getCountyName());
useInfo.setStreetName(idxBizJgProjectContraption.getStreetName());
useInfo.setAddress(idxBizJgProjectContraption.getAddress());
newList.add(useInfo);
}
}
}
idxBizJgUseInfoService.saveOrUpdateBatch(newList);
}
return "success";
}
}
......@@ -663,7 +663,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
*
* @return
*/
private List<CompletableFuture<byte[]>> pressurePipeDataPreparation(int page, IdxBizJgProjectContraption idxBizJgProjectContraption, int size, double total, List<Map<String, Object>> equipmentLists, String wordPath, String filePrefix, AgencyUserModel result,String category) {
public List<CompletableFuture<byte[]>> pressurePipeDataPreparation(int page, IdxBizJgProjectContraption idxBizJgProjectContraption, int size, double total, List<Map<String, Object>> equipmentLists, String wordPath, String filePrefix, AgencyUserModel result,String category) {
Map<String, Object> exportParamsMap = new HashMap<>();
exportParamsMap.put("page", page);
LocalDate currentDate = LocalDate.now();
......@@ -754,7 +754,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
}
}
private static void toZipFile(HttpServletResponse response, List<CompletableFuture<byte[]>> futures, String filePrefix, String customFileName) {
public static void toZipFile(HttpServletResponse response, List<CompletableFuture<byte[]>> futures, String filePrefix, String customFileName) {
// 打包zip
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(outputStream)) {
......
......@@ -554,6 +554,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
projectContraption.setEquListName(equListName);
projectContraption.setEquCategoryName(equCategoryName);
projectContraption.setEquDefineName(equDefineName);
if (!ObjectUtils.isEmpty(projectContraption.getOrgCode()) && projectContraption.getOrgCode().contains("_")) {
String[] split = projectContraption.getOrgCode().split("_");
projectContraption.setOrgCode(split[0]);
projectContraption.setOrgName(split[1]);
}
projectContraption.setPipelineLength(
BigDecimal.valueOf(pipelineList.stream()
.map(pipeline -> pipeline.get("pipeLength"))
......@@ -636,6 +641,34 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 使用信息
IdxBizJgUseInfo useInfo = JSON.parseObject(toJSONString(pipeline), IdxBizJgUseInfo.class);
// 使用信息
if(!ObjectUtils.isEmpty(projectContraption.getProvince())){
useInfo.setProvince(projectContraption.getProvince());
useInfo.setProvinceName(projectContraption.getProvinceName());
}
if(!ObjectUtils.isEmpty(projectContraption.getCity())){
useInfo.setCity(projectContraption.getCity());
useInfo.setCityName(projectContraption.getCityName());
}
if(!ObjectUtils.isEmpty(projectContraption.getCounty())){
useInfo.setCounty(projectContraption.getCounty());
useInfo.setCountyName(projectContraption.getCountyName());
}
if(!ObjectUtils.isEmpty(projectContraption.getStreet())){
useInfo.setFactoryUseSiteStreet(projectContraption.getStreet());
useInfo.setStreetName(projectContraption.getStreetName());
}
if(!ObjectUtils.isEmpty(projectContraption.getAddress())){
useInfo.setAddress(projectContraption.getAddress());
useInfo.setProvinceName(projectContraption.getProvinceName());
}
if(!ObjectUtils.isEmpty(projectContraption.getUseUnitName())){
useInfo.setUseUnitName(projectContraption.getUseUnitName());
useInfo.setUseUnitCreditCode(projectContraption.getUseUnitCreditCode());
}
if(!ObjectUtils.isEmpty(projectContraption.getUseDate())){
useInfo.setUseDate(projectContraption.getUseDate());
}
useInfo.setRecord(record);
useInfo.setSequenceNbr(null);
useInfo.setRecDate(date);
......@@ -707,6 +740,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 监督管理
IdxBizJgSupervisionInfo supervisionInfo = JSON.parseObject(toJSONString(pipeline), IdxBizJgSupervisionInfo.class);
if(!ObjectUtils.isEmpty(projectContraption.getOrgCode())){
supervisionInfo.setOrgBranchCode(projectContraption.getOrgCode());
supervisionInfo.setOrgBranchName(projectContraption.getOrgName());
}
supervisionInfo.setRecord(record);
supervisionInfo.setRecDate(date);
supervisionInfo.setSequenceNbr(null);
......@@ -2704,8 +2741,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (!ObjectUtils.isEmpty(map.getString("SUPERVISORY_CODE"))) {
BoolQueryBuilder scBuilder = QueryBuilders.boolQuery();
String param = map.getString("SUPERVISORY_CODE");
List<String> strings = Arrays.asList(param.split(","));
scBuilder.must(QueryBuilders.termsQuery("SUPERVISORY_CODE", strings));
//List<String> strings = Arrays.asList(param.split(","));
scBuilder.must(QueryBuilders.wildcardQuery("SUPERVISORY_CODE", "*" + param+ "*"));
boolMust.must(scBuilder);
}
// 使用登记证编号
if (!ObjectUtils.isEmpty(map.getString("USE_ORG_CODE"))) {
BoolQueryBuilder scBuilder = QueryBuilders.boolQuery();
String param = map.getString("USE_ORG_CODE");
//List<String> strings = Arrays.asList(param.split(","));
scBuilder.must(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*" + param+ "*"));
boolMust.must(scBuilder);
}
// 设备种类编码
......
......@@ -1396,6 +1396,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
IdxBizJgProjectContraption idxBizJgProjectContraption = jgProjectContraptions.get(0);
idxBizJgProjectContraption.setUseUnitName(registration.getNewUseUnitName());
idxBizJgProjectContraption.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
idxBizJgProjectContraption.setRecUserId(registration.getCreateUserId());
projectContraptionService.updateById(idxBizJgProjectContraption);
//获取使用登记证
LambdaQueryWrapper<JgUseRegistrationManage> useRegistrationManageWrapper = new LambdaQueryWrapper<>();
......@@ -1418,6 +1419,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
registrationManage.setUseUnitAddress(useCodeResult.getAddress());
}
}
registrationManage.setRecUserId(registration.getCreateUserId());
useRegistrationManageService.updateById(registrationManage);
//新增使用登记证和设备变更记录
this.saveRecordByProjectContraption(registrationManage, registration);
......@@ -1466,11 +1468,13 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
registrationManage.setUseUnitAddress(useCodeResult.getAddress());
}
}
registrationManage.setRecUserId(registration.getCreateUserId());
useRegistrationManageService.save(registrationManage);
//更新装置表
idxBizJgProjectContraption.setUseRegistrationCode(code);
idxBizJgProjectContraption.setUseUnitName(registration.getNewUseUnitName());
idxBizJgProjectContraption.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
idxBizJgProjectContraption.setRecUserId(registration.getCreateUserId());
projectContraptionService.updateById(idxBizJgProjectContraption);
//新增使用登记证和设备变更记录
this.saveRecordByProjectContraption(registrationManage, registration);
......
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -20,17 +21,23 @@ import com.yeejoin.amos.boot.module.jg.api.dto.UseFlagParamDto;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgUseRegistrationManageService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgProjectContraptionMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.lucene.queryparser.classic.QueryParser;
......@@ -63,7 +70,6 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
......@@ -73,14 +79,15 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.alibaba.fastjson.JSON.parseArray;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl.isValidCreditCode;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgProjectContraptionServiceImplService.toZipFile;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getReissueDate;
......@@ -126,10 +133,12 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
private JgUseRegistrationServiceImpl jgUseRegistrationService;
@Autowired
private JgVehicleInformationServiceImpl jgVehicleInformationService;
private IdxBizJgProjectContraptionServiceImplService jgProjectContraptionService;
@Autowired
private IJgChangeRegistrationTransferService jgChangeRegistrationTransferService;
private IdxBizJgProjectContraptionMapper jgProjectContraptionMapper;
@Autowired
private IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
@Autowired
private CommonServiceImpl commonService;
......@@ -140,7 +149,7 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
@Value("classpath:/json/registrationBasic.json")
private Resource registrationBasicJson;
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
private static final Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
@Autowired
CommonMapper commonMapper;
@Autowired
......@@ -639,20 +648,72 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
this.updateById(manage);
}
/**
* 证管理下载汇总表(需要查询最新数据)
* @param response
* @param manage
*/
private void handleExportSummaryTable(HttpServletResponse response, JgUseRegistrationManage manage) {
JSONObject tagJson = Optional.ofNullable(manage.getCertificatePrintTag())
.map(JSONObject::parseObject)
.orElse(new JSONObject());
tagJson.put(EXPORT_SUMMARY_TABLE, 2);
manage.setCertificatePrintTag(JSONObject.toJSONString(tagJson));
List<JgUseRegistration> registrations = jgUseRegistrationService.getBaseMapper().selectList(
new LambdaQueryWrapper<JgUseRegistration>()
.eq(JgUseRegistration::getUseRegistrationCode, manage.getUseRegistrationCode())
.eq(JgUseRegistration::getStatus, "已完成")
);
List<Long> seqs = registrations.stream().map(JgUseRegistration::getSequenceNbr).collect(Collectors.toList());
Set<String> projectIds = registrations.stream().map(JgUseRegistration::getProjectContraptionId).collect(Collectors.toSet());
jgUseRegistrationService.exportSummaryBasicInfo(seqs, response, manage.getEquCategoryCode(), projectIds);
final int size = 10;
final String useRegCode = manage.getUseRegistrationCode();
List<CompletableFuture<byte[]>> futures;
if (Arrays.asList("8200", "8100", "8300").contains(manage.getEquCategoryCode())) {
// ===== 压力管道逻辑 =====
List<IdxBizJgProjectContraption> list = jgProjectContraptionService.lambdaQuery()
.in(IdxBizJgProjectContraption::getUseRegistrationCode, useRegCode)
.list();
if (ValidationUtil.isEmpty(list)) throw new BadRequest("没有查询到汇总信息!");
String wordPath = "PressurePipeBasicInformationSummary.ftl";
String filePrefix = "压力管道基本信息汇总表_";
futures = list.stream().flatMap(v -> {
List<Map<String, Object>> eqs = jgProjectContraptionMapper
.selectEquipListByExport(String.valueOf(v.getSequenceNbr()));
int total = eqs.size();
int page = (total + size - 1) / size;
AgencyUserModel result = Optional.ofNullable(v.getRecUserId())
.map(id -> Privilege.agencyUserClient.queryByUserId(id).getResult())
.orElseThrow(() -> new BadRequest("未获取到接收人信息!"));
return jgProjectContraptionService
.pressurePipeDataPreparation(page, v, size, total, eqs, wordPath, filePrefix, result, manage.getEquCategoryCode())
.stream();
}).collect(Collectors.toList());
toZipFile(response, futures, filePrefix, filePrefix + useRegCode + ".zip");
} else {
// ===== 气瓶逻辑 =====
String wordPath = "CylinderBasicInformationSummary.ftl";
String filePrefix = "气瓶基本信息汇总表_";
Map<String, Object> fillingMediumMap = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult()
.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataKey, DictionarieValueModel::getDictDataValue));
List<IdxBizJgRegisterInfo> registerInfoList = idxBizJgRegisterInfoMapper.selectList(
new QueryWrapper<IdxBizJgRegisterInfo>().in("USE_ORG_CODE", useRegCode));
List<Map<String, Object>> tableData = jgUseRegistrationMapper
.queryForUnitVesselEquipment(registerInfoList.stream().map(IdxBizJgRegisterInfo::getRecord).collect(Collectors.toList()));
tableData.forEach(i -> i.put("chargingMedium", fillingMediumMap.get(i.get("chargingMedium"))));
JSONArray allEquipment = new JSONArray();
tableData.forEach(map -> {
if (jgUseRegistrationService.checkEquStatusInUse((String) map.get("record"))) {
allEquipment.add(new JSONObject(map));
}
});
int total = allEquipment.size();
int page = (total + size - 1) / size;
JSONObject jsonObject = new JSONObject().fluentPut("useUnitName", manage.getUseUnitName());
AgencyUserModel result = Optional.ofNullable(manage.getCreateUserId())
.map(id -> Privilege.agencyUserClient.queryByUserId(id).getResult())
.orElse(new AgencyUserModel());
futures = jgUseRegistrationService.cylinderDataPreparation(page, jsonObject, size, total, allEquipment, wordPath, filePrefix, result);
toZipFile(response, futures, filePrefix, filePrefix + useRegCode + ".zip");
}
}
public void exportUseRegistrationCertificate(JgUseRegistrationManage manage, HttpServletResponse response, String printType) {
......
......@@ -29,7 +29,9 @@ 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.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dao.EsEquipmentDao;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.common.api.entity.ESEquipmentInfo;
import com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.common.api.enums.JYJCResultEnum;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
......@@ -230,6 +232,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
@Autowired
private ESEquipmentCategory esEquipmentCategory;
@Autowired
private EsEquipmentDao esEquipmentDao;
@Autowired
private JgResumeInfoServiceImpl jgResumeInfoService;
@Autowired
private JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
......@@ -2455,8 +2459,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!ObjectUtils.isEmpty(supervisionInfo) && !StringUtils.isEmpty(supervisionInfo.get("orgBranchCode"))) {
String orgBranchCode = (String) supervisionInfo.get("orgBranchCode");
String orgBranchName = (String) supervisionInfo.get("orgBranchName");
supervisionInfo.put("orgBranchCode", orgBranchCode + "_" + orgBranchName);
supervisionInfo.put("hasOrgBranchCode", true);
supervisionInfo.put("orgBranchCode", "50*X".equals(orgBranchCode) ? null : orgBranchCode + "_" + orgBranchName);
supervisionInfo.put("hasOrgBranchCode", "50*X".equals(orgBranchCode) ? false : true);
detail.putAll(supervisionInfo);
}
detail.remove("safetyManager");
......@@ -2541,8 +2545,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!ObjectUtils.isEmpty(supervisionInfo) && !StringUtils.isEmpty(supervisionInfo.get("orgBranchCode"))) {
String orgBranchCode = (String) supervisionInfo.get("orgBranchCode");
String orgBranchName = (String) supervisionInfo.get("orgBranchName");
supervisionInfo.put("orgBranchCode", orgBranchCode + "_" + orgBranchName);
supervisionInfo.put("hasOrgBranchCode", true);
supervisionInfo.put("orgBranchCode", "50*X".equals(orgBranchCode) ? null : orgBranchCode + "_" + orgBranchName);
supervisionInfo.put("hasOrgBranchCode", "50*X".equals(orgBranchCode) ? false : true);
detail.putAll(supervisionInfo);
}
// 附件解析
......@@ -2883,7 +2887,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
* @param record
* @return
*/
private boolean checkEquStatusInUse(String record) {
public boolean checkEquStatusInUse(String record) {
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.lambdaQuery().eq(IdxBizJgUseInfo::getRecord, record).one();
if (!Objects.isNull(useInfo) && !ValidationUtil.isEmpty(useInfo.getEquState())) {
return EquimentEnum.ZAIYONG.getCode().toString().equals(useInfo.getEquState());
......@@ -2923,7 +2927,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
*
* @return
*/
private List<CompletableFuture<byte[]>> cylinderDataPreparation(int page, JSONObject jsonObject, int size, double total, JSONArray equipmentLists, String wordPath, String filePrefix, AgencyUserModel result) {
public List<CompletableFuture<byte[]>> cylinderDataPreparation(int page, JSONObject jsonObject, int size, double total, JSONArray equipmentLists, String wordPath, String filePrefix, AgencyUserModel result) {
List<CompletableFuture<byte[]>> futures = IntStream.rangeClosed(1, page)
.mapToObj(current -> CompletableFuture.supplyAsync(() -> {
Map<String, Object> exportParamsMap = new HashMap<>();
......@@ -3337,6 +3341,14 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
superviseInfoMapper.deleteDataAll(records);
//删除es中的数据
esEquipmentCategory.deleteAll(esDtoList);
// 构建设备删除的 新索引的DTO 列表
List<ESEquipmentInfo> esNewDtoList = records.stream().map(v -> {
ESEquipmentInfo esDto = new ESEquipmentInfo();
esDto.setSEQUENCE_NBR(v);
return esDto;
}).collect(Collectors.toList());
//删除es新索引中的数据
esEquipmentDao.deleteAll(esNewDtoList);
//作废使用登记证 & 生成使用登记证的流水
this.invalidUseRegistrationCertificate(jgUseRegistration);
// 单据逻辑删除
......@@ -3376,6 +3388,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
equInfoEs.setProjectContraptionId(v.getOriginProjectContraptionId());
esEquipmentCategory.save(equInfoEs);
ESEquipmentInfo esEquipmentInfo = esEquipmentDao.findById(v.getEquId()).get();
esEquipmentInfo.setProjectContraptionId(v.getOriginProjectContraptionId());
esEquipmentDao.save(esEquipmentInfo);
LambdaQueryWrapper<IdxBizJgUseInfo> lambda = new QueryWrapper<IdxBizJgUseInfo>().lambda();
lambda.eq(IdxBizJgUseInfo::getRecord, String.valueOf(v.getEquId()));
IdxBizJgUseInfo useInfo = useInfoMapper.selectOne(lambda);
......@@ -3752,6 +3768,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
.eq(IdxBizJgOtherInfo::getRecord, record)
.select(IdxBizJgOtherInfo::getSupervisoryCode, IdxBizJgOtherInfo::getCode96333Type));
Optional<ESEquipmentCategoryDto> optional = esEquipmentCategory.findById(record);
Optional<ESEquipmentInfo> esEquipmentDaoOptional = esEquipmentDao.findById(record);
if (optional.isPresent()) {
ESEquipmentCategoryDto esEquipmentCategoryDto = optional.get();
// 非历史有证设备,作废清除使用登记证编号
......@@ -3773,6 +3791,28 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
esEquipmentCategory.save(esEquipmentCategoryDto);
}
if (esEquipmentDaoOptional.isPresent()) {
ESEquipmentInfo esEquipmentInfo = esEquipmentDaoOptional.get();
// 非历史有证设备,作废清除使用登记证编号
if (!"1".equals(jgUseRegistration.getRegType())) {
esEquipmentInfo.setUSE_ORG_CODE(null);
}
// 历史有证设备、历史无证设备,系统生成的96333清空
if (("1".equals(jgUseRegistration.getRegType()) || "2".equals(jgUseRegistration.getRegType())) && "2".equals(otherInfo.getCode96333Type())) {
esEquipmentInfo.setCODE96333(null);
}
esEquipmentInfo.setUSE_ORG_CODE(null);
//esEquipmentCategoryDto.setSTATUS(null);
esEquipmentInfo.setEQU_STATE(null);
esEquipmentInfo.setORG_BRANCH_CODE(null);
esEquipmentInfo.setORG_BRANCH_NAME(null);
if (jgConstructionInfo != null) {
esEquipmentInfo.setUSC_UNIT_NAME(jgConstructionInfo.getUscUnitName());
esEquipmentInfo.setUSC_UNIT_CREDIT_CODE(jgConstructionInfo.getUscUnitCreditCode());
}
esEquipmentDao.save(esEquipmentInfo);
}
}
/**
......
package com.yeejoin.amos.boot.module.jyjc.biz.message.factoty;
import com.yeejoin.amos.boot.module.jyjc.biz.message.open.IOpenApplicationMsgHandler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Component
@RequiredArgsConstructor
@Slf4j
public class OpenAppMsgFactory {
private final List<IOpenApplicationMsgHandler> openAppMsgHandlers;
private final Map<String, IOpenApplicationMsgHandler> msgHandlerMap = new ConcurrentHashMap<>();
public IOpenApplicationMsgHandler getOpenAppMsgHandler(String state) {
return msgHandlerMap.computeIfAbsent(state, k -> {
for (IOpenApplicationMsgHandler handler : openAppMsgHandlers) {
if (handler.supportState().equals(state)) {
return handler;
}
}
return new IOpenApplicationMsgHandler() {
@Override
public String supportState() {
return "";
}
@Override
public void handle(String userId, String relationId, String companyType) {
log.error("no support state:{} ", state);
}
};
});
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
public interface IOpenApplicationMsgHandler {
String supportState();
void handle(String userId, String relationId, String companyType);
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 系统对接受理已退回-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppConfirmRejectMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getReject();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "2").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Collections;
/**
* 系统对接通过-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppDockPassMsgHandler implements IOpenApplicationMsgHandler {
@Value("${open.app.msg.detail.path:/hyspm.html?appId=1742358052905971713&id=1954801593064910850&lfrom=studio}")
private String msgDetailPath;
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_REEXAMINE.getPass();
}
@Override
public void handle(String userId, String relationId, String companyType) {
this.send(userId, relationId + "2", companyType);
}
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setRecivers(Collections.singletonList(userId));
messageModel.setMsgTypeLabel("检验检验业务开通");
messageModel.setMsgType("openApp");
messageModel.setTitle("签署承诺书");
messageModel.setBody("系统对接已完成,请尽快按照消息详情提示进行签署承诺书!");
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath + "&relationId=" + relationId);
messageModel.setCompanyType(companyType);
messageModel.setIsRead(false);
messageModel.setIsSendWeb(true);
messageFeignClient.create(messageModel);
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 系统对接受理已退回-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppDockRejectMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getReject();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "1").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 资料校对受理已撤回-处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppDockRollbackMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getRollBack();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "2").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.Collections;
/**
* 系统对接中-消息处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppReceivePassMsgHandler implements IOpenApplicationMsgHandler {
@Value("${open.app.msg.detail.path:/hyspm.html?appId=1742358052905971713&id=1947557820039720961&lfrom=studio}")
private String msgDetailPath;
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getPass();
}
@Override
public void handle(String userId, String relationId, String companyType) {
this.send(userId, relationId + "1", companyType);
}
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setRecivers(Collections.singletonList(userId));
messageModel.setMsgTypeLabel("检验检验业务开通");
messageModel.setMsgType("openApp");
messageModel.setTitle("系统对接");
messageModel.setBody("资料校对已通过,请尽快按照消息详情提示进行系统对接!");
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath + "&relationId=" + relationId);
messageModel.setCompanyType(companyType);
messageModel.setIsRead(false);
messageModel.setIsSendWeb(true);
messageFeignClient.create(messageModel);
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.message.open;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* 资料校对受理已撤回-处理器
*/
@Component
@RequiredArgsConstructor
public class OpenAppReceiveRollbackMsgHandler implements IOpenApplicationMsgHandler{
private final MessageFeignClient messageFeignClient;
@Override
public String supportState() {
return WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getRollBack();
}
@Override
public void handle(String userId, String relationId, String companyType) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(relationId + "1").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
......@@ -42,7 +42,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcOpeningApplicationService;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcOpeningApplicationVo;
import com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.MessageFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.message.factoty.OpenAppMsgFactory;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
......@@ -154,12 +154,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Resource
private SnowflakeIdUtil sequence;
@Value("${open.app.msg.detail.path:/hyspm.html?appId=1742358052905971713&id=1947557820039720961&lfrom=studio}")
private String msgDetailPath;
@Autowired
private MessageFeignClient messageFeignClient;
@Resource
private OpenAppMsgFactory openAppMsgFactory;
/**
* 编辑、工作台暂存逻辑
......@@ -830,6 +826,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 驳回操作, 驳回时不更新json数据
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getReject());
jyjcOpeningApplication.setPromoter("");
this.sendMsg2User(jyjcOpeningApplication);
// 驳回到发起单位时,恢复原始的开通区域,清空机构分类、核准项目
this.restoreApplicationData(jyjcOpeningApplication, params);
}
......@@ -899,40 +896,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
private void sendMsg2User(JyjcOpeningApplication jyjcOpeningApplication) {
// 系统对接中时发送对接消息
if (jyjcOpeningApplication.getStatus().equals(WorkFlowStatusEnum.OPENING_APPLICATION_PRELIMINARY.getPass())) {
String createUserId = jyjcOpeningApplication.getCreateUserId();
String relationId = jyjcOpeningApplication.getSequenceNbr() + "";
String companyType = this.OpenBizType2CompanyType(jyjcOpeningApplication.getOpenBizType());
send(createUserId, relationId, companyType);
}
String createUserId = jyjcOpeningApplication.getCreateUserId();
String relationId = jyjcOpeningApplication.getSequenceNbr() + "";
String companyType = this.OpenBizType2CompanyType(jyjcOpeningApplication.getOpenBizType());
openAppMsgFactory.getOpenAppMsgHandler(jyjcOpeningApplication.getStatus()).handle(createUserId, relationId, companyType);
}
private String OpenBizType2CompanyType(String openBizType) {
return Optional.ofNullable(OpenBizTypeEnumV2.getOneByCode(openBizType)).map(OpenBizTypeEnumV2::getUnitType).orElse(null);
}
/**
* 发送消息给发起者
*
* @param userId 接收人员
*/
private void send(String userId, String relationId, String companyType) {
MessageModel messageModel = new MessageModel();
messageModel.setRecivers(Collections.singletonList(userId));
messageModel.setMsgTypeLabel("检验检验业务开通");
messageModel.setMsgType("openApp");
messageModel.setTitle("签署承诺书");
messageModel.setBody("资料校对通过,请尽快处理后续环节!");
messageModel.setRelationId(relationId);
messageModel.setTerminal("WEB");
messageModel.setRoutePath(msgDetailPath + "&relationId=" + relationId);
messageModel.setCompanyType(companyType);
messageModel.setIsRead(false);
messageModel.setIsSendWeb(true);
messageFeignClient.create(messageModel);
}
private void saveLicenseData2Company(JyjcOpeningApplication jyjcOpeningApplication) {
JyjcInspectionHistory history = inspectionHistoryService.getBySSeq(jyjcOpeningApplication.getSequenceNbr());
JSONObject hisData = history.getHistoryData();
......@@ -1099,7 +1072,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jsonObject.put("taskType", BusinessTypeEnum.JY_OPENING_APPLICATION.getCode());
jsonObject.put("flowStatus", commonService.getDictionaryCodeByName(jyjcOpeningApplication.getStatus()));
jsonObject.put("flowStatusLabel", jyjcOpeningApplication.getStatus());
this.deleteMsg(jyjcOpeningApplication.getStatus(), jyjcOpeningApplication.getSequenceNbr());
this.sendMsg2User(jyjcOpeningApplication);
// 撤回到发起单位时,数据恢复到原始提交状态
this.restoreApplicationData(jyjcOpeningApplication);
// 撤回删除代办
......@@ -1134,17 +1107,6 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
}
private void deleteMsg(String status, Long sequenceNbr) {
// 流程到<系统对接受理已退回, 资料校对受理已撤回>时删除之前的消息
if (WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getReject().equals(status) || WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getRollBack().equals(status)) {
// 按照relationId查询
List<MessageModel> messageModels = messageFeignClient.listByRelationId(sequenceNbr + "").getResult();
// 查询结果删除接口
if (!messageModels.isEmpty()) {
messageFeignClient.delete(messageModels.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.joining(",")));
}
}
}
private InstanceRuntimeData buildInstanceRuntimeData(JyjcOpeningApplicationModel jyjcOpeningApplication) {
return InstanceRuntimeData.builder()
......
......@@ -508,4 +508,20 @@ public class ComprehensiveStatisticalAnalysisController extends BaseController {
public ResponseModel<Object> updateDataByOrgBranchCode(@RequestParam(value = "code") String code, @RequestParam(value = "limit") Integer limit) {
return ResponseHelper.buildResponse(statisticalAnalysisService.updateDataByOrgBranchCode(code, limit));
}
/**
* @param
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY, needAuth = false)
@GetMapping(value = "/getDataDifference")
@ApiOperation(httpMethod = "GET", value = "获取es和数据库数据差异", notes = "获取es和数据库数据差异")
public ResponseModel<Object> getDataDifference(@RequestParam(value = "code") String code) {
return ResponseHelper.buildResponse(statisticalAnalysisService.getDataDifference(code));
}
}
......@@ -51,9 +51,9 @@ public class DPSubController {
if (ValidationUtil.isEmpty(param.get("equList"))){
param.put("equList", param.get("EQU_LIST_CODE"));
}
if (ValidationUtil.isEmpty(param.get("PRODUCT_NAME"))){
param.put("PRODUCT_NAME", param.get("EQU_LIST"));
}
// if (ValidationUtil.isEmpty(param.get("PRODUCT_NAME"))){
// param.put("PRODUCT_NAME", param.get("EQU_LIST"));
// }
if (!ValidationUtil.isEmpty(param.get("equListCode"))){ // 问题列表关联设备
param.put("equList", param.get("equListCode"));
param.put("EQU_LIST_CODE", param.get("equListCode"));
......
......@@ -8,7 +8,12 @@ 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.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
......@@ -45,11 +50,10 @@ import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -114,11 +118,29 @@ public class EnterpriseBizByTCMServiceImpl {
this.equipmentCategoryMapper = equipmentCategoryMapper;
}
// 自定义日期序列化器
public static class CustomDateSerializer extends JsonSerializer<Date> {
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
@Override
public void serialize(Date value, JsonGenerator gen, SerializerProvider provider)
throws IOException {
gen.writeString(dateFormat.format(value));
}
}
public Map<String, Object> getInfoByUseCodeMap(String useCode) {
TzBaseEnterpriseInfoDto infoByUseCode = getInfoByUseCode(useCode);
// 通过sourceId获取问题信息
Map<String,Object> problemInfo = enterpriseBizMapper.getProblemInfoBySourceId(infoByUseCode.getSequenceNbr().toString());
ObjectMapper objectMapper = new ObjectMapper();
// 自定义日期序列化器
SimpleModule module = new SimpleModule();
module.addSerializer(Date.class, new CustomDateSerializer());
objectMapper.registerModule(module);
// 禁用默认日期格式化
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
Map<String,Object> resultMap = new HashMap<>();
RegUnitIcDto regUnitIcDto = infoByUseCode.getRegUnitIcDto();
......
......@@ -10,8 +10,6 @@ import com.yeejoin.amos.boot.module.common.api.dto.IBaseChangeData;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import java.util.Date;
......
......@@ -89,6 +89,10 @@
<foreach collection="records" separator="," item="record" open="(" close=");">
#{record}
</foreach>
delete from idx_biz_jg_supervision_info where "RECORD" in
<foreach collection="records" separator="," item="record" open="(" close=");">
#{record}
</foreach>
delete from idx_biz_jg_maintenance_record_info where "RECORD" in
<foreach collection="records" separator="," item="record" open="(" close=");">
#{record}
......
......@@ -79,7 +79,6 @@ import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static com.alibaba.fastjson.JSON.toJSONString;
......@@ -766,34 +765,35 @@ public class EquipmentCategoryServiceImpl extends BaseService<EquipmentCategoryD
* @return 96333电梯识别码
*/
public String selectExceedElevatorCode(String prefix) {
StringBuilder elevatorCode = new StringBuilder();
// 生成生成96333电梯码前缀
elevatorCode.append(prefix);
String initCode = elevatorCode + EquipmentCategoryEnum.getValue.get(elevatorCode.toString());
CategoryOtherInfo initSupervisoryCode = categoryOtherInfoMapper.queryInitCode(initCode); // 查询是否已经生成过初始值
if (ValidationUtil.isEmpty(initSupervisoryCode)) {
elevatorCode.append(EquipmentCategoryEnum.getValue.get(prefix));
} else {
// 获取行政区划区县、市是否存在历史96333电梯码
CategoryOtherInfo elevatorOtherInfo = categoryOtherInfoMapper.selectElevatorCode(elevatorCode.toString(), null);
if (!ObjectUtils.isEmpty(elevatorOtherInfo) && elevatorOtherInfo.getCode() != null) {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
Integer start = Integer.valueOf(prefix + EquipmentCategoryEnum.getCode.get(prefix));
Integer end = Integer.valueOf(elevatorOtherInfo.getCode());
List<Integer> allCodeList = IntStream.rangeClosed(start, end)
.boxed()
.collect(Collectors.toList());
List<Integer> codeList = categoryOtherInfoMapper.selectExceedElevatorCodeList(start, prefix);
List<Integer> resultList = getDiffrent(allCodeList, codeList);
if (!ObjectUtils.isEmpty(resultList)) {
elevatorCode.setLength(0);
elevatorCode.append(resultList.get(0));
}
stopWatch.stop();
}
}
return elevatorCode.toString();
return createElevatorCode(prefix);
// StringBuilder elevatorCode = new StringBuilder();
// // 生成生成96333电梯码前缀
// elevatorCode.append(prefix);
// String initCode = elevatorCode + EquipmentCategoryEnum.getValue.get(elevatorCode.toString());
// CategoryOtherInfo initSupervisoryCode = categoryOtherInfoMapper.queryInitCode(initCode); // 查询是否已经生成过初始值
// if (ValidationUtil.isEmpty(initSupervisoryCode)) {
// elevatorCode.append(EquipmentCategoryEnum.getValue.get(prefix));
// } else {
// // 获取行政区划区县、市是否存在历史96333电梯码
// CategoryOtherInfo elevatorOtherInfo = categoryOtherInfoMapper.selectElevatorCode(elevatorCode.toString(), null);
// if (!ObjectUtils.isEmpty(elevatorOtherInfo) && elevatorOtherInfo.getCode() != null) {
// StopWatch stopWatch = new StopWatch();
// stopWatch.start();
// Integer start = Integer.valueOf(prefix + EquipmentCategoryEnum.getCode.get(prefix));
// Integer end = Integer.valueOf(elevatorOtherInfo.getCode());
// List<Integer> allCodeList = IntStream.rangeClosed(start, end)
// .boxed()
// .collect(Collectors.toList());
// List<Integer> codeList = categoryOtherInfoMapper.selectExceedElevatorCodeList(start, prefix);
// List<Integer> resultList = getDiffrent(allCodeList, codeList);
// if (!ObjectUtils.isEmpty(resultList)) {
// elevatorCode.setLength(0);
// elevatorCode.append(resultList.get(0));
// }
// stopWatch.stop();
// }
// }
// return elevatorCode.toString();
}
@Override
......
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