Jelajahi Sumber

完善履职登记簿

luojun 1 tahun lalu
induk
melakukan
12fb313f31

+ 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);

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

+ 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,5 +87,7 @@ public interface AppPlanService extends IService<AppPlan> {
     void cheHui(Long id);
 
     int distributeCheHui(Long id);
+
+    AjaxResult buildPdf();
     AjaxResult buildResumptionPdf(Long id);
 }

+ 37 - 9
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;
@@ -16,10 +17,13 @@ import com.xunmei.common.core.domain.R;
 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.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;
@@ -47,6 +51,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -70,7 +75,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
     IResumptionRecordService resumptionRecordService;
     @Autowired
     private AppRuleMapper appRuleMapper;
-
+    @Autowired
+    private ICoreRegisterBookPdfService registerBookPdfService;
     @Autowired
     private RemoteOrgService orgService;
     @Autowired
@@ -733,7 +739,7 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
         }
         return list;
     }
-
+    @Async
     @Override
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult buildResumptionPdf(Long orgid) {
@@ -755,7 +761,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);
@@ -766,11 +782,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);
         //获取营业期间的所有履职信息
@@ -803,7 +830,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
         }
         return vos;
     }
-    public List<ResumptionPdf> getResult(Map<Long, List<AppResumptionDataInfoVo>> bef){
+
+    public List<ResumptionPdf> getResult(Map<Long, List<AppResumptionDataInfoVo>> bef) {
         List<ResumptionPdf> befs = new ArrayList<>();
         for (Long l :
                 bef.keySet()) {
@@ -812,14 +840,14 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
             int result = 0;
             for (AppResumptionDataInfoVo vo :
                     bef.get(l)) {
-                pointName=vo.getPointName();
+                pointName = vo.getPointName();
                 result += vo.getResValue();
                 submitName.append(vo.getSubmitName());
             }
-            ResumptionPdf tem= new ResumptionPdf();
+            ResumptionPdf tem = new ResumptionPdf();
             tem.setPointName(pointName);
             tem.setSubmitName(String.valueOf(submitName));
-            tem.setResValue(result>0?1:0);
+            tem.setResValue(result > 0 ? 1 : 0);
             befs.add(tem);
         }
         return befs;

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