Commit 5e1dcc99 authored by Lambertliu's avatar Lambertliu

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

parents b5eba7ba 6e37557a
...@@ -37,6 +37,8 @@ import javax.annotation.Resource; ...@@ -37,6 +37,8 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
...@@ -168,6 +170,10 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP ...@@ -168,6 +170,10 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
.orderByDesc(IdxBizJgProjectContraption::getRecDate) .orderByDesc(IdxBizJgProjectContraption::getRecDate)
.page(page); .page(page);
pageList.getRecords().forEach(record -> { pageList.getRecords().forEach(record -> {
BigDecimal pipelineLength = BigDecimal.valueOf(record.getPipelineLength());
BigDecimal roundedValue = pipelineLength.setScale(3, RoundingMode.HALF_UP);
BigDecimal strippedValue = roundedValue.stripTrailingZeros();
record.setPipelineLength(Double.valueOf(strippedValue.toPlainString()));
record.setDataSourceName(EquipSourceEnum.getDataSourceName(record.getDataSource())); record.setDataSourceName(EquipSourceEnum.getDataSourceName(record.getDataSource()));
record.setFullAddress( record.setFullAddress(
Stream.of(record.getProvinceName(), record.getCityName(), record.getCountyName(), record.getStreetName(), record.getAddress()) Stream.of(record.getProvinceName(), record.getCityName(), record.getCountyName(), record.getStreetName(), record.getAddress())
...@@ -176,10 +182,27 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP ...@@ -176,10 +182,27 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
); );
record.setCanEdit(this.checkContraptionIsCanEdit(record.getSequenceNbr())); record.setCanEdit(this.checkContraptionIsCanEdit(record.getSequenceNbr()));
record.setCanDelete(this.checkContraptionIsCanDelete(record.getSequenceNbr())); record.setCanDelete(this.checkContraptionIsCanDelete(record.getSequenceNbr()));
//判断是否有检验结果录入
judgeCheckResult(record);
}); });
return pageList; return pageList;
} }
/**
* 此处判断是否有检验结果 所有的管道信息都需要有检验结果才可以展示
* @param record
*/
private void judgeCheckResult(IdxBizJgProjectContraption record) {
record.setDisableBasicButton(true);
if("8200".equals(record.getEquCategory()) || "8100".equals(record.getEquCategory())){
int notNullCount = this.baseMapper.selectCheckCountByNotNull(String.valueOf(record.getSequenceNbr()));
long total = this.baseMapper.selectEquipCount(String.valueOf(record.getSequenceNbr()));
if(total==notNullCount && total !=0){
record.setDisableBasicButton(false);
}
}
}
private Boolean checkContraptionIsCanEdit(Long projectContraptionId) { private Boolean checkContraptionIsCanEdit(Long projectContraptionId) {
Integer inUseTime = this.baseMapper.countContraptionInUseTimesForEdit(projectContraptionId); Integer inUseTime = this.baseMapper.countContraptionInUseTimesForEdit(projectContraptionId);
return inUseTime <= 0; return inUseTime <= 0;
......
...@@ -65,6 +65,7 @@ import io.seata.core.context.RootContext; ...@@ -65,6 +65,7 @@ import io.seata.core.context.RootContext;
import io.seata.spring.annotation.GlobalTransactional; import io.seata.spring.annotation.GlobalTransactional;
import io.seata.tm.api.GlobalTransactionContext; import io.seata.tm.api.GlobalTransactionContext;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -85,12 +86,18 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest; ...@@ -85,12 +86,18 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import static com.alibaba.fastjson.JSON.parseArray; import static com.alibaba.fastjson.JSON.parseArray;
...@@ -183,6 +190,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -183,6 +190,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
private IdxBizJgProjectContraptionMapper projectContraptionMapper; private IdxBizJgProjectContraptionMapper projectContraptionMapper;
@Autowired @Autowired
EventPublisher eventPublisher; EventPublisher eventPublisher;
@Autowired
private JgUseRegistrationServiceImpl jgUseRegistrationService;
/** /**
* 安装改造维修单位吱资质类型:1234-安改维、1236-制造单位 * 安装改造维修单位吱资质类型:1234-安改维、1236-制造单位
...@@ -656,7 +665,69 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -656,7 +665,69 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
// jgInstallationNotice.setNoticeReportUrl(url); // jgInstallationNotice.setNoticeReportUrl(url);
// this.updateById(jgInstallationNotice); // this.updateById(jgInstallationNotice);
map.put("equipBasicInfoList", maps); map.put("equipBasicInfoList", maps);
WordTemplateUtils.templateToPdfDownload(tempFileName, "installation-notification-report.ftl", map, response); // WordTemplateUtils.templateToPdfDownload(tempFileName, "installation-notification-report.ftl", map, response);
byte[] templateToPdfData = WordTemplateUtils.getTemplateToPdfData(tempFileName, "installation-notification-report.ftl", map);
//获取管道和气瓶的基本信息汇总表
List<CompletableFuture<byte[]>> exportSummaryBasicInfoData = jgUseRegistrationService.getExportSummaryBasicInfoData(Collections.singletonList(Long.valueOf(sequenceNbr)), jgInstallationNotice.getEquCategoryCode(),"安装告知");
//将安装告知单和汇总表压缩到zip中
toZipFileByData(response, exportSummaryBasicInfoData, templateToPdfData, jgInstallationNotice.getApplyNo(),jgInstallationNotice.getEquCategoryCode());
}
/**
* 将数据全部压缩成zip
* @param response
* @param exportSummaryBasicInfoData
* @param templateToPdfData
* @param applyNo
* @param category
*/
private void toZipFileByData(HttpServletResponse response, List<CompletableFuture<byte[]>> exportSummaryBasicInfoData, byte[] templateToPdfData, String applyNo, String category) {
String filePrefix ="汇总表";
String customFileName="设备基本信息汇总表";
if ("8300".equals(category) || "8200".equals(category) || "8100".equals(category)) {
// 文件名前缀
filePrefix= "压力管道基本信息汇总表_";
customFileName="压力管道告知单_设备基本信息汇总表_" + applyNo + ".zip";
}else if ("2300".equals(category)) {
// 文件名前缀
filePrefix = "气瓶基本信息汇总表_";
customFileName="气瓶告知单_设备基本信息汇总表_" + applyNo + ".zip";
}
// 打包zip
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(outputStream)) {
for (int i = 0; i < exportSummaryBasicInfoData.size(); i++) {
try {
zip.putNextEntry(new ZipEntry(filePrefix + "第" + (i + 1) + "页" + ".pdf"));
IOUtils.write(exportSummaryBasicInfoData.get(i).join(), zip);
zip.closeEntry(); // 每个条目结束后关闭
} catch (IOException e) {
log.error("打包zip失败:" + e.getMessage());
throw new BadRequest("打包zip失败");
}
}
//添加安装告知单到zip中
try {
String tempFileName = "安装告知单_" + System.currentTimeMillis() + "_temp";
zip.putNextEntry(new ZipEntry(tempFileName + ".pdf"));
IOUtils.write(templateToPdfData, zip);
zip.closeEntry();
} catch (IOException e) {
log.error("打包zip失败:" + e.getMessage());
throw new BadRequest("打包zip失败");
}
// 所有条目写入完成后关闭 ZipOutputStream
zip.finish();
// 设置响应头并将压缩文件写入 HttpServletResponse
response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/zip");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(customFileName, "UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
IOUtils.write(outputStream.toByteArray(), response.getOutputStream());
} catch (IOException e) {
throw new RuntimeException("导出异常:", e);
}
} }
public Map<String, Object> fullFillTemplateObj(List<Map<String, Object>> informationList, String businessType) { public Map<String, Object> fullFillTemplateObj(List<Map<String, Object>> informationList, String businessType) {
......
...@@ -152,6 +152,27 @@ public class WordTemplateUtils { ...@@ -152,6 +152,27 @@ public class WordTemplateUtils {
return url; return url;
} }
public static byte[] getTemplateToPdfData(String pdfName, String wordPath, Map<String, Object> placeholders){
// word转pdf
File pdfFile;
try {
pdfFile = wordToPdf(pdfName, wordPath, placeholders);
} catch (Exception e) {
log.error("模板转pdf失败:", e);
throw new BadRequest("模板转pdf失败");
}
try {
return file2byte(pdfFile);
} finally {
try {
Files.deleteIfExists(pdfFile.toPath());
} catch (Exception e) {
log.error("文件找不到,删除失败:", e);
}
}
}
public static void templateToPdfDownload(String pdfName, String wordPath, Map<String, Object> placeholders, HttpServletResponse response) { public static void templateToPdfDownload(String pdfName, String wordPath, Map<String, Object> placeholders, HttpServletResponse response) {
// word转pdf // word转pdf
File pdfFile; File pdfFile;
......
...@@ -14,7 +14,7 @@ import java.io.Serializable; ...@@ -14,7 +14,7 @@ import java.io.Serializable;
@ApiModel(value = "InspectionEquipInfoModel") @ApiModel(value = "InspectionEquipInfoModel")
public class InspectionEquipInfoModel implements Serializable { public class InspectionEquipInfoModel implements Serializable {
@ApiModelProperty(value = "设备ID") @ApiModelProperty(value = "设备ID或者装置id")
private String record; private String record;
@ApiModelProperty(value = "检验类型(小类)") @ApiModelProperty(value = "检验类型(小类)")
...@@ -23,6 +23,9 @@ public class InspectionEquipInfoModel implements Serializable { ...@@ -23,6 +23,9 @@ public class InspectionEquipInfoModel implements Serializable {
@ApiModelProperty(value = "申请表主键") @ApiModelProperty(value = "申请表主键")
private String appSeq; private String appSeq;
@ApiModelProperty(value = "设备类别")
private String equCategory;
@ApiModelProperty(value = "主题,无需上送,由topic解析出来") @ApiModelProperty(value = "主题,无需上送,由topic解析出来")
private String componentKey; private String componentKey;
} }
...@@ -246,7 +246,7 @@ ...@@ -246,7 +246,7 @@
and (res.application_unit_code = #{jyjcInspectionResultModel.companyCode} or res.inspection_unit_code = #{jyjcInspectionResultModel.companyCode}) and (res.application_unit_code = #{jyjcInspectionResultModel.companyCode} or res.inspection_unit_code = #{jyjcInspectionResultModel.companyCode})
</when> </when>
<otherwise> <otherwise>
1 = 2 and 1 = 2
</otherwise> </otherwise>
</choose> </choose>
</where> </where>
...@@ -275,6 +275,9 @@ ...@@ -275,6 +275,9 @@
<if test="jyjcInspectionResultModel.inspectionUnitName != '' and jyjcInspectionResultModel.inspectionUnitName != null"> <if test="jyjcInspectionResultModel.inspectionUnitName != '' and jyjcInspectionResultModel.inspectionUnitName != null">
and res.inspection_unit_name like concat('%',#{jyjcInspectionResultModel.inspectionUnitName},'%') and res.inspection_unit_name like concat('%',#{jyjcInspectionResultModel.inspectionUnitName},'%')
</if> </if>
<if test="jyjcInspectionResultModel.useInnerCode != '' and jyjcInspectionResultModel.useInnerCode != null">
and 1 = 2
</if>
<choose> <choose>
<when test="identity == 'apply'"> <when test="identity == 'apply'">
and res.application_unit_code = #{jyjcInspectionResultModel.companyCode} and res.application_unit_code = #{jyjcInspectionResultModel.companyCode}
...@@ -286,7 +289,7 @@ ...@@ -286,7 +289,7 @@
and (res.application_unit_code = #{jyjcInspectionResultModel.companyCode} or res.inspection_unit_code = #{jyjcInspectionResultModel.companyCode}) and (res.application_unit_code = #{jyjcInspectionResultModel.companyCode} or res.inspection_unit_code = #{jyjcInspectionResultModel.companyCode})
</when> </when>
<otherwise> <otherwise>
1 = 2 and 1 = 2
</otherwise> </otherwise>
</choose> </choose>
</where> </where>
......
...@@ -166,7 +166,7 @@ public class RuleActionHandler { ...@@ -166,7 +166,7 @@ public class RuleActionHandler {
// 所有符合资质的单位code // 所有符合资质的单位code
Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet()); Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
// 按照资质 + 开通区域,进行单位的筛选 // 按照资质 + 开通区域,进行单位的筛选
if (unitCodes.size() > 0) { if (!unitCodes.isEmpty()) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理 // 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept); this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
...@@ -199,7 +199,7 @@ public class RuleActionHandler { ...@@ -199,7 +199,7 @@ public class RuleActionHandler {
Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet()); Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>(); List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
// 按照资质 + areaCode,进行设备单位的筛选 // 按照资质 + areaCode,进行设备单位的筛选
if (unitCodes.size() > 0) { if (!unitCodes.isEmpty()) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理 // 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept); this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
...@@ -256,7 +256,7 @@ public class RuleActionHandler { ...@@ -256,7 +256,7 @@ public class RuleActionHandler {
List<String> legalUnitCodes = Arrays.stream(legalInspectionCodes.split(",")).filter(unitCodes::contains).collect(Collectors.toList()); List<String> legalUnitCodes = Arrays.stream(legalInspectionCodes.split(",")).filter(unitCodes::contains).collect(Collectors.toList());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>(); List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
// 按照资质 + areaCode,进行设备单位的筛选 // 按照资质 + areaCode,进行设备单位的筛选
if (legalUnitCodes.size() > 0) { if (!legalUnitCodes.isEmpty()) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(legalUnitCodes, areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(legalUnitCodes, areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入 // 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept); this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
...@@ -277,7 +277,7 @@ public class RuleActionHandler { ...@@ -277,7 +277,7 @@ public class RuleActionHandler {
// 所有符合单位的code // 所有符合单位的code
Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet()); Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>(); List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
if (unitCodes.size() > 0) { if (!unitCodes.isEmpty()) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理 // 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept); this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
......
package com.yeejoin.amos.boot.module.jyjc.biz.event.listener; package com.yeejoin.amos.boot.module.jyjc.biz.event.listener;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil; import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
...@@ -14,8 +15,10 @@ import com.yeejoin.amos.boot.module.jyjc.biz.event.TouchRuleEvent; ...@@ -14,8 +15,10 @@ import com.yeejoin.amos.boot.module.jyjc.biz.event.TouchRuleEvent;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher; import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo; import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.RuleCommonServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.RuleCommonServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgProjectContraptionMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -25,6 +28,7 @@ import org.springframework.stereotype.Component; ...@@ -25,6 +28,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
...@@ -59,6 +63,8 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In ...@@ -59,6 +63,8 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
private List<BlockingQueue<InspectionEquipInfoModel>> hashCodeBlockingQueues = new ArrayList<>(); private List<BlockingQueue<InspectionEquipInfoModel>> hashCodeBlockingQueues = new ArrayList<>();
private final IdxBizJgProjectContraptionMapper jgProjectContraptionMapper;
@Value("${rule.data.preparation.thread.number:2}") @Value("${rule.data.preparation.thread.number:2}")
private int threadNumber; private int threadNumber;
...@@ -67,7 +73,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In ...@@ -67,7 +73,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
RegistrationInfoMapper registrationInfoMapper, RegistrationInfoMapper registrationInfoMapper,
RuleCommonServiceImpl ruleCommonService, RuleCommonServiceImpl ruleCommonService,
InspectionRuleEnableConfig inspectionRuleEnableConfig, InspectionApplicationPushEventListener applicationPushEventListener, InspectionRuleEnableConfig inspectionRuleEnableConfig, InspectionApplicationPushEventListener applicationPushEventListener,
JyjcInspectionApplicationNoAcceptLogMapper inspectionApplicationNoAcceptLogMapper, EventPublisher publisher) { JyjcInspectionApplicationNoAcceptLogMapper inspectionApplicationNoAcceptLogMapper, EventPublisher publisher, IdxBizJgProjectContraptionMapper jgProjectContraptionMapper) {
this.sequence = sequence; this.sequence = sequence;
this.registrationInfoMapper = registrationInfoMapper; this.registrationInfoMapper = registrationInfoMapper;
this.ruleCommonService = ruleCommonService; this.ruleCommonService = ruleCommonService;
...@@ -75,6 +81,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In ...@@ -75,6 +81,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
this.applicationPushEventListener = applicationPushEventListener; this.applicationPushEventListener = applicationPushEventListener;
this.inspectionApplicationNoAcceptLogMapper = inspectionApplicationNoAcceptLogMapper; this.inspectionApplicationNoAcceptLogMapper = inspectionApplicationNoAcceptLogMapper;
this.publisher = publisher; this.publisher = publisher;
this.jgProjectContraptionMapper = jgProjectContraptionMapper;
} }
...@@ -116,27 +123,52 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In ...@@ -116,27 +123,52 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
if (!this.getEnableConfig(equipInfoModel.getInspectionType())) { if (!this.getEnableConfig(equipInfoModel.getInspectionType())) {
return; return;
} }
RegistrationInfo registrationInfo = fetchRegistrationInfo(equipInfoModel.getRecord());
InspectionEquipInfo inspectionEquipInfo = new InspectionEquipInfo(); InspectionEquipInfo inspectionEquipInfo = new InspectionEquipInfo();
if (registrationInfo == null) { if (equipInfoModel.getEquCategory() != null && equipInfoModel.getEquCategory().startsWith("8")) {
log.error("未找到设备,报检规则匹配流程结束!"); // 管道逻辑
return; String projectContraptionId = equipInfoModel.getRecord();
IdxBizJgProjectContraption projectContraption = jgProjectContraptionMapper.selectById(projectContraptionId);
if (projectContraption == null) {
log.error("未找到装置,报检规则匹配流程结束!");
return;
}
inspectionEquipInfo.setEquCategory(projectContraption.getEquCategory());
inspectionEquipInfo.setEquList(projectContraption.getEquList());
inspectionEquipInfo.setEquDefine(projectContraption.getEquDefine());
inspectionEquipInfo.setTechParams(new HashMap<>());
// 地市
UseInfo useInfo = new UseInfo();
BeanUtil.copyProperties(projectContraption, useInfo, true);
inspectionEquipInfo.setAreaCode(ruleCommonService.getArea(useInfo));
// 区县
inspectionEquipInfo.setDistrictOrCountyCode(ruleCommonService.getCounty(useInfo));
} else {
// 非管道逻辑
RegistrationInfo registrationInfo = fetchRegistrationInfo(equipInfoModel.getRecord());
if (registrationInfo == null) {
log.error("未找到设备,报检规则匹配流程结束!");
return;
}
inspectionEquipInfo.setEquCategory(registrationInfo.getEquCategory());
inspectionEquipInfo.setEquList(registrationInfo.getEquList());
inspectionEquipInfo.setEquDefine(registrationInfo.getEquDefine());
inspectionEquipInfo.setTechParams(this.getTechParams(registrationInfo));
// 是否球罐 0 1 转 boolean
inspectionEquipInfo.setIsBallValve(!"0".equals(registrationInfo.getWhetherSphericalTank()));
UseInfo useInfo = ruleCommonService.getUseInfo(equipInfoModel.getRecord());
// 地市
inspectionEquipInfo.setAreaCode(ruleCommonService.getArea(useInfo));
// 区县
inspectionEquipInfo.setDistrictOrCountyCode(ruleCommonService.getCounty(useInfo));
} }
inspectionEquipInfo.setEquCategory(registrationInfo.getEquCategory());
inspectionEquipInfo.setEquList(registrationInfo.getEquList());
inspectionEquipInfo.setEquDefine(registrationInfo.getEquDefine());
inspectionEquipInfo.setComponentKey(equipInfoModel.getComponentKey()); inspectionEquipInfo.setComponentKey(equipInfoModel.getComponentKey());
inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType()); inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType());
inspectionEquipInfo.setRecord(equipInfoModel.getRecord()); inspectionEquipInfo.setRecord(equipInfoModel.getRecord());
inspectionEquipInfo.setBizType(getCategoryByType(JYJCTypeEnum.of(inspectionEquipInfo.getInspectionType()))); inspectionEquipInfo.setBizType(getCategoryByType(JYJCTypeEnum.of(inspectionEquipInfo.getInspectionType())));
inspectionEquipInfo.setUuid(sequence.nextId() + ""); inspectionEquipInfo.setUuid(sequence.nextId() + "");
inspectionEquipInfo.setTechParams(this.getTechParams(registrationInfo));
this.setReginInfo(inspectionEquipInfo, equipInfoModel.getRecord());
JyjcInspectionApplicationNoAcceptLog jyjcInspectionApplicationNoAcceptLog = getLastNoAcceptLog(equipInfoModel); JyjcInspectionApplicationNoAcceptLog jyjcInspectionApplicationNoAcceptLog = getLastNoAcceptLog(equipInfoModel);
inspectionEquipInfo.setRequestType(this.buildRequestType(equipInfoModel, jyjcInspectionApplicationNoAcceptLog)); inspectionEquipInfo.setRequestType(this.buildRequestType(equipInfoModel, jyjcInspectionApplicationNoAcceptLog));
inspectionEquipInfo.setLastNoAcceptInspectionCode(this.buildLastNoAcceptInspectionCode(jyjcInspectionApplicationNoAcceptLog)); inspectionEquipInfo.setLastNoAcceptInspectionCode(this.buildLastNoAcceptInspectionCode(jyjcInspectionApplicationNoAcceptLog));
// 是否球罐 0 1 转 boolean
inspectionEquipInfo.setIsBallValve(!"0".equals(registrationInfo.getWhetherSphericalTank()));
inspectionEquipInfo.setAppSeq(equipInfoModel.getAppSeq()); inspectionEquipInfo.setAppSeq(equipInfoModel.getAppSeq());
// 触发规则 // 触发规则
publisher.publish(new TouchRuleEvent(this, inspectionEquipInfo)); publisher.publish(new TouchRuleEvent(this, inspectionEquipInfo));
...@@ -150,16 +182,9 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In ...@@ -150,16 +182,9 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
* @return true-启用规则,false-不启用 * @return true-启用规则,false-不启用
*/ */
private boolean getEnableConfig(String inspectionType) { private boolean getEnableConfig(String inspectionType) {
return inspectionRuleEnableConfig.getValueByFieldName(inspectionType) == null ? false : (Boolean) inspectionRuleEnableConfig.getValueByFieldName(inspectionType); return inspectionRuleEnableConfig.getValueByFieldName(inspectionType) != null && (Boolean) inspectionRuleEnableConfig.getValueByFieldName(inspectionType);
} }
private void setReginInfo(InspectionEquipInfo inspectionEquipInfo, String record) {
UseInfo useInfo = ruleCommonService.getUseInfo(record);
// 地市
inspectionEquipInfo.setAreaCode(ruleCommonService.getArea(useInfo));
// 区县
inspectionEquipInfo.setDistrictOrCountyCode(ruleCommonService.getCounty(useInfo));
}
private String buildLastNoAcceptInspectionCode(JyjcInspectionApplicationNoAcceptLog jyjcInspectionApplicationNoAcceptLog) { private String buildLastNoAcceptInspectionCode(JyjcInspectionApplicationNoAcceptLog jyjcInspectionApplicationNoAcceptLog) {
if (jyjcInspectionApplicationNoAcceptLog != null) { if (jyjcInspectionApplicationNoAcceptLog != null) {
......
...@@ -274,4 +274,10 @@ public class IdxBizJgProjectContraption extends BaseEntity { ...@@ -274,4 +274,10 @@ public class IdxBizJgProjectContraption extends BaseEntity {
*/ */
@TableField("is_first_merge") @TableField("is_first_merge")
private Boolean isFirstMerge; private Boolean isFirstMerge;
/**
* 是否禁用打印汇总表按钮
*/
@TableField(exist = false)
private Boolean disableBasicButton;
} }
...@@ -74,4 +74,9 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro ...@@ -74,4 +74,9 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
* @return * @return
*/ */
List<Map<String, Object>> selectEquipListByExport(@Param("sequenceNbr") String sequenceNbr); List<Map<String, Object>> selectEquipListByExport(@Param("sequenceNbr") String sequenceNbr);
/**
* 获取不为空的检验信息个数
*/
int selectCheckCountByNotNull(@Param("sequenceNbr") String sequenceNbr);
} }
...@@ -243,4 +243,24 @@ ...@@ -243,4 +243,24 @@
WHERE ibjui.project_contraption_id = #{sequenceNbr} WHERE ibjui.project_contraption_id = #{sequenceNbr}
ORDER BY ibjtpp.REC_DATE ASC ORDER BY ibjtpp.REC_DATE ASC
</select> </select>
<select id="selectCheckCountByNotNull" resultType="int">
SELECT COUNT(1)
FROM
(
SELECT
( SELECT INSPECT_ORG_NAME FROM idx_biz_jg_inspection_detection_info WHERE "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC LIMIT 1 ) inspectOrgName,
( SELECT INSPECT_CONCLUSION FROM idx_biz_jg_inspection_detection_info WHERE "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC LIMIT 1 ) inspectConclusion,
( SELECT NEXT_INSPECT_DATE FROM idx_biz_jg_inspection_detection_info WHERE "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC LIMIT 1 ) nextInspectDate
FROM
idx_biz_jg_use_info ibjui
LEFT JOIN idx_biz_jg_tech_params_pipeline ibjtpp ON ibjui.RECORD = ibjtpp.RECORD
LEFT JOIN idx_biz_jg_design_info ibjdi ON ibjui.RECORD = ibjdi.RECORD
WHERE
ibjui.project_contraption_id = #{sequenceNbr}
) A
WHERE
A.inspectOrgName != NULL AND A.inspectOrgName != '' AND A.inspectConclusion!=NULL and A.inspectConclusion!=''
and A.nextInspectDate != NULL
</select>
</mapper> </mapper>
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