From fe86d1a770fbbe7b168502e13adc69513b2af8e2 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期一, 08 四月 2024 11:26:25 +0800
Subject: [PATCH] 订单报表部分程序

---
 north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml |  192 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 133 insertions(+), 59 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml b/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
index e68717a..471389d 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/WordOrder.xml
@@ -14,6 +14,7 @@
             <result column="batch" property="batch"/>
         </association>
         <association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
+            <result column="product_id" property="productId"/>
             <result column="product_name" property="productName"/>
             <result column="compute_area" property="computeArea"/>
             <result column="quantity" property="quantity"/>
@@ -29,79 +30,152 @@
     </resultMap>
     <select id="selectWordOrder" resultMap="wordOrderMap">
         select
-        a.order_id,
-        a.production_id,
-        c.batch,
-        b.product_name,
-        b.compute_area,
-        b.quantity,
-        b.compute_gross_area,
-        b.perimeter,
-        b.bend_radius,
-        b.processing_note
-        from order_glass_detail as a
-        LEFT JOIN order_detail as b on a.order_id=b.order_id and a.order_number=b.order_number LEFT JOIN
-        `order` as c on a.order_id=c.order_id
-        <where>
+        o.order_id,
+        ogd.production_id,
+        o.batch,
+        od.product_name,
+        od.compute_area,
+        od.quantity,
+        od.compute_gross_area,
+        od.perimeter,
+        od.bend_radius,
+        od.processing_note
+
+        from `order` as o left join order_detail as od on o.order_id=od.order_id
+        left join order_glass_detail as ogd on o.order_id=ogd.order_id and ogd.order_number=od.order_number
+        where isnull(ogd.production_id) and o.order_review=2 and o.production_order!=2
             <if test="orderGlassDetail.orderId != null and orderGlassDetail.orderId != ''">
-                and a.order_id regexp #{orderGlassDetail.orderId}
+                and o.order_id regexp #{orderGlassDetail.orderId}
             </if>
             <if test="orderGlassDetail.productionId != null and orderGlassDetail.productionId != ''">
-                and a.production_id regexp #{orderGlassDetail.productionId}
+                and ogd.production_id regexp #{orderGlassDetail.productionId}
             </if>
             <if test="orderGlassDetail.order.batch != null and orderGlassDetail.order.batch != ''">
-                and c.batch regexp #{orderGlassDetail.order.batch}
+                and o.batch regexp #{orderGlassDetail.order.batch}
             </if>
             <if test="orderGlassDetail.orderDetail.productName != null and orderGlassDetail.orderDetail.productName!= ''">
-                and b.product_name regexp #{orderGlassDetail.orderDetail.productName}
+                and od.product_name regexp #{orderGlassDetail.orderDetail.productName}
             </if>
-            <if test="orderGlassDetail.splittingStatus=0 " >
-                and a.splitting_status regexp #{state}
-            </if>
-            <if test="orderGlassDetail.splittingStatus=1">
-                and a.splitting_status regexp #{state}
-            </if>
+
             <if test="orderGlassDetail.createTime != ''">
-                and DATE_FORMAT((a.create_time),'%Y-%m-%d')  BETWEEN #{ selectTime1 } AND #{ selectTime2 }
+                and DATE_FORMAT((ogd.create_time),'%Y-%m-%d') BETWEEN #{ selectTime1 } AND #{ selectTime2 }
             </if>
-        </where>
-        group by a.production_id,a.order_number
-        order by a.id desc
+
+        group by o.order_id
+        order by o.id desc
 
 
         ;
     </select>
 
-    <!--    <select id="getPageTotal" >-->
-    <!--        select-->
-    <!--        CEILING(count(a.id)/#{pageSize})-->
-    <!--        from product as a-->
-    <!--        left join basic_glass_type bgt on bgt.type_id = a.type_id-->
-    <!--        <where>-->
-    <!--            <if test="glassTypeId != null and glassTypeId != ''">-->
-    <!--                and a.type_id regexp #{glassTypeId}-->
-    <!--            </if>-->
-    <!--            <if test="product.id != null and product.id != ''">-->
-    <!--                and a.id regexp #{product.id}-->
-    <!--            </if>-->
-    <!--            <if test="product.productName != null and product.productName != ''">-->
-    <!--                and a.product_name regexp #{product.productName}-->
-    <!--            </if>-->
-    <!--            <if test="product.basicGlassType.typeName != null and product.basicGlassType.typeName!= ''">-->
-    <!--                and bgt.type_name regexp #{product.basicGlassType.typeName}-->
-    <!--            </if>-->
-    <!--            <if test="product.query != null and product.query != ''">-->
-    <!--                and a.query regexp #{product.query}-->
-    <!--            </if>-->
-    <!--            <if test="product.creator != null and product.creator != ''">-->
-    <!--                and a.creator regexp #{product.creator}-->
-    <!--            </if>-->
-    <!--            <if test="product.createTime != null and product.createTime != ''">-->
-    <!--                and date(a.create_time) regexp #{product.createTime}-->
-    <!--            </if>-->
-    <!--        </where>-->
+    <select id="selectWordOrderNo" resultMap="wordOrderMap">
+        select
+        o.order_id,
+        ogd.production_id,
+        o.batch,
+        od.product_name,
+        od.compute_area,
+        od.quantity,
+        od.compute_gross_area,
+        od.perimeter,
+        od.bend_radius,
+        od.processing_note
 
-    <!--        order by a.id desc-->
-    <!--        ;-->
-    <!--    </select>-->
+        from `order` as o left join order_detail as od on o.order_id=od.order_id
+        left join order_glass_detail as ogd on o.order_id=ogd.order_id and ogd.order_number=od.order_number
+        where ogd.production_id IS NOT NULL
+        <if test="orderGlassDetail.orderId != null and orderGlassDetail.orderId != ''">
+            and ogd.order_id regexp #{orderGlassDetail.orderId}
+        </if>
+        <if test="orderGlassDetail.productionId != null and orderGlassDetail.productionId != ''">
+            and ogd.production_id regexp #{orderGlassDetail.productionId}
+        </if>
+        <if test="orderGlassDetail.order.batch != null and orderGlassDetail.order.batch != ''">
+            and o.batch regexp #{orderGlassDetail.order.batch}
+        </if>
+        <if test="orderGlassDetail.orderDetail.productName != null and orderGlassDetail.orderDetail.productName!= ''">
+            and od.product_name regexp #{orderGlassDetail.orderDetail.productName}
+        </if>
+
+        <if test="orderGlassDetail.createTime != ''">
+            and DATE_FORMAT((ogd.create_time),'%Y-%m-%d') BETWEEN #{ selectTime1 } AND #{ selectTime2 }
+        </if>
+
+        group by ogd.production_id,ogd.order_number
+        order by ogd.id desc
+
+
+        ;
+    </select>
+
+    <select id="addWordOrder" >
+        select od.order_id,
+        od.product_id,
+        od.product_name,
+        sum( od.quantity) as quantity,
+        od.compute_gross_area,
+        od.perimeter
+        from sd.order_detail as od
+        left join sd.order as o
+        on od.order_id =o.order_id
+        where od.order_id = #{orderId}  and  o.production_order!=2
+        <if test="orderDetail.orderId != null and orderDetail.orderId != ''">
+            and od.order_id regexp #{orderDetail.orderId}
+        </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>
+        group by od.order_id, od.product_id, od.product_name
+        ;
+    </select>
+
+    <select id="selectOrderNumber" >
+        select ifnull(count(ogd.production_id),0)
+        from sd.order_glass_detail as ogd
+        where ogd.production_id = #{productIdVl}
+    </select>
+
+    <update id="addOrderWorkMp" >
+        update sd.order_detail as od left join sd.order_glass_detail as ogd
+            on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+
+        set ogd.production_id=#{productIdVl},
+            ogd.production_time=NOW(),
+            ogd.founder=#{userName}
+
+        where od.order_id = #{orderId}
+          and od.product_id =#{productId}
+          and od.product_name = #{productName}
+    </update>
+
+<!--    鍒犻櫎宸ュ崟-->
+    <update id="deleteOrderWorkMp">
+        update sd.order_detail as od left join sd.order_glass_detail as ogd
+            on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+        set ogd.production_id=null,
+            ogd.production_time=null,
+            ogd.founder=null
+        where od.order_id = #{orderId}
+          and od.product_name = #{productName}
+    </update>
+
+    <select id="selectWorkCount">
+        select COUNT(distinct order_number)
+        from order_glass_detail
+        where ISNULL(production_id)
+          and order_id = #{orderId}
+    </select>
+
+    <select id="selectYesWorkCount">
+        select COUNT(distinct order_number)
+        from order_glass_detail
+        where  order_id = #{orderId}
+    </select>
+
+    <update id="updateWorkType">
+        update sd.order as o set o.production_order=#{state} where o.order_id=#{orderId}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0