|  | @@ -1,43 +1,56 @@
 | 
											
												
													
														|  |  package com.xunmei.core.access.service.impl;
 |  |  package com.xunmei.core.access.service.impl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import cn.hutool.core.date.DateUtil;
 | 
											
												
													
														|  |  import com.alibaba.nacos.common.utils.CollectionUtils;
 |  |  import com.alibaba.nacos.common.utils.CollectionUtils;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 |  |  import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 |  |  import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 |  |  import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
											
												
													
														|  |  import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 |  |  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.constant.SecurityConstants;
 | 
											
												
													
														|  |  import com.xunmei.common.core.domain.DateRange;
 |  |  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.domain.retrieval.domain.CoreMonitoringRetrievalTask;
 | 
											
												
													
														|  | 
 |  | +import com.xunmei.common.core.enums.RegisterBookType;
 | 
											
												
													
														|  |  import com.xunmei.common.core.exception.ServiceException;
 |  |  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.DateUtils;
 | 
											
												
													
														|  |  import com.xunmei.common.core.utils.StringUtils;
 |  |  import com.xunmei.common.core.utils.StringUtils;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import com.xunmei.common.core.web.page.TableDataInfo;
 |  |  import com.xunmei.common.core.web.page.TableDataInfo;
 | 
											
												
													
														|  |  import com.xunmei.common.security.utils.SecurityUtils;
 |  |  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.domain.TMonitoringRetrievalPlan;
 | 
											
												
													
														|  |  import com.xunmei.core.access.mapper.TMonitoringRetrievalPlanMapper;
 |  |  import com.xunmei.core.access.mapper.TMonitoringRetrievalPlanMapper;
 | 
											
												
													
														|  |  import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
 |  |  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.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.ICoreMonitoringRetrievalTaskBuilderService;
 | 
											
												
													
														|  |  import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 |  |  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.RemoteOrgService;
 | 
											
												
													
														|  |  import com.xunmei.system.api.RemoteRoleService;
 |  |  import com.xunmei.system.api.RemoteRoleService;
 | 
											
												
													
														|  |  import com.xunmei.system.api.RemoteUserService;
 |  |  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.BeanUtils;
 | 
											
												
													
														|  |  import org.springframework.beans.factory.annotation.Autowired;
 |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
											
												
													
														|  |  import org.springframework.context.annotation.Lazy;
 |  |  import org.springframework.context.annotation.Lazy;
 | 
											
												
													
														|  | 
 |  | +import org.springframework.scheduling.annotation.Async;
 | 
											
												
													
														|  |  import org.springframework.stereotype.Service;
 |  |  import org.springframework.stereotype.Service;
 | 
											
												
													
														|  | 
 |  | +import org.springframework.transaction.annotation.Propagation;
 | 
											
												
													
														|  |  import org.springframework.transaction.annotation.Transactional;
 |  |  import org.springframework.transaction.annotation.Transactional;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import javax.annotation.Resource;
 |  |  import javax.annotation.Resource;
 | 
											
												
													
														|  | 
 |  | +import java.io.File;
 | 
											
												
													
														|  |  import java.text.ParseException;
 |  |  import java.text.ParseException;
 | 
											
												
													
														|  |  import java.text.SimpleDateFormat;
 |  |  import java.text.SimpleDateFormat;
 | 
											
												
													
														|  |  import java.time.LocalDate;
 |  |  import java.time.LocalDate;
 | 
											
										
											
												
													
														|  | @@ -71,11 +84,15 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
 | 
											
												
													
														|  |      @Lazy
 |  |      @Lazy
 | 
											
												
													
														|  |      @Resource
 |  |      @Resource
 | 
											
												
													
														|  |      private ICoreMonitoringRetrievalTaskService iCoreMonitoringRetrievalTaskService;
 |  |      private ICoreMonitoringRetrievalTaskService iCoreMonitoringRetrievalTaskService;
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private ICoreRegisterBookPdfService registerBookPdfService;
 | 
											
												
													
														|  |      @Lazy
 |  |      @Lazy
 | 
											
												
													
														|  |      @Resource
 |  |      @Resource
 | 
											
												
													
														|  |      private ICoreMonitoringRetrievalTaskBuilderService coreMonitoringRetrievalTaskBuilderService;
 |  |      private ICoreMonitoringRetrievalTaskBuilderService coreMonitoringRetrievalTaskBuilderService;
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private RemoteFileService fileService;
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +private CoreMonitoringRetrievalTaskMapper coreMonitoringRetrievalTaskMapper;
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      public TableDataInfo selectPage(TMonitoringRetrievalPlan tMonitoringRetrievalPlan) {
 |  |      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);
 |  |          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;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  }
 |  |  }
 |