Prechádzať zdrojové kódy

项目联系人选择功能开发

user5 2 rokov pred
rodič
commit
80909be9f7
13 zmenil súbory, kde vykonal 195 pridanie a 13 odobranie
  1. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/domain/CwProjectClientContact.java
  2. 2 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/mapper/xml/CwProjectRecordsMapper.xml
  3. 46 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/CwProjectRecordsService.java
  4. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/projectRecords/service/dto/CwProjectClientContactDTO.java
  5. 25 5
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/controller/CwWorkClientController.java
  6. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/domain/CwWorkClientContact.java
  7. 10 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/CwWorkClientBaseMapper.java
  8. 16 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/CwWorkClientContactMapper.java
  9. 27 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/xml/CwWorkClientBaseMapper.xml
  10. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/xml/CwWorkClientContactMapper.xml
  11. 23 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/service/CwWorkClientContactService.java
  12. 11 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/service/CwWorkClientService.java
  13. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/service/dto/CwWorkClientContactDTO.java

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

@@ -71,6 +71,11 @@ public class CwProjectClientContact extends BaseEntity {
      */
     private String email;
 
+    /**
+     * 客户联系人关联id
+     */
+    private String clientContactId;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

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

@@ -127,7 +127,8 @@
         cw_pcc.contact_first,
         cw_pcc.contact_second,
         cw_pcc.fax,
-        cw_pcc.email
+        cw_pcc.email,
+        cw_pcc.client_contact_id
     </sql>
     <sql id="Project_Client_List">
         cw_pci.project_id,

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

@@ -161,6 +161,26 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
      */
     public CwProjectRecordsDTO queryById(String id) {
         CwProjectRecordsDTO cwProjectRecordsDTO = cwProjectRecordsMapper.queryById(id);
+        if(null != cwProjectRecordsDTO && null != cwProjectRecordsDTO.getCwProjectClientContactDTOList() && cwProjectRecordsDTO.getCwProjectClientContactDTOList().size()>0){
+            for (CwProjectClientContactDTO clientContact : cwProjectRecordsDTO.getCwProjectClientContactDTOList()) {
+                //判断项目联系人是否是从客户联系人中选择出来的
+                if(StringUtils.isNotBlank(clientContact.getClientContactId())){
+                    CwWorkClientContact clientContactInfo = cwWorkClientContactService.getInfoById(clientContact.getClientContactId());
+                    //若数据存在则将查询出来的数据信息进行替换
+                    if(null != clientContactInfo && StringUtils.isNotBlank(clientContactInfo.getId())){
+                        clientContact.setName(clientContactInfo.getName());
+                        clientContact.setSex(clientContactInfo.getSex());
+                        clientContact.setOfficeId(clientContactInfo.getOfficeId());
+                        clientContact.setPosition(clientContactInfo.getPosition());
+                        clientContact.setContactFirst(clientContactInfo.getContactFirst());
+                        clientContact.setContactSecond(clientContactInfo.getContactSecond());
+                        clientContact.setRemarks(clientContactInfo.getRemarks());
+                        clientContact.setFax(clientContactInfo.getFax());
+                        clientContact.setEmail(clientContactInfo.getEmail());
+                    }
+                }
+            }
+        }
         if (ObjectUtil.isNotEmpty(cwProjectRecordsDTO)) {
             if (ObjectUtil.isNotEmpty(cwProjectRecordsDTO.getPlanStartDate()) && ObjectUtil.isNotEmpty(cwProjectRecordsDTO.getPlanEndDate())) {
                 Date[] planDate = new Date[2];
@@ -278,6 +298,23 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
                     List<CwProjectClientContact> insertBatchById = new ArrayList<>();
                     List<CwWorkClientContact> saveBatchClient = new ArrayList<>();
                     cwProjectRecordsDTO.getCwProjectClientContactDTOList().stream().forEach(item->{
+
+                        //遍历查询是否在客户联系人中存在
+                        CwWorkClientContact infoByData = cwWorkClientContactService.getInfoByData(item);
+                        if(null != infoByData && StringUtils.isNotBlank(infoByData.getId())){
+                            item.setClientContactId(infoByData.getId());
+                        }else{
+                            CwWorkClientContact cwWorkClientContact = new CwWorkClientContact();
+                            BeanUtil.copyProperties(item, cwWorkClientContact);
+                            cwWorkClientContact.setId(UUID.randomUUID().toString().replace("-", ""));
+                            cwWorkClientContact.setCreateBy(UserUtils.getCurrentUserDTO().getId());
+                            cwWorkClientContact.setCreateDate(new Date());
+                            cwWorkClientContact.setUpdateBy(UserUtils.getCurrentUserDTO().getId());
+                            cwWorkClientContact.setUpdateDate(new Date());
+                            cwWorkClientContactService.save(cwWorkClientContact);
+                            item.setClientContactId(cwWorkClientContact.getId());
+                        }
+
                         item.setProjectId(cwProjectRecords.getId());
                         if (StringUtils.isNotBlank(item.getId())){
                             // 有id进行修改操作
@@ -298,12 +335,18 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
                     }
                     // 批量新增数据
                     if (CollectionUtil.isNotEmpty(insertBatchById)){
+
                         cwProjectClientContactService.saveBatch(insertBatchById);
                     }
                     // 将数据添加到客户的联系人表中
-                    if (CollectionUtil.isNotEmpty(saveBatchClient)){
-                        cwWorkClientContactService.saveBatch(saveBatchClient);
-                    }
+                    /*if (CollectionUtil.isNotEmpty(saveBatchClient)){
+                        for (CwWorkClientContact info : saveBatchClient) {
+                            if(StringUtils.isBlank(info.getClientContactId())){
+                                cwWorkClientContactService.save(info);
+                            }
+                        }
+                        //cwWorkClientContactService.saveBatch(saveBatchClient);
+                    }*/
                 } else {
                     cwProjectClientContactMapper.delete(new QueryWrapper<CwProjectClientContact>().lambda().eq(CwProjectClientContact::getProjectId,cwProjectRecords.getId()));
                 }

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

@@ -68,6 +68,11 @@ public class CwProjectClientContactDTO extends BaseDTO {
      */
     private String email;
 
+    /**
+     * 客户联系人关联id
+     */
+    private String clientContactId;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

+ 25 - 5
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/controller/CwWorkClientController.java

@@ -17,6 +17,7 @@ import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientTemp;
 import com.jeeplus.test.cw.workClientInfo.service.CwWorkClientService;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientContactDTO;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientTempDTO;
 import com.jeeplus.test.jobPosion.domain.JobPosition;
 import com.jeeplus.test.jobPosion.service.dto.JobPositionDTO;
@@ -71,6 +72,21 @@ public class CwWorkClientController {
     }
 
     /**
+     * 根据合同id查询对应客户的联系人信息
+     * @param cwWorkClientContactDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("根据合同id查询对应客户的联系人信息")
+    @GetMapping("getContractClientList")
+    public ResponseEntity<IPage<CwWorkClientContactDTO>> getContractClientList(CwWorkClientContactDTO cwWorkClientContactDTO, Page<CwWorkClientContactDTO> page) throws Exception {
+        IPage<CwWorkClientContactDTO> result = new Page<CwWorkClientContactDTO>();
+        result = cwWorkClientService.getContractClientList (page,cwWorkClientContactDTO);
+        return ResponseEntity.ok (result);
+    }
+
+    /**
      * 查询客户信息列表tree
      * @param cwWorkClientBaseDTO
      * @param page
@@ -244,7 +260,8 @@ public class CwWorkClientController {
     @ApiLog("查询社会统一信用代码是否存在")
     @GetMapping("queryUscCodeIsUse")
     public ResponseEntity<Map<String,String>> queryUscCodeIsUse(@RequestParam("uscCode") String uscCode) {
-        return cwWorkClientService.queryUscCodeIsUse ( uscCode );
+        ResponseEntity<Map<String, String>> mapResponseEntity = cwWorkClientService.queryUscCodeIsUse(uscCode);
+        return mapResponseEntity;
     }
 
     /**
@@ -255,7 +272,8 @@ public class CwWorkClientController {
     @ApiLog("查询客户名称是否存在")
     @GetMapping("queryNameIsUse")
     public ResponseEntity<Map<String,String>> queryNameIsUse(@RequestParam("name") String name) {
-        return cwWorkClientService.queryNameIsUse ( name );
+        ResponseEntity<Map<String, String>> mapResponseEntity = cwWorkClientService.queryNameIsUse(name);
+        return mapResponseEntity;
     }
 
     /**
@@ -265,8 +283,9 @@ public class CwWorkClientController {
      */
     @ApiLog("根据客户id查询社会统一信用代码")
     @GetMapping("queryUscCodeById")
-    public ResponseEntity<String> queryUscCodeById(@RequestParam("id") String id) {
-        return cwWorkClientService.queryUscCodeById ( id );
+    public Map<String,Object> queryUscCodeById(@RequestParam("id") String id) {
+        Map<String,Object> stringResponseEntity = cwWorkClientService.queryUscCodeById(id);
+        return stringResponseEntity;
     }
 
     /**
@@ -277,7 +296,8 @@ public class CwWorkClientController {
     @ApiLog("根据客户id查询客户名称")
     @GetMapping("queryNameById")
     public ResponseEntity<String> queryNameById(@RequestParam("id") String id) {
-        return cwWorkClientService.queryNameById ( id );
+        ResponseEntity<String> stringResponseEntity = cwWorkClientService.queryNameById(id);
+        return stringResponseEntity;
     }
 
     /**

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/domain/CwWorkClientContact.java

@@ -70,5 +70,11 @@ public class CwWorkClientContact extends BaseEntity {
      */
     private String projectId;
 
+
+    /**
+     * 客户联系人id
+     */
+    private String clientContactId;
+
     private static final long serialVersionUID = 1L;
 }

+ 10 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/CwWorkClientBaseMapper.java

@@ -8,6 +8,7 @@ import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBase;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientTemp;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientContactDTO;
 import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientTempDTO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -26,6 +27,15 @@ public interface CwWorkClientBaseMapper extends BaseMapper<CwWorkClientBase> {
 
     public List<CwWorkClientTempDTO>  queryUpdateLogList (@Param(Constants.WRAPPER) QueryWrapper<CwWorkClientTemp> queryWrapper);
 
+
+    /**
+     * 根据合同id查询对应客户信息的联系人信息
+     * @param page
+     * @param cwWorkClientContactDTO
+     * @return
+     */
+    public IPage<CwWorkClientContactDTO> getContractClientList(Page<CwWorkClientContactDTO> page, @Param("cwWorkClientContactDTO")CwWorkClientContactDTO cwWorkClientContactDTO);
+
 }
 
 

+ 16 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/CwWorkClientContactMapper.java

@@ -1,5 +1,7 @@
 package com.jeeplus.test.cw.workClientInfo.mapper;
 
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectClientContact;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectClientContactDTO;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientContact;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -10,6 +12,20 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface CwWorkClientContactMapper extends BaseMapper<CwWorkClientContact> {
 
+    /**
+     * 根据项目联系人信息查询是否在客户联系人中的数据
+     * @param info
+     * @return
+     */
+    CwWorkClientContact getInfoByData(CwProjectClientContactDTO info);
+
+    /**
+     * 根据id查询详情
+     * @param id
+     * @return
+     */
+    CwWorkClientContact getInfoById(String id);
+
 }
 
 

+ 27 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/xml/CwWorkClientBaseMapper.xml

@@ -275,6 +275,33 @@
         inner join cw_work_client_base cw_wcb on temp.client_id = cw_wcb.id and cw_wcb.del_flag = '0'
         ${ew.customSqlSegment}
     </select>
+
+    <select id="getContractClientList" resultType="com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientContactDTO">
+        SELECT
+            *
+        FROM
+            cw_work_client_contact
+        <where>
+            client_id = (
+            SELECT
+            id
+            FROM
+            cw_work_client_base
+            WHERE
+            id = ( SELECT client_contacts FROM cw_work_contract_info WHERE id = #{cwWorkClientContactDTO.contractId} )
+            ) and del_flag = 0
+            <if test="cwWorkClientContactDTO.name != null and cwWorkClientContactDTO.name != ''">
+                and `name` LIKE CONCAT ('%', #{cwWorkClientContactDTO.name}, '%')
+            </if>
+            <if test="cwWorkClientContactDTO.contactFirst != null and cwWorkClientContactDTO.contactFirst != ''">
+                and contact_first LIKE CONCAT ('%', #{cwWorkClientContactDTO.contactFirst}, '%')
+            </if>
+            <if test="cwWorkClientContactDTO.contactSecond != null and cwWorkClientContactDTO.contactSecond != ''">
+                and contact_second LIKE CONCAT ('%', #{cwWorkClientContactDTO.contactSecond}, '%')
+            </if>
+        </where>
+        order by update_date desc
+    </select>
     <sql id="Temp_Column_List">
         temp.id,
         temp.create_by,

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/mapper/xml/CwWorkClientContactMapper.xml

@@ -43,4 +43,18 @@
         cw_wcc.email,
         cw_wcc.project_id
     </sql>
+
+    <select id="getInfoByData" resultType="com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientContact">
+        select * from cw_work_client_contact
+        where `name` = #{name} and sex = #{sex} and office_id = #{officeId} and `position` = #{position}
+        and contact_first = #{contactFirst} and contact_second = #{contactSecond} and fax = #{fax} and email = #{email} and remarks = #{remarks}
+        and client_id = #{clientId} and del_flag = 0
+        order by id asc limit 1
+    </select>
+
+    <select id="getInfoById" resultType="com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientContact">
+        select * from cw_work_client_contact
+        where id = #{id} and del_flag = 0
+        order by id asc limit 1
+    </select>
 </mapper>

+ 23 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/service/CwWorkClientContactService.java

@@ -1,15 +1,37 @@
 package com.jeeplus.test.cw.workClientInfo.service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectClientContact;
+import com.jeeplus.test.cw.projectRecords.service.dto.CwProjectClientContactDTO;
 import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientContact;
 import com.jeeplus.test.cw.workClientInfo.mapper.CwWorkClientContactMapper;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
+
 @Service
 @Transactional
 public class CwWorkClientContactService extends ServiceImpl<CwWorkClientContactMapper, CwWorkClientContact> {
-
+    @Resource
     private CwWorkClientContactMapper cwWorkClientContactMapper;
 
+    /**
+     * 根据项目联系人信息查询是否在客户联系人中的数据
+     * @param info
+     * @return
+     */
+    public CwWorkClientContact getInfoByData(CwProjectClientContactDTO info){
+        return cwWorkClientContactMapper.getInfoByData(info);
+    }
+
+    /**
+     * 根据id查询详情
+     * @param id
+     * @return
+     */
+    public CwWorkClientContact getInfoById(String id){
+        return cwWorkClientContactMapper.getInfoById(id);
+    }
+
 }

+ 11 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/workClientInfo/service/CwWorkClientService.java

@@ -121,6 +121,11 @@ public class CwWorkClientService extends ServiceImpl<CwWorkClientBaseMapper, CwW
         return list;
     }
 
+    public IPage<CwWorkClientContactDTO> getContractClientList(Page<CwWorkClientContactDTO> page, CwWorkClientContactDTO cwWorkClientContactDTO) throws Exception{
+        IPage<CwWorkClientContactDTO> list = cwWorkClientBaseMapper.getContractClientList(page, cwWorkClientContactDTO);
+        return list;
+    }
+
     public IPage<CwWorkClientBaseDTO> findListTree(Page<CwWorkClientBaseDTO> page, CwWorkClientBaseDTO cwWorkClientBaseDTO) throws Exception{
         QueryWrapper<CwWorkClientBase> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("cw_wcb.del_flag","0");
@@ -411,12 +416,15 @@ public class CwWorkClientService extends ServiceImpl<CwWorkClientBaseMapper, CwW
     }
 
     // 根据客户id查询
-    public ResponseEntity<String> queryUscCodeById(String id) {
+    public Map<String,Object> queryUscCodeById(String id) {
+        Map map = new HashMap();
         CwWorkClientBase cwWorkClientBase = this.getById(id);
         if (ObjectUtil.isNotEmpty(cwWorkClientBase)) {
-            return ResponseEntity.ok(cwWorkClientBase.getUscCode());
+            map.put("uscCode",cwWorkClientBase.getUscCode());
+            return map;
         } else {
-            return ResponseEntity.ok("");
+            map.put("uscCode","");
+            return map;
         }
     }
 

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

@@ -67,5 +67,10 @@ public class CwWorkClientContactDTO extends BaseDTO {
      */
     private String projectId;
 
+    /**
+     * 合同id
+     */
+    private String contractId;
+
     private static final long serialVersionUID = 1L;
 }