Przeglądaj źródła

pdf批量下载和任务管理待办任务排序

lvy 1 miesiąc temu
rodzic
commit
f0a69741b3

+ 2 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/Task.java

@@ -178,4 +178,6 @@ public class Task extends BaseEntity {
     @ApiModelProperty("计量任务是否生成审计意见单 1是0否")
     private Integer isBuildAudit;
 
+    @ApiModelProperty("电签状态")
+    private Integer eStatus;
 }

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/BusinessTaskPageVO.java

@@ -58,4 +58,7 @@ public class BusinessTaskPageVO implements Serializable {
     @ApiModelProperty(value = "签字人员集合")
     private List<TaskParallel> taskApproveUserNamesList;
 
+    @ApiModelProperty("电签状态,用来判断是否同意过")
+    private Integer eStatus;
+
 }

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

@@ -1471,7 +1471,7 @@ public R<String> batchDownloadFileToZip(String ids, HttpServletResponse response
                     } else if (url != null && url.size() == 1) {
                         url_link = url.get(0);
                     }
-                    urls.add(url_link + "@@@" + result.get(i).getName() + "-" + result.get(i).getId());
+                    urls.add(url_link + "@@@" + result.get(i).getName());
                 }
 
                 //删除空数据

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

@@ -1303,7 +1303,8 @@ public class TaskController extends BladeController {
         int size = dto.getSize();
         //封装入参SQL
         List<Object> params = new ArrayList<>();
-        StringBuilder sqlString = new StringBuilder("SELECT * FROM u_task WHERE 1=1 AND is_deleted = 0 AND approval_type in(1,3,4,8,9,10)");
+        String sqlResult = "SELECT * ";
+        StringBuilder sqlString = new StringBuilder(" FROM u_task WHERE 1=1 AND is_deleted = 0 AND approval_type in(1,3,4,8,9,10)");
         if (ObjectUtil.isNotEmpty(dto.getTypeValue())) {
             sqlString.append(" AND type = ?");
             params.add(dto.getTypeValue());
@@ -1379,7 +1380,8 @@ public class TaskController extends BladeController {
                     sqlString.append("EXISTS (SELECT 1 FROM u_task_parallel WHERE u_task.process_instance_id = u_task_parallel.process_instance_id AND u_task_parallel.status = ? AND u_task_parallel.task_user = ?)");
                     params.add(1);
                     params.add(SecureUtil.getUserId());
-
+                    sqlResult = "SELECT *, (SELECT ifnull(e_visa_status, -1)  FROM u_task_parallel WHERE u_task.process_instance_id = u_task_parallel.process_instance_id AND u_task_parallel.STATUS = 1 " +
+                            "AND u_task_parallel.task_user = " + SecureUtil.getUserId() + " and is_deleted = 0 order by id desc limit 1) as e_status";
                     //如果是待办页面,且 任务状态下拉框 选择的不是 待审批状态 的任务,那么直接返回null
                 } else if (ObjectUtil.isNotEmpty(dto.getStatusValue()) && !dto.getStatusValue().equals(1)) {
                     return null;
@@ -1390,6 +1392,8 @@ public class TaskController extends BladeController {
                     params.add(1);
                     params.add(SecureUtil.getUserId());
                     sqlString.append(" AND status = 1");
+                    sqlResult = "SELECT *, (SELECT ifnull(e_visa_status, -1)  FROM u_task_parallel WHERE u_task.process_instance_id = u_task_parallel.process_instance_id AND u_task_parallel.STATUS = 1 " +
+                            "AND u_task_parallel.task_user = " + SecureUtil.getUserId() + " and is_deleted = 0 order by id desc limit 1) as e_status";
                 }
 
             } else if (dto.getSelectedType().equals(2)) { //已办页面
@@ -1407,7 +1411,7 @@ public class TaskController extends BladeController {
 //        sqlString.append(" AND (SELECT COUNT(1)  FROM u_information_query WHERE u_task.form_data_id = id and is_deleted=0) > 0");
 
         //总数量
-        String sqlCount = sqlString.toString().replace("*", "count(1)");
+        String sqlCount = "select count(1) " +  sqlString;
         Optional<Integer> totalCountOptional = Optional.ofNullable(jdbcTemplate.queryForObject(sqlCount, Integer.class, params.toArray()));
         int totalCount = totalCountOptional.orElse(0);
 
@@ -1423,13 +1427,17 @@ public class TaskController extends BladeController {
             }
         } else {
             //Web端默认倒叙
-            sqlString.append(" ORDER BY create_time DESC LIMIT ? OFFSET ?");
+            if (!sqlResult.equals("SELECT * ")) {
+                sqlString.append(" ORDER BY e_status asc, create_time DESC LIMIT ? OFFSET ?");
+            } else {
+                sqlString.append(" ORDER BY create_time DESC LIMIT ? OFFSET ?");
+            }
         }
         params.add(size);
         params.add((current - 1) * size);
 
         //执行SQL获取数据
-        String sqlPage = sqlString.toString();
+        String sqlPage = sqlResult + sqlString;
         List<Task> resultList = jdbcTemplate.query(
                 sqlPage,
                 new BeanPropertyRowMapper<>(Task.class),
@@ -1467,6 +1475,7 @@ public class TaskController extends BladeController {
                     vo.setApprovalType(task.getApprovalType());
                     vo.setFormDataId(task.getFormDataId());
                     vo.setProcessInstanceId(task.getProcessInstanceId());
+                    vo.setEStatus(task.getEStatus());
                     List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
                     if (taskParallelList != null && taskParallelList.size() > 0) {
                         //如果是垂直签,且是待办页面,判断是否是当前用户审批轮次,不是当前用户审批轮次就不显示该任务

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/utils/FileUtils.java

@@ -101,6 +101,7 @@ public class FileUtils {
                             fileName = url.substring(url.lastIndexOf("/") + 1);
                             symbol = "";
                         }
+                        fileName = fileName.replaceAll("\\\\", "_").replaceAll("/", "_");
                         zipos.putNextEntry(new ZipEntry(fileName + symbol));
 
                         os = new DataOutputStream(zipos);