浏览代码

Merge remote-tracking branch 'origin/dev' into pre

dzx 4 月之前
父节点
当前提交
8aabb70807

+ 8 - 0
src/main/java/com/xjrsoft/module/material/controller/MaterialTaskController.java

@@ -153,6 +153,14 @@ public class MaterialTaskController {
         return RT.ok(materialTaskVo);
     }
 
+    @GetMapping(value = "/view")
+    @ApiOperation(value = "根据id查询材料提交任务信息")
+    @SaCheckPermission("materialtask:detail")
+    public RT<MaterialTaskVo> view(@RequestParam Long id) {
+        MaterialTaskVo materialTaskVo = materialTaskService.getInfoViewById(id);
+        return RT.ok(materialTaskVo);
+    }
+
 
     @PostMapping
     @ApiOperation(value = "新增材料提交任务")

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

@@ -52,6 +52,7 @@ public interface IMaterialTaskService extends MPJBaseService<MaterialTask> {
     Boolean submited(MaterialTaskAssignAppendixDto dto);
 
     MaterialTaskVo getInfoById(Long id);
+    MaterialTaskVo getInfoViewById(Long id);
 
     void sendMessage(Long materialTaskId);
 

+ 37 - 4
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xjrsoft.module.material.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
@@ -36,12 +37,10 @@ import com.xjrsoft.module.material.entity.MaterialTypeAssign;
 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.IMaterialTaskAppendixService;
 import com.xjrsoft.module.material.service.IMaterialTaskService;
 import com.xjrsoft.module.material.service.IMaterialTypeService;
-import com.xjrsoft.module.material.vo.MaterialTaskAssignListVo;
-import com.xjrsoft.module.material.vo.MaterialTaskAssignUserVo;
-import com.xjrsoft.module.material.vo.MaterialTaskVo;
-import com.xjrsoft.module.material.vo.MaterialTypeVo;
+import com.xjrsoft.module.material.vo.*;
 import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.organization.entity.User;
@@ -55,6 +54,7 @@ import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.service.IFileService;
 import com.xjrsoft.module.teacher.entity.XjrUser;
 import com.xjrsoft.module.teacher.vo.XjrUserVo;
+import com.xjrsoft.module.workflow.entity.WorkflowSchema;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -91,6 +91,7 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
     private final FormTemplateMapper formTemplateMapper;
     private final IFileService fileService;
     private final IUserService userService;
+    private final IMaterialTaskAppendixService materialTaskAppendixService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -417,6 +418,38 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
         return materialTaskVo;
     }
 
+    @Override
+    public MaterialTaskVo getInfoViewById(Long id) {
+        MaterialTaskVo materialTaskVo = getInfoById(id);
+
+        MPJLambdaWrapper<MaterialTaskAssign> materialTaskAssignMPJLambdaWrapper = new MPJLambdaWrapper<>();
+        materialTaskAssignMPJLambdaWrapper
+                .orderByDesc(MaterialTaskAssign::getCreateDate)
+                .eq(MaterialTaskAssign::getMaterialTaskId, id)
+                .eq(MaterialTaskAssign::getUserId, StpUtil.getLoginIdAsLong());
+
+        MaterialTaskAssign materialTaskAssignVo = materialTaskMaterialTaskAssignMapper
+                .selectOne(Wrappers.lambdaQuery(MaterialTaskAssign.class)
+                        .eq(MaterialTaskAssign::getMaterialTaskId, id)
+                        .eq(MaterialTaskAssign::getUserId, StpUtil.getLoginIdAsLong())
+                );
+
+        List<MaterialTaskAppendixVo> newsAppendixVoList = materialTaskAppendixService.selectJoinList(MaterialTaskAppendixVo.class,
+                new MPJLambdaWrapper<MaterialTaskAppendix>()
+                        .eq(MaterialTaskAppendix::getMaterialTaskId, materialTaskAssignVo.getId())
+                        .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);