ADD:导入子计划元信息;

This commit is contained in:
贾同学
2025-08-20 11:27:42 +08:00
parent cd7ae5d06c
commit ddf6da0855
2 changed files with 39 additions and 9 deletions

View File

@@ -4,6 +4,7 @@ import com.njcn.gather.device.pojo.po.PqDev;
import com.njcn.gather.device.pojo.po.PqStandardDev; import com.njcn.gather.device.pojo.po.PqStandardDev;
import com.njcn.gather.err.pojo.po.PqErrSys; import com.njcn.gather.err.pojo.po.PqErrSys;
import com.njcn.gather.err.pojo.po.PqErrSysDtls; import com.njcn.gather.err.pojo.po.PqErrSysDtls;
import com.njcn.gather.icd.pojo.po.PqIcdPath;
import com.njcn.gather.plan.pojo.po.AdPlan; 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 com.njcn.gather.system.cfg.pojo.po.SysTestConfig; import com.njcn.gather.system.cfg.pojo.po.SysTestConfig;
@@ -26,6 +27,7 @@ public class AdSubPlanMetaDataVO {
private List<PqDev> devList; private List<PqDev> devList;
private List<PqStandardDev> standardDevList; private List<PqStandardDev> standardDevList;
private List<DevType> devTypeList; private List<DevType> devTypeList;
private List<PqIcdPath> icdPathList;
private List<PqErrSys> errSysList; private List<PqErrSys> errSysList;
private List<PqErrSysDtls> errSysDtlsList; private List<PqErrSysDtls> errSysDtlsList;
private PqReport reportTemplate; private PqReport reportTemplate;

View File

@@ -38,6 +38,8 @@ import com.njcn.gather.err.pojo.po.PqErrSys;
import com.njcn.gather.err.pojo.po.PqErrSysDtls; import com.njcn.gather.err.pojo.po.PqErrSysDtls;
import com.njcn.gather.err.service.IPqErrSysDtlsService; import com.njcn.gather.err.service.IPqErrSysDtlsService;
import com.njcn.gather.err.service.IPqErrSysService; import com.njcn.gather.err.service.IPqErrSysService;
import com.njcn.gather.icd.pojo.po.PqIcdPath;
import com.njcn.gather.icd.service.IPqIcdPathService;
import com.njcn.gather.monitor.pojo.po.PqMonitor; import com.njcn.gather.monitor.pojo.po.PqMonitor;
import com.njcn.gather.monitor.service.IPqMonitorService; import com.njcn.gather.monitor.service.IPqMonitorService;
import com.njcn.gather.plan.mapper.AdPlanMapper; import com.njcn.gather.plan.mapper.AdPlanMapper;
@@ -128,6 +130,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
private final IPqMonitorService pqMonitorService; private final IPqMonitorService pqMonitorService;
private final IPqErrSysDtlsService pqErrSysDtlsService; private final IPqErrSysDtlsService pqErrSysDtlsService;
private final IPqStandardDevService pqStandardDevService; private final IPqStandardDevService pqStandardDevService;
private final IPqIcdPathService pqIcdPathService;
@Override @Override
public List<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) { public List<AdPlanVO> listAdPlan(AdPlanParam.QueryParam queryParam) {
@@ -286,7 +289,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
AdPlan plan1 = this.getById(param.getId()); AdPlan plan1 = this.getById(param.getId());
// 更新子计划 // 更新子计划
String fatherPlanId = plan1.getFatherPlanId(); String fatherPlanId = plan1.getFatherPlanId();
if (StrUtil.isNotEmpty(fatherPlanId) && !StrUtil.equals(fatherPlanId,"0")) { if (StrUtil.isNotEmpty(fatherPlanId) && !StrUtil.equals(fatherPlanId, "0")) {
this.updateBindStandardDev(param.getId(), param.getStandardDevIds()); this.updateBindStandardDev(param.getId(), param.getStandardDevIds());
List<AdPlan> list = new ArrayList<>(); List<AdPlan> list = new ArrayList<>();
@@ -1551,6 +1554,8 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 获取检设备类型数据 // 获取检设备类型数据
List<DevType> devTypeList = devTypeService.list(); List<DevType> devTypeList = devTypeService.list();
subPlanMetaData.setDevTypeList(devTypeList); subPlanMetaData.setDevTypeList(devTypeList);
List<PqIcdPath> pqIcdPathList = pqIcdPathService.list();
subPlanMetaData.setIcdPathList(pqIcdPathList);
// 获取检测计划绑定的被检设备数据 // 获取检测计划绑定的被检设备数据
List<PqDev> devList = pqDevService.list(new QueryWrapper<PqDev>().eq("Plan_Id", planId)); List<PqDev> devList = pqDevService.list(new QueryWrapper<PqDev>().eq("Plan_Id", planId));
@@ -1637,6 +1642,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
throw new BusinessException(CommonResponseEnum.FAIL); throw new BusinessException(CommonResponseEnum.FAIL);
} }
} }
@Transactional @Transactional
@Override @Override
public boolean importSubPlanDataZip(MultipartFile file, String patternId, HttpServletResponse response) { public boolean importSubPlanDataZip(MultipartFile file, String patternId, HttpServletResponse response) {
@@ -1675,17 +1681,19 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
FileUtil.del(tempDir); FileUtil.del(tempDir);
throw new BusinessException(CommonResponseEnum.FAIL, "ZIP文件中未找到检测计划信息"); throw new BusinessException(CommonResponseEnum.FAIL, "ZIP文件中未找到检测计划信息");
} }
// 检查导入的子计划是否属于当前模式
if (!StrUtil.equals(plan.getPattern(), patternId)) { if (!StrUtil.equals(plan.getPattern(), patternId)) {
FileUtil.del(tempDir); FileUtil.del(tempDir);
throw new BusinessException(CommonResponseEnum.FAIL, "该检修计划当前模式不支持导入"); throw new BusinessException(CommonResponseEnum.FAIL, "该检修计划当前模式不支持导入");
} }
// 更新检测计划信息 // 更新检测计划信息
plan.setFatherPlanId(CommonEnum.FATHER_ID.getValue()); plan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
saveOrUpdate(plan); saveOrUpdate(plan);
List<PqDev> devList = subPlanMetaDataVO.getDevList(); List<PqDev> devList = subPlanMetaDataVO.getDevList();
List<PqStandardDev> standardDevList = subPlanMetaDataVO.getStandardDevList(); List<PqStandardDev> standardDevList = subPlanMetaDataVO.getStandardDevList();
if(CollUtil.isEmpty(devList) || CollUtil.isEmpty(standardDevList)) { if (CollUtil.isEmpty(devList) || CollUtil.isEmpty(standardDevList)) {
FileUtil.del(tempDir); FileUtil.del(tempDir);
throw new BusinessException(CommonResponseEnum.FAIL, "该检修计划未找到被检设备或标准设备信息"); throw new BusinessException(CommonResponseEnum.FAIL, "该检修计划未找到被检设备或标准设备信息");
} }
@@ -1702,7 +1710,12 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue()); pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue());
pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue()); pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue());
pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue()); pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue());
Integer count = pqDevSubService.lambdaQuery().eq(PqDevSub::getDevId, dev.getId()).count();
if (count.intValue() == 0) {
pqDevSubService.save(pqDevSub); pqDevSubService.save(pqDevSub);
} else {
pqDevSubService.update(pqDevSub, new LambdaUpdateWrapper<PqDevSub>().eq(PqDevSub::getDevId, dev.getId()));
}
}); });
List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList()); List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList());
// 守时检测 // 守时检测
@@ -1720,7 +1733,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
if (CollUtil.isNotEmpty(typeList)) { if (CollUtil.isNotEmpty(typeList)) {
dictTypeService.saveOrUpdateBatch(typeList); dictTypeService.saveOrUpdateBatch(typeList);
List<DictData> dataList = dict.getDataList(); List<DictData> dataList = dict.getDataList();
if(CollUtil.isNotEmpty(dataList)) { if (CollUtil.isNotEmpty(dataList)) {
dictDataService.saveOrUpdateBatch(dataList); dictDataService.saveOrUpdateBatch(dataList);
} }
} }
@@ -1748,6 +1761,11 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
List<DevType> devTypeList = subPlanMetaDataVO.getDevTypeList(); List<DevType> devTypeList = subPlanMetaDataVO.getDevTypeList();
if (CollUtil.isNotEmpty(devTypeList)) { if (CollUtil.isNotEmpty(devTypeList)) {
devTypeService.saveOrUpdateBatch(devTypeList); devTypeService.saveOrUpdateBatch(devTypeList);
// 批量更新ICD路径数据
List<PqIcdPath> icdPathList = subPlanMetaDataVO.getIcdPathList();
if (CollUtil.isNotEmpty(icdPathList)) {
pqIcdPathService.saveOrUpdateBatch(icdPathList);
}
} }
tableGenService.deleteTable(Collections.singletonList(plan.getCode().toString())); tableGenService.deleteTable(Collections.singletonList(plan.getCode().toString()));
tableGenService.genTable(plan.getCode().toString(), true); tableGenService.genTable(plan.getCode().toString(), true);
@@ -1755,16 +1773,26 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 更新报告模版 // 更新报告模版
PqReport reportTemplate = subPlanMetaDataVO.getReportTemplate(); PqReport reportTemplate = subPlanMetaDataVO.getReportTemplate();
SpringUtil.getBean(IPqReportService.class).saveOrUpdate(reportTemplate); SpringUtil.getBean(IPqReportService.class).saveOrUpdate(reportTemplate);
// 模版文件复制到指定位置
for (File f : files) {
if (f.isFile() && f.getName().endsWith(".docx")) {
String basePath = reportTemplate.getBasePath();
// 将文件复制到basePath所在的目录下
File baseFile = new File(basePath);
File baseDir = baseFile.getParentFile();
if (!baseDir.exists()) {
baseDir.mkdirs();
}
FileUtil.copy(f, baseDir, true);
}
}
// 删除临时目录 // 删除临时目录
FileUtil.del(tempDir); FileUtil.del(tempDir);
return true; return true;
} catch (IOException e) {
log.error("导入子计划数据失败: ", e);
throw new BusinessException(CommonResponseEnum.FAIL);
} catch (Exception e) { } catch (Exception e) {
log.error("处理JSON数据失败: ", e); log.error("导入子计划元信息zip失败: ", e);
throw new BusinessException(CommonResponseEnum.FAIL); throw new BusinessException(CommonResponseEnum.FAIL, "导入失败");
} }
} }