|
|
@@ -1,43 +1,56 @@
|
|
|
package com.xunmei.core.access.service.impl;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
+import com.xunmei.common.core.constant.ErrorMsgConstants;
|
|
|
import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
import com.xunmei.common.core.domain.DateRange;
|
|
|
+import com.xunmei.common.core.domain.registerbook.domain.CoreRegisterBookPdf;
|
|
|
import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
|
|
|
+import com.xunmei.common.core.enums.RegisterBookType;
|
|
|
import com.xunmei.common.core.exception.ServiceException;
|
|
|
+import com.xunmei.common.core.exception.SystemException;
|
|
|
import com.xunmei.common.core.utils.DateUtils;
|
|
|
import com.xunmei.common.core.utils.StringUtils;
|
|
|
|
|
|
import com.xunmei.common.core.web.page.TableDataInfo;
|
|
|
import com.xunmei.common.security.utils.SecurityUtils;
|
|
|
+import com.xunmei.core.access.domain.CoreMonitoringTaskRegistration;
|
|
|
import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
|
|
|
import com.xunmei.core.access.mapper.TMonitoringRetrievalPlanMapper;
|
|
|
import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
|
|
|
|
|
|
+import com.xunmei.core.access.vo.AccessPdfVO;
|
|
|
import com.xunmei.core.access.vo.TMonitoringRetrievalPlanVO;
|
|
|
+import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
|
|
|
+import com.xunmei.core.retrieval.mapper.CoreMonitoringRetrievalTaskMapper;
|
|
|
import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskBuilderService;
|
|
|
import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
|
|
|
|
|
|
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTask;
|
|
|
+import com.xunmei.core.safetyCheck.vo.regsiter.AppTaskRegisterPointVo;
|
|
|
+import com.xunmei.system.api.RemoteFileService;
|
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
|
import com.xunmei.system.api.RemoteRoleService;
|
|
|
import com.xunmei.system.api.RemoteUserService;
|
|
|
-import com.xunmei.system.api.domain.SysOrg;
|
|
|
-import com.xunmei.system.api.domain.SysRole;
|
|
|
-import com.xunmei.system.api.domain.SysUser;
|
|
|
+import com.xunmei.system.api.domain.*;
|
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.io.File;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
@@ -71,11 +84,15 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
|
|
|
@Lazy
|
|
|
@Resource
|
|
|
private ICoreMonitoringRetrievalTaskService iCoreMonitoringRetrievalTaskService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private ICoreRegisterBookPdfService registerBookPdfService;
|
|
|
@Lazy
|
|
|
@Resource
|
|
|
private ICoreMonitoringRetrievalTaskBuilderService coreMonitoringRetrievalTaskBuilderService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private RemoteFileService fileService;
|
|
|
+ @Autowired
|
|
|
+private CoreMonitoringRetrievalTaskMapper coreMonitoringRetrievalTaskMapper;
|
|
|
@Override
|
|
|
public TableDataInfo selectPage(TMonitoringRetrievalPlan tMonitoringRetrievalPlan) {
|
|
|
//未删除
|
|
|
@@ -124,6 +141,8 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 查询监控调阅计划
|
|
|
*
|
|
|
@@ -853,4 +872,77 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
|
|
|
return tMonitoringRetrievalPlanMapper.deleteById(id);
|
|
|
}
|
|
|
|
|
|
+ private String buildAccessPdfData(AccessPdf data) {
|
|
|
+ String fileOrgName = remoteOrgService.selectOrgById(data.getOrgId(), SecurityConstants.INNER).getShortName();
|
|
|
+ String fileName = fileOrgName + "_" + RegisterBookType.MONITOR_ACCESS.getText() + "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
|
|
|
+ data.setDest(fileName);
|
|
|
+ //新方式生成pdf
|
|
|
+ try {
|
|
|
+ //返回相对地址
|
|
|
+ return fileService.generateAccessPdf(data).getData();
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public String createAccessPdfNow(AccessPdf data) {
|
|
|
+ return buildAccessPdfData(data);
|
|
|
+ }
|
|
|
+ @Async
|
|
|
+ @Override
|
|
|
+ public void buildPdf(Long taskId) {
|
|
|
+ AccessPdfVO accessPdfVO = baseMapper.selectTask(taskId);
|
|
|
+ createSafetyCheckRegisterBookPdf(accessPdfVO);
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
|
|
|
+ public String createSafetyCheckRegisterBookPdf(AccessPdfVO accessPdfVO) {
|
|
|
+ AccessPdf accessPdf = buildSafetyCheckRegisterBookData(accessPdfVO);
|
|
|
+ String url = this.createAccessPdfNow(accessPdf);
|
|
|
+ CoreRegisterBookPdf registerBookPdf=new CoreRegisterBookPdf();
|
|
|
+ // registerBookPdf.setId(appSafetyCheckTask.getId());
|
|
|
+ registerBookPdf.setRegisterBookType(RegisterBookType.MONITOR_ACCESS.getNum());
|
|
|
+ registerBookPdf.setDate(new Date());
|
|
|
+ SysOrg org = remoteOrgService.selectSysOrgById(accessPdf.getOrgId(), SecurityConstants.INNER);
|
|
|
+ registerBookPdf.setOrgId(org.getId());
|
|
|
+ registerBookPdf.setOrgPath(org.getPath());
|
|
|
+ registerBookPdf.setFileUrl(url);
|
|
|
+ //registerBookPdf.setFileName(StringUtils.substringAfterLast(url, "\\"));
|
|
|
+ registerBookPdf.setFileName(StringUtils.substringAfterLast(url, File.separator));
|
|
|
+ registerBookPdf.setOrgName(accessPdf.getOrgName());
|
|
|
+ if (StringUtils.isEmpty(url) || StringUtils.isEmpty(registerBookPdf.getFileName())) {
|
|
|
+ throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
+ }
|
|
|
+ registerBookPdfService.save(registerBookPdf);
|
|
|
+ CoreMonitoringRetrievalTask tem = new CoreMonitoringRetrievalTask();
|
|
|
+ tem.setId(accessPdfVO.getTaskId());
|
|
|
+ tem.setPdfUrl(url);
|
|
|
+ coreMonitoringRetrievalTaskMapper.updateCoreMonitoringRetrievalTask(tem);
|
|
|
+ return url;
|
|
|
+ }
|
|
|
+ public AccessPdf buildSafetyCheckRegisterBookData(AccessPdfVO accessPdfVO) {
|
|
|
+ AccessPdf accessPdf = new AccessPdf();
|
|
|
+ accessPdf.setTaskTitle("标题");
|
|
|
+ final SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");
|
|
|
+ String dateStr = format.format(accessPdfVO.getTaskStartTime());
|
|
|
+ accessPdf.setTaskStartTime(dateStr);
|
|
|
+ accessPdf.setCheckUser(accessPdfVO.getCheckUser());
|
|
|
+ accessPdf.setOrgId(accessPdfVO.getOrgId());
|
|
|
+ accessPdf.setOrgName(accessPdfVO.getOrgName());
|
|
|
+ List<AccessDataVo> dataVos = new ArrayList<>();
|
|
|
+ List<AccessDataVo> accessDataVos = baseMapper.selectPointByTask(accessPdfVO.getTaskId());
|
|
|
+ for (AccessDataVo vo :
|
|
|
+ accessDataVos) {
|
|
|
+ AccessDataVo v = new AccessDataVo();
|
|
|
+ v.setHostName(vo.getHostName());
|
|
|
+ v.setVideoChannelName(vo.getVideoChannelName());
|
|
|
+ v.setProject(vo.getProject());
|
|
|
+ v.setSituation(vo.getSituation());
|
|
|
+ v.setAbnormalIllustrate(vo.getAbnormalIllustrate());
|
|
|
+ dataVos.add(v);
|
|
|
+ }
|
|
|
+ accessPdf.setDataVos(dataVos);
|
|
|
+ return accessPdf;
|
|
|
+ }
|
|
|
}
|