Browse Source

bug修改

xiaof 4 years ago
parent
commit
273b661c37
18 changed files with 344 additions and 46 deletions
  1. 54 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientPrintTaskDto.java
  2. 43 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ClientStatus.java
  3. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java
  4. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/BasicExamRuleService.java
  5. 3 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ClientService.java
  6. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CommonService.java
  7. 6 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java
  8. 4 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamRuleServiceImpl.java
  9. 18 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java
  10. 10 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientStatusServiceImpl.java
  11. 46 16
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java
  12. 44 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  13. 0 12
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/OssUtil.java
  14. 6 3
      distributed-print-business/src/main/resources/db/init-table.sql
  15. 1 1
      distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml
  16. 98 0
      distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml
  17. 2 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamRuleController.java
  18. 3 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

+ 54 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientPrintTaskDto.java

@@ -20,9 +20,15 @@ public class ClientPrintTaskDto {
     private Integer totalSubjects;
     private Integer totalSubjects;
     private String status;
     private String status;
     private Boolean validate;
     private Boolean validate;
+    private Boolean isDownload;
+    private Boolean isTry;
+    private Boolean isPass;
+    private String printUser;
     private Long printStartTime;
     private Long printStartTime;
     private Long printEndTime;
     private Long printEndTime;
     private String packageCode;
     private String packageCode;
+    private Long createId;
+    private Long createTime;
 
 
     public String getExamDetailId() {
     public String getExamDetailId() {
         return examDetailId;
         return examDetailId;
@@ -144,6 +150,38 @@ public class ClientPrintTaskDto {
         this.validate = validate;
         this.validate = validate;
     }
     }
 
 
+    public Boolean getDownload() {
+        return isDownload;
+    }
+
+    public void setDownload(Boolean download) {
+        isDownload = download;
+    }
+
+    public Boolean getTry() {
+        return isTry;
+    }
+
+    public void setTry(Boolean aTry) {
+        isTry = aTry;
+    }
+
+    public Boolean getPass() {
+        return isPass;
+    }
+
+    public void setPass(Boolean pass) {
+        isPass = pass;
+    }
+
+    public String getPrintUser() {
+        return printUser;
+    }
+
+    public void setPrintUser(String printUser) {
+        this.printUser = printUser;
+    }
+
     public Long getPrintStartTime() {
     public Long getPrintStartTime() {
         return printStartTime;
         return printStartTime;
     }
     }
@@ -167,4 +205,20 @@ public class ClientPrintTaskDto {
     public void setPackageCode(String packageCode) {
     public void setPackageCode(String packageCode) {
         this.packageCode = packageCode;
         this.packageCode = packageCode;
     }
     }
+
+    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;
+    }
 }
 }

+ 43 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ClientStatus.java

@@ -36,6 +36,25 @@ public class ClientStatus extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     @TableField("exam_task_id")
     @TableField("exam_task_id")
     private Long examTaskId;
     private Long examTaskId;
+
+    /**
+     * 课程代码
+     */
+    @TableField("course_code")
+    private String courseCode;
+
+    /**
+     * 课程名称
+     */
+    @TableField("course_name")
+    private String courseName;
+
+    /**
+     * 试卷编号
+     */
+    @TableField("paper_number")
+    private String paperNumber;
+
     /**
     /**
      * 是否打样
      * 是否打样
      */
      */
@@ -82,6 +101,30 @@ public class ClientStatus extends BaseEntity implements Serializable {
         this.examTaskId = examTaskId;
         this.examTaskId = examTaskId;
     }
     }
 
 
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
     public Boolean getTry() {
     public Boolean getTry() {
         return isTry;
         return isTry;
     }
     }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
@@ -30,4 +31,6 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
                                              @Param("orgIds") Set<Long> orgIds);
                                              @Param("orgIds") Set<Long> orgIds);
 
 
     List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds);
     List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds);
+
+    IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, @Param("schoolId") Long schoolId, @Param("machineCode") Long machineCode, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("orgIds") Set<Long> orgIds);
 }
 }

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

@@ -17,5 +17,5 @@ public interface BasicExamRuleService extends IService<BasicExamRule> {
 
 
     BasicExamRule getBySchoolId(Long schoolId);
     BasicExamRule getBySchoolId(Long schoolId);
 
 
-    boolean saveExamRule(BasicExamRule examRule);
+    String saveExamRule(BasicExamRule examRule);
 }
 }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ClientService.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto;
+import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -22,4 +23,6 @@ public interface ClientService {
     IPage<ClientExamStudentDto> listStudent(Long schoolId, Long examDetailId, String ticketNumber, String studentName, String courseCode, Integer pageNumber, Integer pageSize);
     IPage<ClientExamStudentDto> listStudent(Long schoolId, Long examDetailId, String ticketNumber, String studentName, String courseCode, Integer pageNumber, Integer pageSize);
 
 
     Map<String, Object> getReprintData(Long schoolId, Long examDetailId, String ticketNumber, String type);
     Map<String, Object> getReprintData(Long schoolId, Long examDetailId, String ticketNumber, String type);
+
+    IPage<ClientPrintTaskDto> listClientPrintTask(Long schoolId, Long machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Integer pageNumber, Integer pageSize);
 }
 }

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

@@ -15,6 +15,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchAlgorithmException;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 
 
 /**
 /**
@@ -102,7 +103,7 @@ public interface CommonService {
      * @param attachmentId
      * @param attachmentId
      * @return
      * @return
      */
      */
-    public String filePreview(String attachmentId, Boolean isExpire);
+    public Map<String, String> filePreview(String attachmentId, Boolean isExpire);
 
 
     /**
     /**
      * 题卡html文件上传,读取文件内容
      * 题卡html文件上传,读取文件内容

+ 6 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java

@@ -1,7 +1,9 @@
 package com.qmth.distributed.print.business.service;
 package com.qmth.distributed.print.business.service;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
@@ -9,9 +11,11 @@ import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.Set;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -70,4 +74,6 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
     Boolean removePrintPlan(DeleteParams deleteParams);
     Boolean removePrintPlan(DeleteParams deleteParams);
 
 
     List<Map<String, String>> tempalteView(Long printPlanId);
     List<Map<String, String>> tempalteView(Long printPlanId);
+
+    IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, Long schoolId, Long machineCode, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Set<Long> orgIds);
 }
 }

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamRuleServiceImpl.java

@@ -50,7 +50,7 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
     }
     }
 
 
     @Override
     @Override
-    public boolean saveExamRule(BasicExamRule examRule) {
+    public String saveExamRule(BasicExamRule examRule) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         examRule.setSchoolId(schoolId);
         examRule.setSchoolId(schoolId);
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -61,7 +61,7 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
             examRule.setId(SystemConstant.getDbUuid());
             examRule.setId(SystemConstant.getDbUuid());
             examRule.setCreateId(sysUser.getId());
             examRule.setCreateId(sysUser.getId());
             examRule.setCreateTime(System.currentTimeMillis());
             examRule.setCreateTime(System.currentTimeMillis());
-            return this.save(examRule);
+            this.save(examRule);
         }
         }
         // 修改
         // 修改
         else {
         else {
@@ -101,7 +101,8 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
             examRule.setUpdateId(sysUser.getId());
             examRule.setUpdateId(sysUser.getId());
             examRule.setUpdateTime(System.currentTimeMillis());
             examRule.setUpdateTime(System.currentTimeMillis());
 
 
-            return this.updateById(examRule);
+            this.updateById(examRule);
         }
         }
+        return examRule.getId().toString();
     }
     }
 }
 }

+ 18 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -2,9 +2,11 @@ package com.qmth.distributed.print.business.service.impl;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto;
 import com.qmth.distributed.print.business.bean.dto.ClientPrintDataDto;
 import com.qmth.distributed.print.business.bean.dto.ClientPrintDataDto;
+import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.entity.BasicAttachment;
 import com.qmth.distributed.print.business.entity.BasicAttachment;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
@@ -109,7 +111,8 @@ public class ClientServiceImpl implements ClientService {
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentCode(studentCode);
             printDataDto.setStudentCode(studentCode);
             printDataDto.setPaperType(paperType);
             printDataDto.setPaperType(paperType);
-            printDataDto.setUrl(commonService.filePreview(attachmentId, false));
+            Map<String, String> urlMap = commonService.filePreview(attachmentId, false);
+            printDataDto.setUrl(urlMap.get("pathUrl"));
             return printDataDto;
             return printDataDto;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
         finalMap.put("card", cardList);
         finalMap.put("card", cardList);
@@ -120,24 +123,35 @@ public class ClientServiceImpl implements ClientService {
         String ordinaryContent = examPrintPlan.getOrdinaryContent();
         String ordinaryContent = examPrintPlan.getOrdinaryContent();
         List<Map> variableList = JSONObject.parseArray(variableContent, Map.class);
         List<Map> variableList = JSONObject.parseArray(variableContent, Map.class);
         List<Map> otherList = new ArrayList<>();
         List<Map> otherList = new ArrayList<>();
-        // todo 签到表、卷袋贴生成html路径
         for (Map variable : variableList) {
         for (Map variable : variableList) {
             Map vMap = new HashMap();
             Map vMap = new HashMap();
             vMap.put("type", variable.get("type"));
             vMap.put("type", variable.get("type"));
-            vMap.put("url", commonService.filePreview(variable.get("attachmentId").toString()));
+            Map<String, String> urlMap = commonService.filePreview(variable.get("attachmentId").toString(), false);
+            vMap.put("htmlUrl", urlMap.get("htmlUrl"));
+            vMap.put("pdfUrl", urlMap.get("pdfUrl"));
             otherList.add(vMap);
             otherList.add(vMap);
         }
         }
         List<Map> ordinaryList = JSONObject.parseArray(ordinaryContent, Map.class);
         List<Map> ordinaryList = JSONObject.parseArray(ordinaryContent, Map.class);
         for (Map ordinary : ordinaryList) {
         for (Map ordinary : ordinaryList) {
             Map vMap = new HashMap();
             Map vMap = new HashMap();
             vMap.put("type", ordinary.get("type"));
             vMap.put("type", ordinary.get("type"));
-            vMap.put("url", commonService.filePreview(ordinary.get("attachmentId").toString()));
+            Map<String, String> urlMap = commonService.filePreview(ordinary.get("attachmentId").toString(), false);
+            vMap.put("htmlUrl", urlMap.get("htmlUrl"));
+            vMap.put("pdfUrl", urlMap.get("pdfUrl"));
             otherList.add(vMap);
             otherList.add(vMap);
         }
         }
         finalMap.put("other", otherList);
         finalMap.put("other", otherList);
         return finalMap;
         return finalMap;
     }
     }
 
 
+    @Override
+    public IPage<ClientPrintTaskDto> listClientPrintTask(Long schoolId, Long machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Integer pageNumber, Integer pageSize) {
+        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        Page<ClientPrintTaskDto> page = new Page<>(pageNumber, pageSize);
+        IPage<ClientPrintTaskDto> pirntTaskDtoIPage = examPrintPlanService.listClientPrintTask(page, schoolId,machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime,isDownload,validate, orgIds);
+        return pirntTaskDtoIPage;
+    }
+
     /**
     /**
      * 根据考场生成试卷map
      * 根据考场生成试卷map
      *
      *

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientStatusServiceImpl.java

@@ -3,9 +3,12 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.ClientStatus;
 import com.qmth.distributed.print.business.entity.ClientStatus;
+import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.mapper.ClientStatusMapper;
 import com.qmth.distributed.print.business.mapper.ClientStatusMapper;
 import com.qmth.distributed.print.business.service.ClientStatusService;
 import com.qmth.distributed.print.business.service.ClientStatusService;
+import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.contant.SystemConstant;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 /**
 /**
@@ -13,6 +16,10 @@ import org.springframework.stereotype.Service;
  */
  */
 @Service
 @Service
 public class ClientStatusServiceImpl extends ServiceImpl<ClientStatusMapper, ClientStatus> implements ClientStatusService {
 public class ClientStatusServiceImpl extends ServiceImpl<ClientStatusMapper, ClientStatus> implements ClientStatusService {
+
+    @Autowired
+    private ExamTaskService examTaskService;
+
     @Override
     @Override
     public Boolean tagPass(Long schoolId, Long examTaskId, String machineCode, Boolean isPass, Long userId) {
     public Boolean tagPass(Long schoolId, Long examTaskId, String machineCode, Boolean isPass, Long userId) {
         QueryWrapper<ClientStatus> queryWrapper = new QueryWrapper<>();
         QueryWrapper<ClientStatus> queryWrapper = new QueryWrapper<>();
@@ -28,7 +35,10 @@ public class ClientStatusServiceImpl extends ServiceImpl<ClientStatusMapper, Cli
             clientStatus.setId(SystemConstant.getDbUuid());
             clientStatus.setId(SystemConstant.getDbUuid());
             clientStatus.setSchoolId(schoolId);
             clientStatus.setSchoolId(schoolId);
             clientStatus.setMachineCode(machineCode);
             clientStatus.setMachineCode(machineCode);
+            ExamTask examTask = examTaskService.getById(examTaskId);
             clientStatus.setExamTaskId(examTaskId);
             clientStatus.setExamTaskId(examTaskId);
+            clientStatus.setCourseCode(examTask.getCourseCode());
+            clientStatus.setCourseName(examTask.getCourseName());
             clientStatus.setTry(true);
             clientStatus.setTry(true);
             clientStatus.setTryTime(System.currentTimeMillis());
             clientStatus.setTryTime(System.currentTimeMillis());
             clientStatus.setPass(isPass);
             clientStatus.setPass(isPass);

+ 46 - 16
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java

@@ -24,6 +24,7 @@ import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import com.qmth.distributed.print.common.util.SessionUtil;
 import com.qmth.distributed.print.common.util.SessionUtil;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -319,6 +320,7 @@ public class CommonServiceImpl implements CommonService {
 
 
     /**
     /**
      * 文件预览
      * 文件预览
+     *
      * @param path
      * @param path
      * @return
      * @return
      */
      */
@@ -343,36 +345,64 @@ public class CommonServiceImpl implements CommonService {
 
 
     /**
     /**
      * 文件预览
      * 文件预览
+     *
      * @param attachmentId 附件ID
      * @param attachmentId 附件ID
-     * @param isExpire url是否带过期时间
+     * @param isExpire     url是否带过期时间
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public String filePreview(String attachmentId, Boolean isExpire) {
+    public Map<String, String> filePreview(String attachmentId, Boolean isExpire) {
         BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
         BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
-        if(attachment == null){
-            return  null;
+        if (attachment == null) {
+            return null;
         }
         }
 
 
-        String url;
+        Map<String, String> map = new HashMap<>();
+
+        String pathUrl, htmlPath = null, htmlUrl = null, pdfPath = null, pdfUrl = null;
         JSONObject jsonObject = JSONObject.parseObject(attachment.getPath());
         JSONObject jsonObject = JSONObject.parseObject(attachment.getPath());
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String filePath = (String) jsonObject.get(SystemConstant.PATH);
         String filePath = (String) jsonObject.get(SystemConstant.PATH);
-        UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
+        // 有htmlPath
+        if(jsonObject.containsKey(SystemConstant.HTML_PATH)){
+            htmlPath = (String) jsonObject.get(SystemConstant.HTML_PATH);
+        }
+        // 有pdfPath
+        if(jsonObject.containsKey(SystemConstant.PDF_PATH)){
+            pdfPath = (String) jsonObject.get(SystemConstant.PDF_PATH);
+        }
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
-            url = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + filePath;
+            pathUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + filePath;
+            if(StringUtils.isNotBlank(htmlPath)){
+                htmlUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + htmlPath;
+            }
+            if(StringUtils.isNotBlank(pdfPath)){
+                pdfUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + pdfPath;
+            }
         } else {
         } else {
-            if (uploadFileEnum == UploadFileEnum.PAPER) {
-                if(isExpire){
-                    url = ossUtil.getPrivateUrl(filePath);
-                } else {
-                    url = ossUtil.getPrivateUrlNotExpire(filePath);
+            if (isExpire) {
+                pathUrl = ossUtil.getPrivateUrl(filePath);
+                if(StringUtils.isNotBlank(htmlPath)){
+                    htmlUrl = ossUtil.getPrivateUrl(htmlPath);
+                }
+                if(StringUtils.isNotBlank(pdfPath)){
+                    pdfUrl = ossUtil.getPrivateUrl(pdfPath);
                 }
                 }
             } else {
             } else {
-                url = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + filePath;
+                    pathUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + filePath;
+                if(StringUtils.isNotBlank(htmlPath)){
+                    htmlUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + htmlPath;
+                }
+                if(StringUtils.isNotBlank(pdfPath)){
+                    pdfUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + pdfPath;
+                }
             }
             }
+
         }
         }
-        return url;
+        map.put("pathUrl", pathUrl);
+        map.put("htmlUrl", htmlUrl);
+        map.put("pdfUrl", pdfUrl);
+        return map;
     }
     }
 
 
     @Override
     @Override
@@ -381,7 +411,7 @@ public class CommonServiceImpl implements CommonService {
         JSONObject object = JSONObject.parseObject(path);
         JSONObject object = JSONObject.parseObject(path);
         String filePath = object.getString(SystemConstant.PATH);
         String filePath = object.getString(SystemConstant.PATH);
         String type = object.getString(SystemConstant.TYPE);
         String type = object.getString(SystemConstant.TYPE);
-        if (filePath.endsWith(SystemConstant.HTML_PREFIX)) {
+        if (filePath.endsWith(SystemConstant.HTML_PREFIX) || filePath.endsWith(SystemConstant.FTL_PREFIX) ) {
             StringBuffer sb = new StringBuffer();
             StringBuffer sb = new StringBuffer();
             try {
             try {
                 InputStream fis;
                 InputStream fis;
@@ -567,7 +597,7 @@ public class CommonServiceImpl implements CommonService {
     public Set<Long> listSubOrgIds(Long id) {
     public Set<Long> listSubOrgIds(Long id) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Long orgId;
         Long orgId;
-        if(id == null){
+        if (id == null) {
             orgId = sysUser.getOrgId();
             orgId = sysUser.getOrgId();
         } else {
         } else {
             orgId = id;
             orgId = id;

+ 44 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -1,11 +1,13 @@
 package com.qmth.distributed.print.business.service.impl;
 package com.qmth.distributed.print.business.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
@@ -29,6 +31,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.io.File;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
@@ -58,6 +61,9 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Autowired
     @Autowired
     private CommonService commonService;
     private CommonService commonService;
 
 
+    @Autowired
+    private BasicAttachmentService basicAttachmentService;
+
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
     public IPage<PrintPlanResult> printPlanPage(Long schoolId, Long printPlanId, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
     public IPage<PrintPlanResult> printPlanPage(Long schoolId, Long printPlanId, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
@@ -239,7 +245,24 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Override
     @Override
     public List<Map<String, String>> tempalteView(Long printPlanId) {
     public List<Map<String, String>> tempalteView(Long printPlanId) {
         ExamPrintPlan examPrintPlan = this.getById(printPlanId);
         ExamPrintPlan examPrintPlan = this.getById(printPlanId);
-        return null;
+        String variableContent = examPrintPlan.getVariableContent();
+        List<Map<String, String>> finalList = new ArrayList<>();
+        List<Map> variableList = JSONObject.parseArray(variableContent, Map.class);
+        for (Map variable : variableList) {
+            finalList.add(getAttachment(variable));
+        }
+
+        String ordinaryContent = examPrintPlan.getOrdinaryContent();
+        List<Map> ordinaryList = JSONObject.parseArray(ordinaryContent, Map.class);
+        for (Map ordinary : ordinaryList) {
+            finalList.add(getAttachment(ordinary));
+        }
+        return finalList;
+    }
+
+    @Override
+    public IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, Long schoolId, Long machineCode, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Set<Long> orgIds) {
+        return this.baseMapper.listClientPrintTask(page, schoolId,machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime,isDownload,validate, orgIds);
     }
     }
 
 
     /**
     /**
@@ -261,4 +284,24 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         }
         }
         return resultList;
         return resultList;
     }
     }
+
+    public Map<String, String> getAttachment(Map map){
+        Map<String, String> fMap = new HashMap<>();
+        fMap.put("type",map.get("type").toString());
+        String attachmentId = map.get("attachmentId").toString();
+        BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
+        if(attachment.getType().equals(".ftl") || attachment.getType().equals(".html")){
+            String content = commonService.readFileContent(attachment.getPath());
+            fMap.put("content", content);
+            fMap.put("utl", null);
+        } else if (attachment.getType().equals(".pdf")) {
+            fMap.put("content", null);
+
+            Map<String, String> urlMap = commonService.filePreview(attachmentId, false);
+            fMap.put("url", urlMap.get("pathUrl"));
+        } else{
+            throw ExceptionResultEnum.ERROR.exception("不支持的类型");
+        }
+        return fMap;
+    }
 }
 }

+ 0 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/OssUtil.java

@@ -172,16 +172,4 @@ public class OssUtil {
         generatePresignedUrlRequest.setExpiration(calendar.getTime());
         generatePresignedUrlRequest.setExpiration(calendar.getTime());
         return ossClient.generatePresignedUrl(generatePresignedUrlRequest).toString();
         return ossClient.generatePresignedUrl(generatePresignedUrlRequest).toString();
     }
     }
-
-    /**
-     * 获取私有bucket文件访问url
-     *
-     * @param objectPath
-     * @return
-     */
-    public String getPrivateUrlNotExpire(String objectPath) {
-        GeneratePresignedUrlRequest generatePresignedUrlRequest;
-        generatePresignedUrlRequest = new GeneratePresignedUrlRequest(this.aliYunOssDomain.getBucket(), objectPath);
-        return ossClient.generatePresignedUrl(generatePresignedUrlRequest).toString();
-    }
 }
 }

+ 6 - 3
distributed-print-business/src/main/resources/db/init-table.sql

@@ -197,6 +197,9 @@ CREATE TABLE `client_status`  (
   `school_id` bigint(20) NULL DEFAULT NULL,
   `school_id` bigint(20) NULL DEFAULT NULL,
   `machine_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '机器唯一码',
   `machine_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '机器唯一码',
   `exam_task_id` bigint(20) NOT NULL COMMENT '命题任务ID',
   `exam_task_id` bigint(20) NOT NULL COMMENT '命题任务ID',
+  `course_code` varchar(100) NOT NULL COMMENT '课程代码',
+  `course_name` varchar(200) NOT NULL COMMENT '课程名称',
+  `paper_number` varchar(50) NOT NULL COMMENT '试卷编号',
   `is_try` tinyint(1) NULL DEFAULT NULL COMMENT '是否打样:true-是,false-否',
   `is_try` tinyint(1) NULL DEFAULT NULL COMMENT '是否打样:true-是,false-否',
   `try_time` bigint(20) NULL DEFAULT NULL COMMENT '打样时间',
   `try_time` bigint(20) NULL DEFAULT NULL COMMENT '打样时间',
   `is_pass` tinyint(1) NULL DEFAULT NULL COMMENT '是否合格:true-合格,false-不合格',
   `is_pass` tinyint(1) NULL DEFAULT NULL COMMENT '是否合格:true-合格,false-不合格',
@@ -236,9 +239,9 @@ DROP TABLE IF EXISTS `exam_card_detail`;
 CREATE TABLE `exam_card_detail`  (
 CREATE TABLE `exam_card_detail`  (
   `id` bigint(20) NOT NULL,
   `id` bigint(20) NOT NULL,
   `card_id` bigint(20) NOT NULL COMMENT '题卡ID',
   `card_id` bigint(20) NOT NULL COMMENT '题卡ID',
-  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
-  `html_content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
-  `attachment_id` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
+  `content` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
+  `html_content` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
+  `attachment_id` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
   `create_id` bigint(20) NULL DEFAULT NULL,
   `create_id` bigint(20) NULL DEFAULT NULL,
   `create_time` bigint(20) NULL DEFAULT NULL,
   `create_time` bigint(20) NULL DEFAULT NULL,
   `update_id` bigint(20) NULL DEFAULT NULL,
   `update_id` bigint(20) NULL DEFAULT NULL,

+ 1 - 1
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -64,7 +64,7 @@
                     </if>
                     </if>
                 </where>
                 </where>
             GROUP BY exam_detail_id) c ON b.id = c.exam_detail_id
             GROUP BY exam_detail_id) c ON b.id = c.exam_detail_id
-                LEFT JOIN
+                 JOIN
             sys_user d on a.create_id = d.id
             sys_user d on a.create_id = d.id
             <where>
             <where>
                 <if test="printPlanId != null and printPlanId != ''">
                 <if test="printPlanId != null and printPlanId != ''">

+ 98 - 0
distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml

@@ -96,5 +96,103 @@
             </if>
             </if>
         </where>
         </where>
     </select>
     </select>
+    <select id="listClientPrintTask"
+            resultType="com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto">
+        SELECT
+            b.id examDetailId,
+            b.package_code packageCode,
+            a.id printPlanId,
+            a.name printPlanName,
+            b.exam_start_time examStartTime,
+            b.exam_end_time examEndTime,
+            c.courseNameCode,
+            c.paperNumber,
+            b.exam_place examPlace,
+            b.exam_room examRoom,
+            b.total_subjects totalSubjects,
+            IFNULL(b.pages_a3, 0) pagesA3,
+            IFNULL(b.pages_a4, 0) pagesA4,
+            c.singlePagesA3,
+            b.status,
+            b.validate,
+            c.isDownload,
+            b.print_user printUser,
+            e.real_name printUserName,
+            b.print_start_time printStartTime,
+            b.print_end_time printEndTime
+        FROM
+            exam_print_plan a
+                JOIN
+            exam_detail b ON a.id = b.print_plan_id
+                JOIN
+            (SELECT
+                exam_detail_id,
+                    GROUP_CONCAT(CONCAT(a.course_name, '(', a.course_code, ')')) courseNameCode,
+                    GROUP_CONCAT(a.paper_number) paperNumber,
+                    GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
+                    SUM(CASE b.is_download
+                        WHEN FALSE THEN 1
+                        ELSE 0
+                    END) isDownload
+            FROM
+                exam_detail_course a
+            LEFT JOIN client_status b ON a.school_id = b.school_id
+                AND a.course_code = b.course_code
+                AND a.paper_number = b.paper_number
+            <where>
+                <if test="machineCode != null and machineCode != ''">
+                    and b.machine_code = #{machineCode}
+                </if>
+                <if test="courseCode != null and courseCode != ''">
+                    and a.course_code = #{courseCode}
+                </if>
+                <if test="paperNumber != null and paperNumber != ''">
+                    and a.paper_number = #{paperNumber}
+                </if>
+            </where>
+            GROUP BY exam_detail_id) c ON b.id = c.exam_detail_id
+                LEFT JOIN
+            sys_user e ON b.print_user = e.login_name
+                LEFT JOIN
+            sys_user d ON a.create_id = d.id
+        <where>
+            and a.school_id = #{schoolId}
+            <if test="printPlanId != null and printPlanId != ''">
+                and a.id = #{printPlanId}
+            </if>
+            <if test="status != null and status != ''">
+                and a.status = #{status}
+            </if>
+            <if test="examPlace != null and examPlace != ''">
+                and b.exam_place = #{examPlace}
+            </if>
+            <if test="examRoom != null and examRoom != ''">
+                and b.exam_room = #{examRoom}
+            </if>
+            <if test="examStartTime != null and examStartTime != ''">
+                and b.exam_start_time &gt; #{examStartTime}
+            </if>
+            <if test="examEndTime != null and examEndTime != ''">
+                and b.exam_end_time &lt; #{examEndTime}
+            </if>
+            <if test="validate != null and validate != ''">
+                and b.validate = #{validate}
+            </if>
+            <if test="isDownload != null and isDownload != ''">
+                <if test="isDownload == true">
+                    and c.isDownload = 0
+                </if>
+                <if test="isDownload == false">
+                    and c.isDownload > 0
+                </if>
+            </if>
+            <if test="orgIds != null">
+                AND d.org_id IN
+                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 
 
 </mapper>
 </mapper>

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

@@ -54,8 +54,8 @@ public class BasicExamRuleController {
     @ApiOperation(value = "新增/修改")
     @ApiOperation(value = "新增/修改")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     public Result save(@RequestBody BasicExamRule examRule) {
     public Result save(@RequestBody BasicExamRule examRule) {
-        boolean isSuccess = basicExamRuleService.saveExamRule(examRule);
-        return ResultUtil.ok(isSuccess);
+        String id = basicExamRuleService.saveExamRule(examRule);
+        return ResultUtil.ok(id);
     }
     }
 
 
 }
 }

+ 3 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

@@ -6,6 +6,7 @@ import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamStudentDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto;
 import com.qmth.distributed.print.business.bean.dto.ClientExamTaskDto;
+import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.common.util.Result;
 import com.qmth.distributed.print.common.util.Result;
@@ -147,8 +148,8 @@ public class ClientController {
                                 @RequestParam(value = "validate", required = false) Boolean validate,
                                 @RequestParam(value = "validate", required = false) Boolean validate,
                                 @RequestParam("pageNumber") Integer pageNumber,
                                 @RequestParam("pageNumber") Integer pageNumber,
                                 @RequestParam("pageSize") Integer pageSize) {
                                 @RequestParam("pageSize") Integer pageSize) {
-
-        return null;
+        IPage<ClientPrintTaskDto> printTaskDtoIPage = clientService.listClientPrintTask(schoolId, machineCode, orgId, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, pageNumber, pageSize);
+        return ResultUtil.ok(printTaskDtoIPage);
     }
     }
 
 
     /**
     /**