From 9ccc8bd3a53160a40cf60f14e5867f6ce9f6c58f Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期五, 26 十二月 2025 16:49:15 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml |  288 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 184 insertions(+), 104 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
index e988c89..f94fa7d 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/CustomerMapper.xml
@@ -40,70 +40,60 @@
     </resultMap>
 
 
-    <select id="getSelectCustomerOderDate" resultMap="selectCustomerOrderDetail">
-        select od.order_id,
-               od.order_number,
-               o.project,
-               od.product_id,
-               od.product_name,
-               o.customer_id,
-               o.customer_name,
-               sum(od.quantity) as quantity,
-               sum(od.area) as area,
-               od.shape,
-               od.width,
-               od.height,
-               o.batch,
-               o.money,
-               o.order_type,
-               o.salesman,
-               o.create_time
-        from order_detail od
-                 left join `order` o on o.order_id = od.order_id
-        <where>
-                and date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
-            <if test="orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
-                and o.customer_id = #{orderDetail.order.customerId}
-            </if>
-            <if test="orderDetail.order.project != null and orderDetail.order.project != ''">
-                and o.project regexp #{orderDetail.order.project}
-            </if>
-            <if test="orderDetail.order.batch != null and orderDetail.order.batch != ''">
-                and o.batch regexp #{orderDetail.order.batch}
-            </if>
-            <if test="orderDetail.order.money != null and orderDetail.order.money != ''">
-                and o.money regexp REGEXP_REPLACE(#{orderDetail.order.money},'\\.0+$','')
-            </if>
-            <if test="orderDetail.order.orderType != null and orderDetail.order.orderType != ''">
-                and o.order_type regexp #{orderDetail.order.orderType}
-            </if>
-            <if test="orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
-                and o.salesman regexp #{orderDetail.order.salesman}
-            </if>
-            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
-                and od.order_id regexp #{orderDetail.orderId}
-            </if>
-            <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
-                and od.order_number regexp #{orderDetail.orderNumber}
-            </if>
-            <if test="orderDetail.productId != null and orderDetail.productId != ''">
-                and od.product_id regexp #{orderDetail.productId}
-            </if>
-            <if test="orderDetail.productName != null and orderDetail.productName != ''">
-                and od.product_name regexp #{orderDetail.productName}
-            </if>
-            <if test="orderDetail.shape != null and orderDetail.shape != ''">
-                and od.shape regexp #{orderDetail.shape}
-            </if>
-            <if test="orderDetail.width != null and orderDetail.width != ''">
-                and od.width regexp  REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
-            </if>
-            <if test="orderDetail.height != null and orderDetail.height != ''">
-                and od.height regexp  REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
-            </if>
+    <select id="getSelectCustomerDeliveryDate" >
+        select d.delivery_id,dd.order_id,d.customer_id,d.customer_name,
+               d.project,od.product_name,sum(dd.quantity) as quantity,sum(dd.area) as area,dd.price,sum(dd.money) as money,
+                date(d.create_time) as create_time
 
+        from sd.delivery_detail dd
+                 left join sd.delivery d on d.delivery_id = dd.delivery_id
+                 left join sd.order_detail od on od.order_id=dd.order_id and od.order_number=dd.order_number
+
+                where date(d.create_time)>=#{startDate} and date(d.create_time) &lt;= #{endDate}
+                and d.customer_id = #{orderDetail.order.customerId}
+        group by dd.delivery_id,od.order_id,od.product_id
+        limit #{offset},#{pageSize};
+    </select>
+
+    <select id="getSelectCustomerDeliveryDatePageTotal" >
+        select
+        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
+        count(zu.id) as 'total' from (select od.product_id,od.id
+        from sd.delivery_detail dd
+        left join sd.delivery d on d.delivery_id = dd.delivery_id
+        left join sd.order_detail od on od.order_id=dd.order_id and od.order_number=dd.order_number
+        where
+             date(d.create_time)>=#{startDate} and date(d.create_time) &lt;= #{endDate}
+            and d.customer_id = #{orderDetail.order.customerId}
+        group by dd.delivery_id,od.order_id,od.product_id) as zu
+    </select>
+
+    <select id="getSelectCustomerOderDate" >
+        select od.order_id,
+        od.order_number,
+        o.project,
+        od.product_id,
+        od.product_name,
+        o.customer_id,
+        o.customer_name,
+        sum(od.quantity) as quantity,
+        sum(od.compute_gross_area) as area,
+        od.shape,
+        od.width,
+        od.height,
+        o.batch,
+        od.price,
+        sum(od.gross_amount) as money,
+        o.order_type,
+        o.salesman,
+        date(o.create_time) as create_time
+        from order_detail od
+        left join `order` o on o.order_id = od.order_id
+        <where>
+            and date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
+                                   and o.customer_id = #{orderDetail.order.customerId} and o.create_order>0
         </where>
-        group by od.product_id, od.width, od.height
+        group by od.order_id,od.product_id
         limit #{offset},#{pageSize};
     </select>
 
@@ -115,48 +105,9 @@
         left join `order` o on o.order_id = od.order_id
         <where>
             and date(o.create_time)>=#{startDate} and date(o.create_time) &lt;= #{endDate}
-            <if test="orderDetail.order.customerId != null and orderDetail.order.customerId != ''">
-                and o.customer_id = #{orderDetail.order.customerId}
-            </if>
-            <if test="orderDetail.order.project != null and orderDetail.order.project != ''">
-                and o.project regexp #{orderDetail.order.project}
-            </if>
-            <if test="orderDetail.order.batch != null and orderDetail.order.batch != ''">
-                and o.batch regexp #{orderDetail.order.batch}
-            </if>
-            <if test="orderDetail.order.money != null and orderDetail.order.money != ''">
-                and o.money regexp REGEXP_REPLACE(#{orderDetail.order.money},'\\.0+$','')
-            </if>
-            <if test="orderDetail.order.orderType != null and orderDetail.order.orderType != ''">
-                and o.order_type regexp #{orderDetail.order.orderType}
-            </if>
-            <if test="orderDetail.order.salesman != null and orderDetail.order.salesman != ''">
-                and o.salesman regexp #{orderDetail.order.salesman}
-            </if>
-            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
-                and od.order_id regexp #{orderDetail.orderId}
-            </if>
-            <if test="orderDetail.orderNumber != null and orderDetail.orderNumber != ''">
-                and od.order_number regexp #{orderDetail.orderNumber}
-            </if>
-            <if test="orderDetail.productId != null and orderDetail.productId != ''">
-                and od.product_id regexp #{orderDetail.productId}
-            </if>
-            <if test="orderDetail.productName != null and orderDetail.productName != ''">
-                and od.product_name regexp #{orderDetail.productName}
-            </if>
-            <if test="orderDetail.shape != null and orderDetail.shape != ''">
-                and od.shape regexp #{orderDetail.shape}
-            </if>
-            <if test="orderDetail.width != null and orderDetail.width != ''">
-                and od.width regexp  REGEXP_REPLACE(#{orderDetail.width},'\\.0+$','')
-            </if>
-            <if test="orderDetail.height != null and orderDetail.height != ''">
-                and od.height regexp  REGEXP_REPLACE(#{orderDetail.height},'\\.0+$','')
-            </if>
-
+                and o.customer_id = #{orderDetail.order.customerId} and o.create_order>0
         </where>
-        group by od.product_id, od.width, od.height) as zu
+        group by od.order_id,od.product_id) as zu
     </select>
 
     <select id="getCustomerList">
@@ -164,7 +115,9 @@
             a.*,
             b.project,
             b.salesman_id,
-            b.salesman
+            b.salesman,
+            b.contacts,
+            b.contact_number
         from
             sd.customer as a
         left join (SELECT
@@ -177,6 +130,8 @@
                                o.project,
                                o.salesman_id,
                                o.salesman,
+                               o.contacts,
+                               o.contact_number,
                                o.customer_id
                            FROM
                                sd.ORDER AS o
@@ -186,6 +141,20 @@
         on a.id = b.customer_id
 
     </select>
+    <select id="getProjectList">
+        select * from(select project,salesman_id as salesmanId,salesman,contacts,contact_number as contactNumber,id from sd.`order`
+                       where customer_id = #{id}
+                      group by project
+                       ) as a
+              order by id desc
+    </select>
+
+    <select id="countByCustomerName">
+        SELECT COUNT(*)
+        FROM sd.customer
+        WHERE customer_name=#{customer.customerName}
+    </select>
+
     <select id="getSelectCustomer">
         select
             *
@@ -271,4 +240,115 @@
     <delete id="deleteCustomer" >
         delete from sd.customer  where id=#{customer.id}
     </delete>
+
+    <select id="exportSelectCustomerDeliveryDate" >
+        select d.delivery_id,
+               dd.order_id,
+               d.customer_name,
+               d.project,
+               od.product_name,
+               sum(dd.quantity)    as quantity,
+               sum(dd.area)        as area,
+               dd.price,
+               sum(dd.money)       as money,
+               date(d.create_time) as create_time
+
+        from sd.delivery_detail dd
+                 left join sd.delivery d on d.delivery_id = dd.delivery_id
+                 left join sd.order_detail od on od.order_id = dd.order_id and od.order_number = dd.order_number
+
+        where date(d.create_time) >= #{startDate}
+          and date(d.create_time) &lt;= #{endDate}
+          and d.customer_id = #{orderDetail.order.customerId}
+        group by dd.delivery_id,od.order_id,od.product_id
+
+        UNION ALL
+
+        select d.delivery_id,
+               o.order_id,
+               d.customer_name,
+               d.project,
+               bom.alias           as product_name,
+               sum(om.quantity)    as quantity,
+               0                   as area,
+               om.price,
+               sum(om.money)       as money,
+               date(d.create_time) as create_time
+
+        from (select * from sd.delivery_detail group by order_id) as dd
+                 left join sd.delivery d on d.delivery_id = dd.delivery_id
+                 left join sd.`order` o on o.order_id = dd.order_id
+                 left join sd.order_other_money om on om.order_id = o.order_id
+                 left join sd.basic_other_money bom on bom.`column` = om.`column`
+
+        where date(d.create_time) >= #{startDate}
+          and date(d.create_time) &lt;= #{endDate}
+          and d.customer_id = #{orderDetail.order.customerId}
+          and om.money is not null
+          and om.money >0
+        group by d.delivery_id, o.order_id, om.`column`
+
+        UNION ALL
+
+        select d.delivery_id,
+               d.order_id,
+               d.customer_name,
+               d.project,
+               '杩愯垂'           as product_name,
+               d.freight_quantity    as quantity,
+               0                   as area,
+               d.freight_price    as price,
+               d.freight        as money,
+               date(d.create_time) as create_time
+
+        from sd.delivery d
+
+        where date(d.create_time) >= #{startDate}
+          and date(d.create_time) &lt;= #{endDate}
+          and d.customer_id = #{orderDetail.order.customerId}
+          and d.freight >0
+        group by d.delivery_id
+    </select>
+
+    <select id="exportSelectCustomerOderDate" >
+        select od.order_id,
+               o.project,
+               od.product_name,
+               o.customer_name,
+               sum(od.quantity)     as quantity,
+               sum(od.compute_gross_area)         as area,
+               od.price,
+               sum(od.gross_amount) as money,
+               date(o.create_time)  as create_time
+        from order_detail od
+                 left join `order` o on o.order_id = od.order_id
+        where date(o.create_time) >= #{startDate}
+          and date(o.create_time) &lt;= #{endDate}
+          and o.customer_id = #{orderDetail.order.customerId}
+          and o.order_review>0
+        group by od.order_id,od.product_id
+
+        UNION ALL
+
+        select o.order_id,
+               o.project,
+               bom.alias           as product_name,
+               o.customer_name,
+               sum(om.quantity)    as quantity,
+               0                   as area,
+               om.price,
+               sum(om.money)       as money,
+               date(o.create_time) as create_time
+        from `order` o
+                 left join sd.order_other_money om on om.order_id = o.order_id
+                 left join sd.basic_other_money bom on bom.`column` = om.`column`
+        where date(o.create_time) >= #{startDate}
+          and date(o.create_time) &lt;= #{endDate}
+          and o.customer_id = #{orderDetail.order.customerId}
+          and o.order_review>0
+          and om.money is not null
+          and om.money >0
+        group by o.order_id, om.`column`
+
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0