From f3ee7ee6ce83cd0ce4264a317a83c5e07aed3fbd Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 19 七月 2024 17:31:57 +0800
Subject: [PATCH] 半成品标签

---
 north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml |  352 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 342 insertions(+), 10 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
index f83bba4..e57aab1 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/DeliveryDetailMapper.xml
@@ -34,6 +34,7 @@
 
         <result column="batch" property="order.batch"/>
         <result column="t_quantity" property="order.quantity"/>
+        <result column="calculate_type" property="order.calculateType"/>
 
 
         <result column="customer_id" property="delivery.customerId"/>
@@ -83,6 +84,9 @@
         <result column="creator" property="delivery.creator"/>
         <result column="salesman" property="delivery.salesman"/>
 
+        <result column="product_id" property="orderDetail.productId"/>
+        <result column="product_name" property="orderDetail.productName"/>
+
 
 
     </resultMap>
@@ -121,6 +125,10 @@
         update sd.order_detail set delivery_num=delivery_num-#{quantity} where order_id=#{orderId} and order_number=#{orderNumber}
     </update>
 
+    <update id="updateOrderDelivery">
+        update sd.`order` set delivery=#{state} where order_id=#{orderDetail.orderId}
+    </update>
+
     <select id="getdeliveryDetailmaximum" >
         select count(*) from sd.delivery_detail where  delivery_id=#{deliveryId}
     </select>
@@ -129,14 +137,22 @@
         select * from sd.delivery_detail where  delivery_id=#{deliveryId}
     </select>
 
+    <select id="getSelectDetailQuantity" >
+        select quantity from sd.`order` where  order_id=#{orderId}
+    </select>
+
+    <select id="getSelectDetailNum" >
+        select sum(quantity) from sd.order_detail where  order_id=#{orderId}
+    </select>
+
 
     <insert id="insertDeliveryDetail"  useGeneratedKeys="true" >
         insert into sd.delivery_detail (delivery_id,delivery_number,order_number,
-                                        area,order_id,quantity,money,delivery_detail_remakes,delivery_detail_state,create_time)
+                                        area,order_id,quantity,money,delivery_detail_remakes,delivery_detail_state,other_columns,create_time,price)
         values (
-                   #{number} ,#{deliveryNumber},#{orderDetail.orderNumber},#{orderDetail.computeGrossArea},
+                   #{number} ,#{deliveryNumber},#{orderDetail.orderNumber},#{orderDetail.computeArea}*#{orderDetail.deliveryDetail.quantity},
                 #{orderDetail.orderId},#{orderDetail.deliveryDetail.quantity},
-                #{orderDetail.price}*#{orderDetail.deliveryDetail.quantity},'',1,now()
+                #{deliveryDetailMoney},'',1,#{orderDetail.otherColumns},now(),#{orderDetail.price}
                )
     </insert>
 
@@ -154,7 +170,7 @@
                od.building_number,
                od.product_id,
                od.product_name,
-               od.price,
+               dd.price,
                fgi.storage_region,
                dd.money,
                od.width,
@@ -167,7 +183,8 @@
                od.processing_note,
                od.edging_type,
                od.perimeter,
-               dd.delivery_detail_remakes
+               dd.delivery_detail_remakes,
+               dd.other_columns
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
         left join sd.order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
@@ -245,7 +262,7 @@
             </if>
 
         </where>
-        order by dd.id desc
+        order by dd.id
         limit #{offset},#{pageSize};
     </select>
 
@@ -335,6 +352,7 @@
         select od.order_id,
                od.order_number,
                o.batch,
+               o.calculate_type,
                fgi.quantity_available,
                od.quantity- od.delivery_num as t_quantity,
                od.quantity as o_quantity,
@@ -353,7 +371,8 @@
                od.compute_gross_area,
                od.processing_note,
                od.edging_type,
-               od.perimeter
+               od.perimeter,
+               od.other_columns
         from sd.order_detail od
                  left join sd.`order` o on od.order_id = o.order_id
                  left join mm.finished_goods_inventory fgi
@@ -501,6 +520,8 @@
     <select id="getSelectDeliveryDetailReport" resultMap="selectDeliveryDetail">
         select dd.delivery_id,
         dd.delivery_number,
+        od.product_id,
+        od.product_name,
         d.payment_terms,
         d.project,
         d.customer_id,
@@ -522,6 +543,7 @@
         dd.create_time
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
+        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
         <where>
                and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
@@ -598,6 +620,7 @@
         count(dd.id) as 'total'
         from sd.delivery_detail dd
         left join sd.delivery d on dd.delivery_id=d.delivery_id
+        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
         <where>
             and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
@@ -668,9 +691,200 @@
         order by dd.delivery_id,dd.delivery_number
     </select>
 
+
+    <select id="getSelectDeliveryDetailProductReport" resultMap="selectDeliveryDetail">
+        select dd.delivery_id,
+        dd.delivery_number,
+        od.product_id,
+        od.product_name,
+        d.payment_terms,
+        d.project,
+        d.customer_id,
+        d.customer_name,
+        d.delivery_date,
+        d.pay_method,
+        d.pay_date,
+        d.salesman,
+        d.creator,
+        d.contacts,
+        d.contact_number,
+        d.delivery_address,
+        dd.order_id,
+        dd.order_number,
+        sum(dd.area) as area,
+        sum(dd.money) as money,
+        sum(dd.quantity) as quantity,
+        dd.delivery_detail_remakes,
+        dd.create_time
+        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
+            left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
+        <where>
+            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
+            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
+                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
+            </if>
+            <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
+                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
+            </if>
+            <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
+                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
+            </if>
+            <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
+                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
+            </if>
+            <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
+                and dd.area like concat('%', #{deliveryDetail.area},'%')
+            </if>
+            <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
+                and dd.money like concat('%', #{deliveryDetail.money},'%')
+            </if>
+            <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
+                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
+            </if>
+            <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
+                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
+            </if>
+            <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
+                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
+                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
+                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
+                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
+                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
+                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
+                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
+                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
+                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
+                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
+                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
+                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
+                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
+            </if>
+            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productName != null and deliveryDetail.orderDetail.productName != '')">
+                and od.product_id like concat('%', #{deliveryDetail.orderDetail.productName},'%')
+            </if>
+            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productId != null and deliveryDetail.orderDetail.productId != '')">
+                and od.product_name like concat('%', #{deliveryDetail.orderDetail.productId},'%')
+            </if>
+
+        </where>
+        group by dd.delivery_id,od.product_id
+        order by dd.delivery_id,dd.delivery_number
+        limit #{offset},#{pageSize};
+    </select>
+
+
+    <select id="getSelectDeliveryDetailProductReportPageTotal">
+        select
+        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
+        count(zu.id) as 'total' from (
+        select dd.id as id
+        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
+        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
+        <where>
+            and date(dd.create_time)>=#{startDate} and date(dd.create_time) &lt;= #{endDate}
+            <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
+                and dd.delivery_id like concat('%',#{deliveryDetail.deliveryId},'%')
+            </if>
+            <if test="deliveryDetail.deliveryNumber != null and deliveryDetail.deliveryNumber != ''">
+                and dd.delivery_number like concat('%',#{deliveryDetail.deliveryNumber},'%')
+            </if>
+            <if test="deliveryDetail.orderId != null and deliveryDetail.orderId != ''">
+                and dd.order_id like concat('%', #{deliveryDetail.orderId},'%')
+            </if>
+            <if test="deliveryDetail.orderNumber != null and deliveryDetail.orderNumber != ''">
+                and dd.order_number like concat('%', #{deliveryDetail.orderNumber},'%')
+            </if>
+            <if test="deliveryDetail.area != null and deliveryDetail.area != ''">
+                and dd.area like concat('%', #{deliveryDetail.area},'%')
+            </if>
+            <if test="deliveryDetail.money != null and deliveryDetail.money != ''">
+                and dd.money like concat('%', #{deliveryDetail.money},'%')
+            </if>
+            <if test="deliveryDetail.quantity != null and deliveryDetail.quantity != ''">
+                and dd.quantity like concat('%', #{deliveryDetail.quantity},'%')
+            </if>
+            <if test="deliveryDetail.deliveryDetailRemakes != null and deliveryDetail.deliveryDetailRemakes != ''">
+                and dd.delivery_detail_remakes like concat('%', #{deliveryDetail.deliveryDetailRemakes},'%')
+            </if>
+            <if test="deliveryDetail.createTime != null and deliveryDetail.createTime != ''">
+                and dd.create_time like concat('%', #{deliveryDetail.createTime},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.paymentTerms != null and deliveryDetail.delivery.paymentTerms != '')">
+                and d.payment_terms like concat('%', #{deliveryDetail.delivery.paymentTerms},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.project != null and deliveryDetail.delivery.project != '')">
+                and d.project like concat('%', #{deliveryDetail.delivery.project},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerId != null and deliveryDetail.delivery.customerId != '')">
+                and d.customer_id like concat('%', #{deliveryDetail.delivery.customerId},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.customerName != null and deliveryDetail.delivery.customerName != '')">
+                and d.customer_name like concat('%', #{deliveryDetail.delivery.customerName},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryDate != null and deliveryDetail.delivery.deliveryDate != '')">
+                and d.delivery_date like concat('%', #{deliveryDetail.delivery.deliveryDate},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payMethod != null and deliveryDetail.delivery.payMethod != '')">
+                and d.pay_method like concat('%', #{deliveryDetail.delivery.payMethod},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.payDate != null and deliveryDetail.delivery.payDate != '')">
+                and d.pay_date like concat('%', #{deliveryDetail.delivery.payDate},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.salesman != null and deliveryDetail.delivery.salesman != '')">
+                and d.salesman like concat('%', #{deliveryDetail.delivery.salesman},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.creator != null and deliveryDetail.delivery.creator != '')">
+                and d.creator like concat('%', #{deliveryDetail.delivery.creator},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contacts != null and deliveryDetail.delivery.contacts != '')">
+                and d.contacts like concat('%', #{deliveryDetail.delivery.contacts},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.contactNumber != null and deliveryDetail.delivery.contactNumber != '')">
+                and d.contact_number like concat('%', #{deliveryDetail.delivery.contactNumber},'%')
+            </if>
+            <if test="deliveryDetail.delivery!=null and (deliveryDetail.delivery.deliveryAddress != null and deliveryDetail.delivery.deliveryAddress != '')">
+                and d.delivery_address like concat('%', #{deliveryDetail.delivery.deliveryAddress},'%')
+            </if>
+            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productName != null and deliveryDetail.orderDetail.productName != '')">
+                and od.product_id like concat('%', #{deliveryDetail.orderDetail.productName},'%')
+            </if>
+            <if test="deliveryDetail.orderDetail!=null and (deliveryDetail.orderDetail.productId != null and deliveryDetail.orderDetail.productId != '')">
+                and od.product_name like concat('%', #{deliveryDetail.orderDetail.productId},'%')
+            </if>
+
+        </where>
+        group by dd.delivery_id,od.product_id) as zu
+    </select>
+
     <select id="getSelectDeliveryPrinting" resultMap="selectDeliveryDetailOrderDetail" >
-        select dd.delivery_id,od.order_id,od.product_id,od.product_name,sum(dd.area) as area,sum(dd.money) as money,sum(dd.quantity) as quantity from
+        select dd.delivery_id,od.order_id,od.product_id,pt.remarks as product_name,sum(dd.area) as area,sum(dd.money) as money,sum(dd.quantity) as quantity from
         delivery_detail dd left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
+                                                            left join product pt on pt.id=od.product_id
+
 
         <where>
             <if test="deliveryDetail.deliveryId != null and deliveryDetail.deliveryId != ''">
@@ -680,10 +894,22 @@
         group by od.order_id,od.product_name,od.product_id
     </select>
 
+    <select id="getSelectOrderPrinting"  >
+        select od.order_id,od.product_id,p.remarks as product_name,sum(od.compute_gross_area) as area,sum(od.gross_amount) as gross_amount ,sum(od.quantity) as quantity from
+         order_detail od left join product p on od.product_id=p.id
+
+        <where>
+            <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
+                and od.order_id like concat('%',#{orderDetail.orderId},'%')
+            </if>
+        </where>
+        group by od.product_name,od.product_id
+    </select>
+
     <select id="getSelectDeliveryDetailPrinting" >
         select od.order_id,
                od.order_number,
-               od.product_name,
+               p.remarks as product_name,
                od.width,
                od.height,
                dd.quantity,
@@ -691,11 +917,117 @@
                dd.area,
                ifnull(od.processing_note,"") as processingNote,
                ifnull(od.building_number,"") as buildingNumber,
-               od.price
+               dd.price,
+               od.other_columns
         from delivery_detail dd
                  left join order_detail od on dd.order_id = od.order_id and dd.order_number = od.order_number
+                 left join product p on od.product_id = p.id
         where delivery_id = #{deliveryId}
           and od.order_id = #{orderId}
           and od.product_id = #{productId}
     </select>
+
+    <select id="getSelectotherMoney" >
+        select bom.alias,oom.price,#{value}*dd.quantity  as count,oom.price*#{value}*dd.quantity as monery
+        from delivery_detail dd
+                 left join order_detail od on dd.order_id = od.order_id and dd.order_number = od.order_number
+                left join order_other_money oom on oom.order_id=dd.order_id  and oom.column=#{key}
+        left join basic_other_money bom on bom.`column`=oom.`column`
+        where delivery_id = #{deliveryId}
+          and od.order_id = #{orderId} and od.order_number=#{orderNumber} and (od.other_columns!='{}' or od.other_columns!=null)
+    </select>
+
+    <select id="getSelectOrderotherMoney" >
+        select bom.alias,oom.price,#{value}*od.quantity as count,oom.price*#{value}*od.quantity as monery
+                 from order_detail od
+                 left join order_other_money oom on oom.order_id=od.order_id  and oom.column=#{key}
+                 left join basic_other_money bom on bom.`column`=oom.`column`
+        where  od.order_id = #{orderId} and od.order_number=#{orderNumber} and (od.other_columns!='{}' or od.other_columns!=null)
+    </select>
+
+    <select id="getSelectOrderDetailPrinting" >
+        select od.order_id,
+               od.order_number,
+               od.product_name,
+               od.width,
+               od.height,
+               od.quantity,
+               od.gross_amount,
+               od.compute_gross_area,
+               ifnull(od.processing_note,"") as processingNote,
+               ifnull(od.building_number,"") as buildingNumber,
+               od.price,
+               od.other_columns
+        from  order_detail od
+        where  od.order_id = #{orderId}
+          and od.product_id = #{productId}
+    </select>
+
+
+    <select id="exportDeliveryDetailReport">
+        select dd.id,
+            dd.delivery_id,
+        dd.delivery_number,
+        od.product_id,
+        od.product_name,
+        d.payment_terms,
+        d.project,
+        d.customer_id,
+        d.customer_name,
+        c.customer_abbreviation,
+        d.delivery_date,
+        d.pay_method,
+        d.pay_date,
+        d.salesman,
+        d.creator,
+        d.contacts,
+        d.contact_number,
+        d.delivery_address,
+        dd.order_id,
+        dd.order_number,
+        dd.area,
+        dd.money,
+        dd.quantity,
+        dd.delivery_detail_remakes,
+        dd.create_time
+        from sd.delivery_detail dd
+        left join sd.delivery d on dd.delivery_id=d.delivery_id
+        left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
+        left join sd.customer c on d.customer_id=c.id
+        where  date(d.create_time)>=#{dates[0]} and date(d.create_time) &lt;= #{dates[1]}
+    </select>
+
+    <select id="exportDeliveryDetailProductReport">
+        select dd.id,
+            dd.delivery_id,
+               dd.delivery_number,
+               od.product_id,
+               od.product_name,
+               d.payment_terms,
+               d.project,
+               d.customer_id,
+               d.customer_name,
+               c.customer_abbreviation,
+               d.delivery_date,
+               d.pay_method,
+               d.pay_date,
+               d.salesman,
+               d.creator,
+               d.contacts,
+               d.contact_number,
+               d.delivery_address,
+               dd.order_id,
+               dd.order_number,
+               sum(dd.area) as area,
+               sum(dd.money) as money,
+               sum(dd.quantity) as quantity,
+               dd.delivery_detail_remakes,
+               dd.create_time
+        from sd.delivery_detail dd left join delivery d on dd.delivery_id=d.delivery_id
+                                   left join order_detail od on dd.order_id=od.order_id and dd.order_number=od.order_number
+                                   left join sd.customer c on d.customer_id=c.id
+        where  date(d.create_time)>=#{dates[0]} and date(d.create_time) &lt;= #{dates[1]}
+        group by dd.delivery_id,od.product_id
+        order by dd.delivery_id,dd.delivery_number
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0