Pārlūkot izejas kodu

一键重签支持不重新生成PDF

qianxb 1 gadu atpakaļ
vecāks
revīzija
8b596c0d6f

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -1571,12 +1571,12 @@ public class TaskController extends BladeController {
     @PostMapping("/reSigningEVisa")
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "任务管理-一键重签", notes = "传入taskIds、下拉框的contractId、projectId")
-    public R<Object> reSigningEVisa(@RequestParam String classifyType,@RequestParam String taskIds, @RequestParam String contractId, @RequestParam String projectId, HttpServletRequest request) {
+    public R<Object> reSigningEVisa(@RequestParam String classifyType,@RequestParam String taskIds, @RequestParam String contractId, @RequestParam String projectId, @RequestParam Integer type ,HttpServletRequest request) {
         if (ObjectUtil.isEmpty(taskIds)) {
             return R.fail("请选择一条记录");
         }
         String header = request.getHeader("Blade-Auth");
-        taskService.reSigningEVisa(classifyType,taskIds, contractId, projectId, header);
+        taskService.reSigningEVisa(classifyType,taskIds, contractId, projectId,type, header);
         return R.success("任务已经成功提交重签,请耐心等待!");
     }
 

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/ITaskService.java

@@ -98,7 +98,7 @@ public interface ITaskService extends BaseService<Task> {
     void delArchiveFileBusinessData(Long projectId, Long wbsId);
 
     @Async
-    void reSigningEVisa(String classify, String taskIds, String contractId, String projectId, String header);
+    void reSigningEVisa(String classify, String taskIds, String contractId, String projectId,Integer type, String header);
 
     /**
      * 根据数据源id查询任务

+ 21 - 9
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1397,7 +1397,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
 //    }
 
     @Override
-    public void reSigningEVisa(String classify, String taskIds, String contractId, String projectId, String header) {
+    @Transactional
+    public void reSigningEVisa(String classify, String taskIds, String contractId, String projectId,Integer type, String header) {
         //查询任务信息
         List<Task> taskList = jdbcTemplate.query("select * from u_task where id in(" + taskIds + ")", new BeanPropertyRowMapper<>(Task.class));
         if (taskList.size() > 0) {
@@ -1416,13 +1417,23 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             Map<String, String> queryMap = jdbcTemplate.query("select * from u_information_query where id in(" + StringUtils.join(dataIdList, ",") + ")", new BeanPropertyRowMapper<>(InformationQuery.class)).stream().collect(Collectors.toMap(l -> l.getId() + "", l -> l.getWbsId() + ""));
             try {
                 for (Task task : taskList) {
-                    //重新保存
-                    long startTime_1 = System.currentTimeMillis();
-                    R result = this.saveNodePdf(classify, queryMap.get(task.getFormDataId()), contractId, projectId, header);
-                    long endTime_1 = System.currentTimeMillis();
-                    long executionTime_1 = endTime_1 - startTime_1;
-                    log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
-
+                    R result = new R();
+                    if (type == 1) {
+                        //重新保存
+                        long startTime_1 = System.currentTimeMillis();
+                        result = this.saveNodePdf(classify, queryMap.get(task.getFormDataId()), contractId, projectId, header);
+                        long endTime_1 = System.currentTimeMillis();
+                        long executionTime_1 = endTime_1 - startTime_1;
+                        log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");
+                    }else {
+                        boolean b = informationQueryService.update(new LambdaUpdateWrapper<InformationQuery>()
+                                .eq(InformationQuery::getId, task.getFormDataId())
+                                .set(InformationQuery::getEVisaPdfUrl, null));
+                        if (!b){
+                            throw new ServiceException("清空电签PDF失败");
+                        }
+                        result.setData("成功");
+                    }
                     //重新电签
                     if (result != null && "成功".equals(result.getData())) {
                         List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
@@ -1460,8 +1471,9 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 throw new ServiceException("重新保存PDF信息失败,原因:" + e.getMessage());
             }
 
+        }else {
+            throw new ServiceException("未获取到任务信息,操作失败!");
         }
-        throw new ServiceException("未获取到任务信息,操作失败!");
     }
 
     R saveNodePdf(String classify, String nodePKeyIds, String contractId, String projectId, String header) throws Exception {