瀏覽代碼

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc into V0.0.2

# Conflicts:
#	soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java
jiawuxian 1 年之前
父節點
當前提交
1360eef14d
共有 35 個文件被更改,包括 290 次插入107 次删除
  1. 2 0
      project_data/sql/0.0.3/quartz/quartz.sql
  2. 9 1
      project_data/sql/0.0.3/soc/soc.sql
  3. 3 2
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java
  4. 2 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteOrgService.java
  5. 3 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteResumptionTaskService.java
  6. 5 4
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java
  7. 7 1
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteOrgFallbackFactory.java
  8. 5 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteResumptionTaskFallbackFactory.java
  9. 0 3
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/registerbook/dto/CoreRegisterBookPdfExportDto.java
  10. 0 2
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/registerbook/dto/ExportPdfDto.java
  11. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java
  12. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java
  13. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java
  14. 2 2
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/mapper/CoreEvaluateTaskMapper.java
  15. 65 24
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java
  16. 5 8
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/controller/CoreRegisterBookPdfController.java
  17. 4 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/ICoreRegisterBookPdfService.java
  18. 42 9
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/impl/CoreRegisterBookPdfServiceImpl.java
  19. 5 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java
  20. 16 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java
  21. 5 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/dto/ResumptionDTO.java
  22. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/mapper/ResumptionReportMapper.java
  23. 10 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java
  24. 4 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java
  25. 2 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/AppPlanService.java
  26. 31 5
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java
  27. 3 0
      soc-modules/soc-modules-core/src/main/resources/mapper/evaluate/CoreEvaluateTaskMapper.xml
  28. 13 6
      soc-modules/soc-modules-core/src/main/resources/mapper/reportForms/ResumptionReportMapper.xml
  29. 2 1
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java
  30. 1 1
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/ISysFileService.java
  31. 4 16
      soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java
  32. 10 4
      soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/CoreResumptionTask.java
  33. 6 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java
  34. 2 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysOrgService.java
  35. 17 1
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

+ 2 - 0
project_data/sql/0.0.3/quartz/quartz.sql

@@ -0,0 +1,2 @@
+DELETE from `sys_job` WHERE invoke_target='CoreResumptionTask.buildPdf';
+INSERT INTO `sys_job`(`job_id`, `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (211, '每日生成履职登记簿', 'DEFAULT', 'CoreResumptionTask.buildPdf', '1 1 23 * * ?', '1', '1', '0', '省联社账号', '2023-11-10 10:18:41', '', NULL);

+ 9 - 1
project_data/sql/0.0.3/soc/soc.sql

@@ -558,7 +558,15 @@ END IF;
     add organization varchar(255) DEFAULT NULL COMMENT '所属机构';
     END IF;
 
-
+    -- 履职添加pdf
+    IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'core_resumption_plan'
+                    AND column_name = 'pdf_url') THEN
+        alter table core_resumption_plan
+            add pdf_url varchar(255) DEFAULT NULL COMMENT 'pdf下载地址';
+    END IF;
 
     -- 演练范本库表增加演练类型字段
     IF NOT EXISTS(SELECT *

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

@@ -6,6 +6,7 @@ import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportD
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.system.api.domain.SysFile;
 import com.xunmei.system.api.factory.RemoteFileFallbackFactory;
+import feign.Response;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -72,8 +73,8 @@ public interface RemoteFileService {
     String getStaticPathPrefix();
 
     @PostMapping(value = "/file/registerBookCompressPdf",consumes = MediaType.APPLICATION_JSON_VALUE)
-    void registerBookCompressPdf(@RequestBody ExportPdfDto exportDto);
+    Response registerBookCompressPdf(@RequestBody ExportPdfDto exportDto);
 
     @PostMapping(value = "/file/cutFileCompress")
-    void cutFileCompress(@RequestBody CoreRegisterBookPdfExportDto exportDto);
+    Response cutFileCompress(@RequestBody CoreRegisterBookPdfExportDto exportDto);
 }

+ 2 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteOrgService.java

@@ -160,4 +160,6 @@ public interface RemoteOrgService {
     @PostMapping("/dept/selectOrgTreeReq")
     R<OrgTreeResp> getOrgTreeResp(@RequestBody OrgTreeReq orgTreeReq);
 
+    @GetMapping("/dept/selectOrgNameByPath")
+    String selectOrgNameByPath(@RequestParam("orgId") Long orgId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 3 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteResumptionTaskService.java

@@ -49,4 +49,7 @@ public interface RemoteResumptionTaskService {
     R<Boolean> updateTaskStatus();
     @PostMapping("api/resumption/rebuild")
     AjaxResult rebuild(@RequestBody String event, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @GetMapping(value = "/api/plan/buildPdf")
+    AjaxResult buildPdf();
 }

+ 5 - 4
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java

@@ -6,6 +6,7 @@ import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportD
 import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.system.api.RemoteFileService;
 import com.xunmei.system.api.domain.SysFile;
+import feign.Response;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -60,13 +61,13 @@ public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileServ
             }
 
             @Override
-            public void registerBookCompressPdf(ExportPdfDto exportDto) {
-
+            public Response registerBookCompressPdf(ExportPdfDto exportDto) {
+                return null;
             }
 
             @Override
-            public void cutFileCompress(CoreRegisterBookPdfExportDto exportDto) {
-
+            public Response cutFileCompress(CoreRegisterBookPdfExportDto exportDto) {
+                return null;
             }
         };
     }

+ 7 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteOrgFallbackFactory.java

@@ -15,7 +15,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
 
 import java.util.ArrayList;
@@ -170,6 +169,13 @@ public class RemoteOrgFallbackFactory implements FallbackFactory<RemoteOrgServic
             }
 
             @Override
+            public String selectOrgNameByPath(Long orgId, String source) {
+                return null;
+            }
+
+            @Override
+
+
             public List<SysOrg> selectOrgTreeListByCurOrgId(Long id, String source) {
                 return null;
             }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteResumptionTaskFallbackFactory.java

@@ -66,6 +66,11 @@ public class RemoteResumptionTaskFallbackFactory implements FallbackFactory<Remo
                 return null;
             }
 
+            @Override
+            public AjaxResult buildPdf() {
+                return null;
+            }
+
 
         };
     }

+ 0 - 3
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/registerbook/dto/CoreRegisterBookPdfExportDto.java

@@ -1,6 +1,5 @@
 package com.xunmei.common.core.domain.registerbook.dto;
 
-import cn.hutool.core.lang.UUID;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -21,6 +20,4 @@ public class CoreRegisterBookPdfExportDto extends CoreRegisterBookPdfPageDto {
 
     @ApiModelProperty(value = "文件id数组")
     private List<Long> pdfIdList;
-
-    private String guid= UUID.fastUUID().toString();
 }

+ 0 - 2
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/registerbook/dto/ExportPdfDto.java

@@ -20,8 +20,6 @@ public class ExportPdfDto {
 
     private String fileName;
 
-    private String guid;
-
     private Boolean checkSub;
 
     private Long orgId;

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

@@ -519,7 +519,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
                         }
                         break;
                     default:
-                        startAndEnd = DateUtils.getStartAndEnd(new Date(), Integer.valueOf(plan.getPlanCycle()) + 1);
+                       // startAndEnd = DateUtils.getStartAndEnd(new Date(), Integer.valueOf(plan.getPlanCycle()) + 1);
                         if (isComplete){
                             iCoreMonitoringRetrievalTaskService.deleteDayTaskByTime(plan.getId(), plan.getPlanCycle(),null,null);
                         }
@@ -541,7 +541,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
         status.add("3");
         List<CoreMonitoringRetrievalTask> coreMonitoringRetrievalTasks1 = iCoreMonitoringRetrievalTaskService.selectAllTaskByPlanId(ids, status);
         if (!plan.getPlanCycle().equals("0")) {
-            startAndEnd = DateUtils.getStartAndEnd(new Date(), Integer.valueOf(plan.getPlanCycle()) + 1);
+           // startAndEnd = DateUtils.getStartAndEnd(new Date(), Integer.valueOf(plan.getPlanCycle()) + 1);
             if (coreMonitoringRetrievalTasks.size()==coreMonitoringRetrievalTasks1.size()){
                 iCoreMonitoringRetrievalTaskService.deleteDayTaskByTimeAndPlanId(id, plan.getPlanCycle(),null,null);
             }

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -618,7 +618,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             this.update(updateWrapper);
 
             CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
-            registerBookPdf.setId(IdWorker.getId());
+            registerBookPdf.setId(id);
             registerBookPdf.setRegisterBookType(RegisterBookType.SAFETY_DRILL.getNum());
             registerBookPdf.setDate(new Date());
             registerBookPdf.setOrgId(task.getOrgId());

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -685,7 +685,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             this.update(updateWrapper);
 
             CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
-            registerBookPdf.setId(IdWorker.getId());
+            registerBookPdf.setId(id);
             registerBookPdf.setRegisterBookType(RegisterBookType.EDUCATION_TRAINING.getNum());
             registerBookPdf.setDate(new Date());
             registerBookPdf.setOrgId(task.getOrgId());

+ 2 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/mapper/CoreEvaluateTaskMapper.java

@@ -76,7 +76,7 @@ public interface CoreEvaluateTaskMapper extends BaseMapper<CoreEvaluateTask> {
 
     Page<Map> statistics(@Param("page") Page<Map> page, @Param("request") EvaluateTaskStatisticsDTO request);
 
-    List<LinkedHashMap> statisticsAll(@Param("request") EvaluateTaskStatisticsDTO request);
-
+    //List<LinkedHashMap> statisticsAll(@Param("request") EvaluateTaskStatisticsDTO request);
+    LinkedHashMap statisticsAll(@Param("request") EvaluateTaskStatisticsDTO request);
     List<Map> getContentByTaskId(@Param("id") Long id);
 }

+ 65 - 24
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java

@@ -106,31 +106,71 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
         return TableDataInfo.build(page);
     }
 
+    private Map beiyong(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO) {
+/*    Map map = new HashMap();
+    Page<Map> page;
+    //分页
+    if (evaluateTaskStatisticsDTO.getPageNum() != null && evaluateTaskStatisticsDTO.getPageSize() != null) {
+        page = new Page<>(evaluateTaskStatisticsDTO.getPageNum(), evaluateTaskStatisticsDTO.getPageSize());
+    } else {
+        page = new Page<>();
+    }
+    SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+    evaluateTaskStatisticsDTO.setOrgPath(sysOrg.getPath());
+    if (sysOrg.getType().equals(1)) {
+        evaluateTaskStatisticsDTO.setType(3);
+    } else {
+        evaluateTaskStatisticsDTO.setType(4);
+    }
+    evaluateTaskStatisticsDTO.setOrgId(null);
+    evaluateTaskStatisticsDTO.setOrgPath(null);
+  //  List<LinkedHashMap> rows = baseMapper.statisticsAll(evaluateTaskStatisticsDTO);
+    Integer average = 0;
+    Integer all = 0;
+    for (int i = 0; i < rows.size(); i++) {
+        Object id = rows.get(i).get("id");
+        rows.get(i).remove("id");
+        List<Map> contentByTaskId = baseMapper.getContentByTaskId((Long) id);
+        if (CollectionUtils.isNotEmpty(contentByTaskId)) {
+            int total = 0;
+            for (int l = 0; l < contentByTaskId.size(); l++) {
+                Double score = Double.valueOf(contentByTaskId.get(l).get("score").toString());
+                total += score;
+            }
+            rows.get(i).put("评价得分", total);
+            all += total;
+        }
+    }
+    map.put("list", rows);
+    if (rows.size() > 0) {
+        average = all / rows.size();
+    }
+    map.put("average", average);
+    return map;*/
+        return null;
+    }
+
     @Override
     public Map statistics(EvaluateTaskStatisticsDTO evaluateTaskStatisticsDTO) {
         Map map = new HashMap();
-        Page<Map> page;
-        //分页
-        if (evaluateTaskStatisticsDTO.getPageNum() != null && evaluateTaskStatisticsDTO.getPageSize() != null) {
-            page = new Page<>(evaluateTaskStatisticsDTO.getPageNum(), evaluateTaskStatisticsDTO.getPageSize());
-        } else {
-            page = new Page<>();
-        }
-        SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
-        evaluateTaskStatisticsDTO.setOrgPath(sysOrg.getPath());
-        if (sysOrg.getType().equals(1)) {
-            evaluateTaskStatisticsDTO.setType(3);
-        } else {
-            evaluateTaskStatisticsDTO.setType(4);
-        }
-        evaluateTaskStatisticsDTO.setOrgId(null);
-        evaluateTaskStatisticsDTO.setOrgPath(null);
-        List<LinkedHashMap> rows = baseMapper.statisticsAll(evaluateTaskStatisticsDTO);
-        Integer average = 0;
+        List<SysOrg> sysOrgs = remoteOrgService.selectSysOrgByParentId(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
+        List<LinkedHashMap> rows = new ArrayList<>();
+        Double average = null;
         Integer all = 0;
-        for (int i = 0; i < rows.size(); i++) {
-            Object id = rows.get(i).get("id");
-            rows.get(i).remove("id");
+        for (int i = 0; i < sysOrgs.size(); i++) {
+            evaluateTaskStatisticsDTO.setOrgId(sysOrgs.get(i).getId());
+            LinkedHashMap linkedHashMap = new LinkedHashMap();
+            linkedHashMap.put("评价机构", sysOrgs.get(i).getShortName());
+            LinkedHashMap linkedHashMap1 = baseMapper.statisticsAll(evaluateTaskStatisticsDTO);
+            if (null == linkedHashMap1) {
+                linkedHashMap.put("被评价机构名称", "");
+                linkedHashMap.put("评价得分", 0);
+            } else {
+                linkedHashMap.put("被评价机构名称", linkedHashMap1.get("被评价机构名称"));
+                linkedHashMap.put("id", linkedHashMap1.get("id"));
+            }
+            Object id = linkedHashMap.get("id");
+            linkedHashMap.remove("id");
             List<Map> contentByTaskId = baseMapper.getContentByTaskId((Long) id);
             if (CollectionUtils.isNotEmpty(contentByTaskId)) {
                 int total = 0;
@@ -138,15 +178,16 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
                     Double score = Double.valueOf(contentByTaskId.get(l).get("score").toString());
                     total += score;
                 }
-                rows.get(i).put("评价得分", total);
+                linkedHashMap.put("评价得分", total);
                 all += total;
             }
+            rows.add(linkedHashMap);
         }
         map.put("list", rows);
         if (rows.size() > 0) {
-            average = all / rows.size();
+            average = (double) all / rows.size();
         }
-        map.put("average", average);
+        map.put("average", String.format("%.2f", average));
         return map;
     }
 

+ 5 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/controller/CoreRegisterBookPdfController.java

@@ -1,6 +1,5 @@
 package com.xunmei.core.registerbook.controller;
 
-import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfExportDto;
 import com.xunmei.common.core.domain.registerbook.dto.CoreRegisterBookPdfPageDto;
@@ -17,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -35,6 +36,7 @@ public class CoreRegisterBookPdfController extends BaseController {
     private RedisTemplate redisTemplate;
     @Autowired
     private RemoteOrgService orgService;
+
     @ApiOperation(value = "登记簿分页")
     @RequiresPermissions("core:registerBook:list")
     @GetMapping("/list")
@@ -45,11 +47,7 @@ public class CoreRegisterBookPdfController extends BaseController {
 
     @ApiOperation(value = "批量导出登记簿zip")
     @PostMapping("/batch/export")
-    public void exportPdfZip(@RequestBody CoreRegisterBookPdfExportDto exportDto) {
-        if (ObjectUtil.isEmpty(exportDto.getGuid())) {
-            throw new RuntimeException("guid不能为空!");
-        }
-        redisTemplate.opsForValue().increment(exportDto.getGuid(), 9);
+    public void exportPdfZip(@RequestBody CoreRegisterBookPdfExportDto exportDto, HttpServletResponse response) throws IOException {
         final String orgName = orgService.selectOrgById(exportDto.getOrgId(), SecurityConstants.INNER).getName();
         final List<CoreRegisterBookPdfPageVo> registerBookPdfList = registerBookPdfService.queryExportData(exportDto);
         if (registerBookPdfList.size() == 0) {
@@ -59,8 +57,7 @@ public class CoreRegisterBookPdfController extends BaseController {
         ExportPdfDto pdfDto = new ExportPdfDto();
         pdfDto.setRegisterBookPdfList(registerBookPdfList);
         pdfDto.setFileName(fileName);
-        pdfDto.setGuid(exportDto.getGuid());
-        registerBookPdfService.export(pdfDto);
+        registerBookPdfService.export(pdfDto, response);
     }
 
 }

+ 4 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/ICoreRegisterBookPdfService.java

@@ -8,6 +8,8 @@ import com.xunmei.common.core.domain.registerbook.dto.ExportPdfDto;
 import com.xunmei.common.core.domain.registerbook.vo.CoreRegisterBookPdfPageVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -18,10 +20,11 @@ import java.util.List;
  */
 public interface ICoreRegisterBookPdfService extends IService<CoreRegisterBookPdf> {
 
+    String getFileOrgName(Long orgId);
 
     TableDataInfo<CoreRegisterBookPdfPageVo> selectPage(CoreRegisterBookPdfPageDto coreRegisterBookPdf);
 
     List<CoreRegisterBookPdfPageVo> queryExportData(CoreRegisterBookPdfExportDto exportDto);
 
-    void export(ExportPdfDto pdfDto);
+    void export(ExportPdfDto pdfDto, HttpServletResponse response) throws IOException;
 }

+ 42 - 9
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/impl/CoreRegisterBookPdfServiceImpl.java

@@ -24,10 +24,13 @@ import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.vo.SysOrgVO;
+import feign.Response;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -56,10 +59,10 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
 
         LambdaQueryWrapper<CoreRegisterBookPdf> wrapper = new LambdaQueryWrapper<>();
 
-        if (req.getCheckSub()){
-            wrapper.likeRight(CoreRegisterBookPdf::getOrgPath,sysOrg.getPath());
-        }else {
-            wrapper.eq(CoreRegisterBookPdf::getOrgId,req.getOrgId());
+        if (req.getCheckSub()) {
+            wrapper.likeRight(CoreRegisterBookPdf::getOrgPath, sysOrg.getPath());
+        } else {
+            wrapper.eq(CoreRegisterBookPdf::getOrgId, req.getOrgId());
         }
         Page<CoreRegisterBookPdf> pageRequest = req.getPageRequest();
         Page<CoreRegisterBookPdf> page = coreRegisterBookPdfMapper.selectPage(pageRequest, wrapper);
@@ -71,15 +74,36 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
     }
 
     private CoreRegisterBookPdfPageVo getCoreRegisterBookPdfPageVo(CoreRegisterBookPdf coreRegisterBookPdf) {
-        CoreRegisterBookPdfPageVo vo=new CoreRegisterBookPdfPageVo();
-        BeanUtils.copyProperties(coreRegisterBookPdf,vo);
+        CoreRegisterBookPdfPageVo vo = new CoreRegisterBookPdfPageVo();
+        BeanUtils.copyProperties(coreRegisterBookPdf, vo);
         return vo;
 
     }
 
     @Override
-    public void export(ExportPdfDto pdfDto) {
-        fileService.registerBookCompressPdf(pdfDto);
+    public void export(ExportPdfDto pdfDto, HttpServletResponse response) throws IOException {
+        InputStream inputStream = null;
+        OutputStream outputStream = null;
+        try {
+            //Feign远程调用获取文件流
+            Response result = fileService.registerBookCompressPdf(pdfDto);
+            Response.Body body = result.body();
+            inputStream = body.asInputStream();
+            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
+            response.setHeader("Content-Disposition", result.headers().get("Content-Disposition").toString().replace("[", "").replace("]", ""));
+            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(response.getOutputStream());
+            int length = 0;
+            byte[] temp = new byte[1024 * 10];
+            while ((length = bufferedInputStream.read(temp)) != -1) {
+                bufferedOutputStream.write(temp, 0, length);
+            }
+            bufferedOutputStream.flush();
+            bufferedOutputStream.close();
+            bufferedInputStream.close();
+            inputStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
     }
 
     @Override
@@ -125,7 +149,8 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
         return result;
     }
 
-    private List<IdName<Long, String>> get(List<SysOrgVO> all, List<IdName<Long, String>> orgList, SysOrgVO org, Long orgId) {
+    private List<IdName<Long, String>> get(List<SysOrgVO> all, List<IdName<Long, String>> orgList, SysOrgVO
+            org, Long orgId) {
 
         final Optional<SysOrgVO> optional = all.stream()
                 .filter(org1 -> org1.getId().equals(org.getParentId()) && org.getPath().contains(org1.getPath()))
@@ -146,4 +171,12 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
         return orgList;
 
     }
+
+    @Override
+    public String getFileOrgName(Long orgId) {
+        return  RemoteCallHandlerExecutor.executeRemoteCall(()->{
+           return orgService.selectOrgNameByPath(orgId, SecurityConstants.INNER);
+        },ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+
+    }
 }

+ 5 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/monitor/service/impl/MonitorAccessReportServiceImpl.java

@@ -13,6 +13,8 @@ import com.xunmei.core.reportForms.monitor.dto.MonitoringAccessDTO;
 import com.xunmei.core.reportForms.monitor.mapper.MonitorAccessReportMapper;
 import com.xunmei.core.reportForms.monitor.service.MonitorAccessReportService;
 import com.xunmei.core.reportForms.monitor.vo.MonitoringAccessVO;
+import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
+import com.xunmei.core.reportForms.resumption.service.ResumptionReportService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.domain.SysDictData;
@@ -41,7 +43,8 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
     private MonitorAccessReportMapper monitorAccessReportMapper;
     @Resource
     private RemoteOrgService remoteOrgService;
-
+    @Autowired
+    private ResumptionReportService resumptionReportService;
     @Override
     public TableDataInfo<MonitoringAccessVO> report(MonitoringAccessDTO monitoringAccessDTO) {
         Page<MonitoringAccessVO> page;
@@ -79,6 +82,7 @@ public class MonitorAccessReportServiceImpl implements MonitorAccessReportServic
 
     @Override
     public List<MonitoringAccessVO> selectAll(MonitoringAccessDTO monitoringAccessDTO) {
+        resumptionReportService.report(new ResumptionDTO());
         if (null == monitoringAccessDTO.getOrgId()) {
             monitoringAccessDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
         }

+ 16 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/controller/ResumptionReportController.java

@@ -5,6 +5,7 @@ import com.xunmei.common.security.annotation.RequiresPermissions;
 import com.xunmei.core.reportForms.monitor.dto.MonitoringAccessDTO;
 import com.xunmei.core.reportForms.resumption.dto.ResumptionDTO;
 import com.xunmei.core.reportForms.resumption.service.ResumptionReportService;
+import com.xunmei.core.reportForms.resumption.vo.ResumptionDayVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +13,12 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.sql.Date;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.List;
+
 /**
  * @author :LuoWei
  * @date : 2023/11/8
@@ -27,6 +34,14 @@ public class ResumptionReportController {
     @RequiresPermissions("core:resumptionReport:list")
     @GetMapping("/list")
     public AjaxResult list(ResumptionDTO resumptionDTO) {
-        return AjaxResult.success(resumptionReportService.report(resumptionDTO));
+        if (null == resumptionDTO.getSearchTime()) {
+            LocalDate currentDate = LocalDate.now();
+            resumptionDTO.setSearchTime(currentDate.toString());
+        }
+        AjaxResult ajaxResult = AjaxResult.success();
+        List<ResumptionDayVO> report = resumptionReportService.report(resumptionDTO);
+        ajaxResult.put(AjaxResult.DATA_TAG, report);
+        ajaxResult.put("title", "日报表-营业网点每日安全保卫履职(" + resumptionDTO.getSearchTime() + ")");
+        return ajaxResult;
     }
 }

+ 5 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/dto/ResumptionDTO.java

@@ -1,7 +1,11 @@
 package com.xunmei.core.reportForms.resumption.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * @author :LuoWei
  * @date : 2023/11/7
@@ -9,6 +13,6 @@ import lombok.Data;
 @Data
 public class ResumptionDTO {
     private Long orgId;
-    private String date;
+    private String searchTime;
     private Integer planType;
 }

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/mapper/ResumptionReportMapper.java

@@ -14,5 +14,5 @@ import java.util.List;
 @Mapper
 public interface ResumptionReportMapper {
 
-    ResumptionDayVO selectReport(@Param("planType") Integer planType, @Param("orgId") Long orgId, @Param("date") String date);
+    ResumptionDayVO selectReport(@Param("planType") Integer planType, @Param("orgId") Long orgId, @Param("date") String date,@Param("orgPath")String orgPath);
 }

+ 10 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reportForms/resumption/service/impl/ResumptionReportServiceImpl.java

@@ -12,6 +12,7 @@ import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,7 +31,8 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
 
     @Override
     public List<ResumptionDayVO> report(ResumptionDTO resumptionDTO) {
-        if (null==resumptionDTO.getOrgId()){
+
+        if (null == resumptionDTO.getOrgId()) {
             resumptionDTO.setOrgId(SecurityUtils.getLoginUser().getOrgId());
         }
         List<SysOrg> sysOrgs = orgService.selectSysOrgByParentId(resumptionDTO.getOrgId(), SecurityConstants.INNER);
@@ -41,19 +43,19 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             Integer integer = monitorAccessReportMapper.selectNetworkNumberByPath(o.getPath());
             resumptionDayVO.setNetworkNumber(integer);
             //营业前
-            ResumptionDayVO resumptionDayVO1 = resumptionReportMapper.selectReport(1, o.getId(), resumptionDTO.getDate());
+            ResumptionDayVO resumptionDayVO1 = resumptionReportMapper.selectReport(1, null, resumptionDTO.getSearchTime(), o.getPath());
             resumptionDayVO.setFrontRate(resumptionDayVO1.getFrontRate());
             resumptionDayVO.setFrontAbnormalNumber(resumptionDayVO1.getFrontAbnormalNumber());
             resumptionDayVO.setFrontPlanNumber(resumptionDayVO1.getFrontPlanNumber());
             resumptionDayVO.setFrontRealityNumber(resumptionDayVO1.getFrontRealityNumber());
             //营业中
-            ResumptionDayVO resumptionDayVO2 = resumptionReportMapper.selectReport(2, o.getId(), resumptionDTO.getDate());
+            ResumptionDayVO resumptionDayVO2 = resumptionReportMapper.selectReport(2, null, resumptionDTO.getSearchTime(), o.getPath());
             resumptionDayVO.setCentreRate(resumptionDayVO2.getFrontRate());
             resumptionDayVO.setCentreAbnormalNumber(resumptionDayVO2.getFrontAbnormalNumber());
             resumptionDayVO.setCentrePlanNumber(resumptionDayVO2.getFrontPlanNumber());
             resumptionDayVO.setCentreRealityNumber(resumptionDayVO2.getFrontRealityNumber());
             //后
-            ResumptionDayVO resumptionDayVO3 = resumptionReportMapper.selectReport(3, o.getId(), resumptionDTO.getDate());
+            ResumptionDayVO resumptionDayVO3 = resumptionReportMapper.selectReport(3, null, resumptionDTO.getSearchTime(), o.getPath());
             resumptionDayVO.setAfterRate(resumptionDayVO3.getFrontRate());
             resumptionDayVO.setAfterAbnormalNumber(resumptionDayVO3.getFrontAbnormalNumber());
             resumptionDayVO.setAfterPlanNumber(resumptionDayVO3.getFrontPlanNumber());
@@ -63,7 +65,10 @@ public class ResumptionReportServiceImpl implements ResumptionReportService {
             Integer totalAbnormal = resumptionDayVO3.getFrontAbnormalNumber() + resumptionDayVO2.getFrontAbnormalNumber() + resumptionDayVO1.getFrontAbnormalNumber();
             resumptionDayVO.setTotalPlanNumber(totalPlan);
             resumptionDayVO.setTotalRealityNumber(totalReality);
-            int i = totalReality / totalPlan * 100;
+            int i = 0;
+            if (totalReality != 0 && totalPlan != 0) {
+                i = totalReality / totalPlan * 100;
+            }
             resumptionDayVO.setTotalRate(i + "%");
             resumptionDayVO.setTotalAbnormalNumber(totalAbnormal);
             resumptionDayVOS.add(resumptionDayVO);

+ 4 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/ApiPlanController.java

@@ -131,9 +131,10 @@ public class ApiPlanController {
         List<Map<String, Object>> list = appPlanService.findByOrg(info);
         return AjaxResult.success(list);
     }
-    @PostMapping("/buildPdf")
-    public void buildPdf() {
-        appPlanService.buildResumptionPdf(4358025846522215L);
+
+    @GetMapping("/buildPdf")
+    public AjaxResult buildPdf() {
+        return appPlanService.buildPdf();
     }
 
     /**

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/AppPlanService.java

@@ -87,6 +87,8 @@ public interface AppPlanService extends IService<AppPlan> {
     void cheHui(Long id);
 
     int distributeCheHui(Long id);
+
+    AjaxResult buildPdf();
     AjaxResult buildResumptionPdf(Long id);
 
     /**

+ 31 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+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;
@@ -17,10 +18,13 @@ import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTask;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingTaskToUser;
 import com.xunmei.common.core.domain.edu.vo.CoreEduTrainingTaskDetailVo;
 import com.xunmei.common.core.exception.ServiceException;
+import com.xunmei.common.core.domain.registerbook.domain.CoreRegisterBookPdf;
+import com.xunmei.common.core.enums.RegisterBookType;
 import com.xunmei.common.core.exception.SystemException;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.security.utils.SecurityUtils;
+import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
 import com.xunmei.core.resumption.domain.*;
 import com.xunmei.core.resumption.dto.DistributeDto;
 import com.xunmei.core.resumption.dto.DistributeStatusDto;
@@ -72,7 +76,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
     IResumptionRecordService resumptionRecordService;
     @Autowired
     private AppRuleMapper appRuleMapper;
-
+    @Autowired
+    private ICoreRegisterBookPdfService registerBookPdfService;
     @Autowired
     private RemoteOrgService orgService;
     @Autowired
@@ -735,7 +740,7 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
         }
         return list;
     }
-
+    @Async
     @Override
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult buildResumptionPdf(Long orgid) {
@@ -757,7 +762,17 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
             if (null == r || null == r.getData()) {
                 throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
             }
-//            String pdfUrl = r.getData();
+            String pdfUrl = r.getData();
+            CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
+            registerBookPdf.setId(IdWorker.getId());
+            registerBookPdf.setRegisterBookType(RegisterBookType.SECURITY_PERFORMANCE.getNum());
+            registerBookPdf.setDate(new Date());
+            registerBookPdf.setOrgId(orgid);
+            registerBookPdf.setOrgName(sysOrg.getShortName());
+            registerBookPdf.setOrgPath(sysOrg.getPath());
+            registerBookPdf.setFileUrl(pdfUrl);
+            registerBookPdf.setFileName(StringUtils.substringAfterLast(pdfUrl, "\\"));
+            registerBookPdfService.save(registerBookPdf);
 //            LambdaUpdateWrapper<AppPlan> updateWrapper = new LambdaUpdateWrapper<>();
 //            updateWrapper.eq(AppPlan::getId, id);
 //            updateWrapper.set(AppPlan::getPdfUrl, pdfUrl);
@@ -768,11 +783,22 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
         return AjaxResult.success("正在生成pdf,请稍后刷新页面查看!");
     }
 
+    @Async
+    @Override
+    public AjaxResult buildPdf() {
+        Date date = DateUtils.addDays(new Date(), -1);
+
+        List<Resumption> resumptions = resumptionMapper.selectList(new LambdaQueryWrapper<Resumption>().eq(Resumption::getYmdDate, DateUtils.toLocalDate(date)).eq(Resumption::getStatus, 3));
+        List<Long> orgIds = resumptions.stream().map(Resumption::getOrgId).distinct().collect(Collectors.toList());
+        orgIds.forEach(this::buildResumptionPdf);
+        return AjaxResult.success("正在生成pdf,请稍后刷新页面查看!");
+    }
+
     private Map<String, Object> getFtlResumption(Long orgId) {
         Map<String, Object> data = new HashMap<>();
         //获取前一天
-        Date date = DateUtils.addDays(new Date(), 0);
-//        Date date = DateUtils.addDays(new Date(), -1);
+//        Date date = DateUtils.addDays(new Date(), 0);
+        Date date = DateUtils.addDays(new Date(), -1);
         //获取营业前的所有履职信息
         List<Resumption> before = resumptionMapper.selectByYmdDateAndExec(date, 2, orgId);
         //获取营业期间的所有履职信息

+ 3 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/evaluate/CoreEvaluateTaskMapper.xml

@@ -200,6 +200,9 @@
         <if test="request.type != null">
             AND   e.type= #{request.type}
         </if>
+          <if test="request.orgId !=null">
+              AND   e.id=#{request.orgId}
+          </if>
             <if test="request.orgPath != null  and request.orgPath != ''">
                 AND a.org_path like concat(#{request.orgPath}, '%')
             </if>

+ 13 - 6
soc-modules/soc-modules-core/src/main/resources/mapper/reportForms/ResumptionReportMapper.xml

@@ -8,10 +8,10 @@
         SELECT
             COUNT( a.id ) AS frontPlanNumber,
             IFNULL( SUM( IF ( a.`status` = 3, 1, 0 )), 0 ) AS frontRealityNumber,
-            IFNULL(
-                    CONCAT( SUM( IF ( a.`status` = 3, 1, 0 ))/ COUNT( a.id )* 100, '%' ),
-                    '0%'
-                ) AS frontRate,
+        IF( SUM( IF ( a.`status` = 3, 1, 0 ))=0 OR COUNT( a.id )=0,'0%',IFNULL(
+        CONCAT( SUM( IF ( a.`status` = 3, 1, 0 ))/ COUNT( a.id )* 100, '%' ),
+        '0%'
+        )) AS frontRate,
             IFNULL( SUM( a.exception_count ), 0 ) AS frontAbnormalNumber
         FROM
             core_resumption a
@@ -19,7 +19,14 @@
         WHERE
             b.plan_type = #{planType}
           AND a.type = 2
-          AND a.org_id = #{orgId}
-          AND a.ymd_date = #{date}
+          <if test="orgId !=null">
+              AND a.org_id = #{orgId}
+          </if>
+          <if test="date !=null">
+              AND a.ymd_date = #{date}
+          </if>
+        <if test="orgPath !=null">
+            and a.org_path  like concat(#{orgPath},'%')
+        </if>
     </select>
 </mapper>

+ 2 - 1
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -177,7 +178,7 @@ public class SysFileController {
 
 
     @PostMapping(value = "/registerBookCompressPdf")
-    void registerBookCompressPdf(@RequestBody ExportPdfDto exportDto,HttpServletResponse response){
+    void registerBookCompressPdf(@RequestBody ExportPdfDto exportDto, HttpServletResponse response) throws IOException {
         sysFileService.registerBookCompressPdf(exportDto,response);
     }
 

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

@@ -67,7 +67,7 @@ public interface ISysFileService
 
     InputStream getFileStream(String path) throws IOException;
 
-    void registerBookCompressPdf(ExportPdfDto exportDto,HttpServletResponse response);
+    void registerBookCompressPdf(ExportPdfDto exportDto, HttpServletResponse response) throws IOException;
 
     void cutFileCompress(CoreRegisterBookPdfExportDto exportDto);
 

+ 4 - 16
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java

@@ -545,10 +545,7 @@ public class LocalSysFileServiceImpl implements ISysFileService {
     }
 
     @Override
-    public void registerBookCompressPdf(ExportPdfDto pdfDto,HttpServletResponse response) {
-        if (ObjectUtil.isEmpty(pdfDto.getGuid())) {
-            pdfDto.setGuid(cn.hutool.core.lang.UUID.fastUUID().toString());
-        }
+    public void registerBookCompressPdf(ExportPdfDto pdfDto, HttpServletResponse response) throws IOException {
         final List<CoreRegisterBookPdfPageVo> registerBookPdfList = pdfDto.getRegisterBookPdfList();
         try {
             String zipName = URLEncoder.encode(pdfDto.getFileName() + DateHelper.getDateString(new Date()) + ".zip", "UTF-8");
@@ -568,11 +565,9 @@ public class LocalSysFileServiceImpl implements ISysFileService {
                 log.info("当前开始处理第{}个文件 ", pdfToZipTempVoList.indexOf(tempVo) + 1);
                 deal(zos, pdfDto, tempVo);
             }
-
-
-            outputStream.flush();
+            zos.flush();
+            zos.close();
             outputStream.close();
-
             log.info("登记簿批量导出压缩文件完成,文件数量:{}", pdfToZipTempVoList.size());
         } catch (Throwable e) {
             String errMsg = String.format("登记簿导出失败:%s", e);
@@ -583,7 +578,6 @@ public class LocalSysFileServiceImpl implements ISysFileService {
                 FileUtil.del(temp);
                 log.info("临时目录已删除");
             }
-            // redisTemplate.delete(pdfDto.getGuid());
         }
     }
 
@@ -598,9 +592,6 @@ public class LocalSysFileServiceImpl implements ISysFileService {
         try {
 
             inputStream = getFileStream(pdf.getFileUrl());
-            if (pdfDto != null) {
-                redisTemplate.opsForValue().increment(pdfDto.getGuid(), 9);
-            }
             if (ObjectUtil.isEmpty(inputStream)) {
                 log.error("登记簿导出失败,文件不存在,文件名:{}", pdf.getFileUrl());
                 return null;
@@ -655,11 +646,8 @@ public class LocalSysFileServiceImpl implements ISysFileService {
         while ((len = fileInputStream.read(buffer)) > 0) {
             zos.write(buffer, 0, len);
         }
+        zos.closeEntry();
         fileInputStream.close();
-        if (pdfDto != null) {
-            redisTemplate.opsForValue().increment(pdfDto.getGuid(), 9);
-        }
-
     }
 
 

+ 10 - 4
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/CoreResumptionTask.java

@@ -26,20 +26,26 @@ public class CoreResumptionTask {
     }
 
     public void buildWeekTask() {
-        log.info("开始执行每周履职定时任务,当前任务 时间:{}",new Date());
+        log.info("开始执行每周履职定时任务,当前任务 时间:{}", new Date());
         R<Boolean> result = remoteResumptionTaskService.weekTask();
         log.info("执行每周履职定时任务结束,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
     }
 
     public void buildMonthTask() {
-        log.info("开始执行每月履职定时任务,当前任务 时间:{}",new Date());
+        log.info("开始执行每月履职定时任务,当前任务 时间:{}", new Date());
         R<Boolean> result = remoteResumptionTaskService.monthTask();
         log.info("执行执行每月履职定时任务结束,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
     }
 
-    public void updateTaskStatus(){
-        log.info("开始更新履职任务状态 时间:{}",new Date());
+    public void updateTaskStatus() {
+        log.info("开始更新履职任务状态 时间:{}", new Date());
         R<Boolean> result = remoteResumptionTaskService.updateTaskStatus();
         log.info("更新履职任务状态结束,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
     }
+
+    public void buildPdf() {
+        log.info("开始生成pdf 时间:{}", new Date());
+        AjaxResult result = remoteResumptionTaskService.buildPdf();
+        log.info("生成pdf,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
+    }
 }

+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -352,4 +352,10 @@ public class SysDeptController extends BaseController {
     R<OrgTreeResp>  getOrgTreeResp(@RequestBody OrgTreeReq orgTreeReq){
         return R.ok(orgService.getOrgTreeReq(orgTreeReq));
     }
+
+    @GetMapping("/dept/selectOrgNameByPath")
+    @InnerAuth
+    String selectOrgNameByPath(@RequestParam("orgId") Long orgId) {
+        return orgService.selectOrgNameByPath(orgId);
+    }
 }

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysOrgService.java

@@ -140,4 +140,6 @@ public interface ISysOrgService extends IService<SysOrg> {
 
     List<SysOrg> selectOrgTreeListByCurOrgId(Long id);
     SysOrg selectByShortName(String shortName);
+
+    String selectOrgNameByPath(Long orgId);
 }

+ 17 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -25,6 +25,7 @@ import com.xunmei.system.api.vo.SysOrgVO;
 import com.xunmei.system.mapper.SysOrgMapper;
 import com.xunmei.system.mapper.SysUserMapper;
 import com.xunmei.system.service.ISysOrgService;
+import io.netty.util.internal.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -552,11 +553,26 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public SysOrg selectByShortName(String shortName) {
         List<SysOrg> sysOrgs = baseMapper.selectByShortName(shortName);
         if (!CollectionUtil.isEmpty(sysOrgs)) {
-            if(sysOrgs.size()>1){
+            if (sysOrgs.size() > 1) {
                 throw new RuntimeException("机构名称重复,导入失败;请检查后重试");
             }
             return sysOrgs.get(0);
         }
         return null;
     }
+
+    @Override
+    public String selectOrgNameByPath(Long orgId) {
+        List<SysOrgVO> orgCache = getOrgCache();
+        Optional<SysOrgVO> first = orgCache.stream().filter(org -> org.getId().equals(orgId)).findFirst();
+        if (!first.isPresent()) {
+            return StringUtil.EMPTY_STRING;
+        }
+        List<Long> collect = Arrays.stream(first.get().getPath().split("-")).map(Long::valueOf).collect(Collectors.toList());
+        List<String> list = new ArrayList<>();
+        collect.forEach(id -> {
+            orgCache.stream().filter(org -> org.getId().equals(id)).findFirst().ifPresent(org -> list.add(org.getName()));
+        });
+        return String.join("_", list);
+    }
 }