From 9ccc8bd3a53160a40cf60f14e5867f6ce9f6c58f Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期五, 26 十二月 2025 16:49:15 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml |  310 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 310 insertions(+), 0 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
new file mode 100644
index 0000000..d513211
--- /dev/null
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.erp.mapper.sd.OrderProcessDetailMapper">
+
+    <insert id="insertOrderProcessDetail" >
+        insert into
+            sd.order_process_detail(
+                order_id,
+                order_number,
+                technology_number,
+                process,
+                process_id
+            )
+        values
+        <foreach collection ="processDetailList" item="processDetail" separator =",">
+            (
+             #{processDetail.orderId},
+             #{processDetail.orderNumber},
+             #{processDetail.technologyNumber},
+             #{processDetail.process},
+              #{processDetail.processId}
+             )
+        </foreach>
+
+
+    </insert>
+    <update id="updateQuantity">
+        update sd.order_process_detail as a
+        inner join
+        (select
+             rwd.completed_quantity,
+             rwd.breakage_quantity,
+             rw.process_id,
+             rwd.order_number,
+             rwd.technology_number
+              from pp.reporting_work_detail as rwd
+            left join pp.reporting_work as rw
+                on rwd.reporting_work_id =  rw.reporting_work_id
+            where rwd.reporting_work_id =#{reportingWorkId} )  as b
+        on a.process_id = b.process_id
+        and a.order_number = b.order_number
+        and a.technology_number = b.technology_number
+
+        <if test="type == 'delete'">
+            set a.reporting_work_num_count
+                = a.reporting_work_num_count-b.completed_quantity,
+
+            a.reporting_work_num
+                = a.reporting_work_num-b.completed_quantity,
+
+            a.broken_num
+                = a.broken_num-b.breakage_quantity
+        </if>
+
+        <if test="type == 'add'">
+            set a.reporting_work_num_count
+            = a.reporting_work_num_count+b.completed_quantity,
+
+            a.reporting_work_num
+            = a.reporting_work_num+b.completed_quantity,
+
+            a.broken_num
+            = a.broken_num+b.breakage_quantity
+        </if>
+
+        where a.process = #{process}
+
+    </update>
+
+    <!--鏌ヨ绛涢�夊悗鍞竴鐨勬祦绋嬪崱鍙�-->
+    <select id="filterOrderProcess">
+      select a.* from( select id as id,process,order_number,technology_number,b.nickname,
+                            case b.nickname when '' then 1
+                            when null then 1
+                            when 'stepC' then 2
+                            when 'stepA' then 3
+                            when 'stepD' then 4
+                            when 'stepB' then 4
+                            else 1
+                     end as sortByprocess,
+                    b.sort as 'sort2'
+
+
+        from order_process_detail
+        left join (select DISTINCT basic_name,nickname,sort from basic_data where basic_category = 'process') as b
+        on b.basic_name = process
+        where order_id = #{orderId}
+        group by process) as a
+        left join (SELECT max(count) as count,process from (SELECT count(opd1.id) as count,opd.process
+                                                    from order_process_detail as opd
+                                                             LEFT JOIN (SELECT id,process_id,order_number,technology_number
+                                                                        from order_process_detail
+                                                                        where order_id = #{orderId}) as opd1
+                                                                       on opd.process_id = opd1.process_id
+                                                                           and opd.order_number = opd1.order_number
+                                                                           and opd.technology_number = opd1.technology_number
+                                                                           and opd.id>=opd1.id
+                                                    where opd.order_id =#{orderId}
+                                                    group by opd.id) as a
+                    GROUP BY process)   as sort1
+        on sort1.process = a.process
+        order by sortByprocess,sort1.count,sort2,id
+
+    </select>
+
+    <select id="filterLastProcess">
+        select id,process,order_number,technology_number
+        from order_process_detail
+        where order_id = #{orderId}
+        and order_number = #{orderNumber}
+        and technology_number = #{technologyNumber}
+        and id &gt; #{id}
+        group by process
+    </select>
+
+
+
+    <select id="getGlassLRow">
+        select
+             max(a.technology_number) as rowCount,
+             RowNum,
+             a.order_number,
+             a.process_id
+        from pp.flow_card as a
+        left join
+            (select min((@i:=@i+1)) AS RowNum,c.*
+             from pp.flow_card  as c,
+                  (SELECT @i:=-1) as d
+             where order_id = #{orderId}
+             GROUP BY order_number,process_id
+             ) as b
+        on b.id = a.id
+        where a.order_id = #{orderId}
+        group by a.order_number,a.process_id
+        order by a.process_id,a.order_number
+
+    </select>
+
+    <select id="getProcessGlassLRow">
+        select
+            max(a.technology_number) as rowCount,
+            RowNum
+        from pp.flow_card as a
+                 left join
+             (select min((@i:=@i+1)) AS RowNum,c.*
+              from pp.flow_card  as c,
+                   (SELECT @i:=-1) as d
+              where order_id = #{orderId}
+              GROUP BY process_id
+             ) as b
+             on b.id = a.id
+        where a.order_id = #{orderId}
+        group by a.process_id
+        order by RowNum
+
+    </select>
+    <update id="insertByReportingWorkDetail">
+        update sd.order_process_detail as a
+        set
+            a.reporting_work_num_count=
+                a.reporting_work_num_count+#{reportingWorkDetail.completedQuantity},
+            a.reporting_work_num =a.reporting_work_num +#{reportingWorkDetail.completedQuantity},
+            a.broken_num =a.broken_num +#{reportingWorkDetail.breakageQuantity}
+
+        where
+            a.process_id = #{processId}
+            and a.order_number= #{reportingWorkDetail.orderNumber}
+            and a.technology_number= #{reportingWorkDetail.technologyNumber}
+            and a.process=#{thisProcess}
+
+    </update>
+
+    <select id="filterOrderProcessCollect">
+        select a.id,process,order_number,technology_number,a.order_id
+        from order_process_detail as a
+        left join `order` as b on a.order_id=b.order_id
+        where b.create_time BETWEEN #{selectTime1} and #{selectTime2}
+          and position(#{orderId} in b.order_id)
+        group by process
+
+    </select>
+
+    <select id="getGlassLRowCollect">
+        select
+            max(a.technology_number) as rowCount,
+            RowNum
+        from order_process_detail as a
+                 left join
+             (select min((@i:=@i+1)) AS RowNum,c.*
+              from sd.order_glass_detail as c
+                   left join sd.`order` o2 on c.order_id = o2.order_id,
+                   (SELECT @i:=-1) as d
+              where o2.create_time BETWEEN #{selectTime1} and #{selectTime2}
+                and position(#{orderId} in o2.order_id)
+              GROUP BY order_number
+             ) as b
+             on b.order_number = a.order_number
+        left join sd.`order` o on a.order_id = o.order_id
+        where o.create_time BETWEEN #{selectTime1} and #{selectTime2} and position(#{orderId} in o.order_id)
+        group by a.order_number
+    </select>
+    
+    <select id="selectNextProcess">
+        select a.process from sd.order_process_detail as a,
+                              (select id,process from sd.order_process_detail
+                                  where process_id=#{processId}
+                                    and position(technology_number in #{technologyNumber})
+                                    and order_number=#{orderNumber}
+                                    and process=#{thisProcess}
+                                group by process) as b
+        where a.id = b.id + 1
+        and a.process_id=#{processId}
+        and a.order_number=#{orderNumber}
+        and position(a.technology_number in #{technologyNumber})
+
+    </select>
+
+    <select id="selectShiftQuantitySv">
+        select *
+        <if test="step != null and step != ''">
+            ,sum(e.break) as 'breakage_quantity'
+            ,Round(sum(e.break)*e.area,2) as 'breakage_area'
+        </if>
+        <if test="step == null || step == ''">
+            ,e.break as 'breakage_quantity'
+            ,Round(e.break*e.area,2) as 'breakage_area'
+        </if>
+        from(select CAST(concat(b.order_id,'/',a.order_number,'/',a.technology_number) as char ) as 'order_id',
+               c.child_width,
+               c.child_height,
+               a.completed_quantity,
+               a.breakage_quantity as break,
+               a.order_number,
+               b.reporting_work_id,
+               round(c.area*a.completed_quantity,2) as finish_area,
+               c.area
+        from pp.reporting_work as b
+        left join pp.reporting_work_detail as a
+            on a.reporting_work_id = b.reporting_work_id
+        left join sd.order_glass_detail as c
+            on b.order_id = c.order_id
+            and  c.order_number = a.order_number
+            and c.technology_number = a.technology_number
+        where b.reviewed_state >=0
+        and b.creator_id = #{creatorId}
+        and UNIX_TIMESTAMP(b.reporting_work_time) BETWEEN UNIX_TIMESTAMP(#{startDatetime}) and UNIX_TIMESTAMP(#{endDatetime})
+        order by b.id desc ) as e
+        <if test="step != null and step != ''">
+            group by e.order_number,e.reporting_work_id
+        </if>
+    </select>
+    
+    <select id="getBehindProcess">
+        select group_concat(process) from sd.order_process_detail as a
+        where a.order_id = #{orderId}
+        and a.process_id = #{processId}
+        and a.order_number =#{orderNumber}
+        and a.technology_number =#{technologyNumber}
+        and a.id>(select id
+                  from sd.order_process_detail as b
+                  where b.order_id = #{orderId}
+                    and b.process_id = #{processId}
+                    and b.order_number =#{orderNumber}
+                    and b.technology_number =#{technologyNumber}
+                  and b.process = #{thisProcess}
+                )
+    </select>
+
+    <select id="selectProcessCardProgressSv">
+        select a.*,(b.quantity-b.termination_quantity) as 'quantity'
+        from order_process_detail as a
+        inner join pp.flow_card as b
+            on a.order_id = b.order_id
+            and a.process_id = b.process_id
+            and a.order_number = b.order_number
+            and a.technology_number = b.technology_number
+        where termination_status = 0
+          <if test="orderId != null and orderId != ''">
+            and a.order_id=#{orderId}
+          </if>
+          <if test="processId != null and processId != ''">
+            and a.process_id=#{processId}
+          </if>
+          <if test="orderNumber != null and orderNumber != ''">
+            and a.order_number=#{orderNumber}
+          </if>
+          <if test="technologyNumber != null and technologyNumber != ''">
+            and a.technology_number=#{technologyNumber}
+          </if>
+          <if test="process != null and process != ''">
+            and a.process=#{process}
+          </if>
+
+    </select>
+    
+    <select id="selectProcessSort">
+        select a.process,
+               ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS sort,
+               ifnull(b.nickname,"") as recombination
+        from sd.order_process_detail as a
+        inner join sd.basic_data as b
+                on a.process = b.basic_name and b.basic_category = 'process'
+                where a.order_id = #{orderId}
+                and a.process_id = #{processId}
+                and a.order_number =#{orderNumber}
+                and a.technology_number =#{technologyNumber}
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0