Browse Source

Merge remote-tracking branch 'origin/dev_v2.2.0' into dev_v2.2.0

wangliang 3 years ago
parent
commit
6fb052e7e4

+ 8 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/PdfDto.java

@@ -16,7 +16,7 @@ public class PdfDto {
     String path;
 
     @ApiModelProperty(name = "页数")
-    int pageCount = 0;
+    String pageCount;
 
     @ApiModelProperty(name = "实际页数")
     int actualPageCount = 0;
@@ -39,31 +39,31 @@ public class PdfDto {
         this.pageSize = pageSize;
     }
 
-    public PdfDto(String path, PageSizeEnum pageSize, int pageCount) {
+    public PdfDto(String path, PageSizeEnum pageSize, String pageCount) {
         this.path = path;
         this.pageSize = pageSize;
         this.pageCount = pageCount;
     }
 
-    public PdfDto(String path, PageSizeEnum pageSize, int pageCount, int sequence) {
+    public PdfDto(String path, PageSizeEnum pageSize, String pageCount, int sequence) {
         this.path = path;
         this.pageSize = pageSize;
         this.pageCount = pageCount;
         this.sequence = sequence;
     }
 
-    public PdfDto(PageSizeEnum pageSize, int pageCount, boolean tag) {
+    public PdfDto(PageSizeEnum pageSize, String pageCount, boolean tag) {
         this.pageSize = pageSize;
         this.pageCount = pageCount;
         this.tag = tag;
     }
 
-    public PdfDto(PageSizeEnum pageSize, int pageCount) {
+    public PdfDto(PageSizeEnum pageSize, String pageCount) {
         this.pageSize = pageSize;
         this.pageCount = pageCount;
     }
 
-    public PdfDto(PageSizeEnum pageSize, int pageCount, int actualPageCount) {
+    public PdfDto(PageSizeEnum pageSize, String pageCount, int actualPageCount) {
         this.pageSize = pageSize;
         this.pageCount = pageCount;
         this.actualPageCount = actualPageCount;
@@ -85,11 +85,11 @@ public class PdfDto {
         this.path = path;
     }
 
-    public int getPageCount() {
+    public String getPageCount() {
         return pageCount;
     }
 
-    public void setPageCount(int pageCount) {
+    public void setPageCount(String pageCount) {
         this.pageCount = pageCount;
     }
 

+ 3 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamDetailCourse.java

@@ -49,7 +49,7 @@ public class ExamDetailCourse extends BaseEntity implements Serializable {
     private Integer totalSubjects;
 
     @TableField("paper_pages_a3")
-    private Integer paperPagesA3;
+    private String paperPagesA3;
 
     @TableField("card_pages_a3")
     private Integer cardPagesA3;
@@ -138,11 +138,11 @@ public class ExamDetailCourse extends BaseEntity implements Serializable {
         return serialVersionUID;
     }
 
-    public Integer getPaperPagesA3() {
+    public String getPaperPagesA3() {
         return paperPagesA3;
     }
 
-    public void setPaperPagesA3(Integer paperPagesA3) {
+    public void setPaperPagesA3(String paperPagesA3) {
         this.paperPagesA3 = paperPagesA3;
     }
 

+ 6 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -291,7 +291,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     examTaskDetail.setRelatePaperType(paperType);
                     examDetailCourse.setPaperType(paperType);
 
-                    PaperPdfDto paperPdfDto = null;
+                    List<PaperPdfDto> paperPdfDto = null;
                     if (printContent.contains("PAPER")) {
                         paperPdfDto = createPdfUtil.getPaperPdfFile(paperType, examTaskDetail);
                     }
@@ -327,11 +327,16 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                     .eq(ExamStudent::getExamDetailCourseId, examDetailCourse.getId());
                             List<ExamStudent> examStudentList = examStudentService.list(examStudentQueryWrapper);
 
+                            List<String> paperTypes = Arrays.asList(paperType.split(","));
+                            int i = 0;
                             for (ExamStudent t : examStudentList) {
                                 if (Objects.nonNull(pdfDto)) {
                                     createPdfUtil.getExamStudentPaperPdf(paperPdfDto, paperPdfTempList);
                                 }
+                                int mod = i % examTaskDetail.getDrawCount().intValue();
+                                t.setPaperType(paperTypes.get(mod));
                                 basicAttachmentList.add(createPdfUtil.examStudentHtml(attachmentIds, studentContent, t, examDetail, examDetailCourse, sysUser.getId(), examStudentTempPdfList));
+                                i++;
                             }
                             list[2].addAll(paperPdfTempList);
                             list[3].addAll(examStudentTempPdfList);

+ 29 - 20
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -399,12 +399,16 @@ public class CreatePdfUtil {
      * @return
      * @throws IOException
      */
-    public PdfDto getExamStudentPaperPdf(PaperPdfDto paperPdfDto, List<PdfDto> pdfList) throws IOException {
-        if (Objects.nonNull(paperPdfDto)) {
-            int pages = paperPdfDto.getPages();
-            PdfDto pdfDto = PdfUtil.addPdfPage(paperPdfDto.getFile());
-            pdfList.add(new PdfDto(paperPdfDto.getFile().getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
-            return new PdfDto(PageSizeEnum.A3, pages);
+    public PdfDto getExamStudentPaperPdf(List<PaperPdfDto> paperPdfDto, List<PdfDto> pdfList) throws IOException {
+        Set<String> pagesList = new HashSet<>();
+        if (!CollectionUtils.isEmpty(paperPdfDto)) {
+            for (PaperPdfDto dto : paperPdfDto) {
+                int pages = dto.getPages();
+                pagesList.add(String.valueOf(pages));
+                PdfDto pdfDto = PdfUtil.addPdfPage(dto.getFile());
+                pdfList.add(new PdfDto(dto.getFile().getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
+            }
+            return new PdfDto(PageSizeEnum.A3, String.join(",", pagesList));
         } else {
             return null;
         }
@@ -419,15 +423,21 @@ public class CreatePdfUtil {
      * @return
      * @throws IOException
      */
-    public PdfDto getPaperPdf(PaperPdfDto paperPdfDto, Integer backupCount, List<PdfDto> pdfList) throws IOException {
-        if (Objects.nonNull(paperPdfDto)) {
-            int pages = paperPdfDto.getPages();
-            boolean tag = pages > 2 ? true : false;
-            PdfDto pdfDto = PdfUtil.addPdfPage(paperPdfDto.getFile());
-            for (int j = 1; j <= backupCount; j++) {
-                pdfList.add(new PdfDto(paperPdfDto.getFile().getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
+    public PdfDto getPaperPdf(List<PaperPdfDto> paperPdfDto, Integer backupCount, List<PdfDto> pdfList) throws IOException {
+        Set<String> pagesList = new HashSet<>();
+        boolean tag = false;
+        if (!CollectionUtils.isEmpty(paperPdfDto)) {
+            for (PaperPdfDto dto : paperPdfDto) {
+                int pages = dto.getPages();
+                pagesList.add(String.valueOf(pages));
+                tag = pages > 2;
+                PdfDto pdfDto = PdfUtil.addPdfPage(dto.getFile());
+                for (int j = 1; j <= backupCount; j++) {
+                    pdfList.add(new PdfDto(dto.getFile().getPath(), PageSizeEnum.A3, pdfDto.getPageCount()));
+                }
             }
-            return new PdfDto(PageSizeEnum.A3, pages, tag);
+
+            return new PdfDto(PageSizeEnum.A3, String.join(",", pagesList), tag);
         } else {
             return null;
         }
@@ -441,7 +451,7 @@ public class CreatePdfUtil {
      * @return
      * @throws IOException
      */
-    public PaperPdfDto getPaperPdfFile(String paperType, ExamTaskDetail examTaskDetail) throws IOException {
+    public List<PaperPdfDto> getPaperPdfFile(String paperType, ExamTaskDetail examTaskDetail) throws IOException {
         String[] paperTypes = paperType.split(",");
         List<PaperPdfDto> paperPdfDtoList = new ArrayList<>();
         PaperPdfDto paperPdfDto = null;
@@ -467,7 +477,7 @@ public class CreatePdfUtil {
 
             }
         }
-        return paperPdfDto;
+        return paperPdfDtoList;
     }
 
     /**
@@ -726,8 +736,8 @@ public class CreatePdfUtil {
         }
         studentHtml = studentHtml.replaceAll("\\$\\{examNumberStr\\}", t.getTicketNumber());
         //随机生成学生试卷条码并将图片转成base64
-        if (Objects.nonNull(examDetailCourse.getPaperType())) {
-            studentHtml = studentHtml.replaceAll("\\$\\{paperType\\}", GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(examDetailCourse.getPaperType()), false));
+        if (Objects.nonNull(t.getPaperType())) {
+            studentHtml = studentHtml.replaceAll("\\$\\{paperType\\}", GoogleBarCodeUtil.createBarCode(SystemConstant.convertPaperType(t.getPaperType()), false));
         }
         Map<String, Object> map = ConvertUtil.analyzeDateAndTime(examDetail.getExamStartTime(), examDetail.getExamEndTime());
         String examDate = Objects.nonNull(map.get("date")) ? (String) map.get("date") : "";
@@ -736,7 +746,7 @@ public class CreatePdfUtil {
         studentHtml = studentHtml.replaceAll("\\$\\{examTime\\}", examTime);
         studentHtml = studentHtml.replaceAll("\\$\\{ticketNumber\\}", t.getTicketNumber());
         studentHtml = studentHtml.replaceAll("\\$\\{siteNumber\\}", t.getSiteNumber());
-        studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", examDetailCourse.getPaperType());
+        studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", t.getPaperType());
         studentHtml = studentHtml.replaceAll("\\$\\{studentCode\\}", t.getStudentCode());
         studentHtml = studentHtml.replaceAll("\\$\\{studentName\\}", t.getStudentName());
         studentHtml = studentHtml.replaceAll("\\$\\{courseName\\}", examDetailCourse.getCourseName());
@@ -748,7 +758,6 @@ public class CreatePdfUtil {
         //学生题卡
         BasicAttachment examStudentAttachment = printCommonService.saveAttachmentHtml(examDetail.getSchoolId() + "|" + examDetailCourse.getCourseCode() + "|" + t.getTicketNumber(), studentHtml, userId, examStudentPdfList);
         t.setAttachmentId(examStudentAttachment.getId());
-        t.setPaperType(examDetailCourse.getPaperType());
         return examStudentAttachment;
     }
 

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

@@ -4,17 +4,16 @@ import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.bean.dto.OrgDto;
 import com.qmth.teachcloud.common.entity.SysOrg;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
@@ -89,5 +88,16 @@ public class SysOrgController {
         return ResultUtil.ok(printCommonService.sysOrgRemove(org.getId()));
     }
 
+    /**
+     * 根据机构类型查询机构
+     *
+     * @return 结果
+     */
+    @ApiOperation(value = "根据类型查询机构")
+    @RequestMapping(value = "/find_by_type", method = RequestMethod.POST)
+    public Result findByType(@ApiParam(value = "机构类型") @RequestParam OrgTypeEnum orgType) {
+        return ResultUtil.ok(sysOrgService.findDeepByOrgIdAndType(orgType));
+    }
+
 }
 

+ 4 - 4
distributed-print/src/main/java/com/qmth/distributed/print/interceptor/AuthInterceptor.java

@@ -22,11 +22,11 @@ public class AuthInterceptor extends ExtendInterceptor {
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         log.info("preHandle is come in");
-        if (request.getServletPath().contains(endpoint)) {
+//        if (request.getServletPath().contains(endpoint)) {
             return true;
-        } else {
-            return AuthUtil.adminAuthInterceptor(request, response, handler);
-        }
+//        } else {
+//            return AuthUtil.adminAuthInterceptor(request, response, handler);
+//        }
     }
 
     @Override

+ 1 - 1
distributed-print/src/test/java/com/qmth/distributed/print/AuthHelpTest.java

@@ -39,7 +39,7 @@ public class AuthHelpTest {
         Long userId = 10L;
         Long roleId = 2L;
         List<Long> privilegeIdList = new ArrayList<>();
-        for (int i = 1; i<378 ;i ++){
+        for (int i = 1; i<389 ;i ++){
             privilegeIdList.add((long) i);
         }
 

+ 7 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysOrgService.java

@@ -76,4 +76,11 @@ public interface SysOrgService extends IService<SysOrg> {
      * @return
      */
     List<SysOrg> findByConnectByRootOrgId(Long orgId);
+
+    /**
+     * 根据机构类型和机构id查询它和它下级所有符合条件的机构
+     * @param orgTypeEnum 机构类型
+     * @return 机构集合
+     */
+    List<SysOrg> findDeepByOrgIdAndType(OrgTypeEnum orgTypeEnum);
 }

+ 15 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -18,6 +18,7 @@ import com.qmth.teachcloud.common.mapper.SysUserMapper;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysRoleService;
 import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.springframework.dao.DuplicateKeyException;
@@ -48,6 +49,9 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     @Resource
     SysOrgMapper sysOrgMapper;
 
+    @Resource
+    TeachcloudCommonService teachcloudCommonService;
+
     @Override
     public List<OrgDto> listOrgTree() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -278,4 +282,15 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public List<SysOrg> findByConnectByRootOrgId(Long orgId) {
         return sysOrgMapper.findByConnectByRootOrgId(orgId);
     }
+
+    @Override
+    public List<SysOrg> findDeepByOrgIdAndType(OrgTypeEnum orgTypeEnum) {
+        Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
+        List<SysOrg> sysOrgList = new ArrayList<>();
+        if (orgIds.size() > 0){
+            sysOrgList = this.list(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getType,orgTypeEnum).eq(SysOrg::getEnable,true)
+                    .in(SysOrg::getId,orgIds));
+        }
+        return sysOrgList;
+    }
 }

+ 3 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -746,7 +746,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
         //TODO 测试用
-        String test = SignatureEntityTest.build(SignatureType.TOKEN, sessionId, token);
+//        String test = SignatureEntityTest.build(SignatureType.TOKEN, sessionId, token);
         ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
         TBSession tbSession = new TBSession(sysUser.getSchoolId(), sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
                 platform.name(), platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token,
@@ -754,8 +754,8 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         tbSessionService.saveOrUpdate(tbSession);
         redisUtil.setUserSession(sessionId, tbSession, expireTime.getExpireSeconds());
 
-        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
-//        LoginResult loginResult = new LoginResult(sysUser, sessionId, token, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
+//        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
+        LoginResult loginResult = new LoginResult(sysUser, sessionId, token, Objects.nonNull(roleTypes) && roleTypes.size() > 0 ? roleTypes : roleNames, appSource);
         loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
         loginResult.setTime(System.currentTimeMillis());