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