Quellcode durchsuchen

评估-项目组成员

lizhenhao vor 2 Jahren
Ursprung
Commit
1281f5ecbe

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramMembers.java

@@ -0,0 +1,46 @@
+package com.jeeplus.test.program.configuration.projectList.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 评估-项目管理-项目组成员
+ * @TableName program_members
+ */
+@TableName(value ="program_members")
+@Data
+public class ProgramMembers extends BaseEntity implements Serializable {
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 状态  0为正常  1为移除
+     */
+    private String status;
+
+    /**
+     * 项目主要成员  1为主要成员 
+     */
+    private String isImportant;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 2 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/domain/ProgramProjectListMember.java

@@ -18,4 +18,6 @@ public class ProgramProjectListMember extends BaseEntity {
 
     private String job;
 
+    private String userId;
+
 }

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/ProgramMembersMapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.program.configuration.projectList.mapper;
+
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramMembers;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.jeeplus.test.program.configuration.projectList.domain.ProgramMembers
+ */
+@Mapper
+public interface ProgramMembersMapper extends BaseMapper<ProgramMembers> {
+
+}
+
+
+
+

+ 27 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/mapper/xml/ProgramMembersMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.program.configuration.projectList.mapper.ProgramMembersMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.program.configuration.projectList.service.dto.ProgramMembersDto">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="VARCHAR"/>
+            <result property="isImportant" column="is_important" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,create_by,create_date,
+        update_by,update_date,del_flag,
+        remarks,project_id,user_id,
+        status,is_important
+    </sql>
+</mapper>

+ 54 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProgramMembersService.java

@@ -0,0 +1,54 @@
+package com.jeeplus.test.program.configuration.projectList.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.sys.service.dto.DictValueDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.DictUtils;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.mould.service.SerialnumTplService;
+import com.jeeplus.test.oss.domain.WorkAttachment;
+import com.jeeplus.test.oss.mapper.OssServiceMapper;
+import com.jeeplus.test.oss.service.OssService;
+import com.jeeplus.test.program.configuration.projectList.domain.*;
+import com.jeeplus.test.program.configuration.projectList.mapper.*;
+import com.jeeplus.test.program.configuration.projectList.service.dto.*;
+import com.jeeplus.test.program.configuration.projectList.service.mapstruct.ProgramAuditAssessPeopleWrapper;
+import com.jeeplus.test.program.configuration.projectList.service.mapstruct.ProgramAuditWrapper;
+import com.jeeplus.test.proofread.domain.ProofreadDetail;
+import com.jeeplus.test.proofread.domain.ProofreadIssued;
+import com.jeeplus.test.proofread.service.ProofreadInfoService;
+import com.jeeplus.test.proofread.service.ProofreadIssuedService;
+import com.jeeplus.test.proofread.service.dto.ProofreadInfoDto;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
+import com.jeeplus.test.workContract.mapper.WorkContractInfoMapper;
+import com.jeeplus.test.workContract.service.WorkContractService;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import com.jeeplus.test.workContract.service.dto.WorkContractInfoDto;
+import org.apache.commons.compress.utils.Lists;
+import org.flowable.bpmn.model.FlowNode;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Service
+public class ProgramMembersService extends ServiceImpl<ProgramMembersMapper, ProgramMembers> {
+
+    @Autowired
+    private ProgramMembersMapper programMembersMapper;
+}

+ 99 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/ProjectListService.java

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.sys.domain.User;
+import com.jeeplus.sys.service.UserService;
 import com.jeeplus.sys.service.dto.DictValueDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.DictUtils;
@@ -79,6 +81,10 @@ public class ProjectListService {
 
     @Resource
     private FlowTaskService flowTaskService;
+    @Resource
+    private ProgramMembersService programMembersService;
+    @Resource
+    private UserService userService;
 
     public String save(ProjectListDto dto,String tabType) throws Exception{
         if (StringUtils.isNotEmpty(dto.getId())) {
@@ -135,6 +141,10 @@ public class ProjectListService {
                 projectLinkMapper.insert(link);
             }
         }
+        // 非主要项目组成员id集合
+        List<String> memberIds = new ArrayList<>();
+        // 要进行保存的项目组成员集合
+        List<ProgramMembers> programMembers = new ArrayList<>();
         // 保存项目管理列表成员信息
         if (CollectionUtils.isNotEmpty(dto.getMembers())) {
             for (ProgramProjectListMember member : dto.getMembers()) {
@@ -146,8 +156,46 @@ public class ProjectListService {
                 member.setUpdateDate(new Date());
                 member.setDelFlag(0);
                 projectMemberMapper.insert(member);
+                if (StringUtils.isNotBlank(member.getUserId())) {
+//                    成员的user_id不是"项目负责人"、"项目创建人"的添加到非主要项目组成员id集合中
+                    if (!member.getUserId().equals(info.getProjectManager()) && !member.getUserId().equals(info.getCreateBy())) {
+                        memberIds.add(member.getUserId());
+                    }
+                }
             }
         }
+        // 非主要项目组成员id集合去重后添加到项目组成员集合中
+        if (CollectionUtil.isNotEmpty(memberIds)) {
+            List<String> mids = memberIds.stream().distinct().collect(Collectors.toList());
+            mids.stream().forEach(item -> {
+                ProgramMembers p = new ProgramMembers();
+                p.setIsImportant("0");  // 非主要成员
+                p.setProjectId(id);
+                p.setStatus("0");
+                p.setUserId(item);  //  项目创建人
+                programMembers.add(p);
+            });
+        }
+        // 主要项目组成员去重后添加到项目组成员集合中
+        ProgramMembers p = new ProgramMembers();
+        p.setIsImportant("1");  // 主要成员
+        p.setProjectId(id);
+        p.setStatus("0");
+        p.setUserId(info.getCreateBy());  //  项目创建人
+        programMembers.add(p);
+        if (StringUtils.isNotBlank(info.getProjectManager())) {
+            if (!info.getCreateBy().equals(info.getProjectManager())) { // 项目创建人,项目负责人去重一下
+                ProgramMembers m = new ProgramMembers();
+                m.setIsImportant("1");  // 主要成员
+                m.setProjectId(id);
+                m.setStatus("0");
+                m.setUserId(info.getProjectManager()); // 项目负责人
+                programMembers.add(m);
+            }
+        }
+        // 保存项目组成员
+        programMembersService.saveBatch(programMembers);
+
         // 保存附件信息
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             workContractService.saveFiles(dto.getFiles(), userDTO, id);
@@ -317,6 +365,12 @@ public class ProjectListService {
                 projectLinkMapper.insert(link);
             }
         }
+        // 非主要项目组成员id集合
+        List<String> memberIds = new ArrayList<>();
+        // 要进行保存的项目组成员集合
+        List<ProgramMembers> programMembers = new ArrayList<>();
+        //  删除此项目的项目组成员信息(先删除原有数据,再保存)
+        programMembersService.remove(new QueryWrapper<ProgramMembers>().lambda().eq(ProgramMembers::getProjectId,dto.getId()));
         // 修改项目管理列表成员信息(先删除原有数据,再保存)
         projectMemberMapper.deleteByInfoId(dto.getId());
         if (CollectionUtils.isNotEmpty(dto.getMembers())) {
@@ -329,8 +383,47 @@ public class ProjectListService {
                 member.setUpdateDate(new Date());
                 member.setDelFlag(0);
                 projectMemberMapper.insert(member);
+                if (StringUtils.isNotBlank(member.getUserId())) {
+//                    成员的user_id不是"项目负责人"、"项目创建人"的添加到非主要项目组成员id集合中
+                    if (!member.getUserId().equals(info.getProjectManager()) && !member.getUserId().equals(info.getCreateBy())) {
+                        memberIds.add(member.getUserId());
+                    }
+                }
+            }
+        }
+        // 非主要项目组成员id集合去重后添加到项目组成员集合中
+        if (CollectionUtil.isNotEmpty(memberIds)) {
+            List<String> mids = memberIds.stream().distinct().collect(Collectors.toList());
+            mids.stream().forEach(item -> {
+                ProgramMembers p = new ProgramMembers();
+                p.setIsImportant("0");  // 非主要成员
+                p.setProjectId(dto.getId());
+                p.setStatus("0");
+                p.setUserId(item);  //  项目创建人
+                programMembers.add(p);
+            });
+        }
+        // 主要项目组成员去重后添加到项目组成员集合中
+        ProgramMembers p = new ProgramMembers();
+        p.setIsImportant("1");  // 主要成员
+        p.setProjectId(dto.getId());
+        p.setStatus("0");
+        p.setUserId(info.getCreateBy());  //  项目创建人
+        programMembers.add(p);
+        if (StringUtils.isNotBlank(info.getProjectManager())) {
+            ProgramProjectListInfo byId = projectListMapper.getById(dto.getId());
+            if (!byId.getCreateBy().equals(info.getProjectManager())) { // 项目创建人,项目负责人去重一下
+                ProgramMembers m = new ProgramMembers();
+                m.setIsImportant("1");  // 主要成员
+                m.setProjectId(dto.getId());
+                m.setStatus("0");
+                m.setUserId(info.getProjectManager()); // 项目负责人
+                programMembers.add(m);
             }
         }
+        // 保存项目组成员
+        programMembersService.saveBatch(programMembers);
+
         // 修改附件信息
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             workContractService.updateFiles(dto.getFiles(), userDTO, dto.getId());
@@ -387,6 +480,12 @@ public class ProjectListService {
         memberWrapper.eq(ProgramProjectListMember::getDelFlag, 0);
         List<ProgramProjectListMember> members = projectMemberMapper.selectList(memberWrapper);
         if (CollectionUtils.isNotEmpty(members)) {
+            members.stream().forEach(member -> {
+                if (StringUtils.isNotBlank(member.getUserId())) {
+                    User byId = userService.getById(member.getUserId());
+                    member.setName(byId.getName());
+                }
+            });
             dto.setMembers(members);
         }
         // 查询附件信息

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/dto/ProgramMembersDto.java

@@ -0,0 +1,46 @@
+package com.jeeplus.test.program.configuration.projectList.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 评估-项目管理-项目组成员
+ * @TableName program_members
+ */
+@TableName(value ="program_members")
+@Data
+public class ProgramMembersDto extends BaseDTO implements Serializable {
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 状态  0为正常  1为移除
+     */
+    private String status;
+
+    /**
+     * 项目主要成员  1为主要成员 
+     */
+    private String isImportant;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/program/configuration/projectList/service/mapstruct/ProgramMembersWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.program.configuration.projectList.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramArchive;
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramMembers;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramArchiveDto;
+import com.jeeplus.test.program.configuration.projectList.service.dto.ProgramMembersDto;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ProgramMembersWrapper extends EntityWrapper<ProgramMembersDto, ProgramMembers>{
+
+        ProgramMembersWrapper INSTANCE = Mappers.getMapper(ProgramMembersWrapper.class);
+
+}