From 51ce9fdd89e74d1753a85a5437ed9e81c06e6b71 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期三, 03 七月 2024 10:56:38 +0800
Subject: [PATCH] 注释报工新增不正确代码,补片流程卡打印同步流程卡打印

---
 north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml |  388 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 259 insertions(+), 129 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 3d35296..fdd147d 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ProductionScheduling.xml
@@ -3,157 +3,287 @@
         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="orderGlassDetail.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(ps.scheduling_quantity,0)) as pendingProductionQuantity,
-#         round(od.width*od.height*(od.quantity-IFNULL(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 od.create_time between #{selectTime1} and #{selectTime2}
-
-          and position(#{processes} in ps.processes)
-          and position(#{orderId} in ps.order_id)
-
-    </select>
-
-    <!--    鏌ヨ宸叉帓浜у甫璁㈠崟缂栧彿鐨勬暟鎹�-->
-    <select id="SelectSchedulingNotMp">
+    <!--    鏌ヨ宸叉帓鐗堟暟鎹�-->
+    <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,od.order_number,od.width,od.height,od.quantity,
-        round(od.width*od.height*od.quantity/1000000,2) as area,
+        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(ps.scheduling_quantity,0)) as pendingProductionQuantity,
-#         round(od.width*od.height*(od.quantity-IFNULL(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,
+        (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
+        od.product_name,
+        if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as 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)
+        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(#{orderIds} 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>
+        group by ps.id
+        order by ps.id desc
+        limit #{offset},#{pageSize};
+    </select>
 
-    </select>
-<!--    鏌ヨ鏈帓浜ф暟鎹�-->
-    <select id="SelectNoSchedulingMp" >
-        select 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,
-        (od.quantity-IFNULL(ps.scheduling_quantity,0)) as pendingProductionQuantity,
-        round(od.width*od.height*(od.quantity-IFNULL(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,
-        od.product_name,od.shape
-        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   od.quantity-IFNULL(ps.scheduling_quantity,0)>0 and od.create_time between #{selectTime1} and #{selectTime2}
 
-          and position(#{orderId} in ps.order_id)
-    group by od.order_id,od.order_number
+    <!--    鏌ヨ鏈帓浜ф暟鎹�-->
+    <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 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
+
+        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(#{orderIds} 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>
+        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 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,
-               (od.quantity-IFNULL(ps.scheduling_quantity,0)) as pendingProductionQuantity,
-               round(od.width*od.height*(od.quantity-IFNULL(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,
-               od.product_name,od.shape
-        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 od.create_time between #{selectTime1} and #{selectTime2} and od.quantity-IFNULL(ps.scheduling_quantity,0)>0
-    </select>
+
 
     <select id="selectMaxId">
-        select
-            COUNT(ps.scheduling_id)
-        from
-            `production_scheduling` as ps
-        where
-            date(ps.create_time) = curdate()
+        select COUNT(ps.scheduling_id)
+        from `production_scheduling` as ps
+        where date(ps.create_time) = curdate()
     </select>
 
     <insert id="insertSelective">
-        insert into production_scheduling(
-               scheduling_id,
-               order_id,
-               order_number,
-               processes,
-               scheduling_quantity,
-               scheduled_start_time,
-               plan_end_time,
-               notes,
-               create_time
-               )
-        VALUES(
-               #{schedulingId},
-               #{orderId},
-               #{orderNumber},
-               #{processes},
-               #{schedulingQuantity},
-               #{scheduledStartTime},
-               #{planEndTime},
-               #{notes},
-               now()
-              )
+        insert into production_scheduling(scheduling_id,
+                                          order_id,
+                                          order_number,
+                                          technology_number,
+                                          processes,
+                                          scheduling_quantity,
+                                          scheduled_start_time,
+                                          plan_end_time,
+                                          notes,
+                                          create_time)
+        VALUES (#{schedulingId},
+                #{orderId},
+                #{orderNumber},
+                #{technologyNumber},
+                #{processes},
+                #{schedulingQuantity},
+                #{scheduledStartTime},
+                #{planEndTime},
+                #{notes},
+                now())
     </insert>
 
-    <update id="ExamineSchedulingMp">
-        update production_scheduling set review_status=1,reviewer=#{userName} where
-        scheduling_id=#{schedulingId}
+    <update id="examineSchedulingMp">
+        update production_scheduling
+        set review_status=1,
+            reviewer=#{userName}
+        where scheduling_id = #{schedulingId}
     </update>
+
+    <delete id="deleteSchedulingMp">
+        delete
+        from production_scheduling
+        where scheduling_id = #{schedulingId}
+    </delete>
+
+    <select id="selectProcess">
+        SELECT *
+        FROM sd.basic_data as bd
+        where bd.basic_category = 'process'
+          and bd.basic_type = 'product'
+    </select>
+
+    <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 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 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>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0