From 1e20f9b6c5bc642f92f77388c5f339f05a3ae9be Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期五, 27 三月 2026 16:47:00 +0800
Subject: [PATCH] 采购导入需求

---
 java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml |  272 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 242 insertions(+), 30 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml
old mode 100644
new mode 100755
index a4149b8..e1b1a8e
--- a/java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
 <mapper namespace="purchaseApplyServiceDaoImpl">
-    <resultMap type="com.java110.dto.purchaseApply.PurchaseApplyDto" id="applyMap">
+    <resultMap type="com.java110.dto.purchase.PurchaseApplyDto" id="applyMap">
         <id column="applyOrderId" property="applyOrderId"/>
         <result column="description" property="description"/>
         <result column="resOrderType" property="resOrderType"/>
@@ -17,12 +17,14 @@
         <result column="stateName" property="stateName"/>
         <result column="endUserName" property="endUserName"/>
         <result column="endUserTel" property="endUserTel"/>
+        <result column="communityId" property="communityId"/>
         <!-- 涓�瀵瑰鍏崇郴 -->
         <collection property="purchaseApplyDetailVo" ofType="com.java110.vo.api.purchaseApply.PurchaseApplyDetailVo"
                     javaType="java.util.ArrayList">
             <id property="id" column="id"/>
             <result property="applyOrderId" column="applyOrderId"/>
             <result property="resId" column="resId"/>
+            <result column="rsId" property="rsId"/>
             <result property="quantity" column="quantity"/>
             <result property="resName" column="resName"/>
             <result property="remark" column="remark"/>
@@ -36,9 +38,10 @@
     <!-- 淇濆瓨閲囪喘鐢宠淇℃伅 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessPurchaseApplyInfo" parameterType="Map">
         insert into business_purchase_apply
-        (operate,res_order_type,description,apply_order_id,state,store_id,user_id,user_name,b_id,end_user_name,end_user_tel)
-        values
-        (#{operate},#{resOrderType},#{description},#{applyOrderId},#{state},#{storeId},#{userId},#{userName},#{bId},#{endUserName},#{endUserTel})
+        (operate, res_order_type, description, apply_order_id, state, store_id, user_id, user_name, b_id, end_user_name,
+         end_user_tel, community_id)
+        values (#{operate}, #{resOrderType}, #{description}, #{applyOrderId}, #{state}, #{storeId}, #{userId},
+                #{userName}, #{bId}, #{endUserName}, #{endUserTel}, #{communityId})
     </insert>
 
     <!-- 淇濆瓨閲囪喘鏄庣粏琛ㄥ浠借〃 -->
@@ -60,20 +63,49 @@
 
     <!-- 淇濆瓨閲囪喘鏄庣粏琛�-->
     <insert id="savePurchaseApplyDetailInfo" parameterType="List">
-        insert into purchase_apply_detail (id,apply_order_id,res_id,quantity,remark,b_id,operate,status_cd)
-        values
+        INSERT INTO purchase_apply_detail (
+        id, rs_id, apply_order_id, res_id, quantity, remark, b_id, operate, status_cd, price,
+        purchase_quantity, purchase_remark, original_stock, times_id, consult_price,
+        purchase_date2, purchase_quantity2, purchase_date3, purchase_quantity3,
+        first_cumulative_purchase_quantity, purchase_date, purchase_amount, purchaser,
+        contract_no, supplier, first_cumulative_delivery_quantity, delivery_order_no,
+        delivery_quantity, delivery_date, signer
+        )
+        VALUES
         <foreach collection="list" item="item" index="index" separator=",">
             (
             #{item.id},
+            #{item.rsId},
             #{item.applyOrderId},
             #{item.resId},
             #{item.quantity},
             #{item.remark},
             '-1',
             'ADD',
-            '0'
+            '0',
+            #{item.price},
+            #{item.purchaseQuantity},
+            #{item.purchaseRemark},
+            #{item.originalStock},
+            #{item.timesId},
+            #{item.consultPrice},
+            #{item.purchaseDate2},
+            #{item.purchaseQuantity2},
+            #{item.purchaseDate3},
+            #{item.purchaseQuantity3},
+            #{item.firstCumulativePurchaseQuantity},
+            #{item.purchaseDate},
+            #{item.purchaseAmount},
+            #{item.purchaser},
+            #{item.contractNo},
+            #{item.supplier},
+            #{item.firstCumulativeDeliveryQuantity},
+            #{item.deliveryOrderNo},
+            #{item.deliveryQuantity},
+            #{item.deliveryDate},
+            #{item.signer}
             )
-        </foreach>
+        </foreach>;
     </insert>
 
     <!-- 鏌ヨ閲囪喘鐢宠淇℃伅锛圔usiness锛� add by wuxw 2018-07-03 -->
@@ -97,7 +129,8 @@
         t.end_user_name,
         t.end_user_tel,
         t.end_user_name endUserName,
-        t.end_user_tel endUserTel
+        t.end_user_tel endUserTel,
+        t.community_id communityId
         from business_purchase_apply t
         where 1 =1
         <if test="operate !=null and operate != ''">
@@ -130,6 +163,9 @@
         <if test="endUserTel !=null and endUserTel != ''">
             and t.end_user_tel= #{endUserTel}
         </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
     </select>
 
     <select id="getBusinessPurchaseApplyDetailInfo" parameterType="Map" resultType="Map">
@@ -155,9 +191,10 @@
     <!-- 淇濆瓨閲囪喘鐢宠淇℃伅鑷� instance琛ㄤ腑 add by wuxw 2018-07-03 -->
     <insert id="savePurchaseApplyInfoInstance" parameterType="Map">
         insert into purchase_apply
-        (res_order_type,description,apply_order_id,status_cd,state,store_id,user_name,b_id,user_id,end_user_name,end_user_tel)
+        (res_order_type,description,apply_order_id,status_cd,state,store_id,user_name,b_id,user_id,end_user_name,end_user_tel,community_id)
         select
-        t.res_order_type,t.description,t.apply_order_id,'0',t.state,t.store_id,t.user_name,t.b_id,t.user_id,t.end_user_name,t.end_user_tel
+        t.res_order_type,t.description,t.apply_order_id,'0',t.state,t.store_id,t.user_name,t.b_id,t.user_id,t.end_user_name,t.end_user_tel,
+        t.community_id
         from business_purchase_apply t where 1=1
         and t.operate= 'ADD'
         <if test="resOrderType !=null and resOrderType != ''">
@@ -181,6 +218,9 @@
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
     </insert>
 
     <!-- 鏌ヨ閲囪喘鐢宠淇℃伅 add by wuxw 2018-07-03 -->
@@ -194,10 +234,17 @@
         t.end_user_tel,
         t.end_user_name endUserName,
         t.end_user_tel endUserTel,
-        t.description
+        t.create_user_id createUserId,
+        t.create_user_name createUserName,
+        t.warehousing_way warehousingWay,
+        t.community_id communityId
         from purchase_apply t
-        inner join t_dict d on t.state = d.status_cd and d.table_name = 'purchase_apply' and d.table_columns = 'state'
+        left join t_dict d
+        on t.state = d.status_cd
+        and d.table_name = 'purchase_apply'
+        and d.table_columns = 'state'
         where 1 = 1
+
         <if test="resOrderType !=null and resOrderType != ''">
             and t.res_order_type= #{resOrderType}
         </if>
@@ -205,13 +252,11 @@
             and t.description= #{description}
         </if>
         <if test="applyOrderId !=null and applyOrderId != ''">
-            and t.apply_order_id= #{applyOrderId}
+            and t.apply_order_id like concat('%',#{applyOrderId},'%')
         </if>
-
         <if test="applyOrderIds !=null ">
             and t.apply_order_id in
-            <foreach open="(" close=")"
-                     separator="," collection="applyOrderIds" item="item">
+            <foreach open="(" close=")" separator="," collection="applyOrderIds" item="item">
                 #{item}
             </foreach>
         </if>
@@ -239,6 +284,44 @@
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
+        <if test="createUserId !=null and createUserId != ''">
+            and t.create_user_id= #{createUserId}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+
+        -- 璧勬簮鍚嶇О鏌ヨ锛堝叧閿慨鏀癸級
+        <if test="resName !=null and resName != ''">
+            and exists (
+            select 1
+            from purchase_apply_detail de
+            inner join resource_store rs
+            on de.res_id = rs.res_id
+            and rs.status_cd = '0'
+            where de.apply_order_id = t.apply_order_id
+            and de.status_cd = '0'
+            and rs.res_name like concat('%',#{resName},'%')
+            )
+        </if>
+
+        -- 鏃犺祫婧愬悕绉版椂锛屼粎鍒ゆ柇瀛樺湪鏈夋晥鏄庣粏
+        <if test="resName ==null or resName == ''">
+            and exists (
+            select 1
+            from purchase_apply_detail de
+            where de.apply_order_id = t.apply_order_id
+            and de.status_cd = '0'
+            )
+        </if>
+
+        <if test="startTime !=null and startTime != ''">
+            and t.create_time >= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.create_time &lt;= #{endTime}
+        </if>
+
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
@@ -256,7 +339,8 @@
         t.end_user_name,
         t.end_user_tel,
         t.end_user_name endUserName,
-        t.end_user_tel endUserTel
+        t.end_user_tel endUserTel,
+        t.community_id communityId
         from purchase_apply t
         inner join t_dict d on t.state = d.status_cd and d.table_name = 'purchase_apply' and d.table_columns = 'state'
         inner join purchase_apply_detail de on de.apply_order_id = t.apply_order_id
@@ -286,22 +370,49 @@
         <if test="endUserTel !=null and endUserTel != ''">
             and t.end_user_tel= #{endUserTel}
         </if>
+        <if test="createUserId !=null and createUserId != ''">
+            and t.create_user_id= #{createUserId}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
         </if>
-
     </select>
+
     <!-- 鏌ヨ閲囪喘鏄庣粏 -->
     <select id="getPurchaseApplyDetailInfo" parameterType="Map" resultType="Map">
         select
         p.id,
         p.apply_order_id applyOrderId,
-        p.res_id resId,p.quantity,p.remark,
+        p.res_id resId,p.quantity,p.remark,p.purchase_quantity purchaseQuantity,p.purchase_remark purchaseRemark,p.price
+        purchasePrice,p.original_stock originalStock,p.consult_price consultPrice,p.times_id timesId,
         r.res_name resName,r.res_code resCode,
-        r.price,r.stock
+        r.price,r.price standardPrice,rstime.stock,rst.name rstName,rst1.name parentRstName,rss.spec_name
+        specName,rs.supplier_name supplierName,
+        td1.name unitCodeName,
+        td2.name miniUnitCodeName,
+        r.sh_id shId,
+        sh.sh_name shName,
+        r.is_fixed isFixed,
+        td3.name isFixedName
         from
-        purchase_apply_detail p inner join resource_store r on p.res_id = r.res_id and r.status_cd = '0'
+        purchase_apply_detail p
+        inner join resource_store r on p.res_id = r.res_id and r.status_cd = '0'
+        left join storehouse sh on r.sh_id = sh.sh_id and sh.status_cd = '0'
+        left join t_dict td1 on r.unit_code = td1.status_cd and td1.table_name = 'resource_store' and td1.table_columns
+        = 'unit_code'
+        left join t_dict td2 on r.mini_unit_code = td2.status_cd and td2.table_name = 'resource_store' and
+        td2.table_columns = 'unit_code'
+        left join t_dict td3 on r.is_fixed = td3.status_cd and td3.table_name = 'resource_store' and
+        td3.table_columns = 'is_fixed'
+        LEFT JOIN resource_supplier rs on p.rs_id=rs.rs_id
+        LEFT JOIN resource_store_type rst on r.rst_id=rst.rst_id
+        LEFT JOIN resource_store_type rst1 on r.parent_rst_id=rst1.rst_id
+        LEFT JOIN resource_store_specification rss on r.rss_id=rss.rss_id
+        left join resource_store_times rstime on p.times_id = rstime.times_id and rstime.status_cd = '0'
         where 1=1
         and p.status_cd = '0'
         <if test="applyOrderIds !=null">
@@ -351,6 +462,9 @@
         <if test="endUserTel !=null and endUserTel != ''">
             , t.end_user_tel= #{endUserTel}
         </if>
+        <if test="communityId !=null and communityId != ''">
+            , t.community_id= #{communityId}
+        </if>
         where 1=1
         <if test="applyOrderId !=null and applyOrderId != ''">
             and t.apply_order_id= #{applyOrderId}
@@ -364,7 +478,12 @@
     <select id="queryPurchaseApplysCount" parameterType="Map" resultType="Map">
         select count(1) count
         from purchase_apply t
-        where 1 =1
+        left join t_dict d
+        on t.state = d.status_cd
+        and d.table_name = 'purchase_apply'
+        and d.table_columns = 'state'
+        where 1 = 1
+
         <if test="resOrderType !=null and resOrderType != ''">
             and t.res_order_type= #{resOrderType}
         </if>
@@ -372,7 +491,16 @@
             and t.description= #{description}
         </if>
         <if test="applyOrderId !=null and applyOrderId != ''">
-            and t.apply_order_id= #{applyOrderId}
+            and t.apply_order_id like concat('%',#{applyOrderId},'%')
+        </if>
+        <if test="applyOrderIds !=null ">
+            and t.apply_order_id in
+            <foreach open="(" close=")" separator="," collection="applyOrderIds" item="item">
+                #{item}
+            </foreach>
+        </if>
+        <if test="userName !=null and userName != ''">
+            and t.user_name like concat('%',#{userName},'%')
         </if>
         <if test="statusCd !=null and statusCd != ''">
             and t.status_cd= #{statusCd}
@@ -395,13 +523,97 @@
         <if test="userId !=null and userId != ''">
             and t.user_id= #{userId}
         </if>
+        <if test="createUserId !=null and createUserId != ''">
+            and t.create_user_id= #{createUserId}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+
+        -- 璧勬簮鍚嶇О鏌ヨ锛堝叧閿慨鏀癸級
+        <if test="resName !=null and resName != ''">
+            and exists (
+            select 1
+            from purchase_apply_detail de
+            inner join resource_store rs
+            on de.res_id = rs.res_id
+            and rs.status_cd = '0'
+            where de.apply_order_id = t.apply_order_id
+            and de.status_cd = '0'
+            and rs.res_name like concat('%',#{resName},'%')
+            )
+        </if>
+
+        -- 鏃犺祫婧愬悕绉版椂锛屼粎鍒ゆ柇瀛樺湪鏈夋晥鏄庣粏
+        <if test="resName ==null or resName == ''">
+            and exists (
+            select 1
+            from purchase_apply_detail de
+            where de.apply_order_id = t.apply_order_id
+            and de.status_cd = '0'
+            )
+        </if>
+
+        <if test="startTime !=null and startTime != ''">
+            and t.create_time >= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.create_time &lt;= #{endTime}
+        </if>
+
     </select>
 
     <!-- 淇濆瓨閲囪喘鐢宠淇℃伅 add by wuxw 2018-07-03 -->
     <insert id="savePurchaseApply" parameterType="Map">
-        insert into purchase_apply
-        (status_cd,res_order_type,description,apply_order_id,state,store_id,user_id,user_name,b_id,end_user_name,end_user_tel,create_time)
-        values
-        ('0',#{resOrderType},#{description},#{applyOrderId},#{state},#{storeId},#{userId},#{userName},'-1',#{endUserName},#{endUserTel},#{createTime})
+        INSERT INTO purchase_apply (
+        status_cd, res_order_type, description, apply_order_id, state, store_id, user_id, user_name, b_id,
+        end_user_name, end_user_tel,
+        create_time, create_user_id, create_user_name, warehousing_way, community_id,
+        apply_no, apply_date, approver, apply_quantity
+        )
+        VALUES (
+        '0', #{resOrderType}, #{description}, #{applyOrderId}, #{state}, #{storeId}, #{userId}, #{userName}, '-1',
+        #{endUserName}, #{endUserTel}, #{createTime}, #{createUserId}, #{createUserName}, #{warehousingWay}, #{communityId},
+        #{applyNo}, #{applyDate}, #{approver}, #{applyQuantity}
+        );
     </insert>
+
+    <!--鏌ヨ涓嬬骇鐢ㄦ埛id-->
+    <select id="getActRuTaskUserId" parameterType="Map" resultType="Map">
+        SELECT ASSIGNEE_ taskUserId FROM ACT_RU_TASK t
+        LEFT JOIN ACT_HI_PROCINST ahp on t.PROC_INST_ID_=ahp.ID_
+        LEFT JOIN ACT_RU_EXECUTION are on t.EXECUTION_ID_=are.ID_
+        where 1 = 1
+        <if test="actRuTaskId !=null and actRuTaskId != ''">
+            and ahp.ID_ = #{actRuTaskId}
+        </if>
+        <if test="procDefId !=null and procDefId != ''">
+            and t.PROC_DEF_ID_ = #{procDefId}
+        </if>
+        <if test="businessKey !=null and businessKey != ''">
+            and ahp.BUSINESS_KEY_ = #{businessKey}
+        </if>
+    </select>
+
+    <!--鑾峰緱鑾峰彇娴佺▼浠诲姟id-->
+    <select id="getActRuTaskId" parameterType="Map" resultType="Map">
+        SELECT art.ID_ actRuTaskId FROM ACT_RU_EXECUTION are
+        LEFT JOIN ACT_RU_TASK art ON are.PROC_INST_ID_=art.PROC_INST_ID_
+        where 1 = 1
+        <if test="businessKey !=null and businessKey != ''">
+            and are.BUSINESS_KEY_ = #{businessKey}
+        </if>
+    </select>
+
+    <!-- 淇敼娴佺▼浠诲姟淇℃伅 -->
+    <update id="updateActRuTaskById" parameterType="Map">
+        update ACT_RU_TASK t set SUSPENSION_STATE_=1
+        <if test="assigneeUser != null and assigneeUser != ''">
+            ,t.ASSIGNEE_ = #{assigneeUser}
+        </if>
+        where 1=1
+        <if test="actRuTaskId !=null and actRuTaskId != ''">
+            and t.ID_= #{actRuTaskId}
+        </if>
+    </update>
 </mapper>

--
Gitblit v1.8.0