Explorar o código

后管-电签监控
接口调整

LHB hai 3 días
pai
achega
3687882af1

+ 1 - 2
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TaskBatchMonitorVo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author LHB
@@ -16,6 +17,4 @@ public class TaskBatchMonitorVo {
     private long runTotal;
     @ApiModelProperty("等待数量")
     private long orderTotal;
-    @ApiModelProperty("列表数据")
-    private List<TaskBatchMonitorDTO> list;
 }

+ 8 - 2
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TaskBatchPage.java

@@ -3,6 +3,8 @@ package org.springblade.business.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * @author LHB
  */
@@ -19,7 +21,11 @@ public class TaskBatchPage {
     @ApiModelProperty("任务名称")
     private String taskName;
 
-//    private Integer current;
-//    private Integer size;
+    @ApiModelProperty("页码")
+    private Integer current;
+    @ApiModelProperty("数量")
+    private Integer size;
+    @ApiModelProperty("数量")
+    private List<String> formDataIds;
 
 }

+ 24 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskBatchController.java

@@ -33,12 +33,33 @@ public class TaskBatchController {
     private ITaskBatchService taskBatchService;
 
     /**
-     * 电签监控接口
+     * 获取状态统计接口
+     */
+    @PostMapping("/count")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "获取状态统计接口")
+    public R<TaskBatchMonitorVo> count(@RequestBody TaskBatchPage page){
+        return taskBatchService.count(page);
+    }
+
+
+    /**
+     * 电签监控-运行中接口
      */
     @PostMapping("/page")
     @ApiOperationSupport(order = 1)
-    @ApiOperation(value = "电签监控接口")
-    public R<TaskBatchMonitorVo> selectTaskBatchList(@RequestBody TaskBatchPage page){
+    @ApiOperation(value = "电签监控-运行中接口")
+    public R<List<TaskBatchMonitorDTO>> selectTaskBatchList(@RequestBody TaskBatchPage page){
         return taskBatchService.selectTaskBatchList(page);
     }
+
+    /**
+     * 电签监控-排队中接口
+     */
+    @PostMapping("/pageOrder")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "电签监控-排队中接口")
+    public R<IPage<TaskBatchMonitorDTO>> pageOrder(@RequestBody TaskBatchPage page){
+        return taskBatchService.pageOrder(page);
+    }
 }

+ 5 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskBatchMapper.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.business.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.lettuce.core.dynamic.annotation.Param;
 import org.springblade.business.dto.TaskBatchMonitorDTO;
 import org.springblade.business.dto.TaskBatchPage;
@@ -38,5 +40,7 @@ public interface TaskBatchMapper extends BaseMapper<TaskBatch> {
 
     List<TaskBatch>  queryDataInfo();
 
-    List<TaskBatchMonitorDTO> selectTaskBatchList(@Param("query") TaskBatchPage page);
+    IPage<TaskBatchMonitorDTO> selectTaskBatchList(Page page, @Param("query") TaskBatchPage query);
+
+    List<TaskBatchMonitorDTO> selectTaskBatchList2(@Param("query") TaskBatchPage query);
 }

+ 60 - 4
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskBatchMapper.xml

@@ -53,9 +53,59 @@
                 ORDER BY
                     create_time
             ) a
-            LEFT JOIN u_information_query b ON a.formDataId = b.id
-            LEFT JOIN m_contract_info c ON b.contract_id = c.id
-            LEFT JOIN m_project_info d ON b.project_id = d.id
+            INNER JOIN u_information_query b ON a.formDataId = b.id
+            INNER JOIN m_contract_info c ON b.contract_id = c.id
+            INNER JOIN m_project_info d ON b.project_id = d.id
+        <where>
+            <if test="query.type != null">
+                AND b.type = #{query.type}
+            </if>
+            <if test="query.projectId != null">
+                AND b.project_id = #{query.projectId}
+            </if>
+            <if test="query.contractId != null">
+                AND b.contractId = #{query.contractId}
+            </if>
+            <if test="query.taskName != null and query.taskName != ''">
+                AND b.name like concat('%',#{query.taskName},'%')
+            </if>
+            <if test="query.formDataIds != null and query.formDataIds.size() != 0">
+                AND a.formDataId not in
+                <foreach collection="query.formDataIds" item="formDataId" open="(" close=")" separator=",">
+                    #{formDataId}
+                </foreach>
+            </if>
+        </where>
+
+    </select>
+    <select id="selectTaskBatchList2" resultType="org.springblade.business.dto.TaskBatchMonitorDTO">
+        SELECT
+            b.type,
+            d.project_name projectName,
+            c.contract_name contractName,
+            b.NAME taskName,
+            a.nick_name userName,
+            DATE_FORMAT(a.create_time,'%H:%i') createTime,
+            1 signType,
+            b.pdf_url_size pdfUrlSize
+        FROM
+            (
+                SELECT
+                    json_data ->> '$.formDataId' formDataId,
+                    GROUP_CONCAT( nick_name ) nick_name,
+                    create_time
+                FROM
+                    u_task_batch a
+                WHERE
+                    sign_type = 1
+                GROUP BY
+                    json_data ->> '$.formDataId'
+                ORDER BY
+                    create_time
+            ) a
+        INNER JOIN u_information_query b ON a.formDataId = b.id
+        INNER JOIN m_contract_info c ON b.contract_id = c.id
+        INNER JOIN m_project_info d ON b.project_id = d.id
         <where>
             <if test="type != null">
                 AND b.type = #{type}
@@ -69,8 +119,14 @@
             <if test="taskName != null and taskName != ''">
                 AND b.name like concat('%',#{taskName},'%')
             </if>
-        </where>
 
+            <if test="formDataIds != null and formDataIds.size() != 0">
+                AND a.formDataId  in
+                <foreach collection="formDataIds" item="formDataId" open="(" close=")" separator=",">
+                    #{formDataId}
+                </foreach>
+            </if>
+        </where>
     </select>
 
 </mapper>

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

@@ -42,5 +42,9 @@ public interface ITaskBatchService extends BaseService<TaskBatch> {
 
     List<TaskBatch> queryDataInfo();
 
-    R<TaskBatchMonitorVo> selectTaskBatchList(TaskBatchPage page);
+    R<List<TaskBatchMonitorDTO>> selectTaskBatchList(TaskBatchPage page);
+
+    R<TaskBatchMonitorVo> count(TaskBatchPage page);
+
+    R<IPage<TaskBatchMonitorDTO>> pageOrder(TaskBatchPage page);
 }

+ 68 - 25
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskBatchServiceImpl.java

@@ -31,6 +31,7 @@ import org.springblade.business.service.ITaskBatchService;
 import org.springblade.business.utils.TimeConverter;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.evisa.feign.EVisaClient;
 import org.springblade.evisa.vo.CertBeanVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,10 +42,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -76,30 +74,57 @@ public class TaskBatchServiceImpl extends BaseServiceImpl<TaskBatchMapper, TaskB
     }
 
     @Override
-    public R<TaskBatchMonitorVo> selectTaskBatchList(TaskBatchPage page) {
+    public R<List<TaskBatchMonitorDTO>> selectTaskBatchList(TaskBatchPage page) {
         //初始化查询参数
-        page.setTaskType(page.getTaskType() == null ? 1 : page.getTaskType());
+        page.setTaskType(1);
+
+        List<TaskBatchMonitorDTO> data = new ArrayList<>();
+        //获取合同段id
+        if (page.getTaskType() == 1) {
+            Set<String> keys = redisTemplate.keys("sign-*");
+            if (CollectionUtil.isNotEmpty(keys)) {
+                List<String> strings = new ArrayList<>();
+                keys.forEach(f -> {
+                    strings.add(f.replace("sign-", ""));
+                });
+                if (CollectionUtil.isNotEmpty(strings)) {
+                    page.setFormDataIds(strings);
+                    List<TaskBatchMonitorDTO> list = baseMapper.selectTaskBatchList2(page);
+                    for (TaskBatchMonitorDTO taskBatchMonitorDTO : list) {
+                        String value = redisTemplate.opsForValue().get("sign-" + taskBatchMonitorDTO.getFormDataId());
+                        if (StringUtils.isNotEmpty(value)) {
+                            taskBatchMonitorDTO.setTaskType(1);
+                            //开始时间
+                            DateTime startTime = DateUtil.parse(value, "yyyy-MM-dd HH:MM:ss");
+                            taskBatchMonitorDTO.setStartTime(startTime.toString("HH:MM"));
+                            //预计完成时间
+                            if (taskBatchMonitorDTO.getPdfUrlSize() != null && taskBatchMonitorDTO.getPdfUrlSize() != 0) {
+                                Long pdfUrlSize = taskBatchMonitorDTO.getPdfUrlSize();
+                                //判断偏移多少秒  每50M  30秒
+                                int time = calculateExecutionTime((double) pdfUrlSize / 1024 / 1024);
+
+                                DateTime dateTime = DateUtil.offsetSecond(startTime, time);
+
+                                String s = TimeConverter.secondsToMinutesSeconds(time);
+                                taskBatchMonitorDTO.setFinishTime(s + "(" + dateTime.toString("HH:mm") + ")");
+                            }
+                            data.add(taskBatchMonitorDTO);
+                        }
+                    }
+                }
+            }
+        }
+        return R.data(data);
+    }
 
-        List<TaskBatchMonitorDTO> list = baseMapper.selectTaskBatchList(page);
+    @Override
+    public R<TaskBatchMonitorVo> count(TaskBatchPage page) {
+        List<TaskBatchMonitorDTO> list = baseMapper.selectTaskBatchList2(page);
         for (TaskBatchMonitorDTO taskBatchMonitorDTO : list) {
             String value = redisTemplate.opsForValue().get("sign-" + taskBatchMonitorDTO.getFormDataId());
-            if(StringUtils.isNotEmpty(value)){
+            if (StringUtils.isNotEmpty(value)) {
                 taskBatchMonitorDTO.setTaskType(1);
-                //开始时间
-                DateTime startTime = DateUtil.parse(value, "yyyy-MM-dd HH:MM:ss");
-                taskBatchMonitorDTO.setStartTime(startTime.toString("HH:MM"));
-                //预计完成时间
-                if(taskBatchMonitorDTO.getPdfUrlSize() != null && taskBatchMonitorDTO.getPdfUrlSize() != 0){
-                    Long pdfUrlSize = taskBatchMonitorDTO.getPdfUrlSize();
-                    //判断偏移多少秒  每50M  30秒
-                    int time = calculateExecutionTime((double) pdfUrlSize / 1024 / 1024);
-
-                    DateTime dateTime = DateUtil.offsetSecond(startTime, time);
-
-                    String s = TimeConverter.secondsToMinutesSeconds(time);
-                    taskBatchMonitorDTO.setFinishTime(s + "(" + dateTime.toString("HH:mm") + ")");
-                }
-            }else{
+            } else {
                 taskBatchMonitorDTO.setTaskType(2);
             }
         }
@@ -107,19 +132,37 @@ public class TaskBatchServiceImpl extends BaseServiceImpl<TaskBatchMapper, TaskB
         boolean jarRunning = false;
         try {
             jarRunning = isJarRunning("blade-e-visa.jar");
-        } catch (Exception e) {}
+        } catch (Exception e) {
+        }
         long runTotal = list.stream().filter(f -> f.getTaskType() == 1).count();
         long orderTotal = list.stream().filter(f -> f.getTaskType() == 2).count();
         TaskBatchMonitorVo taskBatchMonitorVo = new TaskBatchMonitorVo();
         taskBatchMonitorVo.setStatus(jarRunning);
         taskBatchMonitorVo.setRunTotal(runTotal);
         taskBatchMonitorVo.setOrderTotal(orderTotal);
-        taskBatchMonitorVo.setList(list.stream().filter(f -> Objects.equals(f.getTaskType(), page.getTaskType())).collect(Collectors.toList()));
         return R.data(taskBatchMonitorVo);
     }
 
+    @Override
+    public R<IPage<TaskBatchMonitorDTO>> pageOrder(TaskBatchPage page) {
+        //初始化查询参数
+        page.setTaskType(2);
+
+        Set<String> keys = redisTemplate.keys("sign-*");
+        if (CollectionUtil.isNotEmpty(keys)) {
+            List<String> strings = new ArrayList<>();
+            keys.forEach(f -> {
+                strings.add(f.replace("sign-", ""));
+            });
+            page.setFormDataIds(strings);
+        }
+        IPage<TaskBatchMonitorDTO> taskBatchMonitorDTOIPage = baseMapper.selectTaskBatchList(new Page<>(page.getCurrent(),page.getSize()),page);
+        return R.data(taskBatchMonitorDTOIPage);
+    }
+
     /**
      * 根据文件大小计算执行时间
+     *
      * @param fileSizeMB 文件大小(MB)
      * @return 执行时间(秒)
      */