xiaof %!s(int64=4) %!d(string=hai) anos
pai
achega
0937176172

+ 17 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/EditResult.java

@@ -31,6 +31,9 @@ public class EditResult implements Serializable {
     @ApiModelProperty(value = "附件url")
     String url;
 
+    @ApiModelProperty(value = "pdf总页数")
+    Integer pages;
+
     public String getUrl() {
         return url;
     }
@@ -55,6 +58,14 @@ public class EditResult implements Serializable {
         this.id = id;
     }
 
+    public Integer getPages() {
+        return pages;
+    }
+
+    public void setPages(Integer pages) {
+        this.pages = pages;
+    }
+
     public Long getUpdateTime() {
         if (Objects.isNull(updateTime)) {
             return System.currentTimeMillis();
@@ -81,6 +92,12 @@ public class EditResult implements Serializable {
         this.url = url;
     }
 
+    public EditResult(Long id, String url, Integer pages) {
+        this.id = id;
+        this.url = url;
+        this.pages = pages;
+    }
+
     public EditResult(String url) {
         this.url = url;
     }

+ 114 - 25
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/WorkResult.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.bean.result;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.common.contant.SystemConstant;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -30,14 +31,35 @@ public class WorkResult implements Serializable {
     @ApiModelProperty(value = "课程代码")
     String courseCode;
 
+    @ApiModelProperty(value = "适用专业")
+    String specialty;
+
+    @ApiModelProperty(value = "题卡规则ID")
+    String cardRuleId;
+
+    @ApiModelProperty(value = "题卡规则名称")
+    String cardRuleName;
+
+    @ApiModelProperty(value = "用户ID")
+    String userId;
+
+    @ApiModelProperty(value = "用户名称")
+    String userName;
+
+    @ApiModelProperty(value = "命题开始时间")
+    Long startTime;
+
     @ApiModelProperty(value = "命题结束时间")
     Long endTime;
 
+    @ApiModelProperty(value = "状态")
+    String status;
+
     @ApiModelProperty(value = "剩余天数")
     Integer remainCount;
 
-    @ApiModelProperty(value = "命题老师")
-    String questionName;
+    @ApiModelProperty(value = "提交人")
+    Long createId;
 
     @ApiModelProperty(value = "提交时间")
     Long createTime;
@@ -45,29 +67,8 @@ public class WorkResult implements Serializable {
     @ApiModelProperty(value = "待办条数")
     Integer count;
 
-    public String getQuestionName() {
-        return questionName;
-    }
-
-    public void setQuestionName(String questionName) {
-        this.questionName = questionName;
-    }
-
-    public Long getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Long createTime) {
-        this.createTime = createTime;
-    }
-
-    public Integer getCount() {
-        return count;
-    }
-
-    public void setCount(Integer count) {
-        this.count = count;
-    }
+    @ApiModelProperty(value = "当前服务器时间")
+    Long systemCurrentTime;
 
     public Long getId() {
         return id;
@@ -101,6 +102,54 @@ public class WorkResult implements Serializable {
         this.courseCode = courseCode;
     }
 
+    public String getSpecialty() {
+        return specialty;
+    }
+
+    public void setSpecialty(String specialty) {
+        this.specialty = specialty;
+    }
+
+    public String getCardRuleId() {
+        return cardRuleId;
+    }
+
+    public void setCardRuleId(String cardRuleId) {
+        this.cardRuleId = cardRuleId;
+    }
+
+    public String getCardRuleName() {
+        return cardRuleName;
+    }
+
+    public void setCardRuleName(String cardRuleName) {
+        this.cardRuleName = cardRuleName;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Long getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Long startTime) {
+        this.startTime = startTime;
+    }
+
     public Long getEndTime() {
         return endTime;
     }
@@ -109,6 +158,14 @@ public class WorkResult implements Serializable {
         this.endTime = endTime;
     }
 
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
     public Integer getRemainCount() {
         return remainCount;
     }
@@ -116,4 +173,36 @@ public class WorkResult implements Serializable {
     public void setRemainCount(Integer remainCount) {
         this.remainCount = remainCount;
     }
+
+    public Long getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(Long createId) {
+        this.createId = createId;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public Long getSystemCurrentTime() {
+        return System.currentTimeMillis();
+    }
+
+    public void setSystemCurrentTime(Long systemCurrentTime) {
+        this.systemCurrentTime = systemCurrentTime;
+    }
 }

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/BasicAttachment.java

@@ -65,6 +65,9 @@ public class BasicAttachment implements Serializable {
     @TableField("obj_id")
     private Long objId;
 
+    @TableField(exist = false)
+    private Integer pages;
+
     public BasicAttachment() {
 
     }
@@ -167,4 +170,12 @@ public class BasicAttachment implements Serializable {
     public void setCreateId(Long createId) {
         this.createId = createId;
     }
+
+    public Integer getPages() {
+        return pages;
+    }
+
+    public void setPages(Integer pages) {
+        this.pages = pages;
+    }
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -49,7 +49,7 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
     IPage<WorkResult> queryByMyWork(IPage<Map> iPage,
                                     @Param("userId") Long userId,
                                     @Param("schoolId") Long schoolId,
-                                    @Param("status") String status);
+                                    @Param("status") String...status);
 
     /**
      * 查询我的工作台
@@ -63,5 +63,5 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
     IPage<WorkResult> queryByMyWorkSubmit(IPage<Map> iPage,
                                           @Param("userId") Long userId,
                                           @Param("schoolId") Long schoolId,
-                                          @Param("status") String status);
+                                          @Param("status") String...status);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -71,7 +71,7 @@ public interface ExamTaskService extends IService<ExamTask> {
      * @param status
      * @return
      */
-    IPage<WorkResult> queryByMyWork(IPage<Map> iPage, Long userId, Long schoolId, ExamStatusEnum status);
+    IPage<WorkResult> queryByMyWork(IPage<Map> iPage, Long userId, Long schoolId, String... status);
 
     /**
      * 查询我的工作台-审核待办

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicAttachmentServiceImpl.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyun.oss.common.utils.BinaryUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.itextpdf.text.pdf.PdfReader;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.config.DictionaryConfig;
 import com.qmth.distributed.print.business.entity.BasicAttachment;
@@ -331,6 +332,14 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
 
             basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, format, b, fileMd5, requestUser.getId(), objId);
             save(basicAttachment);
+
+            // pdf需要读取总页数
+            Integer pages = 0;
+            if (".pdf".equals(format)) {
+                PdfReader pdfReader = new PdfReader(file.getInputStream());
+                pages = pdfReader.getNumberOfPages();
+            }
+            basicAttachment.setPages(pages);
         } catch (Exception e) {
             log.error("请求出错", e);
             deleteAttachment(basicAttachment);

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -409,8 +409,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
      * @return
      */
     @Override
-    public IPage<WorkResult> queryByMyWork(IPage<Map> iPage, Long userId, Long schoolId, ExamStatusEnum status) {
-        return examTaskMapper.queryByMyWork(iPage, userId, schoolId, Objects.nonNull(status) ? status.name() : null);
+    public IPage<WorkResult> queryByMyWork(IPage<Map> iPage, Long userId, Long schoolId, String...status) {
+        return examTaskMapper.queryByMyWork(iPage, userId, schoolId, status);
     }
 
     /**

+ 4 - 0
distributed-print-business/src/main/resources/db/init-table.sql

@@ -394,6 +394,10 @@ CREATE TABLE `exam_detail` (
   `print_progress` double DEFAULT NULL,
   `print_user` varchar(30) DEFAULT NULL COMMENT '打印员:一个考场只能被一个打印员认领',
   `package_code` varchar(30) DEFAULT NULL COMMENT '考场代码:卷袋贴、签到表上条码',
+  `paper_pages_a3` INT(2) DEFAULT NULL COMMENT '试卷单科次准印量A3(页)',
+  `card_pages_a3` INT(2) DEFAULT NULL COMMENT '题卡单科次准印量A3(页)',
+  `pages_a3` INT(2) DEFAULT NULL COMMENT 'A3印量小计(页)',
+  `pages_a4` INT(2) DEFAULT NULL COMMENT 'A4印量小计(页)',
   `create_id` bigint DEFAULT NULL,
   `create_time` bigint DEFAULT NULL,
   `update_id` bigint DEFAULT NULL,

+ 25 - 15
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -363,14 +363,6 @@
 
     <select id="queryByMyWorkSubmit" resultType="com.qmth.distributed.print.business.bean.result.WorkResult">
         <include refid="myworkCommonHead" />
-        ,et.create_time as createTime,
-        (
-        select
-        t.real_name
-        from
-        sys_user t
-        where
-        t.id = et.user_id) as questionName
         <include refid="myworkCommonMiddle" />
         <where>
             <include refid="myworkCommonFoot" />
@@ -378,17 +370,32 @@
     </select>
 
     <sql id="myworkCommonHead">
-        select
+        SELECT
             et.id,
-            et.paper_number as paperNumber,
-            et.course_name as courseName,
-            et.course_code as courseCode,
-            et.end_time as endTime
+            et.school_id schoolId,
+            et.course_code courseCode,
+            et.course_name courseName,
+            et.specialty,
+            et.paper_number paperNumber,
+            et.card_rule_id cardRuleId,
+            case et.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
+            et.user_id userId,
+            c.real_name userName,
+            et.start_time startTime,
+            et.end_time endTime,
+            et.status,
+            et.enable,
+            et.create_id createId,
+            et.create_time createTime
     </sql>
 
     <sql id="myworkCommonMiddle">
-        from
+        FROM
             exam_task et
+                LEFT JOIN
+            basic_card_rule b ON et.card_rule_id = b.id
+                LEFT JOIN
+            sys_user c ON et.user_id = c.id
     </sql>
 
     <sql id="myworkCommonFoot">
@@ -404,7 +411,10 @@
             and et.school_id = #{schoolId}
         </if>
         <if test="status != null and status != ''">
-            and et.status = #{status}
+            and et.status in
+            <foreach item="item" collection="status" separator="," open="(" close=")" index="">
+                #{item}
+            </foreach>
         </if>
         and et.enable = 1
     </sql>

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -284,7 +284,8 @@ public class SysController {
                 ResultUtil.error(e.getMessage());
             }
         }
-        return ResultUtil.ok(new EditResult(basicAttachment.getId(), commonService.filePreview(basicAttachment.getPath())));
+
+        return ResultUtil.ok(new EditResult(basicAttachment.getId(), commonService.filePreview(basicAttachment.getPath()), basicAttachment.getPages()));
     }
 
     @ApiOperation(value = "文件下载接口")

+ 4 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -46,7 +46,7 @@ public class WorkController {
     public Result examTaskReady(@RequestParam(value = "pageNumber", required = true) Integer pageNumber,
                                 @RequestParam(value = "pageSize", required = true) Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(pageNumber, pageSize), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY));
+        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(pageNumber, pageSize), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY.name(), ExamStatusEnum.STAGE.name()));
     }
 
     @ApiOperation(value = "命题待办计数接口")
@@ -54,7 +54,7 @@ public class WorkController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
     public Result examTaskReadyCount() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY).getRecords().size());
+        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), sysUser.getId(), sysUser.getSchoolId(), ExamStatusEnum.READY.name(),  ExamStatusEnum.STAGE.name()).getRecords().size());
     }
 
     @ApiOperation(value = "命题分配待办接口")
@@ -63,7 +63,7 @@ public class WorkController {
     public Result examTaskNew(@RequestParam(value = "pageNumber", required = true) Integer pageNumber,
                               @RequestParam(value = "pageSize", required = true) Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(pageNumber, pageSize), null, sysUser.getSchoolId(), ExamStatusEnum.NEW));
+        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(pageNumber, pageSize), null, sysUser.getSchoolId(), ExamStatusEnum.NEW.name()));
     }
 
     @ApiOperation(value = "命题分配待办计数接口")
@@ -71,7 +71,7 @@ public class WorkController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = WorkResult.class)})
     public Result examTaskNewCount() {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), null, sysUser.getSchoolId(), ExamStatusEnum.NEW).getRecords().size());
+        return ResultUtil.ok(examTaskService.queryByMyWork(new Page<>(SystemConstant.PAGE_NUMBER, SystemConstant.PAGE_SIZE), null, sysUser.getSchoolId(), ExamStatusEnum.NEW.name()).getRecords().size());
     }
 
     @ApiOperation(value = "审核待办接口")