Kaynağa Gözat

材料缴交

大数据与最优化研究所 1 yıl önce
ebeveyn
işleme
9bd000c27c

+ 1 - 1
src/main/java/com/xjrsoft/module/material/entity/MaterialTaskAssign.java

@@ -82,7 +82,7 @@ public class MaterialTaskAssign implements Serializable {
     /**
     * 用户类型 1=孝职工 2=学生
     */
-    @ApiModelProperty("用户类型 1=职工 2=学生")
+    @ApiModelProperty("用户类型 1=职工 2=学生")
     private Integer userType;
     /**
     * 学号/工号

+ 39 - 24
src/main/java/com/xjrsoft/module/material/service/impl/MaterialTaskServiceImpl.java

@@ -33,12 +33,14 @@ 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.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.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.Department;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.entity.UserDeptRelation;
+import com.xjrsoft.module.organization.entity.UserRoleRelation;
 import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.organization.service.IWeChatService;
 import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
@@ -50,9 +52,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
@@ -81,20 +81,22 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
         MaterialTask materialTask = BeanUtil.toBean(dto, MaterialTask.class);
 
         //梳理提交人
-        List<MaterialTaskAssign> materialTaskAssignList = new ArrayList<>();
+        Map<Long, MaterialTaskAssign> materialTaskAssignMap = new HashMap<>();
         for (MaterialAssignUserDto materialAssignUserDto : dto.getUserList()){
             if(materialAssignUserDto.getUserType() == 1){
                 List<XjrUserVo> xjrUserVos = xjrUserService.selectJoinList(XjrUserVo.class,
                         new MPJLambdaWrapper<XjrUser>()
                                 .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, XjrUser::getId)
+                                .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
                                 .eq(UserDeptRelation::getDeptId, materialAssignUserDto.getUserId())
+                                .eq(UserRoleRelation::getRoleId, 2)
                                 .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
                 );
                 for (XjrUserVo xjrUserVo : xjrUserVos) {
-                    materialTaskAssignList.add(new MaterialTaskAssign(){{
+                    materialTaskAssignMap.put(xjrUserVo.getId(), new MaterialTaskAssign(){{
                         setUserId(xjrUserVo.getId());
-                        setUserType(materialAssignUserDto.getUserType());
-                        setUserNumber(xjrUserVo.getName());
+                        setUserType(1);
+                        setUserNumber(xjrUserVo.getUserName());
                         setStatus(1);
                         setExecutiveStatus(1);
                         setSendMessage(dto.getSendMessage());
@@ -108,27 +110,40 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
                                 .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
                 );
                 for (XjrUserVo xjrUserVo : xjrUserVos) {
-                    materialTaskAssignList.add(new MaterialTaskAssign(){{
+                    materialTaskAssignMap.put(xjrUserVo.getId(), new MaterialTaskAssign(){{
                         setUserId(xjrUserVo.getId());
-                        setUserType(materialAssignUserDto.getUserType());
-                        setUserNumber(xjrUserVo.getName());
+                        setUserType(2);
+                        setUserNumber(xjrUserVo.getUserName());
                         setStatus(1);
                         setExecutiveStatus(1);
                         setSendMessage(dto.getSendMessage());
                     }});
                 }
             }else if(materialAssignUserDto.getUserType() == 3){
-                materialTaskAssignList.add(new MaterialTaskAssign(){{
-                    setUserId(materialAssignUserDto.getUserId());
-                    setUserType(materialAssignUserDto.getUserType());
-                    setUserNumber(materialAssignUserDto.getUserNumber());
-                    setStatus(1);
-                    setExecutiveStatus(1);
-                    setSendMessage(dto.getSendMessage());
-                }});
+                MaterialTaskAssignUserVo materialTaskAssignUserVo = xjrUserService.selectJoinOne(MaterialTaskAssignUserVo.class,
+                        new MPJLambdaWrapper<XjrUser>()
+                                .select(XjrUser::getId)
+                                .selectAs(XjrUser::getUserName, MaterialTaskAssignUserVo::getUserName)
+                                .selectAs(UserRoleRelation::getRoleId, MaterialTaskAssignUserVo::getRoleId)
+                                .leftJoin(UserRoleRelation.class, UserRoleRelation::getUserId, XjrUser::getId)
+                                .eq(XjrUser::getId, materialAssignUserDto.getUserId())
+                                .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
+                );
+                if(materialTaskAssignUserVo != null){
+                    materialTaskAssignMap.put(materialTaskAssignUserVo.getId(), new MaterialTaskAssign(){{
+                        setUserId(materialAssignUserDto.getUserId());
+                        setUserType(materialTaskAssignUserVo.getRoleId() == 3 ? 2 : 1);
+                        setUserNumber(materialTaskAssignUserVo.getUserName());
+                        setStatus(1);
+                        setExecutiveStatus(1);
+                        setSendMessage(dto.getSendMessage());
+                    }});
+                }
             }
         }
 
+        List<MaterialTaskAssign> materialTaskAssignList = new ArrayList<>(materialTaskAssignMap.values());
+
         //新增任务
         materialTask.setStatus(2);
         if(dto.getUserList() != null && !dto.getUserList().isEmpty()){
@@ -415,24 +430,24 @@ public class MaterialTaskServiceImpl extends MPJBaseServiceImpl<MaterialTaskMapp
         queryWrapper
                 .disableSubLogicDel()
                 .distinct()
-                .like(dto.getName() != null && !"".equals(dto.getName()), XjrUser::getName, dto.getName())
-                .eq(MaterialTaskAssign::getMaterialTaskId, dto.getMaterialTaskId())
-                .eq(dto.getState() != null, MaterialTaskAssign::getStatus, dto.getState())
                 .select(MaterialTaskAssign::getId)
-                .selectAs(XjrUser::getName, MaterialTaskAssignListVo::getName)
                 .selectAs(MaterialTaskAppendix::getFileId, MaterialTaskAssignListVo::getFolderId)
                 .selectAs(MaterialTaskAppendix::getFileId, MaterialTaskAssignListVo::getFormReleaseId)
-                .select(MaterialTask::getMaterialCategory)
+                .selectAs(MaterialTask::getMaterialCategory, MaterialTaskAssignListVo::getMaterialCategory)
+                .select(XjrUser.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAssignListVo.class).contains(x.getProperty()))
                 .select(MaterialTaskAssign.class, x -> VoToColumnUtil.fieldsToColumns(MaterialTaskAssignListVo.class).contains(x.getProperty()))
                 .innerJoin(XjrUser.class, XjrUser::getId, MaterialTaskAssign::getUserId, ext -> ext.selectAs(XjrUser::getUserName, MaterialTaskAssignListVo::getUserName))
                 .leftJoin(UserDeptRelation.class, UserDeptRelation::getUserId, MaterialTypeAssign::getUserId)
                 .leftJoin(Department.class, Department::getId, UserDeptRelation::getDeptId, ext -> ext.selectAs(Department::getName, MaterialTaskAssignListVo::getDeptName))
                 .leftJoin(MaterialTask.class, MaterialTask::getId, MaterialTaskAssign::getMaterialTaskId)
                 .leftJoin(MaterialTaskAppendix.class, MaterialTaskAppendix::getMaterialTaskId, MaterialTaskAssign::getId)
-                .eq(MaterialTaskAssign::getDeleteMark, DeleteMark.NODELETE.getCode())
+                .like(dto.getName() != null && !"".equals(dto.getName()), XjrUser::getName, dto.getName())
+                .eq(MaterialTaskAssign::getMaterialTaskId, dto.getMaterialTaskId())
+                .eq(dto.getState() != null, MaterialTaskAssign::getStatus, dto.getState())
                 .eq(XjrUser::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .eq(Department::getDeleteMark, DeleteMark.NODELETE.getCode())
                 .eq(MaterialTask::getDeleteMark, DeleteMark.NODELETE.getCode())
+                .eq(MaterialTaskAssign::getDeleteMark, DeleteMark.NODELETE.getCode())
 //                .select("(\n" +
 //                        "SELECT id FROM xjr_file WHERE id IN (\n" +
 //                        "SELECT file_id FROM material_task_appendix WHERE material_task_id = t.id\n" +

+ 26 - 0
src/main/java/com/xjrsoft/module/material/vo/MaterialTaskAssignUserVo.java

@@ -0,0 +1,26 @@
+package com.xjrsoft.module.material.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class MaterialTaskAssignUserVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 姓名
+    */
+    @ApiModelProperty("")
+    private String userName;
+    /**
+     *
+     */
+    @ApiModelProperty("")
+    private Long roleId;
+
+}