From 6bbed1ea6b36af4eb0b234bec9d6e42d56f0cd00 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期三, 30 九月 2026 16:12:49 +0800
Subject: [PATCH] feat:合同新增关联单位 开票可根据甲方或关联单位选择开票单位 收款去掉强制确认 收款只关联合同甲方或关联单位
---
platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 166 insertions(+), 7 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml b/platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml
index 9fb6ef8..b401af1 100644
--- a/platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml
+++ b/platformx-business-finance-biz/src/main/resources/mapper/ProductMapper.xml
@@ -46,7 +46,7 @@
<select id="getProductListByParentId" resultType="com.by4cloud.platformx.business.vo.ProductSelectVo">
SELECT
t.id,
- t.product_name,
+ CONCAT(t.product_name,IFNULL(t.product_type,'')) product_name,
t.main_code,
t.erp_code,
t.product_type,
@@ -66,16 +66,175 @@
WHERE
del_flag = '0'
<if test="queryDTO.productName !=null and queryDTO.productName !=''">
- and t.product_name LIKE CONCAT('%', #{queryDTO.productName}, '%')
+ and ( t.product_name LIKE CONCAT('%', #{queryDTO.productName}, '%') or
+ t.erp_code LIKE CONCAT('%', #{queryDTO.productName}, '%')
+
+ <if test="queryDTO.productId != null and queryDTO.productId.size() > 0">
+ or t.id IN
+ <foreach collection="queryDTO.productId" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ )
</if>
<if test="queryDTO.parentId !=null ">
- and t.parent_id = #{queryDTO.parentId}
+ and (t.parent_id = #{queryDTO.parentId}
+ <if test="queryDTO.productId != null and queryDTO.productId.size() > 0">
+ or t.id IN
+ <foreach collection="queryDTO.productId" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ )
</if>
- <if test="queryDTO.contractCategory !=null and queryDTO.contractCategory !='' and queryDTO.contractCategory=='water_house'">
- and t.erp_code in
- <foreach collection="erpCodes" item="erp" open="(" separator="," close=")">
- #{erp}
+
+ <choose>
+ <when test="queryDTO.contractCategory !=null and queryDTO.contractCategory !='' and queryDTO.contractCategory=='water_house'">
+ and t.erp_code in
+ <foreach collection="erpCodes" item="erp" open="(" separator="," close=")">
+ #{erp}
+ </foreach>
+ </when>
+ <otherwise>
+ and t.erp_code not in
+ <foreach collection="erpCodes" item="erp" open="(" separator="," close=")">
+ #{erp}
+ </foreach>
+ </otherwise>
+ </choose>
+
+ </select>
+ <select id="getProductSMJListByParentId" resultType="com.by4cloud.platformx.business.vo.ProductSelectVo">
+ SELECT
+ t.id,
+ CONCAT(t.product_name,IFNULL(t.product_type,'')) product_name,
+ t.main_code,
+ t.erp_code,
+ t.product_type,
+ t.tax_rate,
+ t.tax_class,
+ t.tax_code,
+ t.parent_id,
+ t.create_by,
+ t.update_by,
+ t.create_time,
+ t.update_time,
+ t.del_flag,
+ t.comp_id ,
+ ( SELECT count( 1 ) FROM product t1 WHERE t1.parent_id = t.id ) AS childNum
+ FROM
+ product t
+ WHERE
+ del_flag = '0'
+ <if test="queryDTO.productName !=null and queryDTO.productName !=''">
+ and ( t.product_name LIKE CONCAT('%', #{queryDTO.productName}, '%') or
+ t.erp_code LIKE CONCAT('%', #{queryDTO.productName}, '%')
+
+ <if test="queryDTO.productId != null and queryDTO.productId.size() > 0">
+ or t.id IN
+ <foreach collection="queryDTO.productId" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ )
+ </if>
+ <if test="queryDTO.parentId !=null ">
+ and (t.parent_id = #{queryDTO.parentId}
+ <if test="queryDTO.productId != null and queryDTO.productId.size() > 0">
+ or t.id IN
+ <foreach collection="queryDTO.productId" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ )
+ </if>
+
+ <choose>
+ <when test="queryDTO.contractCategory !=null and queryDTO.contractCategory !='' and queryDTO.contractCategory=='water_house'">
+ and t.erp_code in
+ <foreach collection="erpCodes" item="erp" open="(" separator="," close=")">
+ #{erp}
+ </foreach>
+ </when>
+ <otherwise>
+ and t.erp_code not in
+ <foreach collection="erpCodes" item="erp" open="(" separator="," close=")">
+ #{erp}
+ </foreach>
+ </otherwise>
+ </choose>
+ and ( t.comp_id = 2089995177814495234 or t.comp_id = 2089996921978040321 or t.comp_id = 2089997578009128962)
+ </select>
+ <select id="pageScope" resultType="com.by4cloud.platformx.business.entity.Product">
+ SELECT
+ t.id,
+ t.product_name,
+ t.main_code,
+ t.erp_code,
+ t.product_type,
+ t.tax_rate,
+ t.tax_class,
+ t.tax_code,
+ t.parent_id,
+ t.create_by,
+ t.update_by,
+ t.create_time,
+ t.update_time,
+ t.del_flag,
+ t.comp_id,
+ ifnull((select product_name from product t1 where t1.id = t.parent_id),'鏍圭骇浜у搧') AS parentName
+ FROM
+ product t
+ WHERE
+ del_flag = '0'
+ <if test="queryDTO.productName !=null and queryDTO.productName !=''">
+ AND t.product_name LIKE CONCAT('%', #{queryDTO.productName}, '%')
+ </if>
+ <if test="queryDTO.mainCode !=null and queryDTO.mainCode !=''">
+ AND t.main_code LIKE CONCAT('%', #{queryDTO.mainCode}, '%')
+ </if>
+ <if test="queryDTO.erpCode !=null and queryDTO.erpCode !=''">
+ AND t.erp_code LIKE CONCAT('%', #{queryDTO.erpCode}, '%')
+ </if>
+ order by t.create_time desc
+ </select>
+ <select id="page" resultType="com.by4cloud.platformx.business.entity.Product">
+ SELECT
+ t.id,
+ t.product_name,
+ t.main_code,
+ t.erp_code,
+ t.product_type,
+ t.tax_rate,
+ t.tax_class,
+ t.tax_code,
+ t.parent_id,
+ t.create_by,
+ t.update_by,
+ t.create_time,
+ t.update_time,
+ t.del_flag,
+ t.comp_id,
+ ifnull((select product_name from product t1 where t1.id = t.parent_id),'鏍圭骇浜у搧') AS parentName
+ FROM
+ product t
+ WHERE
+ del_flag = '0'
+ <if test="queryDTO.productName !=null and queryDTO.productName !=''">
+ AND t.product_name LIKE CONCAT('%', #{queryDTO.productName}, '%')
+ </if>
+ <if test="queryDTO.mainCode !=null and queryDTO.mainCode !=''">
+ AND t.main_code LIKE CONCAT('%', #{queryDTO.mainCode}, '%')
+ </if>
+ <if test="queryDTO.erpCode !=null and queryDTO.erpCode !=''">
+ AND t.erp_code LIKE CONCAT('%', #{queryDTO.erpCode}, '%')
+ </if>
+ <if test="smjList != null and smjList.size() > 0">
+ AND t.comp_id IN
+ <foreach collection="smjList" item="id" open="(" separator="," close=")">
+ #{id}
</foreach>
</if>
+ order by t.create_time desc
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1