Преглед изворни кода

材料缴交任务发布接口

大数据与最优化研究所 пре 1 година
родитељ
комит
f3c77b8057

+ 19 - 27
src/main/java/com/xjrsoft/module/material/controller/MaterialTaskController.java

@@ -25,10 +25,7 @@ import com.xjrsoft.module.material.dto.MaterialTaskAssignPageDto;
 import com.xjrsoft.module.material.dto.MaterialTaskPageDto;
 import com.xjrsoft.module.material.dto.MaterialTaskWaitPageDto;
 import com.xjrsoft.module.material.dto.UpdateMaterialTaskDto;
-import com.xjrsoft.module.material.entity.MaterialTask;
-import com.xjrsoft.module.material.entity.MaterialTaskAppendix;
-import com.xjrsoft.module.material.entity.MaterialTaskAssign;
-import com.xjrsoft.module.material.entity.MaterialTypeAssign;
+import com.xjrsoft.module.material.entity.*;
 import com.xjrsoft.module.material.service.IMaterialTaskAppendixService;
 import com.xjrsoft.module.material.service.IMaterialTaskAssignService;
 import com.xjrsoft.module.material.service.IMaterialTaskService;
@@ -83,19 +80,25 @@ public class MaterialTaskController {
     private  final IMaterialTaskAppendixService materialTaskAppendixService;
 
     @GetMapping(value = "/page")
-    @ApiOperation(value = "材料提交任务列表(分页 自己)")
+    @ApiOperation(value = "材料提交任务列表(分页 我发布的)")
     @SaCheckPermission("materialtask:detail")
     public RT<PageOutput<MaterialTaskPageVo>> page(@Valid MaterialTaskPageDto dto) {
 
-        LambdaQueryWrapper<MaterialTask> queryWrapper = new LambdaQueryWrapper<>();
+        MPJLambdaWrapper<MaterialTask> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper
                 .orderByDesc(MaterialTask::getId)
                 .eq(MaterialTask::getCreateUserId, StpUtil.getLoginIdAsLong())
                 .like(StrUtil.isNotBlank(dto.getName()), MaterialTask::getName, dto.getName())
                 .eq((ObjectUtil.isNotEmpty(dto.getMaterialTypeId())) && dto.getMaterialTypeId() > 0, MaterialTask::getMaterialTypeId, dto.getMaterialTypeId())
                 .eq((ObjectUtil.isNotEmpty(dto.getStatus())) && dto.getStatus() > 0, MaterialTask::getStatus, dto.getStatus())
-                .select(MaterialTask.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskPageVo.class).contains(x.getProperty()));
-        IPage<MaterialTask> page = materialTaskService.page(ConventPage.getPage(dto), queryWrapper);
+                .gt(dto.getCreateDateStart() != null && !dto.getCreateDateStart().equals(""), MaterialTask::getCreateDate, dto.getCreateDateStart())
+                .lt(dto.getCreateDateEnd() != null && !dto.getCreateDateEnd().equals(""), MaterialTask::getCreateDate, dto.getCreateDateEnd())
+                .select(MaterialTask::getId)
+                .selectAs(MaterialType::getName, MaterialTaskPageVo::getMaterialTypeIdCn)
+                .selectAs(MaterialType::getCreateDate, MaterialTaskPageVo::getCreateDate)
+                .select(MaterialTask.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskPageVo.class).contains(x.getProperty()))
+                .leftJoin(MaterialType.class, MaterialType::getId, MaterialTask::getMaterialTypeId);
+        IPage<MaterialTaskPageVo> page = materialTaskService.selectJoinListPage(ConventPage.getPage(dto), MaterialTaskPageVo.class, queryWrapper);
         PageOutput<MaterialTaskPageVo> pageOutput = ConventPage.getPageOutput(page, MaterialTaskPageVo.class);
         return RT.ok(pageOutput);
     }
@@ -140,24 +143,7 @@ public class MaterialTaskController {
     @ApiOperation(value = "根据id查询材料提交任务信息")
     @SaCheckPermission("materialtask:detail")
     public RT<MaterialTaskVo> info(@RequestParam Long id) {
-        MaterialTask materialTask = materialTaskService.getByIdDeep(id);
-        if (materialTask == null) {
-            return RT.error("找不到此数据!");
-        }
-
-        MaterialTaskVo materialTaskVo = BeanUtil.toBean(materialTask, MaterialTaskVo.class);
-        List<MaterialTaskAppendixVo> newsAppendixVoList = materialTaskAppendixService.selectJoinList(MaterialTaskAppendixVo.class,
-                new MPJLambdaWrapper<MaterialTaskAppendix>().eq(MaterialTaskAppendix::getMaterialTaskId, id)
-                        .select(MaterialTaskAppendix::getId)
-                        .select(MaterialTaskAppendix.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAppendixVo.class).contains(x.getProperty()))
-                        .leftJoin(File.class, File::getId, MaterialTaskAppendix::getFileId, ext -> ext.selectAs(File::getFileName, MaterialTaskAppendixVo::getFileName)
-                                .selectAs(File::getFolderId, MaterialTaskAppendixVo::getFolderId)
-                                .selectAs(File::getFileUrl, MaterialTaskAppendixVo::getFileUrl))
-        );
-
-        if (newsAppendixVoList.size() > 0) {
-            materialTaskVo.setMaterialTaskAppendixList(newsAppendixVoList);
-        }
+        MaterialTaskVo materialTaskVo = materialTaskService.getInfoById(id);
         return RT.ok(materialTaskVo);
     }
 
@@ -166,7 +152,13 @@ public class MaterialTaskController {
     @ApiOperation(value = "新增材料提交任务")
     @SaCheckPermission("materialtask:add")
     public RT<Long> add(@Valid @RequestBody AddMaterialTaskDto dto) {
-        return RT.ok(materialTaskService.add(dto));
+        Long materialTaskId = materialTaskService.add(dto);
+        //当返回了id表示成功添加了且需要发送通知
+        if(materialTaskId != null && materialTaskId > 0 && dto.getSendMessage() == 1){;
+            materialTaskService.sendMessage(materialTaskId);
+        }
+
+        return RT.ok(materialTaskId);
     }
 
     @PutMapping

+ 3 - 3
src/main/java/com/xjrsoft/module/material/dto/AddMaterialTaskDto.java

@@ -83,10 +83,10 @@ public class AddMaterialTaskDto implements Serializable {
     @ApiModelProperty("用户列表")
     private List<MaterialAssignUserDto> userList;
     /**
-     * 发送消息状态 0=不发 1=发送
+     * 是否发送消息 0=不发 1=发送 类型里不需要
      */
-    @ApiModelProperty("发送消息状态 0=不发 1=发送")
-    private Integer sendMessageStatus;
+    @ApiModelProperty("是否发送消息 0=不发 1=发送")
+    private Integer sendMessage;
     /**
     * materialTaskAppendix
     */

+ 18 - 0
src/main/java/com/xjrsoft/module/material/dto/MaterialTaskPageDto.java

@@ -1,10 +1,15 @@
 package com.xjrsoft.module.material.dto;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xjrsoft.common.page.PageInput;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.time.LocalDateTime;
+
 
 /**
 * @title: 材料提交任务分页查询入参
@@ -30,4 +35,17 @@ public class MaterialTaskPageDto extends PageInput {
      */
     @ApiModelProperty("材料提交任务类型(material_type)")
     private Long materialTypeId;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createDateStart;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createDateEnd;
+
 }

+ 5 - 0
src/main/java/com/xjrsoft/module/material/service/IMaterialTaskService.java

@@ -4,6 +4,7 @@ import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.material.dto.AddMaterialTaskDto;
 import com.xjrsoft.module.material.dto.MaterialTaskAssignAppendixDto;
 import com.xjrsoft.module.material.entity.MaterialTask;
+import com.xjrsoft.module.material.vo.MaterialTaskVo;
 
 import java.util.List;
 
@@ -45,4 +46,8 @@ public interface IMaterialTaskService extends MPJBaseService<MaterialTask> {
      * @return
      */
     Boolean submited(MaterialTaskAssignAppendixDto dto);
+
+    MaterialTaskVo getInfoById(Long id);
+
+    void sendMessage(Long materialTaskId);
 }

+ 173 - 2
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -1,8 +1,26 @@
 package com.xjrsoft.module.material.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.common.constant.GlobalConstant;
+import com.xjrsoft.common.enums.MaterialCategoryEnum;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.utils.LocalDateTimeUtil;
+import com.xjrsoft.common.utils.RedisUtil;
+import com.xjrsoft.common.utils.VoToColumnUtil;
+import com.xjrsoft.config.CommonPropertiesConfig;
 import com.xjrsoft.module.material.dto.AddMaterialTaskAppendixDto;
 import com.xjrsoft.module.material.dto.AddMaterialTaskDto;
 import com.xjrsoft.module.material.dto.MaterialAssignUserDto;
@@ -10,16 +28,35 @@ import com.xjrsoft.module.material.dto.MaterialTaskAssignAppendixDto;
 import com.xjrsoft.module.material.entity.MaterialTask;
 import com.xjrsoft.module.material.entity.MaterialTaskAppendix;
 import com.xjrsoft.module.material.entity.MaterialTaskAssign;
+import com.xjrsoft.module.material.entity.MaterialType;
 import com.xjrsoft.module.material.mapper.MaterialTaskAppendixMapper;
 import com.xjrsoft.module.material.mapper.MaterialTaskAssignMapper;
 import com.xjrsoft.module.material.mapper.MaterialTaskMapper;
 import com.xjrsoft.module.material.service.IMaterialTaskService;
+import com.xjrsoft.module.material.service.IMaterialTypeService;
+import com.xjrsoft.module.material.vo.MaterialTaskAppendixVo;
+import com.xjrsoft.module.material.vo.MaterialTaskPageVo;
+import com.xjrsoft.module.material.vo.MaterialTaskVo;
+import com.xjrsoft.module.material.vo.MaterialTypeVo;
+import com.xjrsoft.module.oa.entity.News;
+import com.xjrsoft.module.oa.entity.NewsRelation;
+import com.xjrsoft.module.oa.vo.NewsRelationVo;
+import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
+import com.xjrsoft.module.organization.entity.Department;
+import com.xjrsoft.module.organization.entity.User;
+import com.xjrsoft.module.organization.service.IUserService;
+import com.xjrsoft.module.organization.service.IWeChatService;
+import com.xjrsoft.module.system.entity.DictionaryDetail;
+import com.xjrsoft.module.system.entity.File;
+import com.xjrsoft.module.teacher.entity.XjrUser;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 /**
@@ -36,17 +73,21 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
     private final MaterialTaskAssignMapper materialTaskMaterialTaskAssignMapper;
     private final MaterialTaskAppendixMapper materialTaskMaterialTaskAppendixMapper;
 
+    private final IMaterialTypeService materialTypeService;
+    private final IWeChatService weChatService;
 
+    private final CommonPropertiesConfig commonPropertiesConfig;
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long add(AddMaterialTaskDto dto) {
         MaterialTask materialTask = BeanUtil.toBean(dto, MaterialTask.class);
+        //新增任务
         materialTask.setStatus(2);
         if(dto.getUserList() == null && !dto.getUserList().isEmpty()){
             materialTask.setSubmitedPerson(dto.getUserList().size());
         }
         materialTaskMaterialTaskMapper.insert(materialTask);
-
+        //新增任务人
         for (MaterialAssignUserDto materialAssignUserDto : dto.getUserList()){
             materialTaskMaterialTaskAssignMapper.insert(new MaterialTaskAssign(){{
                 setMaterialTaskId(materialTask.getId());
@@ -55,7 +96,7 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
                 setUserNumber(materialAssignUserDto.getUserNumber());
                 setStatus(1);
                 setExecutiveStatus(1);
-                setSendMessage(dto.getSendMessageStatus());
+                setSendMessage(dto.getSendMessage());
             }});
         }
 
@@ -180,4 +221,134 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
         }
         return true;
     }
+
+    @Override
+    public MaterialTaskVo getInfoById(Long id) {
+        MPJLambdaWrapper<MaterialTask> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper
+                .orderByDesc(MaterialTask::getId)
+                .eq(MaterialTask::getCreateUserId, StpUtil.getLoginIdAsLong())
+                .select(MaterialTask::getId)
+                .selectAs(MaterialType::getName, MaterialTaskVo::getMaterialTypeIdCn)
+                .selectAs(MaterialType::getCreateDate, MaterialTaskVo::getCreateDate)
+                .selectAs(DictionaryDetail::getName, MaterialTaskVo::getMaterialCategoryCn)
+                .select(MaterialTask.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskVo.class).contains(x.getProperty()))
+                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, MaterialTask::getMaterialCategory)
+                .leftJoin(MaterialType.class, MaterialType::getId, MaterialTask::getMaterialTypeId);
+        MaterialTaskVo materialTaskVo = this.selectJoinOne(MaterialTaskVo.class, queryWrapper);
+
+        if (materialTaskVo == null) {
+            return materialTaskVo;
+        }
+
+        MaterialTypeVo materialTypeVo = materialTypeService.getInfoById(materialTaskVo.getMaterialTypeId());
+        if(materialTypeVo == null){
+            return materialTaskVo;
+        }
+        if(materialTaskVo.getMaterialCategory().equals(MaterialCategoryEnum.MT0001.getCode())){
+            materialTaskVo.setFolderId(materialTypeVo.getFolderId());
+            materialTaskVo.setFolderIdCn(materialTypeVo.getFolderIdCn());
+            materialTaskVo.setFiles(materialTypeVo.getFiles());
+        }
+        if(materialTaskVo.getMaterialCategory().equals(MaterialCategoryEnum.MT0002.getCode())){
+            materialTaskVo.setFormReleaseId(materialTypeVo.getFormReleaseId());
+            materialTaskVo.setFormReleaseIdCn(materialTypeVo.getFormReleaseIdCn());
+        }
+
+
+//        MPJLambdaWrapper<MaterialTaskAssign> materialTaskAssignMPJLambdaWrapper = new MPJLambdaWrapper<>();
+//        materialTaskAssignMPJLambdaWrapper
+//                .orderByDesc(MaterialTaskAssign::getCreateDate)
+//                .eq(MaterialTaskAssign::getMaterialTaskId, id)
+//                .select(MaterialTask::getId)
+//                .selectAs(MaterialType::getName, MaterialTaskVo::getMaterialTypeIdCn)
+//                .selectAs(MaterialType::getCreateDate, MaterialTaskVo::getCreateDate)
+//                .selectAs(DictionaryDetail::getName, MaterialTaskVo::getMaterialCategoryCn)
+//                .select(MaterialTask.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskVo.class).contains(x.getProperty()))
+//                .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, MaterialTask::getMaterialCategory)
+//                .leftJoin(MaterialType.class, MaterialType::getId, MaterialTask::getMaterialTypeId);
+//        MaterialTaskVo materialTaskVo = materialTaskMaterialTaskAssignMapper.selectJoinOne(MaterialTaskVo.class, queryWrapper);
+
+//        List<MaterialTaskAppendixVo> newsAppendixVoList = materialTaskAppendixService.selectJoinList(MaterialTaskAppendixVo.class,
+//                new MPJLambdaWrapper<MaterialTaskAppendix>().eq(MaterialTaskAppendix::getMaterialTaskId, id)
+//                        .select(MaterialTaskAppendix::getId)
+//                        .select(MaterialTaskAppendix.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAppendixVo.class).contains(x.getProperty()))
+//                        .leftJoin(File.class, File::getId, MaterialTaskAppendix::getFileId, ext -> ext.selectAs(File::getFileName, MaterialTaskAppendixVo::getFileName)
+//                                .selectAs(File::getFolderId, MaterialTaskAppendixVo::getFolderId)
+//                                .selectAs(File::getFileUrl, MaterialTaskAppendixVo::getFileUrl))
+//        );
+//
+//        if (newsAppendixVoList.size() > 0) {
+//            materialTaskVo.setMaterialTaskAppendixList(newsAppendixVoList);
+//        }
+        return materialTaskVo;
+    }
+
+    @Override
+    public void sendMessage(Long materialTaskId) {
+        MaterialTask materialTask = this.getById(materialTaskId);
+        if(materialTask == null){
+            return;
+        }
+
+        LambdaQueryWrapper<MaterialTaskAssign> materialTaskAssignLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        materialTaskAssignLambdaQueryWrapper
+                .orderByDesc(MaterialTaskAssign::getCreateDate)
+                .eq(MaterialTaskAssign::getMaterialTaskId, materialTaskId)
+                .select(MaterialTaskAssign::getId)
+                .select(MaterialTaskAssign.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAssign.class).contains(x.getProperty()));
+        List<MaterialTaskAssign> materialTaskAssignList = materialTaskMaterialTaskAssignMapper.selectList(materialTaskAssignLambdaQueryWrapper);
+
+        if(!materialTaskAssignList.isEmpty()){
+            materialTask.setMaterialTaskAssignList(materialTaskAssignList);
+        }
+
+        CompletableFuture.runAsync(() -> {
+            this.SendMessage(materialTask);
+        });
+    }
+    public boolean SendMessage(MaterialTask materialTask ) {
+        IUserService userService = SpringUtil.getBean(IUserService.class);
+        RedisUtil redisUtil = SpringUtil.getBean(RedisUtil.class);
+        List<User> userList = redisUtil.get(GlobalConstant.USER_CACHE_KEY, new TypeReference<List<User>>() {
+        });
+        //如果缓存中不存在用户信息,就直接去数据库查询,并保存到缓存中去
+        if (userList.size() == 0) {
+            userList = userService.list();
+            redisUtil.set(GlobalConstant.USER_CACHE_KEY, userList);
+        }
+
+        if(materialTask.getCreateUserId() == null){
+            return false;
+        }
+
+        User createUser = userList.stream().filter(u -> materialTask.getCreateUserId().equals(u.getId())).findFirst().orElse(new User());
+
+        for (MaterialTaskAssign materialTaskAssign : materialTask.getMaterialTaskAssignList()) {
+
+            User materialTaskAssignUser = userList.stream().filter(u -> materialTaskAssign.getUserId().equals(u.getId())).findFirst().orElse(new User());
+
+            WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
+            weChatSendMessageDto.setUserId(materialTaskAssignUser.getOpenId());
+            weChatSendMessageDto.setTemplateId("qmpXORPM1Cocqn503Qa4OkNNQ0uxlj2-ed9m6uWO-v4");
+            //weChatSendMessageDto.setUrl(StrUtil.format("{}/pages/message/notice/detail?id={}", commonPropertiesConfig.getDomainApp(), id));
+            weChatSendMessageDto.setMsgId(materialTask.getId().toString());
+            JSONObject data = new JSONObject();
+
+            JSONObject data1 = new JSONObject();
+            data1.put("value", materialTask.getName());
+            data.put("thing23", data1);
+
+            JSONObject data2 = new JSONObject();
+            data2.put("value", createUser.getName());
+            data.put("thing18", data2);
+
+            JSONObject data3 = new JSONObject();
+            data3.put("value", materialTask.getRequiredCompleteTime());
+            data.put("time17", data3);
+            weChatSendMessageDto.setContent(data);
+            weChatService.sendTemplateMessage(weChatSendMessageDto);
+        };
+        return true;
+    }
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/material/vo/MaterialTaskAssignListVo.java

@@ -37,7 +37,7 @@ public class MaterialTaskAssignListVo {
     @ApiModelProperty("状态 1=未提交 2=待审核 3=通过 4=重做")
     private Integer status;
     /**
-     * 用户名
+     * oa
      */
     private String userName;
     /**

+ 8 - 29
src/main/java/com/xjrsoft/module/material/vo/MaterialTaskPageVo.java

@@ -26,40 +26,12 @@ public class MaterialTaskPageVo {
     @ApiModelProperty("主键编号")
     private String id;
     /**
-    * 创建人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("创建人")
-    @ApiModelProperty("创建人")
-    private Long createUserId;
-    /**
     * 创建时间
     */
     @ContentStyle(dataFormat = 49)
     @ExcelProperty("创建时间")
     @ApiModelProperty("创建时间")
-    private LocalDateTime createDate;
-    /**
-    * 修改人
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改人")
-    @ApiModelProperty("修改人")
-    private Long modifyUserId;
-    /**
-    * 修改时间
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("修改时间")
-    @ApiModelProperty("修改时间")
-    private LocalDateTime modifyDate;
-    /**
-    * 删除标记
-    */
-    @ContentStyle(dataFormat = 49)
-    @ExcelProperty("删除标记")
-    @ApiModelProperty("删除标记")
-    private Integer deleteMark;
+    private LocalDate createDate;
     /**
     * 有效标志
     */
@@ -74,6 +46,13 @@ public class MaterialTaskPageVo {
     @ExcelProperty("材料提交任务类型(material_type)")
     @ApiModelProperty("材料提交任务类型(material_type)")
     private Long materialTypeId;
+    /**
+     * 材料提交任务类型(material_type)
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("材料提交任务类型(material_type)")
+    @ApiModelProperty("材料提交任务类型(material_type)")
+    private String materialTypeIdCn;
     /**
     * 任务名称
     */

+ 51 - 0
src/main/java/com/xjrsoft/module/material/vo/MaterialTaskVo.java

@@ -1,6 +1,9 @@
 package com.xjrsoft.module.material.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xjrsoft.module.system.entity.File;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -21,11 +24,33 @@ public class MaterialTaskVo {
     */
     @ApiModelProperty("主键编号")
     private Long id;
+    /**
+     * 创建时间
+     */
+    @ContentStyle(dataFormat = 49)
+    @ExcelProperty("创建时间")
+    @ApiModelProperty("创建时间")
+    private LocalDate createDate;
     /**
     * 材料提交任务类型(material_type)
     */
     @ApiModelProperty("材料提交任务类型(material_type)")
     private Long materialTypeId;
+    /**
+     * 材料提交任务类型(material_type)
+     */
+    @ApiModelProperty("材料提交任务类型(material_type)")
+    private String materialTypeIdCn;
+    /**
+     * 任务类型(可多选 xjr_dictionary_detail[material_category])
+     */
+    @ApiModelProperty("任务类型(可多选 xjr_dictionary_detail[material_category])")
+    private String materialCategory;
+    /**
+     * 任务类型(可多选 xjr_dictionary_detail[material_category])
+     */
+    @ApiModelProperty("任务类型(可多选 xjr_dictionary_detail[material_category])")
+    private String materialCategoryCn;
     /**
     * 任务名称
     */
@@ -68,6 +93,32 @@ public class MaterialTaskVo {
     @ApiModelProperty("延迟提交")
     private Integer timeDelay;
 
+    /**
+     * 文件模板
+     */
+    @ApiModelProperty("文件模板")
+    private Long folderId;
+    /**
+     * 文件模板
+     */
+    @ApiModelProperty("文件模板")
+    private String folderIdCn;
+    /**
+     * 文件模板
+     */
+    @ApiModelProperty("文件模板")
+    private List<File> files;
+    /**
+     * 表单发布
+     */
+    @ApiModelProperty("表单发布")
+    private Long formReleaseId;
+    /**
+     * 表单发布
+     */
+    @ApiModelProperty("表单发布")
+    private String formReleaseIdCn;
+
 
     /**
     * materialTaskAssign

+ 1 - 1
src/main/java/com/xjrsoft/module/workflow/service/impl/WorkflowExecuteServiceImpl.java

@@ -3840,7 +3840,7 @@ public class WorkflowExecuteServiceImpl implements IWorkflowExecuteService {
         operateRecord.setRecordTime(LocalDateTime.now());
         operateRecord.setUsageScenario(2);
         //[操作人名称] 通过[指派审核人] 指派[被指派人名称]作为审核人
-        record.setMessage("审批人:" + user.getName() + ", 审批结果:指派审核人, 审批内容:指派【" + allAssigneesUserNames + "】作为审核人");
+        operateRecord.setOperateInfo("审批人:" + user.getName() + ", 审批结果:指派审核人, 审批内容:指派【" + allAssigneesUserNames + "】作为审核人");
 
         xjrWorkflowOperateRecordMapper.insert(operateRecord);
         return true;