Browse Source

项目组成员调整

lizhenhao 2 years atrás
parent
commit
48b3a3c518

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/domain/CwProjectMembers.java

@@ -33,6 +33,11 @@ public class CwProjectMembers extends BaseEntity {
      */
     private String status;
 
+    /**
+     * 项目主要成员
+     */
+    private String isImportant;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

+ 3 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectMembersMapper.xml

@@ -15,6 +15,7 @@
             <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="Members_Column_List">
@@ -27,6 +28,7 @@
         cw_pm.remarks,
         cw_pm.project_id,
         cw_pm.user_id,
-        cw_pm.status
+        cw_pm.status,
+        cw_pm.is_important
     </sql>
 </mapper>

+ 2 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml

@@ -180,7 +180,8 @@
         cw_pm.remarks,
         cw_pm.project_id,
         cw_pm.user_id,
-        cw_pm.status
+        cw_pm.status,
+        cw_pm.is_important
     </sql>
 
     <select id="getProjectClient" resultType="com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO">

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.ObjectUtil;
+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.extension.plugins.pagination.Page;
@@ -281,6 +282,51 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
                     cwProjectClientContactMapper.delete(new QueryWrapper<CwProjectClientContact>().lambda().eq(CwProjectClientContact::getProjectId,cwProjectRecords.getId()));
                 }
             }
+            // 项目保存的时候,将主要成员添加到项目组成员中
+            // 先删除当前项目的主要成员
+            cwProjectMembersService.remove(new LambdaQueryWrapper<CwProjectMembers>().eq(CwProjectMembers::getProjectId,cwProjectRecords.getId()).eq(CwProjectMembers::getIsImportant,"1"));
+            List<String> mlist = new ArrayList<>();
+            // 项目经理1
+            if (StringUtils.isNotBlank(cwProjectRecordsDTO.getProjectMasterId())){
+                mlist.add(cwProjectRecordsDTO.getProjectMasterId());
+            }
+            // 项目经理2
+            if (StringUtils.isNotBlank(cwProjectRecordsDTO.getRealHeader())) {
+                mlist.add(cwProjectRecordsDTO.getRealHeader());
+            }
+            // 现场负责人
+            if (StringUtils.isNotBlank(cwProjectRecordsDTO.getProjectLeaderId())) {
+                mlist.add(cwProjectRecordsDTO.getProjectLeaderId());
+            }
+            // 项目发起人
+            if (StringUtils.isNotBlank(cwProjectRecords.getCreateBy())) {
+                mlist.add(cwProjectRecords.getCreateBy());
+            }
+            if (CollectionUtil.isNotEmpty(mlist)) {
+                List<CwProjectMembers> haveList = cwProjectMembersService.list(new LambdaQueryWrapper<CwProjectMembers>().eq(CwProjectMembers::getProjectId,cwProjectRecords.getId()));
+                // 将已有的成员(不是主要成员),剔除掉,不重复新增
+                Iterator<String> it = mlist.iterator();
+                while(it.hasNext()){
+                    String x = it.next();
+                    haveList.stream().forEach(have -> {
+                        if (x.equals(have.getUserId())) {
+                            it.remove();
+                        }
+                    });
+                }
+                // 新增主要成员
+                List<CwProjectMembers> members = new ArrayList<>();
+                List<String> collect = mlist.stream().distinct().collect(Collectors.toList());
+                collect.stream().forEach(item -> {
+                    CwProjectMembers cwProjectMembers = new CwProjectMembers();
+                    cwProjectMembers.setIsImportant("1");
+                    cwProjectMembers.setProjectId(cwProjectRecords.getId());
+                    cwProjectMembers.setUserId(item);
+                    cwProjectMembers.setStatus("0");
+                    members.add(cwProjectMembers);
+                });
+                cwProjectMembersService.saveBatch(members);
+            }
         }
         return cwProjectRecords.getId();
     }

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/dto/CwProjectMembersDTO.java

@@ -33,6 +33,11 @@ public class CwProjectMembersDTO extends BaseDTO {
      */
     private String status;
 
+    /**
+     * 项目主要成员
+     */
+    private String isImportant;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }