Bläddra i källkod

Merge remote-tracking branch 'origin/master'

user5 2 år sedan
förälder
incheckning
fcd4a0c1ef
12 ändrade filer med 302 tillägg och 1 borttagningar
  1. 12 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/controller/CwProjectRecordsController.java
  2. 38 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/domain/CwProjectMembers.java
  3. 15 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/CwProjectMembersMapper.java
  4. 32 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectMembersMapper.xml
  5. 29 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml
  6. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectMembersService.java
  7. 53 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java
  8. 38 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/dto/CwProjectMembersDTO.java
  9. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/dto/CwProjectRecordsDTO.java
  10. 18 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/mapstruct/CwProjectMembersWrapper.java
  11. 35 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java
  12. 5 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

+ 12 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/controller/CwProjectRecordsController.java

@@ -96,6 +96,18 @@ public class CwProjectRecordsController {
     }
 
     /**
+     * 保存财务项目组成员信息
+     * @param cwProjectRecordsDTO
+     * @return
+     */
+    @ApiLog(value = "保存财务项目组成员信息", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('cwProjectRecords:add','cwProjectRecords:edit')")
+    @PostMapping("updateMembers")
+    public ResponseEntity updateMembers(@Valid @RequestBody CwProjectRecordsDTO cwProjectRecordsDTO) {
+        return cwProjectRecordsService.updateMembers(cwProjectRecordsDTO);
+    }
+
+    /**
      * 删除财务项目信息
      * @param ids
      * @return

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

@@ -0,0 +1,38 @@
+package com.jeeplus.test.cw.projectRecords.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 项目管理-项目登记-项目组成员
+ * @TableName cw_project_members
+ */
+@TableName(value ="cw_project_members")
+@Data
+public class CwProjectMembers extends BaseEntity {
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 15 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/CwProjectMembersMapper.java

@@ -0,0 +1,15 @@
+package com.jeeplus.test.cw.projectRecords.mapper;
+
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectMembers;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.jeeplus.test.cw.projectRecords.domain.CwProjectMembers
+ */
+public interface CwProjectMembersMapper extends BaseMapper<CwProjectMembers> {
+
+}
+
+
+
+

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

@@ -0,0 +1,32 @@
+<?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.cw.projectRecords.mapper.CwProjectMembersMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.cw.projectRecords.service.dto.CwProjectMembersDTO">
+            <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"/>
+    </resultMap>
+
+    <sql id="Members_Column_List">
+        cw_pm.id,
+        cw_pm.create_by,
+        cw_pm.create_date,
+        cw_pm.update_by,
+        cw_pm.update_date,
+        cw_pm.del_flag,
+        cw_pm.remarks,
+        cw_pm.project_id,
+        cw_pm.user_id,
+        cw_pm.status
+    </sql>
+</mapper>

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

@@ -41,9 +41,12 @@
         <result property="realHeader" column="real_header" jdbcType="VARCHAR"/>
         <result property="clientContactsName" column="client_contacts_name" jdbcType="VARCHAR"/>
         <result property="reportType" column="report_type" jdbcType="VARCHAR"/>
+        <result property="memberCount" column="member_count" jdbcType="VARCHAR"/>
         <collection property="cwProjectClientInfoDTOList" ofType="com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO" column="id" select="getProjectClient"></collection>
         <collection property="workAttachmentDtoList" ofType="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto" column="id" select="getFileList"></collection>
         <collection property="cwProjectClientContactDTOList" ofType="com.jeeplus.test.cw.projectRecords.service.dto.CwProjectClientContactDTO" column="id" select="getContact"></collection>
+        <collection property="cwProjectMembersDTOList" ofType="com.jeeplus.test.cw.projectRecords.service.dto.CwProjectMembersDTO" column="id" select="getMembers"></collection>
+
     </resultMap>
 
     <resultMap id="AttachmentMap" type="com.jeeplus.test.workContract.service.dto.WorkAttachmentDto">
@@ -164,6 +167,18 @@
         cw_wcb.agree_date,
         cw_wcb.agree_user_id
     </sql>
+    <sql id="Members_Column_List">
+        cw_pm.id,
+        cw_pm.create_by,
+        cw_pm.create_date,
+        cw_pm.update_by,
+        cw_pm.update_date,
+        cw_pm.del_flag,
+        cw_pm.remarks,
+        cw_pm.project_id,
+        cw_pm.user_id,
+        cw_pm.status
+    </sql>
 
     <select id="getProjectClient" resultType="com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO">
         select
@@ -188,6 +203,13 @@
         from cw_project_client_contact cw_pcc
         where cw_pcc.project_id = #{id} and cw_pcc.del_flag = '0'
     </select>
+    <select id="getMembers" resultType="com.jeeplus.test.cw.projectRecords.service.dto.CwProjectMembersDTO">
+        select
+        <include refid="Members_Column_List"></include>
+        from cw_project_members cw_pm
+        where cw_pm.project_id = #{id} and cw_pm.del_flag = '0'
+    </select>
+
 
     <select id="findList" resultMap="BaseResultMap">
         select
@@ -200,13 +222,19 @@
         cw_wci.payer_subject,
         cw_wci.payment_method,
         cw_wcb.name as client_contacts_name,
-        cw_pbt.name as business_type_name
+        cw_pbt.name as business_type_name,
+        b.member_count
         from cw_project_records a
         left join sys_user su on su.id = a.create_by and su.del_flag = '0'
         left join sys_user su2 on su2.id = a.project_master_id and su2.del_flag = '0'
         left join cw_work_contract_info cw_wci on cw_wci.id = a.contract_id and cw_wci.del_flag = '0'
         left join cw_work_client_base cw_wcb on cw_wci.client_contacts = cw_wcb.id and cw_wcb.del_flag = '0'
         left join cw_project_business_type cw_pbt on cw_pbt.id = a.business_type and cw_pbt.del_flag = '0'
+        left join (select rec.id,count(cw_pm.id) as member_count
+                    from cw_project_records rec
+                    left join cw_project_members cw_pm on cw_pm.project_id = rec.id and cw_pm.del_flag = '0'
+                    group by rec.id
+                    ) b on b.id = a.id
         ${ew.customSqlSegment}
     </select>
 

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectMembersService.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.cw.projectRecords.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectClientContact;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectMembers;
+import com.jeeplus.test.cw.projectRecords.mapper.CwProjectClientContactMapper;
+import com.jeeplus.test.cw.projectRecords.mapper.CwProjectMembersMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class CwProjectMembersService extends ServiceImpl<CwProjectMembersMapper, CwProjectMembers> {
+
+    private CwProjectMembersMapper cwProjectMembersMapper;
+
+}

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

@@ -23,13 +23,16 @@ import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
 import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
 import com.jeeplus.test.cw.contractRegistration.mapper.ContractInfoMapper;
 import com.jeeplus.test.cw.projectRecords.domain.CwProjectClientContact;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectMembers;
 import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
 import com.jeeplus.test.cw.projectRecords.mapper.CwProjectClientContactMapper;
 import com.jeeplus.test.cw.projectRecords.mapper.CwProjectRecordsMapper;
 import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectClientContactDTO;
 import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectClientInfoDTO;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectMembersDTO;
 import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
 import com.jeeplus.test.cw.projectRecords.service.mapstruct.CwProjectClientContactWrapper;
+import com.jeeplus.test.cw.projectRecords.service.mapstruct.CwProjectMembersWrapper;
 import com.jeeplus.test.cw.projectRecords.service.mapstruct.CwProjectRecordsWrapper;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientContact;
 import com.jeeplus.test.cw.workClientInfo.service.CwWorkClientContactService;
@@ -79,6 +82,8 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
     private UserMapper userMapper;
     @Resource
     private CwWorkClientContactService cwWorkClientContactService;
+    @Resource
+    private CwProjectMembersService cwProjectMembersService;
 
     /**
      * 差选项目列表信息
@@ -343,4 +348,52 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
         return new ArrayList<>();
     }
 
+    /**
+     * 根据项目id修改项目组成员信息
+     * 注:项目id必须不为空
+     * @param cwProjectRecordsDTO
+     * @return
+     */
+    public ResponseEntity updateMembers(CwProjectRecordsDTO cwProjectRecordsDTO) {
+        if (CollectionUtil.isNotEmpty(cwProjectRecordsDTO.getCwProjectMembersDTOList())) {
+            List<String> liveIds = cwProjectRecordsDTO.getCwProjectMembersDTOList().stream().filter(item -> {
+                if (StringUtils.isNotBlank(item.getId())) {
+                    return true;
+                }
+                return false;
+            }).map(CwProjectMembersDTO::getId).collect(Collectors.toList());
+            if (CollectionUtil.isNotEmpty(liveIds)) {
+                cwProjectMembersService.remove(new QueryWrapper<CwProjectMembers>().lambda()
+                        .eq(CwProjectMembers::getProjectId,cwProjectRecordsDTO.getId())
+                        .notIn(CwProjectMembers::getId,liveIds));
+
+            } else {
+                cwProjectMembersService.remove(new QueryWrapper<CwProjectMembers>().lambda().eq(CwProjectMembers::getProjectId,cwProjectRecordsDTO.getId()));
+            }
+            List<CwProjectMembers> updateBatchById = new ArrayList<>();
+            List<CwProjectMembers> insertBatchById = new ArrayList<>();
+            cwProjectRecordsDTO.getCwProjectMembersDTOList().stream().forEach(item->{
+                item.setProjectId(cwProjectRecordsDTO.getId());
+                if (StringUtils.isNotBlank(item.getId())){
+                    // 有id进行修改操作
+                    updateBatchById.add(CwProjectMembersWrapper.INSTANCE.toEntity(item));
+                }else{
+                    // 无id进行新增操作
+                    insertBatchById.add(CwProjectMembersWrapper.INSTANCE.toEntity(item));
+                }
+            });
+            // 批量根据id修改数据
+            if (CollectionUtil.isNotEmpty(updateBatchById)){
+                cwProjectMembersService.updateBatchById(updateBatchById);
+            }
+            // 批量新增数据
+            if (CollectionUtil.isNotEmpty(insertBatchById)){
+                cwProjectMembersService.saveBatch(insertBatchById);
+            }
+        } else {
+            cwProjectMembersService.remove(new QueryWrapper<CwProjectMembers>().lambda().eq(CwProjectMembers::getProjectId,cwProjectRecordsDTO.getId()));
+        }
+        return ResponseEntity.ok("操作成功");
+    }
+
 }

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

@@ -0,0 +1,38 @@
+package com.jeeplus.test.cw.projectRecords.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;
+
+/**
+ * 项目管理-项目登记-项目组成员
+ * @TableName cw_project_members
+ */
+@Data
+public class CwProjectMembersDTO extends BaseDTO {
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 人员id
+     */
+    private String userId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

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

@@ -209,4 +209,14 @@ public class CwProjectRecordsDTO extends BaseDTO {
      */
     private List<CwProjectClientContactDTO> cwProjectClientContactDTOList;
 
+    /**
+     * 项目组成员
+     */
+    private List<CwProjectMembersDTO> cwProjectMembersDTOList;
+
+    /**
+     * 项目组成员数量
+     */
+    private String memberCount;
+
 }

+ 18 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/mapstruct/CwProjectMembersWrapper.java

@@ -0,0 +1,18 @@
+package com.jeeplus.test.cw.projectRecords.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectMembers;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectMembersDTO;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectRecordsDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface CwProjectMembersWrapper extends EntityWrapper<CwProjectMembersDTO, CwProjectMembers> {
+
+    CwProjectMembersWrapper INSTANCE = Mappers.getMapper(CwProjectMembersWrapper.class);
+
+}

+ 35 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -691,4 +691,39 @@ public class UserController {
         OSSClient ossClient = new OSSClient(endpoint,accessKeyId,accessKeySecret);
         return ossClient.generatePresignedUrl(bucketName, key, expiration).toString();
     }
+
+    /**
+     * 根据ids查询用户基本信息(姓名、手机、角色、部门)
+     *
+     * @param ids
+     * @return
+     */
+    @ApiLog("根据id查询用户基本信息")
+    @GetMapping("queryDetailList")
+    @ApiOperation(value = "根据id查询用户基本信息")
+    public ResponseEntity<List<UserDTO>> queryDetailList(@RequestParam("ids") String ids) {
+        List<UserDTO> list = new ArrayList<>();
+        String[] split = ids.split(",");
+        for (String id : split) {
+            UserDTO userDTO = userService.get(id);
+            userDTO.setRoleList(userDTO.getRoleDTOList());
+            list.add(userDTO);
+        }
+        return ResponseEntity.ok(list);
+    }
+
+    /**
+     * 根据ids查询用户基本信息(姓名、手机、角色、部门)
+     *
+     * @param id
+     * @return
+     */
+    @ApiLog("根据id查询用户基本信息")
+    @GetMapping("queryDetailById")
+    @ApiOperation(value = "根据id查询用户基本信息")
+    public ResponseEntity<UserDTO> queryDetailById(@RequestParam("id") String id) {
+        UserDTO userDTO = userService.get(id);
+        userDTO.setRoleList(userDTO.getRoleDTOList());
+        return ResponseEntity.ok(userDTO);
+    }
 }

+ 5 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/dto/UserDTO.java

@@ -180,6 +180,11 @@ public class  UserDTO extends BaseDTO {
     private List<CertDTO> certDTOList;
 
     /**
+     * 角色信息
+     */
+    private List<RoleDTO> roleList;
+
+    /**
      * 执业资格证类型
      */
     private String certType;