From acaf8ca38cd32bc474bb46b593db2a8d75b9bfdd Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期六, 12 十月 2024 08:26:23 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml | 381 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 218 insertions(+), 163 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml b/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
index 80b4bb7..ae4206b 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
@@ -3,190 +3,167 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.erp.mapper.pp.ProductionSchedulingMapper">
- <resultMap id="ProductionSchedulingMap" type="com.example.erp.entity.pp.ProductionScheduling">
+ <resultMap id="productionSchedulingMap" type="com.example.erp.entity.pp.ProductionScheduling">
<result column="processes" property="processes"/>
<result column="scheduling_quantity" property="schedulingQuantity"/>
<result column="order_number" property="orderNumber"/>
<result column="scheduling_id" property="schedulingId"/>
- <result column="order_id" property="orderId"/>
+ <result column="order_id" property="order.orderId"/>
+ <result column="technology_number" property="technologyNumber"/>
+ <result column="pendingProductionQuantity" property="pendingProductionQuantity"/>
+ <result column="pendingProductionArea" property="pendingProductionArea"/>
+ <result column="productionScheduledQuantity" property="productionScheduledQuantity"/>
+ <result column="productionScheduledArea" property="productionScheduledArea"/>
+ <result column="review_status" property="reviewStatus"/>
+ <result column="scheduled_start_time" property="scheduledStartTime"/>
+ <result column="plan_end_time" property="planEndTime"/>
+ <result column="reviewer" property="reviewer"/>
<!--鎺ユ敹鍏朵粬澶栭敭瀹炰綋绫绘暟鎹�-->
- <association property="order" javaType="com.example.erp.entity.sd.Order">
- <result column="project" property="project"/>
- <result column="order_id" property="orderId"/>
- <result column="customer_name" property="customerName"/>
- <result column="batch" property="batch"/>
- <result column="other_remarks" property="otherRemarks"/>
- <result column="icon" property="icon"/>
- <result column="order_type" property="orderType"/>
- <result column="salesman" property="salesman"/>
- <result column="processing_note" property="processingNote"/>
- <result column="delivery_address" property="deliveryAddress"/>
- </association>
- <association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
- <result column="order_id" property="orderId"/>
- <result column="product_id" property="productId"/>
- <result column="product_name" property="productName"/>
- <result column="compute_gross_area" property="computeGrossArea"/>
- <result column="processing_note" property="processingNote"/>
- <result column="quantity" property="quantity"/>
- <result column="compute_gross_area" property="computeGrossArea"/>
- <result column="perimeter" property="perimeter"/>
- <result column="order_number" property="orderNumber"/>
- <result column="width" property="width"/>
- <result column="height" property="height"/>
- <result column="shape" property="shape"/>
- <result column="weight" property="weight"/>
- </association>
-
-
+ <result column="project" property="order.project"/>
+ <result column="customer_name" property="order.customerName"/>
+ <result column="batch" property="order.batch"/>
+ <result column="other_remarks" property="order.otherRemarks"/>
+ <result column="icon" property="order.icon"/>
+ <result column="order_type" property="order.orderType"/>
+ <result column="salesman" property="order.salesman"/>
+ <result column="processing_note" property="order.processingNote"/>
+ <result column="delivery_address" property="order.deliveryAddress"/>
+ <result column="product_id" property="orderDetail.productId"/>
+ <result column="product_name" property="orderDetail.productName"/>
+ <result column="compute_gross_area" property="orderDetail.computeGrossArea"/>
+ <result column="quantity" property="orderDetail.quantity"/>
+ <result column="perimeter" property="orderDetail.perimeter"/>
+ <result column="width" property="orderDetail.width"/>
+ <result column="height" property="orderDetail.height"/>
+ <result column="shape" property="orderDetail.shape"/>
+ <result column="weight" property="orderDetail.weight"/>
+ <result column="child_width" property="orderGlassDetail.childWidth"/>
+ <result column="child_height" property="orderGlassDetail.childHeight"/>
+ <result column="area" property="orderGlassDetail.area"/>
+ <result column="glass_child" property="orderGlassDetail.glassChild"/>
</resultMap>
<!-- 鏌ヨ宸叉帓鐗堟暟鎹�-->
- <select id="selectOkSchedulingMp">
- select date(ps.scheduled_start_time) as scheduled_start_time,
- date(ps.plan_end_time) as plan_end_time,
- od.order_id,
- o.customer_name,
- o.project,
- od.order_number,
- od.width,
- od.height,
- od.quantity,
- round(od.width * od.height * od.quantity / 1000000, 2) as area,
- ps.scheduling_quantity,
- (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) as pendingProductionQuantity,
- round(od.width * od.height * (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) / 1000000,
- 2) as pendingProductionArea,
- IFNULL(ps.scheduling_quantity, 0) as productionScheduledQuantity,
- round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000,
- 2) as productionScheduledArea,
- IF(ps.review_status = 0, "鏈鏍�", "宸插鏍�") as review_status,
- ps.reviewer,
- od.product_name,
- od.shape,
- ps.scheduling_id
+ <select id="selectOkSchedulingMp" resultMap="productionSchedulingMap">
+ select date(ps.scheduled_start_time) as scheduled_start_time,
+ date(ps.plan_end_time) as plan_end_time,
+ od.order_id,
+ o.customer_name,
+ o.project,
+ ps.order_number,
+ ps.technology_number,
+ ogd.child_width,
+ ogd.child_height,
+ od.quantity,
+ round(od.width * od.height * od.quantity / 1000000, 2) as area,
+ ps.scheduling_quantity,
+ (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) as pendingProductionQuantity,
+ round(od.width * od.height * (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) / 1000000,
+ 2) as pendingProductionArea,
+ IFNULL(ps.scheduling_quantity, 0) as productionScheduledQuantity,
+ round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+ 2) as productionScheduledArea,
+ IF(ps.review_status = 0, "鏈鏍�", "宸插鏍�") as review_status,
+ ps.reviewer,
+ od.product_name,
+ if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape,
+ ps.scheduling_id,
+ ps.notes
from sd.order_detail as od
- left join sd.order as o on od.order_id = o.order_id
- left join production_scheduling as ps
- on ps.order_id = od.order_id and ps.order_number = od.order_number
+ left join sd.order as o on od.order_id = o.order_id
+ left join production_scheduling as ps
+ on ps.order_id = od.order_id and ps.order_number = od.order_number
+ left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number and
+ ogd.technology_number=ps.technology_number
where ps.scheduling_id IS NOT NULL
- and od.create_time between #{selectTime1} and #{selectTime2}
- and position(#{processes} in ps.processes)
- and position(#{orderId} in ps.order_id)
- group by od.order_id, od.order_number
+ and o.create_order>0
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and position(#{processes} in ps.processes)
+ and position(#{orderIds} in ps.order_id)
+ <if test="productionScheduling.order.orderId != null and productionScheduling.order.orderId != ''">
+ and ogd.order_id regexp #{productionScheduling.order.orderId}
+ </if>
+ <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''">
+ and o.customer_name regexp #{productionScheduling.order.customerName}
+ </if>
+ <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''">
+ and o.project regexp #{productionScheduling.order.project}
+ </if>
+ <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''">
+ and ogd.order_number regexp #{productionScheduling.orderNumber}
+ </if>
+ <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''">
+ and ogd.technology_number regexp #{productionScheduling.technologyNumber}
+ </if>
+ group by ps.id
order by ps.id desc
+ limit #{offset},#{pageSize};
</select>
- <!-- 鏌ヨ宸叉帓浜х殑鏁版嵁-->
- <select id="selectSchedulingNotMp">
- select date(ps.scheduled_start_time) as scheduled_start_time,
- date(ps.plan_end_time) as plan_end_time,
- od.order_id,
- o.customer_name,
- o.project,
- od.order_number,
- od.width,
- od.height,
- od.quantity,
- round(od.width * od.height * od.quantity / 1000000, 2) as area,
- ps.scheduling_quantity,
- (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) as scheduling_quantity,
- round(od.width * od.height * (od.quantity - IFNULL(sum(ps.scheduling_quantity), 0)) / 1000000, 2)
- as pendingProductionArea,
- IFNULL(ps.scheduling_quantity, 0) as productionScheduledQuantity,
- round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2)
- as productionScheduledArea,
- IF(ps.review_status = 0, "鏈鏍�", "宸插鏍�")
- as review_status,
- ps.reviewer,
- od.product_name,
- od.shape,
- ps.scheduling_id
- from sd.order_detail as od
- left join sd.order as o on od.order_id = o.order_id
- left join production_scheduling as ps
- on ps.order_id = od.order_id and ps.order_number = od.order_number
- where (ps.scheduling_id IS NOT NULL)
- and position(#{processes} in ps.processes)
- and position(#{orderId} in ps.order_id)
- group by od.order_id, od.order_number
- order by ps.id desc
- </select>
+
<!-- 鏌ヨ鏈帓浜ф暟鎹�-->
- <select id="selectNoSchedulingMp">
+ <select id="selectNoSchedulingMp" resultMap="productionSchedulingMap">
select ogd.order_id,
- o.customer_name,
- o.project,
- ogd.order_number,
- ogd.technology_number,
- ogd.child_width,
- ogd.child_height,
- od.quantity,
- round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as scheduling_quantity,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
- round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000, 2)
- as pendingProductionArea,
- IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
- round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000,
- 2) as productionScheduledArea,
- ogd.glass_child,
- od.shape
+ o.customer_name,
+ o.project,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.child_width,
+ ogd.child_height,
+ od.quantity,
+ round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area,
+ (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as schedulingQuantity,
+ (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
+ round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000,
+ 2)
+ as pendingProductionArea,
+ IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
+ round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000,
+ 2) as productionScheduledArea,
+ od.product_name,
+ if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape
from sd.order_glass_detail as ogd
- left join sd.order as o on ogd.order_id = o.order_id
- left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number
- left join sd.order_process_detail as opd on opd.order_id=ogd.order_id and opd.order_number=ogd.order_number and opd.technology_number=ogd.technology_number
- left join
- (select order_id,order_number,technology_number,SUM(scheduling_quantity) as schedulingQuantity from production_scheduling where processes=#{processes} group by order_id,order_number,technology_number) as ps on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and ps.technology_number=ogd.technology_number
+ left join sd.order as o on ogd.order_id = o.order_id
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.order_process_detail as opd
+ on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and
+ opd.technology_number = ogd.technology_number
+ left join
+ (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity
+ from production_scheduling
+ where processes = #{processes}
+ group by order_id, order_number, technology_number) as ps
+ on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and
+ ps.technology_number = ogd.technology_number
where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0
- and od.create_time between #{selectTime1} and #{selectTime2} and opd.reporting_work_num_count=0
-
- and position(#{orderId} in ogd.order_id)
--- and position("鍒囧壊" in ps.processes)
-
- group by ogd.order_id, ogd.order_number,ogd.technology_number
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and opd.reporting_work_num_count = 0
+ and o.create_order>0
+ and position(#{orderIds} in ogd.order_id)
+ -- and position("鍒囧壊" in ps.processes)
+ <if test="productionScheduling.order.orderId != null and productionScheduling.order.orderId != ''">
+ and ogd.order_id regexp #{productionScheduling.order.orderId}
+ </if>
+ <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''">
+ and o.customer_name regexp #{productionScheduling.order.customerName}
+ </if>
+ <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''">
+ and o.project regexp #{productionScheduling.order.project}
+ </if>
+ <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''">
+ and ogd.order_number regexp #{productionScheduling.orderNumber}
+ </if>
+ <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''">
+ and ogd.technology_number regexp #{productionScheduling.technologyNumber}
+ </if>
+ group by ogd.order_id, ogd.order_number, ogd.technology_number
order by ogd.order_id desc
+ limit #{offset},#{pageSize};
</select>
- <!-- 棣栨鏌ヨ鎺掍骇鏁版嵁-->
- <select id="selectLastSchedulingMp">
- select ogd.order_id,
- o.customer_name,
- o.project,
- ogd.order_number,
- ogd.technology_number,
- ogd.child_width,
- ogd.child_height,
- od.quantity,
- round(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as area,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as scheduling_quantity,
- (od.quantity - IFNULL((ps.schedulingQuantity), 0)) as pendingProductionQuantity,
- round(ogd.child_width * ogd.child_height * (od.quantity - IFNULL((ps.schedulingQuantity), 0)) / 1000000, 2)
- as pendingProductionArea,
- IFNULL(ps.schedulingQuantity, 0) as productionScheduledQuantity,
- round(ogd.child_width * ogd.child_height * (IFNULL(ps.schedulingQuantity, 0)) / 1000000,
- 2) as productionScheduledArea,
- ogd.glass_child,
- od.shape
- from sd.order_glass_detail as ogd
- left join sd.order as o on ogd.order_id = o.order_id
- left join sd.order_detail as od on od.order_id=ogd.order_id and od.order_number=ogd.order_number
- left join sd.order_process_detail as opd on opd.order_id=ogd.order_id and opd.order_number=ogd.order_number and opd.technology_number=ogd.technology_number
- left join
- (select order_id,order_number,technology_number,SUM(scheduling_quantity) as schedulingQuantity from production_scheduling where processes=#{processes} group by order_id,order_number,technology_number) as ps on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and ps.technology_number=ogd.technology_number
-
- where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0
- and od.create_time between #{selectTime1} and #{selectTime2} and opd.reporting_work_num_count=0
-
- and position(#{orderId} in ogd.order_id)
--- and position("鍒囧壊" in ps.processes)
-
- group by ogd.order_id, ogd.order_number,ogd.technology_number
- order by ogd.order_id desc
- </select>
<select id="selectMaxId">
select COUNT(ps.scheduling_id)
@@ -220,7 +197,9 @@
<update id="examineSchedulingMp">
update production_scheduling
set review_status=1,
- reviewer=#{userName}
+ reviewer=#{userName},
+ scheduling_quantity=#{schedulingQuantity},
+ notes=#{notes}
where scheduling_id = #{schedulingId}
</update>
@@ -237,7 +216,83 @@
and bd.basic_type = 'product'
</select>
- <select id="selectNumberMp">
+ <select id="getPageTotal">
+ select CEILING(count(ogd.id)/#{pageSize}) as 'pageTotal',
+ count(distinct ogd.id) as 'total'
+ from sd.order_glass_detail as ogd
+ left join sd.order as o on ogd.order_id = o.order_id
+ left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+ left join sd.order_process_detail as opd
+ on opd.order_id = ogd.order_id and opd.order_number = ogd.order_number and
+ opd.technology_number = ogd.technology_number
+ left join
+ (select order_id, order_number, technology_number, SUM(scheduling_quantity) as schedulingQuantity
+ from production_scheduling
+ where processes = #{processes}
+ group by order_id, order_number, technology_number) as ps
+ on ps.order_id = ogd.order_id and ps.order_number = ogd.order_number and
+ ps.technology_number = ogd.technology_number
+
+ where (od.quantity - IFNULL((ps.schedulingQuantity), 0)) > 0
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and opd.reporting_work_num_count = 0
+ and o.create_order>0
+ and position(#{orderId} in ogd.order_id)
+ -- and position("鍒囧壊" in ps.processes)
+ <if test="productionScheduling.orderId != null and productionScheduling.orderId != ''">
+ and ogd.order_id regexp #{productionScheduling.orderId}
+ </if>
+ <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''">
+ and o.customer_name regexp #{productionScheduling.order.customerName}
+ </if>
+ <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''">
+ and o.project regexp #{productionScheduling.order.project}
+ </if>
+ <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''">
+ and ogd.order_number regexp #{productionScheduling.orderNumber}
+ </if>
+ <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''">
+ and ogd.technology_number regexp #{productionScheduling.technologyNumber}
+ </if>
+ order by ogd.order_id desc
+ limit #{offset},#{pageSize};
</select>
+
+ <select id="getOkPageTotal">
+ select CEILING(count(ps.id)/#{pageSize}) as 'pageTotal',
+ count(distinct ps.id) as 'total'
+ from sd.order_detail as od
+ left join sd.order as o on od.order_id = o.order_id
+ left join production_scheduling as ps
+ on ps.order_id = od.order_id and ps.order_number = od.order_number
+ left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number and
+ ogd.technology_number=ps.technology_number
+ where ps.scheduling_id IS NOT NULL
+ and od.create_time between #{selectTime1} and #{selectTime2}
+ and o.create_order>0
+ and position(#{processes} in ps.processes)
+ and position(#{orderId} in ps.order_id)
+ <if test="productionScheduling.orderId != null and productionScheduling.orderId != ''">
+ and ogd.order_id regexp #{productionScheduling.orderId}
+ </if>
+ <if test="productionScheduling.order.customerName != null and productionScheduling.order.customerName != ''">
+ and o.customer_name regexp #{productionScheduling.order.customerName}
+ </if>
+ <if test="productionScheduling.order.project != null and productionScheduling.order.project != ''">
+ and o.project regexp #{productionScheduling.order.project}
+ </if>
+ <if test="productionScheduling.orderNumber != null and productionScheduling.orderNumber != ''">
+ and ogd.order_number regexp #{productionScheduling.orderNumber}
+ </if>
+ <if test="productionScheduling.technologyNumber != null and productionScheduling.technologyNumber != ''">
+ and ogd.technology_number regexp #{productionScheduling.technologyNumber}
+ </if>
+ order by ps.id desc
+ limit #{offset},#{pageSize};
+ </select>
+
+ <update id="cancelReviewSchedulingMp">
+ update production_scheduling set review_status=0 where scheduling_id = #{schedulingId}
+ </update>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0