Commit cbbe6318 authored by suhuiguang's avatar suhuiguang

1.修改检验检测结果生成时,在相同单位同时开通检验和检测时,冗余的结果类型不正确

parent 20c0fcdf
......@@ -20,8 +20,8 @@ import java.util.List;
public enum BizTypeEnum {
SUPERVISE("supervise", "监督检验","115"),
FIRST_INSPECTION("firstinspect", "定检","116"),
DETECTION("detection", "检测","117"),
FIRST_INSPECTION("firstinspect", "定(首)检","116"),
DETECTION("detection", "电梯检测","117"),
BUSINESS_OPEN("businessOpen", "检验检测业务开通","114");
private String code;
......@@ -46,6 +46,15 @@ public enum BizTypeEnum {
return null;
}
public static BizTypeEnum getInstance(String code) {
for (BizTypeEnum c : BizTypeEnum.values()) {
if (c.getCode().equals(code)){
return c;
}
}
return null;
}
public static String getNumByCode(String code) {
for (BizTypeEnum c : BizTypeEnum.values()) {
if (c.getCode().equals(code)){
......
......@@ -248,11 +248,13 @@ public class InspectionApplicationPushEventListener implements ApplicationListen
}
private void castStr2JsonField(Map<String, Object> echParamMap) {
echParamMap.forEach((k, v) -> {
if (JyjcConstant.TECH_PARAM_JSON_FIELDS.contains(k) && v != null) {
echParamMap.put(k, JSON.parse(v.toString()));
}
});
if(echParamMap != null){
echParamMap.forEach((k, v) -> {
if (JyjcConstant.TECH_PARAM_JSON_FIELDS.contains(k) && v != null) {
echParamMap.put(k, JSON.parse(v.toString()));
}
});
}
}
private String getAddressByRecord(String equipUnicode) {
......
......@@ -18,10 +18,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.*;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.DocumentEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.ResultStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.ResultTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.*;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.*;
......@@ -596,7 +593,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
resultModel.setApplicationUnitName(inspectionApplicationModel.getApplicationUnitName());
resultModel.setResultStatus(ResultStatusEnum.NO_RESULT.getCode());
resultModel.setApplicationDate(inspectionApplicationModel.getApplicationDate());
resultModel.setResultType(inspectionApplicationModel.getResultType());
resultModel.setInspectionType(inspectionApplicationModel.getInspectionType());
resultModel.setInspectionTypeName(this.getDictNameByCode(inspectionApplicationModel.getInspectionType()));
// 解析设备
......@@ -609,12 +606,41 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
resultModel.setEquCategory(applicationEquipModels.get(i).getEquCategory());
resultModel.setEquList(applicationEquipModels.get(i).getEquList());
resultModel.setIsExistNc(false);
this.setResultTypeByBizType(resultModel, inspectionApplicationModel.getBizType());
resultModels.add(resultModel);
}
inspectionResultService.saveOrUpdateBatch(resultModels);
this.pushInspectionApplication(inspectionApplicationModel);
}
private void setResultTypeByBizType(JyjcInspectionResult resultModel, String bizType) {
// 由于一个检验检测单位可以申请开通检验、检测两个申请,即确定一个 开通申请的维度为:单位编码 + 开通业务类型
// 但是表里面放的使用单位的公司编码,导致无法匹配到正确的开通申请,故按照单位编码+ 开通类型 + 状态查询开通申请
BizTypeEnum bizTypeEnum = BizTypeEnum.getInstance(bizType);
String openBizType = "";
assert bizTypeEnum != null;
switch (bizTypeEnum) {
case SUPERVISE:
case FIRST_INSPECTION:
openBizType = OpenBizTypeEnum.JY.getCode();
break;
case DETECTION:
openBizType = OpenBizTypeEnum.JC.getCode();
break;
default:
break;
}
LambdaQueryWrapper<JyjcOpeningApplication> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JyjcOpeningApplication::getUnitCode, resultModel.getInspectionUnitCode());
queryWrapper.eq(JyjcOpeningApplication::getOpenBizType, openBizType);
queryWrapper.eq(JyjcOpeningApplication::getStatus, FlowStatusEnum.TO_BE_FINISHED.getCode());
queryWrapper.select(JyjcOpeningApplication::getResultType);
List<JyjcOpeningApplication> applicationList = jyjcOpeningApplicationService.list(queryWrapper);
if (applicationList.size() > 0) {
resultModel.setResultType(applicationList.get(0).getResultType());
}
}
private void pushInspectionApplication(JyjcInspectionApplicationModel inspectionApplicationModel) {
// 将检验检测申请信息推送至对应的检验机构
if (inspectionApplicationModel.getResultType().equals(ResultTypeEnum.INTEGRATED.getCode())) {
......
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