瀏覽代碼

教育培训任务代码,生成pdf代码提交

jingyuanchao 2 年之前
父節點
當前提交
358299094b

+ 3 - 3
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteFileService.java

@@ -7,7 +7,7 @@ import com.xunmei.system.api.factory.RemoteFileFallbackFactory;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -36,6 +36,6 @@ public interface RemoteFileService {
      * @param cacheDir 缓存目录
      * @return 结果
      */
-    @PostMapping(value = "/generateEduTrainingPdf")
-    R<String> generateEduTrainingPdf(@RequestParam(value = "data") Map<String, Object> data, @RequestParam(value = "fileName") String fileName);
+    @PostMapping(value = "/file/generateEduTrainingPdf")
+    R<String> generateEduTrainingPdf(@RequestBody Map<String, Object> data);
 }

+ 1 - 2
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteOrgService.java

@@ -2,7 +2,6 @@ package com.xunmei.system.api;
 
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.constant.ServiceNameConstants;
-import com.xunmei.common.core.domain.IdName;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.system.api.Eto.OrgListByTypesConditionEto;
@@ -61,7 +60,7 @@ public interface RemoteOrgService {
     List<SysOrg> selectByOrgType(@PathVariable("orgType") Integer orgType, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @PostMapping("/dept/selectOrgByIdList")
-    List<SysOrg> selectOrgByIdList(List<Long> orgList, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    List<SysOrg> selectOrgByIdList(@RequestBody List<Long> orgList, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @GetMapping("/dept/getSysOrgByUserId/{userId}")
     SysOrg getSysOrgByUserId(@PathVariable("userId") Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);

+ 1 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteFileFallbackFactory.java

@@ -31,7 +31,7 @@ public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileServ
             }
 
             @Override
-            public R<String> generateEduTrainingPdf(Map<String, Object> data, String cacheDir) {
+            public R<String> generateEduTrainingPdf(Map<String, Object> data) {
                 return null;
             }
         };

+ 19 - 10
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/domain/SysLearningMaterials.java

@@ -1,18 +1,18 @@
 package com.xunmei.common.core.domain.edu.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.xunmei.common.core.web.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
-import com.xunmei.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
 
 /**
  * 学习资料对象 sys_learning_materials
@@ -27,37 +27,46 @@ import com.xunmei.common.core.web.domain.BaseEntity;
 @ApiModel(value = "SysLearningMaterials对象", description = "学习资料")
 public class SysLearningMaterials extends BaseEntity {
     private static final long serialVersionUID = 1L;
-
+    @TableId
     private Long id;
-
+    @TableField(value = "title")
     @ApiModelProperty(value = "资料标题")
     private String title;
 
+    @TableField(value = "content")
     @ApiModelProperty(value = "资料内容")
     private String content;
 
+    @TableField(value = "knowledge_id")
     @JsonSerialize(using = com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
     @ApiModelProperty(value = "资料类型(知识库标签)")
     private Long knowledgeId;
 
+    @TableField(value = "org_id")
     @ApiModelProperty(value = "所属机构")
     private Long orgId;
 
+    @TableField(value = "org_name")
     @ApiModelProperty(value = "机构名称")
     private String orgName;
 
+    @TableField(value = "org_path")
     @ApiModelProperty(value = "机构path")
     private String orgPath;
 
+    @TableField(value = "is_open")
     @ApiModelProperty(value = "是否公开,0:未公开,1:已公开")
     private Integer isOpen;
 
+    @TableField(value = "file_list")
     @ApiModelProperty(value = "附件")
-    private String file;
+    private String fileList;
 
+    @TableField(value = "remark")
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @TableField(value = "deleted")
     @TableLogic(value = "0", delval = "1")
     @ApiModelProperty(value = "是否删除,0:未删除,1:已删除")
     private Integer deleted;
@@ -73,7 +82,7 @@ public class SysLearningMaterials extends BaseEntity {
                 .append("orgName", getOrgName())
                 .append("orgPath", getOrgPath())
                 .append("isOpen", getIsOpen())
-                .append("file", getFile())
+                .append("file", getFileList())
                 .append("deleted", getDeleted())
                 .append("createBy", getCreateBy())
                 .append("createTime", getCreateTime())

+ 4 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/edu/vo/SysLearningMaterialsPageVo.java

@@ -38,6 +38,9 @@ public class SysLearningMaterialsPageVo {
     private Integer isOpen;
 
     @ApiModelProperty(value = "上传人")
+    private Long createId;
+
+    @ApiModelProperty(value = "上传人")
     private String createBy;
 
     @ApiModelProperty(value = "上传时间")
@@ -48,7 +51,7 @@ public class SysLearningMaterialsPageVo {
     private Date updateTime;
 
     @ApiModelProperty(value = "附件")
-    private String file;
+    private String fileList;
 
     @ApiModelProperty(value = "备注")
     private String remark;

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -117,4 +117,10 @@ public class CoreEduTrainingTaskController extends BaseController {
     public AjaxResult sign(@RequestBody @Validated CoreEduTrainingTaskSignDto request) {
         return success(coreEduTrainingTaskService.selectCoreEduTrainingTaskSign(request));
     }
+
+    @ApiOperation(value = "教育培训签名")
+    @GetMapping("build/{id}")
+    public AjaxResult pdf(@PathVariable("id") Long id) {
+        return success(coreEduTrainingTaskService.buildEduPdf(id));
+    }
 }

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -329,8 +329,9 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
 
         String fileName = orgName + "_" + ExportPdfType.EDUCATION_TRAINING.getText() + "_" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + ".pdf";
         Map<String, Object> data = this.getFtlEdu(task);
+        data.put("fileName", fileName);
 
-        R<String> r = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.generateEduTrainingPdf(data, fileName), ErrorMsgConstants.GENERATE_PDF_ERROR);
+        R<String> r = RemoteCallHandlerExecutor.executeRemoteCall(() -> fileService.generateEduTrainingPdf(data), ErrorMsgConstants.GENERATE_PDF_ERROR);
         if (ObjectUtil.hasEmpty(r, r.getData())) {
             throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
         }

+ 8 - 19
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/SysLearningMaterialsServiceImpl.java

@@ -1,20 +1,14 @@
 package com.xunmei.core.edu.service.impl;
 
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.*;
-
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.domain.edu.domain.SysLearningMaterials;
 import com.xunmei.common.core.domain.edu.dto.SysLearningMaterialsPageDto;
 import com.xunmei.common.core.domain.edu.vo.SysLearningMaterialsPageVo;
@@ -27,7 +21,6 @@ import com.xunmei.core.edu.service.ISysLearningMaterialsService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
-import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -35,10 +28,7 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Stream;
 
 /**
@@ -81,7 +71,6 @@ public class SysLearningMaterialsServiceImpl extends ServiceImpl<SysLearningMate
 
     private void dealParentOrgId(SysLearningMaterialsPageDto sysLearningMaterials) {
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER);
-       // SysOrg sysOrg = r.getData();
         if (sysOrg == null || ObjectUtil.isEmpty(sysOrg.getPath())) {
             throw new RuntimeException("机构不存在或机构信息缺失!");
         }
@@ -93,13 +82,14 @@ public class SysLearningMaterialsServiceImpl extends ServiceImpl<SysLearningMate
     }
 
     public void extractStringFromUrl(SysLearningMaterialsPageVo record) {
-        if (ObjectUtil.isEmpty(record.getFile()) || !record.getFile().contains(Constants.HTTP)) {
+        if (ObjectUtil.isEmpty(record.getFileList())) {
             return;
         }
-        // 获取最后一个斜杠的索引
-        int lastSlashIndex = record.getFile().lastIndexOf("/");
+        String fileList = record.getFileList();
+        List<Map> maps = JSON.parseArray(fileList, Map.class);
+        String name = maps.get(0).get("name").toString();
         // 获取最后一个斜杠后面的字符串
-        record.setFile(record.getFile().substring(lastSlashIndex + 1));
+        record.setFileList(name);
     }
 
     /**
@@ -137,8 +127,7 @@ public class SysLearningMaterialsServiceImpl extends ServiceImpl<SysLearningMate
         sysLearningMaterials.setUpdateBy(String.valueOf(SecurityUtils.getUserId()));
         sysLearningMaterials.setUpdateTime(DateUtils.getNowDate());
         sysLearningMaterials.setIsOpen(0);
-         SysOrg sysOrg = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER);
-       // SysOrg sysOrg = r.getData();
+        SysOrg sysOrg = remoteOrgService.selectSysOrgById(sysLearningMaterials.getOrgId(), SecurityConstants.INNER);
         if (sysOrg != null) {
             sysLearningMaterials.setOrgName(sysOrg.getName());
             sysLearningMaterials.setOrgPath(sysOrg.getPath());

+ 25 - 15
soc-modules/soc-modules-core/src/main/resources/mapper/edu/SysLearningMaterialsMapper.xml

@@ -13,7 +13,7 @@
         <result property="orgName" column="org_name"/>
         <result property="orgPath" column="org_path"/>
         <result property="isOpen" column="is_open"/>
-        <result property="file" column="file"/>
+        <result property="fileList" column="file_list"/>
         <result property="deleted" column="deleted"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>
@@ -30,7 +30,7 @@
                org_name,
                org_path,
                is_open,
-               file,
+               file_list,
                remark,
                deleted,
                create_by,
@@ -66,8 +66,8 @@
             <if test="isOpen != null ">
                 and is_open = #{isOpen}
             </if>
-            <if test="file != null  and file != ''">
-                and file = #{file}
+            <if test="fileList != null  and fileList != ''">
+                and file_list = #{fileList}
             </if>
             <if test="deleted != null ">
                 and deleted = #{deleted}
@@ -98,9 +98,10 @@
         m.org_id,
         m.org_name,
         is_open,
-        file,
+        m.file_list,
         remark as remark,
         u.name as create_by,
+        u.id as createId,
         m.create_time,
         m.update_time as updateTime
         from sys_learning_materials m
@@ -170,7 +171,8 @@
             </if>
             <if test="isOpen != null">is_open,
             </if>
-            <if test="file != null">file,
+            <if test="fileList != null">
+                file_list,
             </if>
             <if test="remark != null">remark,
             </if>
@@ -202,7 +204,8 @@
             </if>
             <if test="isOpen != null">#{isOpen},
             </if>
-            <if test="file != null">#{file},
+            <if test="fileList != null">
+                #{fileList},
             </if>
             <if test="remark != null">#{remark},
             </if>
@@ -235,25 +238,32 @@
             <if test="orgId != null">org_id =
                 #{orgId},
             </if>
-            <if test="orgName != null">org_name =
+            <if test="orgName != null">
+                org_name =
                 #{orgName},
             </if>
-            <if test="orgPath != null">org_path =
+            <if test="orgPath != null">
+                org_path =
                 #{orgPath},
             </if>
-            <if test="isOpen != null">is_open =
+            <if test="isOpen != null">
+                is_open =
                 #{isOpen},
             </if>
-            <if test="file != null">file =
-                #{file},
+            <if test="fileList != null">
+                file_list =
+                #{fileList},
             </if>
-            <if test="remark != null">remark =
+            <if test="remark != null">
+                remark =
                 #{remark},
             </if>
-            <if test="deleted != null">deleted =
+            <if test="deleted != null">
+                deleted =
                 #{deleted},
             </if>
-            <if test="createBy != null">create_by =
+            <if test="createBy != null">
+                create_by =
                 #{createBy},
             </if>
             <if test="createTime != null">create_time =

+ 2 - 2
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/controller/SysFileController.java

@@ -112,9 +112,9 @@ public class SysFileController {
     }
 
     @PostMapping(value = "/generateEduTrainingPdf")
-    R<String> generateEduTrainingPdf(@RequestParam(value = "data") Map<String, Object> data, @RequestParam(value = "fileName") String fileName) throws Exception {
+    R<String> generateEduTrainingPdf(@RequestBody Map<String, Object> data) throws Exception {
 
-        return R.ok(sysFileService.generateEduTrainingPdf(data, fileName));
+        return R.ok(sysFileService.generateEduTrainingPdf(data));
 
     }
 }

+ 1 - 1
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/ISysFileService.java

@@ -41,6 +41,6 @@ public interface ISysFileService
      */
     void downloadFile(HttpServletResponse response, String filePath) throws Exception;
 
-    String generateEduTrainingPdf(Map<String, Object> data, String cacheDir) throws Exception;
+    String generateEduTrainingPdf(Map<String, Object> data) throws Exception;
 
 }

+ 2 - 2
soc-modules/soc-modules-file/src/main/java/com/xunmei/file/service/LocalSysFileServiceImpl.java

@@ -114,8 +114,8 @@ public class LocalSysFileServiceImpl implements ISysFileService {
     }
 
     @Override
-    public String generateEduTrainingPdf(Map<String, Object> data, String filename) throws Exception {
-        String filePath = this.localFilePath + getLocalFilePath("edu", filename);
+    public String generateEduTrainingPdf(Map<String, Object> data) throws Exception {
+        String filePath = this.localFilePath + getLocalFilePath("edu", data.get("fileName").toString());
         final ItextPdfTableVo pdfTableVo = PdfUtil.createTable(filePath, 6, 10);
         final Document document = pdfTableVo.getDocument();
         final PdfWriter writer = pdfTableVo.getWriter();

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeptController.java

@@ -211,7 +211,7 @@ public class SysDeptController extends BaseController {
     @ApiOperation(value = "根据id获取机构信息", notes = "根据id获取机构信息")
     @InnerAuth
     @PostMapping("/selectOrgByIdList")
-    List<SysOrg> selectOrgByIdList(List<Long> orgList) {
+    List<SysOrg> selectOrgByIdList(@RequestBody List<Long> orgList) {
         if (ObjectUtil.isEmpty(orgList)) {
             return new ArrayList<>();
         }