Commit 86754695 authored by suhuiguang's avatar suhuiguang

feat(jyjc): 报检开发调整

1.报检规则4.0开发
parent 59b6d772
package com.yeejoin.amos.boot.module.jyjc.api.dto; package com.yeejoin.amos.boot.module.jyjc.api.dto;
import com.yeejoin.amos.boot.module.jyjc.api.model.InspectionEquipData;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -66,7 +65,7 @@ public class InspectionApplicationPushDataPipeline implements Serializable { ...@@ -66,7 +65,7 @@ public class InspectionApplicationPushDataPipeline implements Serializable {
private String totalLength; private String totalLength;
@ApiModelProperty(value = "报检的管道") @ApiModelProperty(value = "报检的管道")
private List<PipelineResultItemDto> inspectionEquips; private List<PipelinePushItemDto> inspectionEquips;
private String traceId; private String traceId;
......
package com.yeejoin.amos.boot.module.jyjc.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 压力管道汇总表数据项
*
* @author system_generator
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "压力管道汇总表数据项")
public class PipelinePushItemDto {
@ApiModelProperty(value = "唯一标识")
private String equipId;
@ApiModelProperty(value = "管道名称(登记单元)")
private String pipeName;
@ApiModelProperty(value = "管道编号")
private String pipelineNumber;
@ApiModelProperty(value = "设计单位名称")
private String designUnitName;
@ApiModelProperty(value = "管道级别")
private String deviceLevel;
@ApiModelProperty(value = "公称直径")
private String nominalDiameter;
@ApiModelProperty(value = "公称壁厚")
private String wallThickness;
@ApiModelProperty(value = "管道长度")
private String pipeLength;
@ApiModelProperty(value = "设计压力")
private String pressure;
@ApiModelProperty(value = "设计温度")
private String temperature;
@ApiModelProperty(value = "设计介质")
private String medium;
@ApiModelProperty(value = "工作压力")
private String workPressure;
@ApiModelProperty(value = "工作温度")
private String workTemperature;
@ApiModelProperty(value = "工作介质")
private String workMedium;
@ApiModelProperty(value = "备注")
private String remarks;
}
...@@ -18,23 +18,6 @@ public class PipelineResultItemDto { ...@@ -18,23 +18,6 @@ public class PipelineResultItemDto {
@ApiModelProperty(value = "唯一标识") @ApiModelProperty(value = "唯一标识")
private String equipId; private String equipId;
@ApiModelProperty(value = "管道名称(登记单元)")
private String pipeName;
@ApiModelProperty(value = "管道编号")
private String pipelineNumber;
@ApiModelProperty(value = "设计单位名称")
private String designUnitName;
@ApiModelProperty(value = "管道级别")
private String deviceLevel;
@ApiModelProperty(value = "公称直径") @ApiModelProperty(value = "公称直径")
private String nominalDiameter; private String nominalDiameter;
......
...@@ -251,7 +251,7 @@ public class JyjcInspectionResultController extends BaseController { ...@@ -251,7 +251,7 @@ public class JyjcInspectionResultController extends BaseController {
* @return List<JyjcInspectionResultDataModel> * @return List<JyjcInspectionResultDataModel>
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "报检结果接收", notes = "对外对接使用,支持单条及批量") @ApiOperation(httpMethod = "POST", value = "压力管道报检结果接收", notes = "压力管道对外对接使用,支持单条及批量")
@PostMapping(value = "/pipeline/receive") @PostMapping(value = "/pipeline/receive")
public ResponseModel<List<PipelineInspectionResultDto>> savePipelineResultDataBatch(@RequestBody List<PipelineInspectionResultDto> resultData){ public ResponseModel<List<PipelineInspectionResultDto>> savePipelineResultDataBatch(@RequestBody List<PipelineInspectionResultDto> resultData){
return ResponseHelper.buildResponse(jyjcInspectionResultServiceImpl.receivePipelineResultData(resultData)); return ResponseHelper.buildResponse(jyjcInspectionResultServiceImpl.receivePipelineResultData(resultData));
......
...@@ -14,7 +14,7 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage; ...@@ -14,7 +14,7 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper;
import com.yeejoin.amos.boot.module.jyjc.api.common.BizCommonConstant; import com.yeejoin.amos.boot.module.jyjc.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionApplicationPushDataPipeline; import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionApplicationPushDataPipeline;
import com.yeejoin.amos.boot.module.jyjc.api.dto.PipelineResultItemDto; import com.yeejoin.amos.boot.module.jyjc.api.dto.PipelinePushItemDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationEquip;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationPushLog; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationPushLog;
import com.yeejoin.amos.boot.module.jyjc.api.enums.EquipCategoryEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.EquipCategoryEnum;
...@@ -35,7 +35,6 @@ import org.apache.commons.lang3.StringUtils; ...@@ -35,7 +35,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.event.TransactionalEventListener; import org.springframework.transaction.event.TransactionalEventListener;
...@@ -207,12 +206,12 @@ public class InspectionApplicationPushEventListener { ...@@ -207,12 +206,12 @@ public class InspectionApplicationPushEventListener {
return canDealInspectionTypes; return canDealInspectionTypes;
} }
private String calTotalLength(List<PipelineResultItemDto> pipelines) { private String calTotalLength(List<PipelinePushItemDto> pipelines) {
if (pipelines == null || pipelines.isEmpty()) { if (pipelines == null || pipelines.isEmpty()) {
return ZERO.toPlainString(); return ZERO.toPlainString();
} }
return pipelines.stream() return pipelines.stream()
.map(PipelineResultItemDto::getPipeLength) .map(PipelinePushItemDto::getPipeLength)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.map(String::trim) .map(String::trim)
.filter(s -> !s.isEmpty()) .filter(s -> !s.isEmpty())
...@@ -257,10 +256,10 @@ public class InspectionApplicationPushEventListener { ...@@ -257,10 +256,10 @@ public class InspectionApplicationPushEventListener {
return jsonStr; return jsonStr;
} }
private List<PipelineResultItemDto> getPipelines(JyjcInspectionApplicationModel applicationModel) { private List<PipelinePushItemDto> getPipelines(JyjcInspectionApplicationModel applicationModel) {
List<Map<String, Object>> pipelines = inspectionApplicationService.getPipelines(applicationModel); List<Map<String, Object>> pipelines = inspectionApplicationService.getPipelines(applicationModel);
return pipelines.stream().map(p -> { return pipelines.stream().map(p -> {
PipelineResultItemDto resultItemDto = new PipelineResultItemDto(); PipelinePushItemDto resultItemDto = new PipelinePushItemDto();
BeanUtil.copyProperties(p, resultItemDto); BeanUtil.copyProperties(p, resultItemDto);
resultItemDto.setEquipId(p.get("record").toString()); resultItemDto.setEquipId(p.get("record").toString());
return resultItemDto; return resultItemDto;
......
package com.yeejoin.amos.boot.module.jyjc.biz.event.listener.result; package com.yeejoin.amos.boot.module.jyjc.biz.event.listener.result;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -9,6 +8,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; ...@@ -9,6 +8,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil; import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.common.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult;
...@@ -19,15 +19,20 @@ import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher; ...@@ -19,15 +19,20 @@ import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionResultServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionResultServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgTechParamsPipeline; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgTechParamsPipeline;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionDetectionInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionDetectionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgProjectContraptionMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgTechParamsPipelineMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgTechParamsPipelineMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
@Component @Component
...@@ -52,6 +57,8 @@ public class BatchEquipResultDataProcessor implements SupportableResultDataProce ...@@ -52,6 +57,8 @@ public class BatchEquipResultDataProcessor implements SupportableResultDataProce
private final JyjcInspectionResultServiceImpl inspectionResultService; private final JyjcInspectionResultServiceImpl inspectionResultService;
private final IdxBizJgProjectContraptionMapper idxBizJgProjectContraptionMapper;
private static final Set<String> SUPPORTED_TYPES = Sets.newHashSet(EquipmentClassifityEnum.YLGD.getCode()); private static final Set<String> SUPPORTED_TYPES = Sets.newHashSet(EquipmentClassifityEnum.YLGD.getCode());
@Override @Override
...@@ -106,13 +113,32 @@ public class BatchEquipResultDataProcessor implements SupportableResultDataProce ...@@ -106,13 +113,32 @@ public class BatchEquipResultDataProcessor implements SupportableResultDataProce
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// 5.更新单据信息的json(公共) // 5.新计算管道长度
inspectionResultService.updateHisDataAfterResultUpdate(jyjcInspectionResult.getApplicationNo()); calAndWriteTotalPipelineLength(jyjcInspectionResult);
// 6.发送数据刷新消息 // 6.发送数据刷新消息
inspectionResultService.sendDataRefreshMsg(records); inspectionResultService.sendDataRefreshMsg(records);
} }
} }
private void calAndWriteTotalPipelineLength(JyjcInspectionResult jyjcInspectionResult) {
List<IdxBizJgTechParamsPipeline> allPipeLines = idxBizJgProjectContraptionMapper.selectPipelineListByProjectContraptionId(jyjcInspectionResult.getEquipUnicode());
Double totalPipelineLength = allPipeLines.stream().map(IdxBizJgTechParamsPipeline::getPipeLength).filter(Objects::nonNull).map(this::parseToBigDecimal)
.reduce(BigDecimal.ZERO, BigDecimal::add)
.setScale(3, RoundingMode.HALF_UP).doubleValue();
LambdaUpdateWrapper<IdxBizJgProjectContraption> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BaseEntity::getSequenceNbr, jyjcInspectionResult.getEquipUnicode());
updateWrapper.set(IdxBizJgProjectContraption::getPipelineLength, totalPipelineLength);
idxBizJgProjectContraptionMapper.update(null, updateWrapper);
}
private BigDecimal parseToBigDecimal(String value) {
try {
return new BigDecimal(value);
} catch (NumberFormatException e) {
return BigDecimal.ZERO;
}
}
private void updateTechParams(Map<String, Object> e, String record) { private void updateTechParams(Map<String, Object> e, String record) {
JyjcInspectionResultServiceImpl.doUpdatePipelineTechParams(e, record, techParamPipelineMapper); JyjcInspectionResultServiceImpl.doUpdatePipelineTechParams(e, record, techParamPipelineMapper);
} }
......
...@@ -89,8 +89,6 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc ...@@ -89,8 +89,6 @@ public class SingleEquipResultDataProcessor implements SupportableResultDataProc
useInfoMapper.updateByRecord(jyjcInspectionResult.getEquipUnicode(), jyjcInspectionResult.getNextInspectionDate(), jyjcInspectionResult.getInspectionType(), jyjcInspectionResult.getApplicationNo()); useInfoMapper.updateByRecord(jyjcInspectionResult.getEquipUnicode(), jyjcInspectionResult.getNextInspectionDate(), jyjcInspectionResult.getInspectionType(), jyjcInspectionResult.getApplicationNo());
// 4.es更新下次检验日期 // 4.es更新下次检验日期
commonService.updateEquipNextInspectDate(jyjcInspectionResult, jyjcInspectionResult.getEquipUnicode()); commonService.updateEquipNextInspectDate(jyjcInspectionResult, jyjcInspectionResult.getEquipUnicode());
// 更新单据信息的json(公共)
inspectionResultService.updateHisDataAfterResultUpdate(jyjcInspectionResult.getApplicationNo());
// 发送数据刷新消息 // 发送数据刷新消息
inspectionResultService.sendDataRefreshMsg(Collections.singleton(record)); inspectionResultService.sendDataRefreshMsg(Collections.singleton(record));
} }
......
...@@ -20,10 +20,10 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; ...@@ -20,10 +20,10 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil; 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.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto; import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.ContraptionQueryParams;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto; import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.common.api.enums.JYJCBusinessTypeEnum; import com.yeejoin.amos.boot.module.common.api.enums.JYJCBusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.common.api.dto.ContraptionQueryParams;
import com.yeejoin.amos.boot.module.jyjc.api.entity.*; import com.yeejoin.amos.boot.module.jyjc.api.entity.*;
import com.yeejoin.amos.boot.module.jyjc.api.enums.*; import com.yeejoin.amos.boot.module.jyjc.api.enums.*;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper; import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper;
...@@ -169,7 +169,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -169,7 +169,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
private JyjcInspectionHistoryServiceImpl inspectionHistoryService; private JyjcInspectionHistoryServiceImpl inspectionHistoryService;
@Resource @Resource
private EquipCategoryTypeHandler typeHandler; private EquipCategoryTypeHandler typeHandler;
@NotNull @NotNull
...@@ -495,7 +495,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -495,7 +495,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
} }
@Override @Override
public Page<JyjcInspectionApplicationModel> queryForPageList(Page<JyjcInspectionApplication> page, JyjcInspectionApplicationModel model, String sort,String client) { public Page<JyjcInspectionApplicationModel> queryForPageList(Page<JyjcInspectionApplication> page, JyjcInspectionApplicationModel model, String sort, String client) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
SortVo sortMap = commonService.sortFieldConversion(sort); SortVo sortMap = commonService.sortFieldConversion(sort);
String companyType = reginParams.getCompany().getCompanyType(); String companyType = reginParams.getCompany().getCompanyType();
...@@ -519,7 +519,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -519,7 +519,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
currentInspectionUnitCode = companyCode; currentInspectionUnitCode = companyCode;
} }
String orgCode = "jgLook".equals(client) ? reginParams.getCompany().getOrgCode() : null; String orgCode = "jgLook".equals(client) ? reginParams.getCompany().getOrgCode() : null;
return this.getBaseMapper().selectForPage(page, model, identity, currentApplicationUnitCode, currentInspectionUnitCode, currentUserId, sortMap,orgCode); return this.getBaseMapper().selectForPage(page, model, identity, currentApplicationUnitCode, currentInspectionUnitCode, currentUserId, sortMap, orgCode);
} }
/** /**
...@@ -1616,7 +1616,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -1616,7 +1616,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
return setPieLineInfo(applicationModel, projectContraption, jsonObject, equList); return setPieLineInfo(applicationModel, projectContraption, jsonObject, equList);
} }
private String calTotalLength(List<Map<String, Object>> equList) { public static String calTotalLength(List<Map<String, Object>> equList) {
double pipeLengthSum = equList.stream().map(r -> r.get("pipeLength")).filter(Objects::nonNull).mapToDouble(l -> Double.parseDouble(String.valueOf(l))).sum(); double pipeLengthSum = equList.stream().map(r -> r.get("pipeLength")).filter(Objects::nonNull).mapToDouble(l -> Double.parseDouble(String.valueOf(l))).sum();
BigDecimal pipeLengthSumBig = new BigDecimal(String.valueOf(pipeLengthSum)).setScale(3, RoundingMode.HALF_UP); BigDecimal pipeLengthSumBig = new BigDecimal(String.valueOf(pipeLengthSum)).setScale(3, RoundingMode.HALF_UP);
return pipeLengthSumBig.toPlainString(); return pipeLengthSumBig.toPlainString();
......
...@@ -26,6 +26,7 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper; ...@@ -26,6 +26,7 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jyjc.api.common.StringUtil; import com.yeejoin.amos.boot.module.jyjc.api.common.StringUtil;
import com.yeejoin.amos.boot.module.jyjc.api.dto.PipelineInspectionResultDto; import com.yeejoin.amos.boot.module.jyjc.api.dto.PipelineInspectionResultDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.PipelineResultItemDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.*; import com.yeejoin.amos.boot.module.jyjc.api.entity.*;
import com.yeejoin.amos.boot.module.jyjc.api.enums.*; import com.yeejoin.amos.boot.module.jyjc.api.enums.*;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionResultMapper; import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionResultMapper;
...@@ -37,15 +38,19 @@ import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionResultParamS ...@@ -37,15 +38,19 @@ import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionResultParamS
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionResultService; import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionResultService;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcInspectionResultVo; import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcInspectionResultVo;
import com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionDetectionSaveToDbEvent; import com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionDetectionSaveToDbEvent;
import com.yeejoin.amos.boot.module.jyjc.biz.event.listener.result.BatchEquipResultDataProcessor;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher; import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher;
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.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.util.JsonUtils; import com.yeejoin.amos.boot.module.jyjc.biz.util.JsonUtils;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgTechParamsPipeline;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgInspectionDetectionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgTechParamsPipelineMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.feign.systemctl.model.DictionarieModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieModel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -223,7 +228,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -223,7 +228,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
} }
public JyjcInspectionResultAttachment getReportAttachment(Long resultSeq){ public JyjcInspectionResultAttachment getReportAttachment(Long resultSeq) {
return Optional.ofNullable(attachmentService.getOneByUniKey(resultSeq, JYJC_SUBMIT_FILE_JYBG)).orElse(new JyjcInspectionResultAttachment()); return Optional.ofNullable(attachmentService.getOneByUniKey(resultSeq, JYJC_SUBMIT_FILE_JYBG)).orElse(new JyjcInspectionResultAttachment());
} }
...@@ -300,8 +305,6 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -300,8 +305,6 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
JyjcInspectionResultModel dbResultModel = this.queryBySeq(model.getSequenceNbr()); JyjcInspectionResultModel dbResultModel = this.queryBySeq(model.getSequenceNbr());
// 更新使用信息、检验信息、技术参数 // 更新使用信息、检验信息、技术参数
Set<String> records = this.updateTechParamAndInspectInfo(dbResultModel, jybgFile); Set<String> records = this.updateTechParamAndInspectInfo(dbResultModel, jybgFile);
// 更新单据信息的json(公共)
this.updateHisDataAfterResultUpdate(dbResultModel.getApplicationNo());
sendDataRefreshMsg(records); sendDataRefreshMsg(records);
return dbResultModel; return dbResultModel;
} }
...@@ -413,11 +416,6 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -413,11 +416,6 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
return String.format("\"%s\"", StrUtil.toUnderlineCase(paramType)); return String.format("\"%s\"", StrUtil.toUnderlineCase(paramType));
} }
public void updateHisDataAfterResultUpdate(String applicationNo) {
JyjcInspectionApplication application = inspectionApplicationService.getOne(new LambdaQueryWrapper<JyjcInspectionApplication>().eq(JyjcInspectionApplication::getApplicationNo,applicationNo));
inspectionApplicationService.createHisAfterReceive(BeanUtil.copyProperties(application, JyjcInspectionApplicationModel.class));
}
/** /**
* 列表查询 示例 * 列表查询 示例
*/ */
...@@ -579,17 +577,39 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -579,17 +577,39 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
} }
private void fillResultParamData(PipelineInspectionResultDto r, JyjcInspectionResult jyjcInspectionResult, List<JyjcInspectionResultParam> resultParams) { private void fillResultParamData(PipelineInspectionResultDto r, JyjcInspectionResult jyjcInspectionResult, List<JyjcInspectionResultParam> resultParams) {
JyjcInspectionResultParam resultParam = new JyjcInspectionResultParam(); List<JyjcInspectionResultParam> paramList = iJyjcInspectionResultParamService.getParamByResultSeq(jyjcInspectionResult.getSequenceNbr());
resultParam.setResultSeq(jyjcInspectionResult.getSequenceNbr()); if (!paramList.isEmpty()) {
resultParam.setParamJson(JSON.toJSONString(r.getInspectionEquips())); JyjcInspectionResultParam resultParam = paramList.get(0);
resultParam.setRecUserId(RequestContext.getExeUserId()); resultParam.setRecUserId(RequestContext.getExeUserId());
resultParam.setRecDate(new Date()); resultParam.setRecDate(new Date());
resultParam.setRemark("同步数据"); resultParam.setRemark("同步数据");
// 将设备种类code换成技术参数枚举 String fullParamJsonStr = resultParam.getParamJson();
resultParam.setParamType(this.getTypeByEquipList(jyjcInspectionResult.getEquList())); JSONObject paramObj = JSON.parseObject(fullParamJsonStr);
resultParams.add(resultParam); try {
List<Map<String, Object>> equips = objectMapper.readValue(
objectMapper.writeValueAsString(paramObj.get("equip")),
new TypeReference<ArrayList<Map<String, Object>>>() {
}
);
Map<String, PipelineResultItemDto> recordResultMap = r.getInspectionEquips().stream().collect(Collectors.toMap(PipelineResultItemDto::getEquipId, Function.identity()));
equips.forEach(e -> {
PipelineResultItemDto resultItemDto = recordResultMap.get(e.get("record").toString());
if (resultItemDto != null) {
BeanUtil.copyProperties(resultItemDto, e);
}
});
// 管道长度更新为最新的
paramObj.put("pipelineLength", JyjcInspectionApplicationServiceImpl.calTotalLength(equips));
paramObj.put("equip", equips);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
resultParam.setParamJson(paramObj.toJSONString());
resultParams.add(resultParam);
}
} }
private String getTypeByEquipList(String equList) { private String getTypeByEquipList(String equList) {
EquipCategoryEnum categoryEnum = EquipCategoryEnum.of(Integer.parseInt(equList)); EquipCategoryEnum categoryEnum = EquipCategoryEnum.of(Integer.parseInt(equList));
assert categoryEnum != null; assert categoryEnum != null;
...@@ -941,6 +961,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -941,6 +961,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
return Boolean.TRUE; return Boolean.TRUE;
} }
@Transactional(rollbackFor = Exception.class)
public List<PipelineInspectionResultDto> receivePipelineResultData(List<PipelineInspectionResultDto> resultData) { public List<PipelineInspectionResultDto> receivePipelineResultData(List<PipelineInspectionResultDto> resultData) {
log.info("收到检验检测厂商推送的压力管道结果数据:{}", JSONArray.toJSONString(resultData)); log.info("收到检验检测厂商推送的压力管道结果数据:{}", JSONArray.toJSONString(resultData));
// 1.数据合法性检查 // 1.数据合法性检查
...@@ -975,6 +996,20 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR ...@@ -975,6 +996,20 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
} }
private void checkMustFieldIsValid2(List<PipelineInspectionResultDto> resultData) { private void checkMustFieldIsValid2(List<PipelineInspectionResultDto> resultData) {
int i = 0;
for (PipelineInspectionResultDto resultDataModel : resultData) {
i++;
if (StringUtils.isEmpty(resultDataModel.getApplicationNo())) {
throw new BadRequest("第" + i + "条数据存在问题,applicationNo不能为空!");
}
if (resultDataModel.getInspectionEquips() == null || resultDataModel.getInspectionEquips().isEmpty()) {
throw new BadRequest("第" + i + "条数据存在问题,inspectionEquips不能为空!");
}
boolean isExistEmptyEquipId = resultDataModel.getInspectionEquips().stream().anyMatch(e -> StringUtils.isEmpty(e.getEquipId()));
if (isExistEmptyEquipId) {
throw new BadRequest("第" + i + "条数据存在问题,inspectionEquips中存在缺少equip的数据!");
}
}
} }
public static void doUpdatePipelineTechParams(Map<String, Object> e, String record, IdxBizJgTechParamsPipelineMapper techParamPipelineMapper) { public static void doUpdatePipelineTechParams(Map<String, Object> e, String record, IdxBizJgTechParamsPipelineMapper techParamPipelineMapper) {
......
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.ContraptionQueryParams; import com.yeejoin.amos.boot.module.common.api.dto.ContraptionQueryParams;
import com.yeejoin.amos.boot.module.ymt.api.dto.ProjectWaitRefreshDataQualityScore; import com.yeejoin.amos.boot.module.ymt.api.dto.ProjectWaitRefreshDataQualityScore;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgTechParamsPipeline;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -112,4 +113,6 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro ...@@ -112,4 +113,6 @@ public interface IdxBizJgProjectContraptionMapper extends BaseMapper<IdxBizJgPro
List<Map<String, Object>> selectPipelineList(@Param("equIds") List<String> equIds); List<Map<String, Object>> selectPipelineList(@Param("equIds") List<String> equIds);
void updateDataQualityScoreBatch(@Param("projectContraptions") List<ProjectWaitRefreshDataQualityScore> projectContraptions); void updateDataQualityScoreBatch(@Param("projectContraptions") List<ProjectWaitRefreshDataQualityScore> projectContraptions);
List<IdxBizJgTechParamsPipeline> selectPipelineListByProjectContraptionId(@Param("projectContraptionId") String projectContraptionId);
} }
\ No newline at end of file
...@@ -624,6 +624,17 @@ ...@@ -624,6 +624,17 @@
GROUP BY a.project_contraption_id GROUP BY a.project_contraption_id
) GROUP BY project_contraption_id ) GROUP BY project_contraption_id
</select> </select>
<select id="selectPipelineListByProjectContraptionId"
resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgTechParamsPipeline">
SELECT
ui."record",
pp."pipe_length"
FROM
idx_biz_jg_use_info ui
LEFT JOIN idx_biz_jg_tech_params_pipeline pp ON pp."RECORD" = ui."RECORD"
WHERE
ui.PROJECT_CONTRAPTION_ID = #{projectContraptionId}
</select>
<update id="updateDataQualityScoreBatch"> <update id="updateDataQualityScoreBatch">
<foreach collection="projectContraptions" separator=";" item="projectContraption" open="" close=""> <foreach collection="projectContraptions" separator=";" item="projectContraption" open="" close="">
UPDATE idx_biz_jg_project_contraption SET data_quality_score = #{projectContraption.dataQualityScore} WHERE sequence_nbr = #{projectContraption.projectContraptionId} UPDATE idx_biz_jg_project_contraption SET data_quality_score = #{projectContraption.dataQualityScore} WHERE sequence_nbr = #{projectContraption.projectContraptionId}
......
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