Преглед на файлове

加入任务管理查询

wangliang преди 1 година
родител
ревизия
c1abd59eec

+ 154 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/TaskListResult.java

@@ -0,0 +1,154 @@
+package com.qmth.sop.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.sop.common.enums.TaskResultEnum;
+import com.qmth.sop.common.enums.TaskStatusEnum;
+import com.qmth.sop.common.enums.TaskTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 任务列表result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/3/25
+ */
+public class TaskListResult implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "id")
+    Long id;
+
+    @ApiModelProperty(value = "任务类型")
+    TaskTypeEnum type;
+
+    @ApiModelProperty(value = "任务状态,INIT:未开始,RUNNING:进行中,FINISH:已完成")
+    TaskStatusEnum status;
+
+    @ApiModelProperty(value = "数据结果,SUCCESS:成功,ERROR:失败")
+    TaskResultEnum result;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "创建人id")
+    Long createId;
+
+    @ApiModelProperty(value = "创建人")
+    String createName;
+
+    @ApiModelProperty(value = "创建时间")
+    Long createTime;
+
+    @ApiModelProperty(value = "是否有导入文件")
+    Boolean hasImportFile;
+
+    @ApiModelProperty(value = "是否有导出文件")
+    Boolean hasResultFile;
+
+    @ApiModelProperty(value = "是否有报告文件")
+    Boolean hasReportFile;
+
+    @ApiModelProperty(value = "重新生成次数")
+    int resetCount;
+
+    @ApiModelProperty(value = "人工错误原因")
+    String errorMessage;
+
+    public String getErrorMessage() {
+        return errorMessage;
+    }
+
+    public void setErrorMessage(String errorMessage) {
+        this.errorMessage = errorMessage;
+    }
+
+    public int getResetCount() {
+        return resetCount;
+    }
+
+    public void setResetCount(int resetCount) {
+        this.resetCount = resetCount;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public TaskTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(TaskTypeEnum type) {
+        this.type = type;
+    }
+
+    public TaskStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(TaskStatusEnum status) {
+        this.status = status;
+    }
+
+    public TaskResultEnum getResult() {
+        return result;
+    }
+
+    public void setResult(TaskResultEnum result) {
+        this.result = result;
+    }
+
+    public Long getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(Long createId) {
+        this.createId = createId;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Boolean getHasImportFile() {
+        return hasImportFile;
+    }
+
+    public void setHasImportFile(Boolean hasImportFile) {
+        this.hasImportFile = hasImportFile;
+    }
+
+    public Boolean getHasResultFile() {
+        return hasResultFile;
+    }
+
+    public void setHasResultFile(Boolean hasResultFile) {
+        this.hasResultFile = hasResultFile;
+    }
+
+    public Boolean getHasReportFile() {
+        return hasReportFile;
+    }
+
+    public void setHasReportFile(Boolean hasReportFile) {
+        this.hasReportFile = hasReportFile;
+    }
+}

+ 0 - 11
sop-business/src/main/java/com/qmth/sop/business/entity/TBTask.java

@@ -56,9 +56,6 @@ public class TBTask extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "导出文件路径")
     private String resultFilePath;
 
-    @ApiModelProperty(value = "错误数据文件路径")
-    private String errorFilePath;
-
     @ApiModelProperty(value = "报告路径")
     private String reportFilePath;
 
@@ -183,14 +180,6 @@ public class TBTask extends BaseEntity implements Serializable {
         this.resultFilePath = resultFilePath;
     }
 
-    public String getErrorFilePath() {
-        return errorFilePath;
-    }
-
-    public void setErrorFilePath(String errorFilePath) {
-        this.errorFilePath = errorFilePath;
-    }
-
     public String getReportFilePath() {
         return reportFilePath;
     }

+ 18 - 0
sop-business/src/main/java/com/qmth/sop/business/mapper/TBTaskMapper.java

@@ -1,7 +1,12 @@
 package com.qmth.sop.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.sop.business.bean.result.TaskListResult;
 import com.qmth.sop.business.entity.TBTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,17 @@ import com.qmth.sop.business.entity.TBTask;
  */
 public interface TBTaskMapper extends BaseMapper<TBTask> {
 
+    /**
+     * 查询任务列表
+     *
+     * @param iPage
+     * @param status
+     * @param type
+     * @param result
+     * @return
+     */
+    public IPage<TaskListResult> query(IPage<Map> iPage,
+                                       @Param("status") String status,
+                                       @Param("type") String type,
+                                       @Param("result") String result);
 }

+ 18 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TBTaskService.java

@@ -1,7 +1,11 @@
 package com.qmth.sop.business.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.sop.business.bean.result.TaskListResult;
 import com.qmth.sop.business.entity.TBTask;
+import com.qmth.sop.common.enums.TaskResultEnum;
+import com.qmth.sop.common.enums.TaskStatusEnum;
 import com.qmth.sop.common.enums.TaskTypeEnum;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -33,4 +37,18 @@ public interface TBTaskService extends IService<TBTask> {
      * @return
      */
     Map<String, Object> saveTask(TaskTypeEnum taskTypeEnum) throws Exception;
+
+    /**
+     * 查询任务列表
+     *
+     * @param iPage
+     * @param status
+     * @param type
+     * @param result
+     * @return
+     */
+    public IPage<TaskListResult> query(IPage<Map> iPage,
+                                       TaskStatusEnum status,
+                                       TaskTypeEnum type,
+                                       TaskResultEnum result);
 }

+ 17 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBTaskServiceImpl.java

@@ -1,7 +1,9 @@
 package com.qmth.sop.business.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
+import com.qmth.sop.business.bean.result.TaskListResult;
 import com.qmth.sop.business.entity.BasicAttachment;
 import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBTask;
@@ -9,6 +11,7 @@ import com.qmth.sop.business.mapper.TBTaskMapper;
 import com.qmth.sop.business.service.BasicAttachmentService;
 import com.qmth.sop.business.service.TBTaskService;
 import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.TaskResultEnum;
 import com.qmth.sop.common.enums.TaskStatusEnum;
 import com.qmth.sop.common.enums.TaskTypeEnum;
 import com.qmth.sop.common.enums.UploadFileEnum;
@@ -100,4 +103,18 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
         }
         return map;
     }
+
+    /**
+     * 查询任务列表
+     *
+     * @param iPage
+     * @param status
+     * @param type
+     * @param result
+     * @return
+     */
+    @Override
+    public IPage<TaskListResult> query(IPage<Map> iPage, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result) {
+        return this.baseMapper.query(iPage, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null);
+    }
 }

+ 0 - 1
sop-business/src/main/resources/db/install/sop_db.sql

@@ -1006,7 +1006,6 @@ CREATE TABLE `t_b_task` (
                             `import_file_name` varchar(100) DEFAULT NULL COMMENT '导入文件名',
                             `import_file_path` varchar(500) DEFAULT NULL COMMENT '导入文件路径',
                             `result_file_path` varchar(500) DEFAULT NULL COMMENT '导出文件路径',
-                            `error_file_path` varchar(500) DEFAULT NULL COMMENT '错误数据文件路径',
                             `report_file_path` varchar(500) DEFAULT NULL COMMENT '报告路径',
                             `create_time` bigint DEFAULT NULL COMMENT '创建时间',
                             `update_id` bigint DEFAULT NULL COMMENT '更新人',

+ 29 - 0
sop-business/src/main/resources/mapper/TBTaskMapper.xml

@@ -2,4 +2,33 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.sop.business.mapper.TBTaskMapper">
 
+    <select id="query" resultType="com.qmth.sop.business.bean.result.TaskListResult">
+        select
+        tbt.id,
+        tbt.`type`,
+        tbt.status,
+        tbt.`result`,
+        tbt.create_time as createTime,
+        tbt.create_id as createId,
+        su.real_name as createName,
+        if(ISNULL(tbt.import_file_path),false,true) as hasImportFile,
+        IF(tbt.result_file_path is null, IF(tbt.import_file_path is null, false, true), true) as hasResultFile,
+        if(ISNULL(tbt.report_file_path),false,true) as hasReportFile,
+        tbt.reset_count as resetCount,
+        tbt.error_message as errorMessage
+        from t_b_task tbt
+        left join sys_user su on su.id = tbt.create_id
+        <where>
+            <if test="status != null and status != ''">
+                and tbt.status = #{status}
+            </if>
+            <if test="type != null and type != ''">
+                and tbt.type = #{type}
+            </if>
+            <if test="result != null and result != ''">
+                and tbt.result = #{result}
+            </if>
+        </where>
+        order by tbt.create_time desc
+    </select>
 </mapper>

+ 4 - 0
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -75,6 +75,9 @@ public class SystemConstant {
     public static final String EXCEL_DATA = "excelData";
     public static final String EXCEL_DATA_ERROR = "excelDataError";
     public static final String EXCEL_ATTACHMENT = "excelAttachment";
+    public static final int PAGE_SIZE_MIN = 10;
+    public static final int PAGE_SIZE_MAX = 500;
+    public static final int PAGE_NUMBER_MIN = 1;
 
     /**
      * 系统配置
@@ -103,6 +106,7 @@ public class SystemConstant {
     public static final String PREFIX_URL_COMMON = "/admin/common";
     public static final String PREFIX_URL_USER = "/admin/user";
     public static final String PREFIX_URL_USER_ARCHIVES = "/admin/user/archives";
+    public static final String PREFIX_URL_TASK = "/admin/task";
 
     /**
      * 缓存配置

+ 2 - 0
sop-server/src/main/java/com/qmth/sop/server/api/ActivitiFromHtmlController.java

@@ -10,6 +10,7 @@ import com.qmth.sop.common.util.ResultUtil;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -24,6 +25,7 @@ import java.util.*;
 @Api(tags = "测试流程表单htmlController")
 @RestController
 @RequestMapping(SystemConstant.PREFIX_TEST_FLOW)
+@Validated
 public class ActivitiFromHtmlController {
     private final static Logger log = LoggerFactory.getLogger(ActivitiFromHtmlController.class);
 

+ 17 - 0
sop-server/src/main/java/com/qmth/sop/server/api/SysController.java

@@ -28,10 +28,12 @@ import org.slf4j.LoggerFactory;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.security.NoSuchAlgorithmException;
 import java.util.List;
@@ -49,6 +51,7 @@ import java.util.Optional;
 @Api(tags = "系统公用Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COMMON)
+@Validated
 public class SysController {
     private final static Logger log = LoggerFactory.getLogger(SysController.class);
 
@@ -138,4 +141,18 @@ public class SysController {
         }
         return ResultUtil.ok(new EditResult(basicAttachment.getId(), basicAttachmentService.filePreview(basicAttachment.getPath())));
     }
+
+    @ApiOperation(value = "下载导入模板")
+    @RequestMapping(value = "/download_import_template", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    public void downloadImportTemplate(@RequestParam(value = "type") String type, HttpServletResponse response) {
+//        List<String> templateEnums = Stream.of(ImportTemplateEnum.values()).map(m -> m.name()).collect(Collectors.toList());
+//        if (!templateEnums.contains(type)) {
+//            throw ExceptionResultEnum.ERROR.exception("不支持的模板类型");
+//        }
+//        ImportTemplateEnum importTemplateEnum = ImportTemplateEnum.valueOf(type);
+//        InputStream inputStream = this.getClass().getResourceAsStream(File.separator + "temps" + File.separator + importTemplateEnum.getTemplateName());
+//        // 导出
+//        FileUtil.outputFile(response, inputStream, importTemplateEnum.getFileName());
+    }
 }

+ 34 - 2
sop-server/src/main/java/com/qmth/sop/server/api/TBTaskController.java

@@ -1,9 +1,26 @@
 package com.qmth.sop.server.api;
 
-
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.sop.business.bean.result.TaskListResult;
+import com.qmth.sop.business.service.TBTaskService;
+import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.TaskResultEnum;
+import com.qmth.sop.common.enums.TaskStatusEnum;
+import com.qmth.sop.common.enums.TaskTypeEnum;
+import com.qmth.sop.common.util.Result;
+import com.qmth.sop.common.util.ResultUtil;
+import io.swagger.annotations.*;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+
 /**
  * <p>
  * 导入导出任务表 前端控制器
@@ -12,8 +29,23 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wangliang
  * @since 2023-07-17
  */
+@Api(tags = "任务管理Controller")
 @RestController
-@RequestMapping("/t-btask")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_TASK)
+@Validated
 public class TBTaskController {
 
+    @Resource
+    TBTaskService tbTaskService;
+
+    @ApiOperation(value = "任务管理查询接口")
+    @RequestMapping(value = "/query", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "任务管理列表信息", response = TaskListResult.class)})
+    public Result taskQuery(@ApiParam(value = "任务状态", required = false) @RequestParam(required = false) TaskStatusEnum status,
+                            @ApiParam(value = "任务类型", required = false) @RequestParam(required = false) TaskTypeEnum type,
+                            @ApiParam(value = "任务数据结果", required = false) @RequestParam(required = false) TaskResultEnum result,
+                            @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
+                            @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
+        return ResultUtil.ok(tbTaskService.query(new Page<>(pageNumber, pageSize), status, type, result));
+    }
 }

+ 2 - 0
sop-server/src/main/java/com/qmth/sop/server/api/UserArchivesController.java

@@ -11,6 +11,7 @@ import com.qmth.sop.common.enums.TaskTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import io.swagger.annotations.*;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -31,6 +32,7 @@ import java.util.Map;
 @Api(tags = "人员档案Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_USER_ARCHIVES)
+@Validated
 public class UserArchivesController {
 
     @Resource