Browse Source

新增项目客户联系人关联合同的参与签约方的联系人

huangguoce 1 month ago
parent
commit
69d0f97a2f

+ 5 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/mapper/xml/ContractParticipantMapper.xml

@@ -5,7 +5,11 @@
         delete from cw_work_contract_participant where contract_info_id = #{InfoId}
     </delete>
     <select id="findByInfoId" resultType="com.jeeplus.finance.contractRegistration.domain.ContractParticipant">
-        select customer_name as customerName,customer_no as customerNo from cw_work_contract_participant
+        select
+            customer_name as customerName,
+            customer_no as customerNo,
+            contract_info_id as contractInfoId
+        from cw_work_contract_participant
         where contract_info_id = #{infoID}
     </select>
 </mapper>

+ 1 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/contractRegistration/service/ContractInfoService.java

@@ -268,6 +268,7 @@ public class ContractInfoService {
                     CwWorkClientBaseDTO baseDTO = new CwWorkClientBaseDTO();
                     baseDTO.setName(cw.getCustomerName());
                     baseDTO.setNo(cw.getCustomerNo());
+                    baseDTO.setId(cw.getContractInfoId());
                     list.add(baseDTO);
                 });
 

+ 4 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectRecords/service/CwProjectRecordsService.java

@@ -722,7 +722,10 @@ public class CwProjectRecordsService extends ServiceImpl<CwProjectRecordsMapper,
                         if (ObjectUtil.isNotEmpty(contractInfo)) {
                             if (StringUtils.isNotBlank(contractInfo.getClientContacts())) {
                                 cwProjectRecordsDTO.getCwProjectClientContactDTOList().stream().forEach(item -> {
-                                    item.setClientId(contractInfo.getClientContacts());
+                                    //改成如果是选择的联系人,前端会一并带来clientId,如果是手填的,后端就会判断填入clientId
+                                    if(StringUtils.isBlank(item.getClientId())){
+                                        item.setClientId(contractInfo.getClientContacts());
+                                    }
                                 });
                             } else {
                                 cwProjectRecordsDTO.getCwProjectClientContactDTOList().stream().forEach(item -> {

+ 8 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/mapper/CwWorkClientContactMapper.java

@@ -19,6 +19,14 @@ public interface CwWorkClientContactMapper extends BaseMapper<CwWorkClientContac
     CwWorkClientContact getInfoByData(CwProjectClientContactDTO info);
 
     /**
+     * 根据项目联系人信息查询是否在客户联系人中的数据
+     * @param info
+     * @return
+     */
+    CwWorkClientContact getInfoByInfo(CwProjectClientContactDTO info);
+
+
+    /**
      * 根据id查询详情
      * @param id
      * @return

+ 20 - 14
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/mapper/xml/CwWorkClientBaseMapper.xml

@@ -281,30 +281,36 @@
 
     <select id="getContractClientList" resultType="com.jeeplus.finance.workClientInfo.service.dto.CwWorkClientContactDTO">
         SELECT
-            *
+        c.*,
+        b.name AS clientName  -- 你可以根据需要选择要显示的字段
         FROM
-            cw_work_client_contact
+        cw_work_client_contact c
+        LEFT JOIN
+        cw_work_client_base b ON c.client_id = b.id
         <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
+            c.client_id IN (
+            SELECT id
+            FROM cw_work_client_base
+            WHERE no IN (
+            SELECT customer_no
+            FROM cw_work_contract_participant
+            WHERE contract_info_id = #{cwWorkClientContactDTO.contractId}
+            )
+            )
+            AND c.del_flag = 0
             <if test="cwWorkClientContactDTO.name != null and cwWorkClientContactDTO.name != ''">
-                and `name` LIKE CONCAT ('%', #{cwWorkClientContactDTO.name}, '%')
+                AND c.`name` LIKE CONCAT('%', #{cwWorkClientContactDTO.name}, '%')
             </if>
             <if test="cwWorkClientContactDTO.contactFirst != null and cwWorkClientContactDTO.contactFirst != ''">
-                and contact_first LIKE CONCAT ('%', #{cwWorkClientContactDTO.contactFirst}, '%')
+                AND c.contact_first LIKE CONCAT('%', #{cwWorkClientContactDTO.contactFirst}, '%')
             </if>
             <if test="cwWorkClientContactDTO.contactSecond != null and cwWorkClientContactDTO.contactSecond != ''">
-                and contact_second LIKE CONCAT ('%', #{cwWorkClientContactDTO.contactSecond}, '%')
+                AND c.contact_second LIKE CONCAT('%', #{cwWorkClientContactDTO.contactSecond}, '%')
             </if>
         </where>
-        order by update_time desc
+        ORDER BY b.name DESC
     </select>
+
     <sql id="Temp_Column_List">
         temp.id,
         temp.create_by_id,

+ 33 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/mapper/xml/CwWorkClientContactMapper.xml

@@ -81,6 +81,39 @@
         order by id asc limit 1
     </select>
 
+    <select id="getInfoByInfo" resultType="com.jeeplus.finance.workClientInfo.domain.CwWorkClientContact">
+        select * from cw_work_client_contact
+        where 1=1
+        <if test="name != null and name != ''">
+            and `name` = #{name}
+        </if>
+        <if test="sex != null and sex != ''">
+            and sex = #{sex}
+        </if>
+        <if test="officeId != null and officeId != ''">
+            and office_id = #{officeId}
+        </if>
+        <if test="position != null and position != ''">
+            and `position` = #{position}
+        </if>
+        <if test="contactFirst != null and contactFirst != ''">
+            and contact_first = #{contactFirst}
+        </if>
+        <if test="contactSecond != null and contactSecond != ''">
+            and contact_second = #{contactSecond}
+        </if>
+        <if test="fax != null and fax != ''">
+            and fax = #{fax}
+        </if>
+        <if test="email != null and email != ''">
+            and email = #{email}
+        </if>
+        <if test="remarks != null and remarks != ''">
+            and remarks = #{remarks}
+        </if>
+        and del_flag = 0
+        order by id asc limit 1
+    </select>
     <select id="getInfoById" resultType="com.jeeplus.finance.workClientInfo.domain.CwWorkClientContact">
         select * from cw_work_client_contact
         where id = #{id} and del_flag = 0

+ 9 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/service/CwWorkClientContactService.java

@@ -25,6 +25,15 @@ public class CwWorkClientContactService extends ServiceImpl<CwWorkClientContactM
     }
 
     /**
+     * 根据项目联系人信息查询是否在客户联系人中的数据
+     * @param info
+     * @return
+     */
+    public CwWorkClientContact getInfoByInfo(CwProjectClientContactDTO info){
+        return cwWorkClientContactMapper.getInfoByInfo(info);
+    }
+
+    /**
      * 根据id查询详情
      * @param id
      * @return

+ 1 - 4
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/service/CwWorkClientService.java

@@ -46,10 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.sql.Array;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service

+ 9 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/workClientInfo/service/dto/CwWorkClientContactDTO.java

@@ -1,10 +1,13 @@
 package com.jeeplus.finance.workClientInfo.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.util.List;
+
 /**
  * 财务-客户信息管理-客户联系人
  * @TableName cw_work_client_contact
@@ -72,5 +75,11 @@ public class CwWorkClientContactDTO extends BaseDTO {
      */
     private String contractId;
 
+    /**
+     * 多个合同id
+     */
+    @TableField(exist = false)
+    private String clientName;
+
     private static final long serialVersionUID = 1L;
 }