Przeglądaj źródła

Merge remote-tracking branch 'origin/V0.0.5' into V0.0.5

jingyuanchao 1 rok temu
rodzic
commit
6a6b4ba1f9
20 zmienionych plików z 336 dodań i 9 usunięć
  1. 3 1
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java
  2. 22 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/AccessDataVo.java
  3. 40 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/AccessPdf.java
  4. 6 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java
  5. 1 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/domain/CoreMonitoringRetrievalTask.java
  6. 1 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/vo/CoreMonitoringRetrievalTaskVo.java
  7. 1 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/RegisterBookType.java
  8. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/mapper/TMonitoringRetrievalPlanMapper.java
  9. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/ITMonitoringRetrievalPlanService.java
  10. 5 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/CoreMonitoringTaskRegistrationServiceImpl.java
  11. 97 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java
  12. 27 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/vo/AccessPdfVO.java
  13. 12 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/vo/MonitorInfoVO.java
  14. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/service/impl/SafetyInspectServiceImpl.java
  15. 33 0
      soc-modules/soc-modules-core/src/main/resources/mapper/access/TMonitoringRetrievalPlanMapper.xml
  16. 4 0
      soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml
  17. 7 0
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java
  18. 2 0
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/ISysFileService.java
  19. 45 0
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java
  20. 18 1
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java

+ 3 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java

@@ -4,6 +4,7 @@ import com.xunmei.common.core.constant.ServiceNameConstants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
+import com.xunmei.system.api.domain.AccessPdf;
 import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.domain.SysFile;
 import com.xunmei.system.api.factory.RemoteFileFallbackFactory;
@@ -48,7 +49,8 @@ public interface RemoteFileService {
     R<String> generateResumptionPdf(@RequestBody Map<String, Object> data);
     @PostMapping(value = "/file/generateSafeCheckPdf")
     R<String> generateSafeCheckPdf(@RequestBody SafeCheckTaskRegisterBookVo data);
-
+    @PostMapping(value = "/file/generateAccessPdf")
+    R<String> generateAccessPdf(@RequestBody AccessPdf data);
     /**
      * 生成预案演练登记簿
      *

+ 22 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/AccessDataVo.java

@@ -0,0 +1,22 @@
+package com.xunmei.system.api.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author :LuoWei
+ * @date : 2023/12/18
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class AccessDataVo {
+    private String hostName;
+    private String videoChannelName;
+    private String project;
+    private String situation;
+    private String abnormalIllustrate;
+}

+ 40 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/domain/AccessPdf.java

@@ -0,0 +1,40 @@
+package com.xunmei.system.api.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author :LuoWei
+ * @date : 2023/12/18
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+@Builder
+public class AccessPdf {
+    private Long orgId;
+    @ApiModelProperty("任务名称")
+    private String taskTitle;
+    @ApiModelProperty("机构名称")
+    private String orgName;
+    @ApiModelProperty("计划周期")
+    private String planCycle;
+    @ApiModelProperty(value = "开始时间")
+    // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String startTime;
+    @ApiModelProperty(value = "结束时间")
+    // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+    private String dest;
+    @ApiModelProperty(value = "开始调阅时间")
+    private String taskStartTime;
+    @ApiModelProperty(value = "调阅人")
+    private String checkUser;
+    private List<AccessDataVo>dataVos;
+}

+ 6 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java

@@ -5,6 +5,7 @@ import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.system.api.RemoteFileService;
+import com.xunmei.system.api.domain.AccessPdf;
 import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.domain.SysFile;
 import feign.Response;
@@ -51,6 +52,11 @@ public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileServ
             }
 
             @Override
+            public R<String> generateAccessPdf(AccessPdf data) {
+                return R.fail();
+            }
+
+            @Override
             public R<String> generateDrillPdf(Map<String, Object> data) {
                 log.error("生成预案演练登记簿失败:{},参数:{}", throwable.getMessage(), JSON.toJSONString(data));
                 return R.fail();

+ 1 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/domain/CoreMonitoringRetrievalTask.java

@@ -125,7 +125,7 @@ private static final long serialVersionUID=1L;
     @ApiModelProperty(value = "0正常,1删除")
     private Integer isDeleted;
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
+      private String pdfUrl;
 @Override
 public String toString(){
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/vo/CoreMonitoringRetrievalTaskVo.java

@@ -121,6 +121,7 @@ public class CoreMonitoringRetrievalTaskVo extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "调阅开始时间")
     private Date startTime;
+    private String pdfUrl;
 
     /**
      * 调阅结束时间

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/RegisterBookType.java

@@ -20,6 +20,7 @@ public enum RegisterBookType {
     SAFETY_DRILL(2, "预案演练登记簿"),
     VISIT_RECORD(3, "来访管理登记簿"),
     SAFE_CHECK_REPORT(26, "安全检查登记簿"),
+    MONITOR_ACCESS(28,"监控调阅登记簿"),
 
 
     ;

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/mapper/TMonitoringRetrievalPlanMapper.java

@@ -4,9 +4,11 @@ package com.xunmei.core.access.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
+import com.xunmei.core.access.vo.AccessPdfVO;
 import com.xunmei.core.access.vo.TMonitoringRetrievalPlanVO;
 import com.xunmei.core.evaluate.dto.EvaluateTaskDTO;
 import com.xunmei.core.evaluate.vo.CoreEvaluateTaskVO;
+import com.xunmei.system.api.domain.AccessDataVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -86,4 +88,6 @@ public interface TMonitoringRetrievalPlanMapper extends BaseMapper<TMonitoringRe
      * @return 结果
      */
     int deleteTMonitoringRetrievalPlanByIds(Long[] ids);
+  List<AccessDataVo>   selectPointByTask(Long taskId);
+    AccessPdfVO selectTask(Long taskId);
 }

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/ITMonitoringRetrievalPlanService.java

@@ -3,7 +3,9 @@ package com.xunmei.core.access.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.access.domain.TMonitoringRetrievalPlan;
+import com.xunmei.core.access.vo.AccessPdfVO;
 import com.xunmei.core.access.vo.TMonitoringRetrievalPlanVO;
+import com.xunmei.core.safetyCheck.domain.CoreSafetyTask;
 
 import java.text.ParseException;
 import java.util.List;
@@ -83,4 +85,6 @@ public interface ITMonitoringRetrievalPlanService extends IService<TMonitoringRe
      * @return Page
      */
     TableDataInfo<TMonitoringRetrievalPlanVO> selectPage(TMonitoringRetrievalPlan tMonitoringRetrievalPlan);
+    String createSafetyCheckRegisterBookPdf(AccessPdfVO accessPdfVO);
+    void buildPdf(Long taskId);
 }

+ 5 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/CoreMonitoringTaskRegistrationServiceImpl.java

@@ -16,6 +16,7 @@ import com.xunmei.core.access.domain.CoreMonitoringTaskRegistration;
 import com.xunmei.core.access.mapper.CoreMonitoringTaskMonitorInfoMapper;
 import com.xunmei.core.access.mapper.CoreMonitoringTaskRegistrationMapper;
 import com.xunmei.core.access.service.ICoreMonitoringTaskRegistrationService;
+import com.xunmei.core.access.service.ITMonitoringRetrievalPlanService;
 import com.xunmei.core.access.vo.CoreMonitoringTaskRegistrationVO;
 import com.xunmei.core.retrieval.mapper.CoreMonitoringRetrievalTaskMapper;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
@@ -47,7 +48,8 @@ public class CoreMonitoringTaskRegistrationServiceImpl extends ServiceImpl<CoreM
     private CoreMonitoringTaskMonitorInfoMapper coreMonitoringTaskMonitorInfoMapper;//项目
     @Autowired
     private RemoteNfcBindService remoteNfcBindService;
-
+@Autowired
+private ITMonitoringRetrievalPlanService itMonitoringRetrievalPlanService;
     /**
      * 查询【请填写功能名称】
      *
@@ -143,6 +145,8 @@ public class CoreMonitoringTaskRegistrationServiceImpl extends ServiceImpl<CoreM
         int i = coreMonitoringTaskMonitorInfoMapper.selectAbnormalByTaskId(coreMonitoringTaskRegistration.getTaskId());
         coreMonitoringRetrievalTask.setExceptionCount(i);
         coreMonitoringRetrievalTaskMapper.updateCoreMonitoringRetrievalTask(coreMonitoringRetrievalTask);
+        //生成pdf
+        itMonitoringRetrievalPlanService.buildPdf(coreMonitoringTaskRegistration.getTaskId());
         return coreMonitoringTaskRegistrationMapper.updateById(coreMonitoringTaskRegistration);
     }
 

+ 97 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java

@@ -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;
+    }
 }

+ 27 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/vo/AccessPdfVO.java

@@ -0,0 +1,27 @@
+package com.xunmei.core.access.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author :LuoWei
+ * @date : 2023/12/18
+ */
+@Data
+public class AccessPdfVO {
+    private Long taskId;
+    private Long orgId;
+    private String orgName;
+    private String hostName;
+    private String videoChannelName;
+    private String project;
+    private String situation;
+    private String abnormalIllustrate;
+    private String cycle;
+    private Date startTime;
+    private Date endTime;
+    private String checkUser;
+    private Date taskStartTime;
+}

+ 12 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/vo/MonitorInfoVO.java

@@ -0,0 +1,12 @@
+package com.xunmei.core.access.vo;
+
+import lombok.Data;
+
+/**
+ * @author :LuoWei
+ * @date : 2023/12/18
+ */
+@Data
+public class MonitorInfoVO {
+
+}

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/safetyInspect/service/impl/SafetyInspectServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
@@ -99,6 +100,9 @@ public class SafetyInspectServiceImpl implements SafetyInspectService {
         //判断机构类型,如果机构类型大于行社,都展示行社数据
         SysOrg sysOrg = orgService.selectSysOrgById(safetyInspectDTO.getOrgId(), SecurityConstants.INNER);
         List<SysOrg> sysOrgs;
+        if (null==sysOrg.getType()){
+            return  Collections.EMPTY_LIST;
+        }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社") || sysOrg.getType() == 9) {
             sysOrgs = orgService.selectSysOrgByPathAndType(sysOrg.getPath(), 3, SecurityConstants.INNER);
         } else if (sysOrg.getType() == 3) {

+ 33 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/access/TMonitoringRetrievalPlanMapper.xml

@@ -126,6 +126,39 @@
         ORDER BY     a.parent_id ASC,
         a.create_time desc
     </select>
+    <select id="selectPointByTask" resultType="com.xunmei.system.api.domain.AccessDataVo">
+        SELECT
+            e.device_name AS hostName,
+            d.device_name AS videoChannelName,
+            c.project AS project,
+            IF
+                ( c.situation = 0, '正常', '异常' ) AS situation,
+            c.abnormal_illustrate AS abnormalIllustrate
+        FROM
+            core_monitoring_task_registration a
+                LEFT JOIN core_monitoring_task_registration_monitor b ON a.id = b.task_registration_id
+                LEFT JOIN core_monitoring_task_monitor_info c ON c.task_monitor_id = b.id
+                LEFT JOIN sys_device d ON b.video_channel = d.id
+                LEFT JOIN sys_device e ON e.id = d.host_id
+        WHERE
+            c.project IS NOT NULL
+          AND a.task_id = #{taskId}
+    </select>
+    <select id="selectTask" resultType="com.xunmei.core.access.vo.AccessPdfVO">
+        SELECT
+            a.id AS taskId,
+            org_id AS orgId,
+            org_name AS orgName,
+            cycle AS cycle,
+            plan_start_time AS startTime,
+            plan_end_time AS endTime,
+            b.task_start_time AS taskStartTime
+        FROM
+            core_monitoring_retrieval_task a
+                LEFT JOIN core_monitoring_task_registration b ON a.id = b.task_id
+        WHERE
+           a. id = #{taskId}
+    </select>
 
     <insert id="insertTMonitoringRetrievalPlan" parameterType="com.xunmei.core.access.domain.TMonitoringRetrievalPlan">
         insert into t_monitoring_retrieval_plan

+ 4 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -422,6 +422,10 @@
                 ymd_halfyear =
                 #{ymdHalfyear},
             </if>
+            <if test="pdfUrl !=null">
+                pdf_url=
+                #{pdfUrl},
+            </if>
             <if test="ymdQuarter != null">
                 ymd_quarter =
                 #{ymdQuarter},

+ 7 - 0
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java

@@ -7,6 +7,7 @@ import com.xunmei.common.core.utils.file.FileUtils;
 import com.xunmei.file.service.ISysFileService;
 import com.xunmei.file.utils.DesUtil;
 import com.xunmei.file.vo.FileBase64Vo;
+import com.xunmei.system.api.domain.AccessPdf;
 import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.domain.SysFile;
 import io.swagger.annotations.ApiOperation;
@@ -161,6 +162,12 @@ public class SysFileController {
         return R.ok(sysFileService.generateSafeCheckPdf(data));
 
     }
+    @ApiOperation(value = "生成监控调阅pdf")
+    @PostMapping(value = "/generateAccessPdf")
+    R<String> generateAccessPdf(@RequestBody AccessPdf data) throws Exception {
+        return R.ok(sysFileService.generateAccessPdf(data));
+
+    }
     @ApiOperation(value = "预案演练pdf")
     @PostMapping(value = "/generateDrillPdf")
     R<String> generateDrillPdf(@RequestBody Map<String, Object> data) throws Exception {

+ 2 - 0
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/ISysFileService.java

@@ -3,6 +3,7 @@ package com.xunmei.file.service;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.file.vo.FileBase64Vo;
+import com.xunmei.system.api.domain.AccessPdf;
 import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -51,6 +52,7 @@ public interface ISysFileService
     String generateResumptionPdf(Map<String, Object> data) throws Exception;
 
     String generateSafeCheckPdf(SafeCheckTaskRegisterBookVo data) throws Exception;
+    String generateAccessPdf(AccessPdf data) throws Exception;
     String getRelativePath(String path);
 
 

+ 45 - 0
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java

@@ -26,6 +26,7 @@ import com.xunmei.file.utils.PdfUtil;
 import com.xunmei.file.vo.FileBase64Vo;
 import com.xunmei.file.vo.ItextPdfTableVo;
 import com.xunmei.file.vo.PdfFilePathVo;
+import com.xunmei.system.api.domain.AccessPdf;
 import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
 import com.xunmei.system.api.vo.SysOrgVO;
 import io.netty.util.internal.StringUtil;
@@ -332,6 +333,50 @@ public class LocalSysFileServiceImpl implements ISysFileService {
     }
 
     @Override
+    public String generateAccessPdf(AccessPdf data) throws Exception {
+        PdfFilePathVo pathVo = getLocalFilePath("access", data.getDest());
+        String afterStr = StringEscapeUtils.escapeEcmaScript(pathVo.getAbsolutePath());
+        log.info("开始生成监控调阅登记簿,当前绝对地址为:{}", afterStr);
+        final ItextPdfTableVo pdfTableVo = PdfUtil.createTable(pathVo.getAbsolutePath(), 46, 7);
+        final Document document = pdfTableVo.getDocument();
+        final PdfWriter writer = pdfTableVo.getWriter();
+        final PdfPTable table = pdfTableVo.getTable();
+        final BaseFont fs = pdfTableVo.getFs();
+        final Font tableFont = pdfTableVo.getTableFont();
+        Font font = new Font(fs, 9, Font.NORMAL);
+        PdfUtil.dealHeader(document, fs, data.getOrgName()+data.getPlanCycle()+"("+data.getStartTime()+"~"+data.getEndTime()+")", 14);
+        String checkTime =  data.getTaskStartTime();
+        String checkUser = "检查人: " + data.getCheckUser();
+   /*     PdfPCell orgCell = new PdfPCell(new Phrase(orgName, font));
+        orgCell.setColspan(16);
+        orgCell.setRowspan(1);
+        orgCell.setBorder(Rectangle.NO_BORDER);
+        orgCell.setHorizontalAlignment(Element.ALIGN_LEFT);*/
+
+        PdfPCell checkUserCell = new PdfPCell(new Phrase(checkUser, font));
+        checkUserCell.setColspan(20);
+        checkUserCell.setRowspan(1);
+        checkUserCell.setBorder(Rectangle.NO_BORDER);
+        checkUserCell.setHorizontalAlignment(Element.ALIGN_CENTER);
+
+        PdfPCell dateStrCell = new PdfPCell(new Phrase(checkTime, font));
+        dateStrCell.setColspan(10);
+        dateStrCell.setRowspan(1);
+        dateStrCell.setBorder(Rectangle.NO_BORDER);
+        dateStrCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+      //  table.addCell(orgCell);
+        table.addCell(checkUserCell);
+        table.addCell(dateStrCell);
+        Font titleFont = new Font(fs, 8, Font.NORMAL);
+        PdfUtil.dealAccessPBody(document, table, tableFont, titleFont, data.getDataVos());
+        document.close();
+        writer.close();
+        log.info("监控调阅登记簿生成结束,当前绝对地址为:{}", afterStr);
+        //此处返回  /statics/edu/xxx.pdf
+        return this.prefix + pathVo.getRelativePath();
+    }
+
+    @Override
     public String generateDrillPdf(Map<String, Object> data) throws Exception {
         PdfFilePathVo pathVo = getLocalFilePath("drill", data.get("fileName").toString());
         String afterStr = StringEscapeUtils.escapeEcmaScript(pathVo.getAbsolutePath());

+ 18 - 1
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/utils/PdfUtil.java

@@ -8,6 +8,7 @@ import com.lowagie.text.*;
 import com.lowagie.text.pdf.*;
 import com.xunmei.file.vo.ItextPdfTableVo;
 import com.xunmei.file.vo.PdfFilePathVo;
+import com.xunmei.system.api.domain.AccessDataVo;
 import com.xunmei.system.api.domain.CheckDataVo;
 import com.xunmei.system.api.domain.ResumptionPdf;
 import com.xunmei.system.api.domain.SafeCheckTaskRegisterBookVo;
@@ -553,7 +554,23 @@ public class PdfUtil {
             throw new RuntimeException(e);
         }
     }
-
+    public static void dealAccessPBody(Document document, PdfPTable table, Font tableFont, Font tableTitleFont, List<AccessDataVo> data)throws DocumentException {
+        PdfUtil.createPDFCell(tableTitleFont, table, "序号", Element.ALIGN_MIDDLE, 2, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "视频主机", Element.ALIGN_MIDDLE, 5, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "视频通道", Element.ALIGN_MIDDLE, 5, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "项目", Element.ALIGN_MIDDLE, 5, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "检查情况", Element.ALIGN_MIDDLE, 2, 0);
+        PdfUtil.createPDFCell(tableTitleFont, table, "说明", Element.ALIGN_MIDDLE, 17, 0);
+        for (int i = 1; i <= data.size(); i++) {
+            PdfUtil.createPDFCell(tableFont, table, String.valueOf(i), Element.ALIGN_MIDDLE, 2, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getHostName(), Element.ALIGN_MIDDLE, 5, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getVideoChannelName(), Element.ALIGN_MIDDLE, 5, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getProject(), Element.ALIGN_MIDDLE, 5, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getSituation().equals("0") ? "正常" : "异常", Element.ALIGN_MIDDLE, 2, 0, 10);
+            PdfUtil.createPDFCell(tableFont, table, data.get(i - 1).getAbnormalIllustrate(), Element.ALIGN_MIDDLE, 17, 0, 10);
+     }
+        document.add(table);
+    }
     public static void dealSafeCheckPBody(Document document, PdfPTable table, Font tableFont, Font tableTitleFont, List<CheckDataVo> data) throws DocumentException {
         PdfUtil.createPDFCell(tableTitleFont, table, "序号", Element.ALIGN_MIDDLE, 2, 0);
         PdfUtil.createPDFCell(tableTitleFont, table, "检查内容", Element.ALIGN_MIDDLE, 5, 0);