1、检测计划、被检设备导入导出功能调整

2、多台设备类型同时进行脚本与ICD检验时Socket异常中断
This commit is contained in:
caozehui
2025-05-26 15:21:21 +08:00
parent 8bc8a97e83
commit 57b08a99c6
13 changed files with 217 additions and 43 deletions

View File

@@ -922,6 +922,8 @@ public class SocketDevResponseService {
map.put("dataType", dataTypeList); map.put("dataType", dataTypeList);
map.put("icdType", icdType); map.put("icdType", icdType);
socketMsg.setData(JSON.toJSONString(map)); socketMsg.setData(JSON.toJSONString(map));
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
System.out.println("开始脚本与icd校验:++++++++++"); System.out.println("开始脚本与icd校验:++++++++++");
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg)); SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
} }

View File

@@ -21,7 +21,7 @@ public class CNDevExcel {
@NotBlank(message = DetectionValidMessage.PREINVESTMENT_PLAN_NOT_BLANK) @NotBlank(message = DetectionValidMessage.PREINVESTMENT_PLAN_NOT_BLANK)
private String preinvestmentPlan; private String preinvestmentPlan;
@Excel(name = "设备编号(开始编号-结束编号,编号为数字)*", width = 50, orderNum = "2") @Excel(name = "装置编号(开始编号-结束编号,编号为数字)*", width = 50, orderNum = "2")
@NotBlank(message = DetectionValidMessage.NAME_NOT_BLANK) @NotBlank(message = DetectionValidMessage.NAME_NOT_BLANK)
@Pattern(regexp = PatternRegex.CN_DEV_NAME_REGEX_IMPORT, message = DetectionValidMessage.CN_DEV_NAME_FORMAT_ERROR) @Pattern(regexp = PatternRegex.CN_DEV_NAME_REGEX_IMPORT, message = DetectionValidMessage.CN_DEV_NAME_FORMAT_ERROR)
private String name; private String name;

View File

@@ -39,7 +39,7 @@ public class ProvinceDevExcel implements Serializable {
@NotBlank(message = DetectionValidMessage.MANUFACTURER_NOT_BLANK) @NotBlank(message = DetectionValidMessage.MANUFACTURER_NOT_BLANK)
private String manufacturer; private String manufacturer;
@Excel(name = "出厂日期*", width = 25, format = "yyyy-MM-dd", orderNum = "8") @Excel(name = "出厂日期yyyy-MM-dd*", width = 25, format = "yyyy-MM-dd", orderNum = "8")
@NotNull(message = DetectionValidMessage.CREATEDATETIME_NOT_NULL) @NotNull(message = DetectionValidMessage.CREATEDATETIME_NOT_NULL)
private LocalDate createDate; private LocalDate createDate;
@@ -75,4 +75,13 @@ public class ProvinceDevExcel implements Serializable {
@NotNull(message = DetectionValidMessage.PORT_NOT_NULL) @NotNull(message = DetectionValidMessage.PORT_NOT_NULL)
@Range(min = 1, max = 65535, message = DetectionValidMessage.PORT_RANGE_ERROR) @Range(min = 1, max = 65535, message = DetectionValidMessage.PORT_RANGE_ERROR)
private Integer port; private Integer port;
@Excel(name = "样品编号", width = 20, orderNum = "17")
private String sampleId;
@Excel(name = "送样日期yyyy-MM-dd", width = 25, format = "yyyy-MM-dd", orderNum = "18")
private String arrivedDate;
@Excel(name="委托方", width = 40, orderNum = "19")
private String delegate;
} }

View File

@@ -82,10 +82,10 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
public Page<PqDevVO> listPqDevs(PqDevParam.QueryParam queryParam) { public Page<PqDevVO> listPqDevs(PqDevParam.QueryParam queryParam) {
Page<PqDev> page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), this.getQueryWrapper(queryParam)); Page<PqDev> page1 = this.page(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), this.getQueryWrapper(queryParam));
page1.getRecords().forEach(p -> { page1.getRecords().forEach(p -> {
if (ObjectUtil.isNotNull(p.getSeries())) { if (StrUtil.isNotBlank(p.getSeries())) {
p.setSeries(EncryptionUtil.decoderString(1, p.getSeries())); p.setSeries(EncryptionUtil.decoderString(1, p.getSeries()));
} }
if (ObjectUtil.isNotNull(p.getDevKey())) { if (StrUtil.isNotBlank(p.getDevKey())) {
p.setDevKey(EncryptionUtil.decoderString(1, p.getDevKey())); p.setDevKey(EncryptionUtil.decoderString(1, p.getDevKey()));
} }
}); });
@@ -688,6 +688,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
} else { } else {
throw new BusinessException(DetectionResponseEnum.SERIES_AND_DEVKEY_NOT_BLANK); throw new BusinessException(DetectionResponseEnum.SERIES_AND_DEVKEY_NOT_BLANK);
} }
} else {
pqDev.setSeries(null);
pqDev.setDevKey(null);
} }
String name = pqDev.getName(); String name = pqDev.getName();
@@ -730,7 +733,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
this.checkRepeat(param, false); this.checkRepeat(param, false);
pqDev.setManufacturer("8fa73802c9e1abab973adcbeb0d58567"); // 南京灿能字典项目对应的id pqDev.setManufacturer("8fa73802c9e1abab973adcbeb0d58567"); // 南京灿能字典项目对应的id
long count = newDevList.stream().filter(dev -> dev.getName().equals(pqDev.getName())).count(); long count = newDevList.stream().filter(dev -> dev.getName().equals(pqDev.getName()) && dev.getCreateId().equals(pqDev.getCreateId())).count();
if (count == 0) { if (count == 0) {
newDevList.add(pqDev); newDevList.add(pqDev);
} }
@@ -837,12 +840,17 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
pullDown.setStrings(Arrays.asList("", "")); pullDown.setStrings(Arrays.asList("", ""));
pullDowns.add(pullDown); pullDowns.add(pullDown);
// 是否支持系数校准 // 委托方
// pullDown = new PullDown(); dictType = dictTypeService.getByCode("Delegate");
// pullDown.setFirstCol(startCol + 11); if (ObjectUtil.isNotNull(dictType)) {
// pullDown.setLastCol(startCol + 11); dictDataList = dictDataService.getDictDataByTypeId(dictType.getId());
// pullDown.setStrings(Arrays.asList("是", "否"));
// pullDowns.add(pullDown); pullDown = new PullDown();
pullDown.setFirstCol(startCol + 15);
pullDown.setLastCol(startCol + 15);
pullDown.setStrings(dictDataList.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
}
return pullDowns; return pullDowns;
} }
@@ -925,11 +933,26 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
*/ */
public void reverseVisualizeCNDev(List<PqDev> pqDevs, String patternId) { public void reverseVisualizeCNDev(List<PqDev> pqDevs, String patternId) {
pqDevs.forEach(pqDev -> { pqDevs.forEach(pqDev -> {
pqDev.setPreinvestmentPlan(dictDataService.getDictDataByName(pqDev.getPreinvestmentPlan()).getId()); DictData preinvestmentPlanDictData = dictDataService.getDictDataByName(pqDev.getPreinvestmentPlan());
if (ObjectUtil.isNull(preinvestmentPlanDictData)) {
throw new BusinessException(DetectionResponseEnum.PREINVESTMENT_PLAN_NOT_EXIST);
} else {
pqDev.setPreinvestmentPlan(preinvestmentPlanDictData.getId());
}
DevType devType = devTypeService.getByName(pqDev.getDevType()); DevType devType = devTypeService.getByName(pqDev.getDevType());
if (ObjectUtil.isNull(devType)) {
throw new BusinessException(DetectionResponseEnum.DEV_TYPE_NOT_EXIST);
} else {
pqDev.setDevType(devType.getId()); pqDev.setDevType(devType.getId());
}
pqDev.setPattern(patternId); pqDev.setPattern(patternId);
pqDev.setProtocol(dictDataService.getDictDataByName(pqDev.getProtocol()).getId()); DictData protocolDictData = dictDataService.getDictDataByName(pqDev.getProtocol());
if (ObjectUtil.isNull(protocolDictData)) {
throw new BusinessException(DetectionResponseEnum.PROTOCOL_NOT_EXIST);
} else {
pqDev.setProtocol(protocolDictData.getId());
}
pqDev.setCreateDate(LocalDateTime.now().toLocalDate()); pqDev.setCreateDate(LocalDateTime.now().toLocalDate());
pqDev.setCreateId(pqDev.getName()); pqDev.setCreateId(pqDev.getName());
pqDev.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue()); pqDev.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue());
@@ -1010,6 +1033,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
} else { } else {
throw new BusinessException(DetectionResponseEnum.SERIES_AND_DEVKEY_NOT_BLANK); throw new BusinessException(DetectionResponseEnum.SERIES_AND_DEVKEY_NOT_BLANK);
} }
} else {
pqDev.setSeries(null);
pqDev.setDevKey(null);
} }
String name = pqDev.getName(); String name = pqDev.getName();
@@ -1051,7 +1077,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
param.setDevType(pqDev.getDevType()); param.setDevType(pqDev.getDevType());
this.checkRepeat(param, false); this.checkRepeat(param, false);
long count = newDevList.stream().filter(dev -> dev.getName().equals(pqDev.getName())).count(); long count = newDevList.stream().filter(dev -> dev.getName().equals(pqDev.getName()) && dev.getCreateId().equals(pqDev.getCreateId())).count();
if (count == 0) { if (count == 0) {
newDevList.add(pqDev); newDevList.add(pqDev);
} }
@@ -1068,6 +1094,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
pqDev.setDevType(devTypeService.getById(pqDev.getDevType()).getName()); pqDev.setDevType(devTypeService.getById(pqDev.getDevType()).getName());
pqDev.setManufacturer(dictDataService.getDictDataById(pqDev.getManufacturer()).getName()); pqDev.setManufacturer(dictDataService.getDictDataById(pqDev.getManufacturer()).getName());
pqDev.setProtocol(dictDataService.getDictDataById(pqDev.getProtocol()).getName()); pqDev.setProtocol(dictDataService.getDictDataById(pqDev.getProtocol()).getName());
if (StrUtil.isNotBlank(pqDev.getDelegate())) {
pqDev.setDelegate(dictDataService.getDictDataById(pqDev.getDelegate()).getName());
}
}); });
} }
@@ -1075,10 +1104,32 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
public void reverseVisualizeProvinceDev(List<PqDev> pqDevs, String patternId) { public void reverseVisualizeProvinceDev(List<PqDev> pqDevs, String patternId) {
pqDevs.forEach(pqDev -> { pqDevs.forEach(pqDev -> {
DevType devType = devTypeService.getByName(pqDev.getDevType()); DevType devType = devTypeService.getByName(pqDev.getDevType());
if (ObjectUtil.isNull(devType)) {
throw new BusinessException(DetectionResponseEnum.DEV_TYPE_NOT_EXIST);
} else {
pqDev.setDevType(devType.getId()); pqDev.setDevType(devType.getId());
}
pqDev.setPattern(patternId); pqDev.setPattern(patternId);
pqDev.setManufacturer(dictDataService.getDictDataByName(pqDev.getManufacturer()).getId()); DictData manufacturerDictData = dictDataService.getDictDataByName(pqDev.getManufacturer());
pqDev.setProtocol(dictDataService.getDictDataByName(pqDev.getProtocol()).getId()); if (ObjectUtil.isNull(manufacturerDictData)) {
throw new BusinessException(DetectionResponseEnum.MANUFACTURER_NOT_EXIST);
} else {
pqDev.setManufacturer(manufacturerDictData.getId());
}
DictData protocolDictData = dictDataService.getDictDataByName(pqDev.getProtocol());
if (ObjectUtil.isNull(protocolDictData)) {
throw new BusinessException(DetectionResponseEnum.PROTOCOL_NOT_EXIST);
} else {
pqDev.setProtocol(protocolDictData.getId());
}
if (StrUtil.isNotBlank(pqDev.getDelegate())) {
DictData delegateDictData = dictDataService.getDictDataByName(pqDev.getDelegate());
if (ObjectUtil.isNull(delegateDictData)) {
throw new BusinessException(DetectionResponseEnum.DELEGATE_NOT_EXIST);
} else {
pqDev.setDelegate(delegateDictData.getId());
}
}
pqDev.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue()); pqDev.setTimeCheckResult(TimeCheckResultEnum.UNKNOWN.getValue());
pqDev.setFactorCheckResult(FactorCheckResultEnum.UNKNOWN.getValue()); pqDev.setFactorCheckResult(FactorCheckResultEnum.UNKNOWN.getValue());
pqDev.setCheckState(CheckStateEnum.UNCHECKED.getValue()); pqDev.setCheckState(CheckStateEnum.UNCHECKED.getValue());

View File

@@ -5,6 +5,8 @@ import com.njcn.gather.plan.pojo.po.AdPlan;
import com.njcn.gather.report.pojo.po.PqReport; import com.njcn.gather.report.pojo.po.PqReport;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author caozehui * @author caozehui
* @date 2024-12-09 * @date 2024-12-09
@@ -27,5 +29,13 @@ public interface AdPlanMapper extends MPJBaseMapper<AdPlan> {
* @return * @return
*/ */
PqReport getPqReportById(String id); PqReport getPqReportById(String id);
/**
* 获取所有报告模板名称
*
* @return
*/
List<String> listAllReportTemplateName();
} }

View File

@@ -17,5 +17,10 @@
WHERE id = #{id} WHERE id = #{id}
and state = 1 and state = 1
</select> </select>
<select id="listAllReportTemplateName" resultType="java.lang.String">
SELECT concat(name, '_', version) as name
FROM pq_report
WHERE state = 1
</select>
</mapper> </mapper>

View File

@@ -60,6 +60,7 @@ public class AdPlanParam {
private List<String> devIds; private List<String> devIds;
@ApiModelProperty(value = "是否关联报告") @ApiModelProperty(value = "是否关联报告")
@NotNull(message = DetectionValidMessage.ASSOCIATE_REPORT_NOT_NULL)
private Integer associateReport; private Integer associateReport;
@ApiModelProperty(value = "报告模板名称") @ApiModelProperty(value = "报告模板名称")

View File

@@ -33,19 +33,30 @@ public class AdPlanExcel {
@NotBlank(message = DetectionValidMessage.ERRORSYS_NOT_BLANK) @NotBlank(message = DetectionValidMessage.ERRORSYS_NOT_BLANK)
private String errorSysId; private String errorSysId;
@Excel(name = "是否做守时检测*", width = 15, replace = {"否_0", "是_1"}, needMerge = true, orderNum = "5") @Excel(name = "数据处理原则*", width = 20, needMerge = true, orderNum = "5")
@NotBlank(message = DetectionValidMessage.DATA_RULE_NOT_BLANK)
private String dataRule;
@Excel(name = "是否做守时检测*", width = 20, replace = {"否_0", "是_1"}, needMerge = true, orderNum = "6")
@NotNull(message = DetectionValidMessage.TIMECHECK_NOT_NULL) @NotNull(message = DetectionValidMessage.TIMECHECK_NOT_NULL)
private Integer timeCheck; private Integer timeCheck;
@Excel(name = "检测状态*", width = 10, replace = {"未检_0", "检测中_1", "检测完成_2"}, needMerge = true, orderNum = "6") @Excel(name = "关联报告模版*", width = 20, replace = {"_0", "_1"}, needMerge = true, orderNum = "7")
@NotNull(message = DetectionValidMessage.ASSOCIATE_REPORT_NOT_NULL)
private Integer associateReport;
@Excel(name = "报告模版(当关联报告模版为是时必填)", width = 40, needMerge = true, orderNum = "8")
private String reportTemplateId;
@Excel(name = "检测状态*", width = 10, replace = {"未检_0", "检测中_1", "检测完成_2"}, needMerge = true, orderNum = "9")
@NotNull(message = DetectionValidMessage.TEST_STATE_NOT_NULL) @NotNull(message = DetectionValidMessage.TEST_STATE_NOT_NULL)
private Integer testState; private Integer testState;
@Excel(name = "报告生成状态*", width = 15, replace = {"未生成_0", "部分生成_1", "全部生成_2"}, needMerge = true, orderNum = "7") @Excel(name = "报告生成状态*", width = 15, replace = {"未生成_0", "部分生成_1", "全部生成_2"}, needMerge = true, orderNum = "10")
@NotNull(message = DetectionValidMessage.REPORT_STATE_NOT_NULL) @NotNull(message = DetectionValidMessage.REPORT_STATE_NOT_NULL)
private Integer reportState; private Integer reportState;
@Excel(name = "检测结果*", width = 10, replace = {"不符合_0", "符合_1", "未检_2"}, needMerge = true, orderNum = "8") @Excel(name = "检测结果*", width = 10, replace = {"不符合_0", "符合_1", "未检_2"}, needMerge = true, orderNum = "11")
@NotNull(message = DetectionValidMessage.CHECK_RESULT_STATE_NOT_NULL) @NotNull(message = DetectionValidMessage.CHECK_RESULT_STATE_NOT_NULL)
private Integer result; private Integer result;
} }

View File

@@ -14,6 +14,6 @@ import java.util.List;
public class CNPlanExcel extends AdPlanExcel { public class CNPlanExcel extends AdPlanExcel {
@ExcelCollection(name = "绑定的设备", orderNum = "9") @ExcelCollection(name = "绑定的设备", orderNum = "12")
private List<CNDevExcel> devices; private List<CNDevExcel> devices;
} }

View File

@@ -1,5 +1,6 @@
package com.njcn.gather.plan.pojo.vo; package com.njcn.gather.plan.pojo.vo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection; import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import com.njcn.gather.device.pojo.vo.ProvinceDevExcel; import com.njcn.gather.device.pojo.vo.ProvinceDevExcel;
import lombok.Data; import lombok.Data;
@@ -13,6 +14,6 @@ import java.util.List;
@Data @Data
public class ProvincePlanExcel extends AdPlanExcel { public class ProvincePlanExcel extends AdPlanExcel {
@ExcelCollection(name = "绑定的设备", orderNum = "9") @ExcelCollection(name = "绑定的设备", orderNum = "12")
private List<ProvinceDevExcel> devices; private List<ProvinceDevExcel> devices;
} }

View File

@@ -38,8 +38,8 @@ import com.njcn.gather.plan.service.IAdPlanService;
import com.njcn.gather.plan.service.IAdPlanSourceService; import com.njcn.gather.plan.service.IAdPlanSourceService;
import com.njcn.gather.pojo.enums.DetectionResponseEnum; import com.njcn.gather.pojo.enums.DetectionResponseEnum;
import com.njcn.gather.report.pojo.po.PqReport; import com.njcn.gather.report.pojo.po.PqReport;
import com.njcn.gather.script.pojo.po.PqScript;
import com.njcn.gather.script.pojo.po.PqScriptDtls; import com.njcn.gather.script.pojo.po.PqScriptDtls;
import com.njcn.gather.script.service.IPqScriptCheckDataService;
import com.njcn.gather.script.service.IPqScriptDtlsService; import com.njcn.gather.script.service.IPqScriptDtlsService;
import com.njcn.gather.script.service.IPqScriptService; import com.njcn.gather.script.service.IPqScriptService;
import com.njcn.gather.source.pojo.po.PqSource; import com.njcn.gather.source.pojo.po.PqSource;
@@ -104,7 +104,6 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private final IDevTypeService devTypeService; private final IDevTypeService devTypeService;
private final IDictTypeService dictTypeService; private final IDictTypeService dictTypeService;
private final AdHarmonicService adHarmonicService; private final AdHarmonicService adHarmonicService;
private final IPqScriptCheckDataService pqScriptCheckDataService;
@Override @Override
public Page<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) { public Page<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) {
@@ -308,6 +307,14 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
if (StrUtil.isNotBlank(adPlan.getErrorSysId())) { if (StrUtil.isNotBlank(adPlan.getErrorSysId())) {
adPlan.setErrorSysId(pqErrSysService.getPqErrSysById(adPlan.getErrorSysId()).getName()); adPlan.setErrorSysId(pqErrSysService.getPqErrSysById(adPlan.getErrorSysId()).getName());
} }
if (StrUtil.isNotBlank(adPlan.getDataRule())) {
String dataRule = adPlan.getDataRule();
adPlan.setDataRule(dictDataService.getDictDataById(dataRule).getName());
}
if (StrUtil.isNotBlank(adPlan.getReportTemplateId())) {
PqReport report = this.baseMapper.getPqReportById(adPlan.getReportTemplateId());
adPlan.setReportTemplateId(report.getName() + "_" + report.getVersion());
}
}); });
} }
@@ -632,6 +639,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
if (!PatternEnum.CONTRAST.getValue().equals(patternCode) && datasourceIds.length > 1) { if (!PatternEnum.CONTRAST.getValue().equals(patternCode) && datasourceIds.length > 1) {
throw new BusinessException(DetectionResponseEnum.IMPORT_DATASOURCE_ERROR); throw new BusinessException(DetectionResponseEnum.IMPORT_DATASOURCE_ERROR);
} }
planExcel.setAssociateReport(0);
planExcel.setReportTemplateId(null);
List<String> sourceIds = pqSourceService.listPqSourceIdByName(sourceNames); List<String> sourceIds = pqSourceService.listPqSourceIdByName(sourceNames);
adPlanSourceService.addAdPlanSource(planId, sourceIds); adPlanSourceService.addAdPlanSource(planId, sourceIds);
@@ -712,6 +721,9 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
if (!PatternEnum.CONTRAST.getValue().equals(patternCode) && datasourceIds.length > 1) { if (!PatternEnum.CONTRAST.getValue().equals(patternCode) && datasourceIds.length > 1) {
throw new BusinessException(DetectionResponseEnum.IMPORT_DATASOURCE_ERROR); throw new BusinessException(DetectionResponseEnum.IMPORT_DATASOURCE_ERROR);
} }
if ((planExcel.getAssociateReport().equals(1) && "".equals(planExcel.getReportTemplateId()))) {
throw new BusinessException(DetectionResponseEnum.IMPORT_REPORT_TEMPLATE_ERROR);
}
List<String> sourceIds = pqSourceService.listPqSourceIdByName(sourceNames); List<String> sourceIds = pqSourceService.listPqSourceIdByName(sourceNames);
adPlanSourceService.addAdPlanSource(planId, sourceIds); adPlanSourceService.addAdPlanSource(planId, sourceIds);
@@ -826,13 +838,46 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private void reverseVisualize(List<AdPlan> planList) { private void reverseVisualize(List<AdPlan> planList) {
planList.forEach(adPlan -> { planList.forEach(adPlan -> {
String[] datasourceIds = adPlan.getDatasourceId().split(StrUtil.COMMA); String[] datasourceIds = adPlan.getDatasourceId().split(StrUtil.COMMA);
adPlan.setDatasourceId(Arrays.stream(datasourceIds).map(id -> DataSourceEnum.getValueByMsg(id)).collect(Collectors.joining(StrUtil.COMMA))); adPlan.setDatasourceId(Arrays.stream(datasourceIds).map(id -> {
String value = DataSourceEnum.getValueByMsg(id);
if (StrUtil.isBlank(value)) {
throw new BusinessException(DetectionResponseEnum.DATA_SOURCE_NOT_EXIST);
} else {
return value;
}
}).collect(Collectors.joining(StrUtil.COMMA)));
adPlan.setScriptId(pqScriptService.getPqScriptByName(adPlan.getScriptId()).getId()); PqScript pqScript = pqScriptService.getPqScriptByName(adPlan.getScriptId());
if (ObjectUtil.isNull(pqScript)) {
throw new BusinessException(DetectionResponseEnum.SCRIPT_NOT_EXIST);
} else {
adPlan.setScriptId(pqScript.getId());
}
adPlan.setErrorSysId(pqErrSysService.getPqErrSysByName(adPlan.getErrorSysId()).getId()); PqErrSys pqErrSys = pqErrSysService.getPqErrSysByName(adPlan.getErrorSysId());
if (ObjectUtil.isNull(pqErrSys)) {
throw new BusinessException(DetectionResponseEnum.ERROR_SYSTEM_NOT_EXIST);
} else {
adPlan.setErrorSysId(pqErrSys.getId());
}
DictData dataRuleDictData = dictDataService.getDictDataByName(adPlan.getDataRule());
if (ObjectUtil.isNull(dataRuleDictData)) {
throw new BusinessException(DetectionResponseEnum.DATA_RULE_NOT_EXIST);
} else {
adPlan.setDataRule(dataRuleDictData.getId());
}
if (StrUtil.isNotBlank(adPlan.getReportTemplateId())) {
String[] split = adPlan.getReportTemplateId().split("_");
String reportId = this.baseMapper.getReportIdByNameAndVersion(split[0], split[1]);
if (ObjectUtil.isNull(reportId)) {
throw new BusinessException(DetectionResponseEnum.REPORT_TEMPLATE_NOT_EXIST);
} else {
adPlan.setReportTemplateId(reportId);
}
}
adPlan.setCode(this.generateCode()); adPlan.setCode(this.generateCode());
adPlan.setState(DataStateEnum.ENABLE.getCode()); adPlan.setState(DataStateEnum.ENABLE.getCode());
// 默认为顶级检测计划 // 默认为顶级检测计划
adPlan.setFatherPlanId(CommonEnum.FATHER_ID.getValue()); adPlan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
@@ -1070,41 +1115,68 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
pullDown.setStrings(errSysNameList); pullDown.setStrings(errSysNameList);
pullDowns.add(pullDown); pullDowns.add(pullDown);
// 是否做守时检测 // 数据处理原则
dictType = dictTypeService.getByCode("Data_Rule");
if (ObjectUtil.isNotNull(dictType)) {
List<DictData> dictDataList = dictDataService.getDictDataByTypeId(dictType.getId());
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(5); pullDown.setFirstCol(5);
pullDown.setLastCol(5); pullDown.setLastCol(5);
pullDown.setStrings(dictDataList.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
}
// 是否做守时检测
pullDown = new PullDown();
pullDown.setFirstCol(6);
pullDown.setLastCol(6);
pullDown.setStrings(Arrays.asList("", "")); pullDown.setStrings(Arrays.asList("", ""));
pullDowns.add(pullDown); pullDowns.add(pullDown);
// 是否关联报告模板
pullDown = new PullDown();
pullDown.setFirstCol(7);
pullDown.setLastCol(7);
pullDown.setStrings(Arrays.asList("", ""));
pullDowns.add(pullDown);
// 报告模板
List<String> strings = this.baseMapper.listAllReportTemplateName();
pullDown = new PullDown();
pullDown.setFirstCol(8);
pullDown.setLastCol(8);
pullDown.setStrings(strings);
pullDowns.add(pullDown);
// 检测状态 // 检测状态
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(6); pullDown.setFirstCol(9);
pullDown.setLastCol(6); pullDown.setLastCol(9);
pullDown.setStrings(Arrays.asList(CheckStateEnum.UNCHECKED.getMsg(), CheckStateEnum.CHECKING.getMsg(), CheckStateEnum.CHECKED.getMsg())); pullDown.setStrings(Arrays.asList(CheckStateEnum.UNCHECKED.getMsg(), CheckStateEnum.CHECKING.getMsg(), CheckStateEnum.CHECKED.getMsg()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
// 报告生成状态 // 报告生成状态
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(7); pullDown.setFirstCol(10);
pullDown.setLastCol(7); pullDown.setLastCol(10);
pullDown.setStrings(Arrays.asList(PlanReportStateEnum.REPORT_STATE_NOT_GENERATED.getMsg(), PlanReportStateEnum.REPORT_STATE_PARTIALLY_GENERATED.getMsg(), PlanReportStateEnum.REPORT_STATE_ALL_GENERATED.getMsg())); pullDown.setStrings(Arrays.asList(PlanReportStateEnum.REPORT_STATE_NOT_GENERATED.getMsg(), PlanReportStateEnum.REPORT_STATE_PARTIALLY_GENERATED.getMsg(), PlanReportStateEnum.REPORT_STATE_ALL_GENERATED.getMsg()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
//检测结果 //检测结果
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(8); pullDown.setFirstCol(11);
pullDown.setLastCol(8); pullDown.setLastCol(11);
pullDown.setStrings(Arrays.asList(CheckResultEnum.UNCHECKED.getMsg(), CheckResultEnum.ACCORD.getMsg(), CheckResultEnum.UNCHECKED.getMsg())); pullDown.setStrings(Arrays.asList(CheckResultEnum.UNCHECKED.getMsg(), CheckResultEnum.ACCORD.getMsg(), CheckResultEnum.UNCHECKED.getMsg()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
switch (scene) { switch (scene) {
case PROVINCE_PLATFORM: case PROVINCE_PLATFORM:
List<PullDown> provinceDevPullDownList = pqDevService.getProvinceDevPullDownList(9); List<PullDown> provinceDevPullDownList = pqDevService.getProvinceDevPullDownList(12);
pullDowns.addAll(provinceDevPullDownList); pullDowns.addAll(provinceDevPullDownList);
break; break;
case LEAVE_FACTORY_TEST: case LEAVE_FACTORY_TEST:
List<PullDown> cnDevPullDownList = pqDevService.getCNDevPullDownList(9); List<PullDown> cnDevPullDownList = pqDevService.getCNDevPullDownList(12);
pullDowns.addAll(cnDevPullDownList); pullDowns.addAll(cnDevPullDownList);
break; break;
case SELF_TEST: case SELF_TEST:

View File

@@ -180,4 +180,5 @@ public interface DetectionValidMessage {
String DEV_TYPE_NAME_FORMAT_ERROR = "设备类型名称格式错误只能包含字母、数字、中文、下划线、中划线、点号、空格长度为1-32个字符"; String DEV_TYPE_NAME_FORMAT_ERROR = "设备类型名称格式错误只能包含字母、数字、中文、下划线、中划线、点号、空格长度为1-32个字符";
String REPORT_NAME_NOT_BLANK = "报告模板不能为空"; String REPORT_NAME_NOT_BLANK = "报告模板不能为空";
String DATA_RULE_NOT_BLANK = "数据处理原则不能为空"; String DATA_RULE_NOT_BLANK = "数据处理原则不能为空";
String ASSOCIATE_REPORT_NOT_NULL = "是否关联报告模板不能为空";
} }

View File

@@ -26,7 +26,7 @@ public enum DetectionResponseEnum {
ICD_PATH_NAME_REPEAT("A02012", "icd名称重复"), ICD_PATH_NAME_REPEAT("A02012", "icd名称重复"),
ERR_SYS_BOUND_NOT_DELETE("A02013", "误差体系已被计划所绑定,无法删除!"), ERR_SYS_BOUND_NOT_DELETE("A02013", "误差体系已被计划所绑定,无法删除!"),
ERR_SYS_REPEAT("A02014", "已存在相同标准号、标准推行年份、适用设备等级的误差体系!"), ERR_SYS_REPEAT("A02014", "已存在相同标准号、标准推行年份、适用设备等级的误差体系!"),
SCRIPT_NAME_REPEAT("A02015","脚本名称重复"), SCRIPT_NAME_REPEAT("A02015", "脚本名称重复"),
IMPORT_DATA_FAIL("A02040", "导入数据失败"), IMPORT_DATA_FAIL("A02040", "导入数据失败"),
@@ -48,8 +48,19 @@ public enum DetectionResponseEnum {
DEVICE_DELETE("A02056", "设备无法删除,已绑定计划!"), DEVICE_DELETE("A02056", "设备无法删除,已绑定计划!"),
CREATE_DIRECTORY_FAILED("A02057", "创建目录失败"), CREATE_DIRECTORY_FAILED("A02057", "创建目录失败"),
DELETE_DIRECTORY_FAILED("A02058", "删除目录失败"), DELETE_DIRECTORY_FAILED("A02058", "删除目录失败"),
CN_DEV_NAME_FORMAT_ERROR("A02059","设备名称格式错误只能包含数字长度为1-32位"), CN_DEV_NAME_FORMAT_ERROR("A02059", "设备名称格式错误只能包含数字长度为1-32位"),
PROVINCE_DEV_NAME_FORMAT_ERROR("A02060","设备名称格式错误只能包含字母、数字、下划线、中划线、空格长度为1-32位" ); PROVINCE_DEV_NAME_FORMAT_ERROR("A02060", "设备名称格式错误只能包含字母、数字、下划线、中划线、空格长度为1-32位"),
IMPORT_REPORT_TEMPLATE_ERROR("A02061", "当关联报告模板为是时,报告模板不能为空"),
DEV_TYPE_NOT_EXIST("A02062", "设备类型不存在,请先添加设备类型"),
MANUFACTURER_NOT_EXIST("A02063", "该设备厂家不存在,请先在\"设备厂家\"字典中添加"),
PROTOCOL_NOT_EXIST("A02064", "该协议不存在,请先在\"通讯协议\"字典中添加"),
DELEGATE_NOT_EXIST("A02065", "该委托方不存在,请先在\"委托方\"字典中添加"),
PREINVESTMENT_PLAN_NOT_EXIST("A02066", "该预投计划不存在,请先在\"预投计划\"字典中添加"),
DATA_SOURCE_NOT_EXIST("A02067", "该数据源不存在,请先在\"数据源\"字典中添加"),
SCRIPT_NOT_EXIST("A02068", "该脚本不存在,请先添加该脚本"),
ERROR_SYSTEM_NOT_EXIST("A02069", "该误差体系不存在,请先添加该误差体系"),
DATA_RULE_NOT_EXIST("A02070", "该数据处理原则不存在,请先在\"数据处理原则\"字典中添加"),
REPORT_TEMPLATE_NOT_EXIST("A02071", "该报告模板不存在,请先添加该报告模板");
private final String code; private final String code;