From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期一, 26 五月 2025 15:04:45 +0800
Subject: [PATCH] 修改json类型转换错误

---
 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml |  368 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 326 insertions(+), 42 deletions(-)

diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml
index 90049f5..1f974aa 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml
@@ -4,7 +4,7 @@
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.aps.core.mapper.ApsGasPipingRouteStatMapper">
     
-    <resultMap type="ApsGasPipingRouteStat" id="ApsGasPipingRouteStatResult">
+    <resultMap type="com.aps.core.domain.ApsGasPipingRouteStat" id="ApsGasPipingRouteStatResult">
         <result property="id"    column="id"    />
         <result property="workOrderNo"    column="work_order_no"    />
         <result property="roadProcessNumber"    column="road_process_number"    />
@@ -26,29 +26,41 @@
         <result property="planStartYear"    column="plan_start_year"    />
         <result property="planStartMonth"    column="plan_start_month"    />
         <result property="planStartDay"    column="plan_start_day"    />
+        <result property="processPlanEndDay"    column="process_plan_end_day"    />
+        <result property="orderPlanEndDay"    column="order_plan_end_day"    />
+        <result property="warning"    column="warning"    />
+        <result property="plant"    column="plant"    />
+        <result property="workshop"    column="workshop"    />
+        <result property="batchNumber"    column="batch_number"    />
     </resultMap>
 
     <sql id="selectApsGasPipingRouteStatVo">
-        select id, work_order_no, road_process_number, current_process_number, production_quantity, standard_time, process_total_time, process_plan_start_day, design_times, del_flag, create_by, process_name, create_time, item_number, standard_dosage, process_total_dosage, design_capacity, major, plan_start_year, plan_start_month, plan_start_day from aps_gas_piping_route_stat
+        select id, work_order_no, road_process_number, current_process_number,
+               production_quantity, standard_time, process_total_time,
+               process_plan_start_day, design_times, del_flag, create_by,
+               process_name, create_time, item_number, standard_dosage,
+               process_total_dosage, design_capacity, major, plan_start_year,
+               plan_start_month, plan_start_day, process_plan_end_day, order_plan_end_day,
+               warning, plant, workshop, batch_number
+        from aps_gas_piping_route_stat
     </sql>
 
-    <select id="selectApsGasPipingRouteStatList" parameterType="ApsGasPipingRouteStat" resultMap="ApsGasPipingRouteStatResult">
+    <select id="selectApsGasPipingRouteStatList" parameterType="com.aps.core.domain.ApsGasPipingRouteStat" resultMap="ApsGasPipingRouteStatResult">
         <include refid="selectApsGasPipingRouteStatVo"/>
-        <where>  
+        <where>
             <if test="workOrderNo != null  and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if>
-            <if test="roadProcessNumber != null  and roadProcessNumber != ''"> and road_process_number = #{roadProcessNumber}</if>
-            <if test="currentProcessNumber != null  and currentProcessNumber != ''"> and current_process_number = #{currentProcessNumber}</if>
-            <if test="productionQuantity != null  and productionQuantity != ''"> and production_quantity = #{productionQuantity}</if>
-            <if test="standardTime != null  and standardTime != ''"> and standard_time = #{standardTime}</if>
-            <if test="processTotalTime != null  and processTotalTime != ''"> and process_total_time = #{processTotalTime}</if>
-            <if test="processPlanStartDay != null  and processPlanStartDay != ''"> and process_plan_start_day = #{processPlanStartDay}</if>
+            <if test="roadProcessNumber != null "> and road_process_number = #{roadProcessNumber}</if>
+            <if test="currentProcessNumber != null "> and current_process_number = #{currentProcessNumber}</if>
+            <if test="productionQuantity != null "> and production_quantity = #{productionQuantity}</if>
+            <if test="standardTime != null "> and standard_time = #{standardTime}</if>
+            <if test="processTotalTime != null "> and process_total_time = #{processTotalTime}</if>
+            <if test="processPlanStartDay != null "> and process_plan_start_day = #{processPlanStartDay}</if>
             <if test="designTimes != null "> and design_times = #{designTimes}</if>
-            <if test="processName != null  and processName != ''"> and process_name like '%' || #{processName} || '%')</if>
-            <if test="major != null and major != ''"> and major = #{major} </if>
-            <if test="planStartYear != null and planStartYear != ''"> and plan_start_year = #{planStartYear} </if>
-            <if test="planStartMonth != null and planStartMonth != ''"> and plan_start_month = #{planStartMonth} </if>
-            <if test="planStartDay != null and planStartDay != ''"> and plan_start_day = #{planStartDay} </if>
-            <if test="searchStartDate != null and searchStartDate != '' and searchEndDate != null and searchEndDate != ''"> and (process_plan_start_day &gt;= #{searchStartDate} and process_plan_start_day &lt;= #{searchEndDate}) </if>
+            <if test="processName != null  and processName != ''"> and process_name = #{processName}</if>
+            <if test="itemNumber != null  and itemNumber != ''"> and item_number = #{itemNumber}</if>
+            <if test="standardDosage != null "> and standard_dosage = #{standardDosage}</if>
+            <if test="processTotalDosage != null "> and process_total_dosage = #{processTotalDosage}</if>
+            <if test="designCapacity != null "> and design_capacity = #{designCapacity}</if>
             <if test="major != null and major != ''">
                 <if test="major == 'piping'">
                     and process_name in (select process_name from aps_standard_process where major='绠¤矾')
@@ -56,7 +68,19 @@
                 <if test="major == 'gas'">
                     and process_name in (select process_name from aps_standard_process where major='姘旀煖')
                 </if>
+                <if test="major != 'piping' and major != 'gas'">
+                    and major = #{major}
+                </if>
             </if>
+            <if test="planStartYear != null  and planStartYear != ''"> and plan_start_year = #{planStartYear}</if>
+            <if test="planStartMonth != null  and planStartMonth != ''"> and plan_start_month = #{planStartMonth}</if>
+            <if test="planStartDay != null  and planStartDay != ''"> and plan_start_day = #{planStartDay}</if>
+            <if test="processPlanEndDay != null "> and process_plan_end_day = #{processPlanEndDay}</if>
+            <if test="orderPlanEndDay != null "> and order_plan_end_day = #{orderPlanEndDay}</if>
+            <if test="warning != null "> and warning = #{warning}</if>
+            <if test="plant != null and plant != ''"> and plant = #{plant}</if>
+            <if test="workshop != null and workshop != ''"> and workshop = #{workshop}</if>
+            <if test="batchNumber != null and batchNumber != ''"> and batch_number = #{batchNumber}</if>
         </where>
     </select>
     
@@ -65,17 +89,17 @@
         where id = #{id}
     </select>
 
-    <insert id="insertApsGasPipingRouteStat" parameterType="ApsGasPipingRouteStat">
+    <insert id="insertApsGasPipingRouteStat" parameterType="com.aps.core.domain.ApsGasPipingRouteStat">
         insert into aps_gas_piping_route_stat
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="id != null">id,</if>
             <if test="workOrderNo != null">work_order_no,</if>
-            <if test="roadProcessNumber != null and roadProcessNumber != ''">road_process_number,</if>
+            <if test="roadProcessNumber != null">road_process_number,</if>
             <if test="currentProcessNumber != null">current_process_number,</if>
             <if test="productionQuantity != null">production_quantity,</if>
             <if test="standardTime != null">standard_time,</if>
             <if test="processTotalTime != null">process_total_time,</if>
-            <if test="processPlanStartDay != null and processPlanStartDay != ''">process_plan_start_day,</if>
+            <if test="processPlanStartDay != null">process_plan_start_day,</if>
             <if test="designTimes != null">design_times,</if>
             <if test="delFlag != null">del_flag,</if>
             <if test="createBy != null">create_by,</if>
@@ -89,16 +113,22 @@
             <if test="planStartYear != null">plan_start_year,</if>
             <if test="planStartMonth != null">plan_start_month,</if>
             <if test="planStartDay != null">plan_start_day,</if>
+            <if test="processPlanEndDay != null">process_plan_end_day,</if>
+            <if test="orderPlanEndDay != null">order_plan_end_day,</if>
+            <if test="warning != null">warning,</if>
+            <if test="plant != null">plant,</if>
+            <if test="workshop != null">workshop,</if>
+            <if test="batchNumber != null">batch_number,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="workOrderNo != null">#{workOrderNo},</if>
-            <if test="roadProcessNumber != null and roadProcessNumber != ''">#{roadProcessNumber},</if>
+            <if test="roadProcessNumber != null">#{roadProcessNumber},</if>
             <if test="currentProcessNumber != null">#{currentProcessNumber},</if>
             <if test="productionQuantity != null">#{productionQuantity},</if>
             <if test="standardTime != null">#{standardTime},</if>
             <if test="processTotalTime != null">#{processTotalTime},</if>
-            <if test="processPlanStartDay != null and processPlanStartDay != ''">#{processPlanStartDay},</if>
+            <if test="processPlanStartDay != null">#{processPlanStartDay},</if>
             <if test="designTimes != null">#{designTimes},</if>
             <if test="delFlag != null">#{delFlag},</if>
             <if test="createBy != null">#{createBy},</if>
@@ -112,19 +142,25 @@
             <if test="planStartYear != null">#{planStartYear},</if>
             <if test="planStartMonth != null">#{planStartMonth},</if>
             <if test="planStartDay != null">#{planStartDay},</if>
+            <if test="processPlanEndDay != null">#{processPlanEndDay},</if>
+            <if test="orderPlanEndDay != null">#{orderPlanEndDay},</if>
+            <if test="warning != null">#{warning},</if>
+            <if test="plant != null">#{plant},</if>
+            <if test="workshop != null">#{workshop},</if>
+            <if test="batchNumber != null">#{batchNumber},</if>
          </trim>
     </insert>
 
-    <update id="updateApsGasPipingRouteStat" parameterType="ApsGasPipingRouteStat">
+    <update id="updateApsGasPipingRouteStat" parameterType="com.aps.core.domain.ApsGasPipingRouteStat">
         update aps_gas_piping_route_stat
         <trim prefix="SET" suffixOverrides=",">
             <if test="workOrderNo != null">work_order_no = #{workOrderNo},</if>
-            <if test="roadProcessNumber != null and roadProcessNumber != ''">road_process_number = #{roadProcessNumber},</if>
+            <if test="roadProcessNumber != null">road_process_number = #{roadProcessNumber},</if>
             <if test="currentProcessNumber != null">current_process_number = #{currentProcessNumber},</if>
             <if test="productionQuantity != null">production_quantity = #{productionQuantity},</if>
             <if test="standardTime != null">standard_time = #{standardTime},</if>
             <if test="processTotalTime != null">process_total_time = #{processTotalTime},</if>
-            <if test="processPlanStartDay != null and processPlanStartDay != ''">process_plan_start_day = #{processPlanStartDay},</if>
+            <if test="processPlanStartDay != null">process_plan_start_day = #{processPlanStartDay},</if>
             <if test="designTimes != null">design_times = #{designTimes},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
@@ -138,6 +174,12 @@
             <if test="planStartYear != null">plan_start_year = #{planStartYear},</if>
             <if test="planStartMonth != null">plan_start_month = #{planStartMonth},</if>
             <if test="planStartDay != null">plan_start_day = #{planStartDay},</if>
+            <if test="processPlanEndDay != null">process_plan_end_day = #{processPlanEndDay},</if>
+            <if test="orderPlanEndDay != null">order_plan_end_day = #{orderPlanEndDay},</if>
+            <if test="warning != null">warning = #{warning},</if>
+            <if test="plant != null">plant = #{plant},</if>
+            <if test="workshop != null">workshop = #{workshop},</if>
+            <if test="batchNumber != null">batch_number = #{batchNumber},</if>
         </trim>
         where id = #{id}
     </update>
@@ -152,30 +194,272 @@
             #{id}
         </foreach>
     </delete>
-
+    
     <delete id="deleteApsGasPipingRouteStatByBatchNum" parameterType="String">
         delete from aps_gas_piping_route_stat where batch_number != #{batchNumber}
     </delete>
-
-    <insert id="insertApsGasPipingRouteStatBatch">
-        INSERT INTO aps_gas_piping_route_stat
-        (
-        id,work_order_no, road_process_number, current_process_number, production_quantity, standard_time,
-        process_total_time, process_plan_start_day, design_times, del_flag, create_by, process_name,
-        create_time, item_number, standard_dosage, process_total_dosage, design_capacity, major,
-        plan_start_year, plan_start_month, plan_start_day,batch_number
-        )
-        VALUES
-        <foreach collection="apsGasPipingRouteStatList" item="stat" separator=",">
+    
+    <insert id="insertApsGasPipingRouteStatBatch" parameterType="java.util.List">
+        insert into aps_gas_piping_route_stat (
+            id, work_order_no, road_process_number, current_process_number,
+            production_quantity, standard_time, process_total_time,
+            process_plan_start_day, design_times, del_flag, create_by,
+            process_name, create_time, item_number, standard_dosage,
+            process_total_dosage, design_capacity, major, plan_start_year,
+            plan_start_month, plan_start_day, process_plan_end_day, order_plan_end_day,
+            warning, plant, workshop, batch_number
+        ) values 
+        <foreach item="item" index="index" collection="list" separator=",">
             (
-            #{stat.id},#{stat.workOrderNo}, #{stat.roadProcessNumber}, #{stat.currentProcessNumber}, #{stat.productionQuantity},
-            #{stat.standardTime}, #{stat.processTotalTime}, #{stat.processPlanStartDay}, #{stat.designTimes}, #{stat.delFlag},
-            #{stat.createBy}, #{stat.processName}, #{stat.createTime}, #{stat.itemNumber}, #{stat.standardDosage},
-            #{stat.processTotalDosage}, #{stat.designCapacity}, #{stat.major}, #{stat.planStartYear},
-            #{stat.planStartMonth}, #{stat.planStartDay}, #{stat.batchNumber}
+                #{item.id}, #{item.workOrderNo}, #{item.roadProcessNumber}, #{item.currentProcessNumber},
+                #{item.productionQuantity}, #{item.standardTime}, #{item.processTotalTime},
+                #{item.processPlanStartDay}, #{item.designTimes}, #{item.delFlag}, #{item.createBy},
+                #{item.processName}, #{item.createTime}, #{item.itemNumber}, #{item.standardDosage},
+                #{item.processTotalDosage}, #{item.designCapacity}, #{item.major}, #{item.planStartYear},
+                #{item.planStartMonth}, #{item.planStartDay}, #{item.processPlanEndDay}, #{item.orderPlanEndDay},
+                #{item.warning}, #{item.plant}, #{item.workshop}, #{item.batchNumber}
             )
         </foreach>
-
     </insert>
+    
+    <delete id="deleteAll">
+        delete from aps_gas_piping_route_stat
+    </delete>
+
+    <select id="queryTempStat"  resultMap="ApsGasPipingRouteStatResult" >
+        select row_number() over (partition by rt.work_order_no order by rt.process_number desc ) as num,
+               rt.work_order_no,
+               rt.process_name,
+               cast(rt.process_number as numeric(18, 2))           as road_process_number,
+               cast(rt.process_number as numeric(18, 2))           as route_process_number,
+               cast(pl.process_number as numeric(18, 2))           as current_process_number,
+               pl.production_quantity,
+               rt.standard_time,
+               cast( (rt.standard_time * pl.production_quantity) as numeric(18, 4) )   as process_total_time,
+               rt.process_plan_start_day,
+               rt.process_plan_end_day,
+               pl.plan_end_day                         as order_plan_end_day,
+               rt.item_no as item_number,
+               pl.plan_type as major,
+               false as warning,
+               pl.plant
+        from aps_gas_piping_plan as pl
+                 left join aps_process_route as rt on pl.document_number = rt.work_order_no
+        where pl.document_number is not null and rt.work_order_no is not null and pl.plan_end_day is not null
+        order by rt.work_order_no asc, rt.process_number desc
+    </select>
+    
+    <!-- 鑱斿悎鏌ヨ鎵嬪伐姘斾綋棰勬祴鏁版嵁鐩稿叧淇℃伅 -->
+    <select id="selectPredictionRouteData" resultType="java.util.Map">
+        SELECT 
+            p.id as prediction_id,
+            p.material_code,
+            p.factory,
+            p.predict_quantity,
+            p.predict_date,
+            h.route_id,
+            l.route_name as process_name,
+            l.route_num as process_number,
+            l.standard_time,
+            string_agg(DISTINCT m.domain, ';') as domain,
+            string_agg(DISTINCT s.work_shop, ';') as workshop
+        FROM aps_gas_pipeline_prediction p
+        JOIN aps_standard_process_route_header h ON p.material_code = h.item_code AND p.factory = h.org_code
+        JOIN aps_standard_process_route_line l ON h.route_id = l.route_id
+        LEFT JOIN aps_material_product_group_management m ON p.material_code = m.material_code AND p.factory = m.factory
+        LEFT JOIN aps_standard_process s ON l.route_name = s.process_name
+        GROUP BY p.id, p.material_code, p.factory, p.predict_quantity, p.predict_date, h.route_id, l.route_name, l.route_num, l.standard_time
+        ORDER BY p.material_code, l.route_num
+    </select>
+    
+    <!-- 鑱斿悎鏌ヨ鎵嬪伐姘斾綋宸ュ崟鏁版嵁鐩稿叧淇℃伅 -->
+    <select id="selectMoRouteData" resultType="java.util.Map">
+        SELECT 
+            mo.id as mo_id,
+            mo.mo as work_order_no,
+            mo.material_code,
+            mo.factory,
+            mo.quantity,
+            mo.plan_end,
+            r.process_name,
+            r.process_number,
+            r.standard_time,
+            string_agg(DISTINCT m.domain, ';') as domain,
+            string_agg(DISTINCT s.work_shop, ';') as workshop
+        FROM aps_gas_pipeline_mo mo
+        JOIN aps_process_route r ON mo.mo = r.work_order_no
+        LEFT JOIN aps_material_product_group_management m ON mo.material_code = m.material_code AND mo.factory = m.factory
+        LEFT JOIN aps_standard_process s ON r.process_name = s.process_name
+        GROUP BY mo.id, mo.mo, mo.material_code, mo.factory, mo.quantity, mo.plan_end, r.process_name, r.process_number, r.standard_time
+        ORDER BY mo.mo, r.process_number
+    </select>
+    
+    <!-- 鑱氬悎鏌ヨ缁熻鏁版嵁 - 鎸夊伐搴忓悕绉板拰鏃堕棿鑱氬悎 -->
+    <select id="selectAggregatedStatData" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT 
+            process_name AS "processName",
+            plan_start_year AS "year",
+            plan_start_month AS "month",
+            <choose>
+                <when test="timeGranularity != null and timeGranularity == 'day'">
+                    plan_start_day AS "day"
+                </when>
+                <otherwise>
+                    '01' AS "day"
+                </otherwise>
+            </choose>,
+            plant AS "plant",
+            major AS "major",
+            workshop AS "workshop",
+            SUM(process_total_time) AS "totalProcessTime"
+        FROM aps_gas_piping_route_stat
+        <where>
+            <if test="yearStart != null and monthStart != null">
+                (plan_start_year > #{yearStart} OR 
+                 (plan_start_year = #{yearStart} AND plan_start_month >= #{monthStart}))
+                AND
+                (plan_start_year &lt; #{yearEnd} OR 
+                 (plan_start_year = #{yearEnd} AND plan_start_month &lt;= #{monthEnd}))
+            </if>
+            <if test="plant != null and plant != ''">
+                AND plant = #{plant}
+            </if>
+            <if test="major != null and major != ''">
+                AND major = #{major}
+            </if>
+            <if test="workshop != null and workshop != ''">
+                AND workshop = #{workshop}
+            </if>
+        </where>
+        GROUP BY 
+            process_name, 
+            plan_start_year, 
+            plan_start_month
+            <if test="timeGranularity != null and timeGranularity == 'day'">
+                , plan_start_day
+            </if>, 
+            plant, 
+            major, 
+            workshop
+        ORDER BY 
+            process_name, 
+            plan_start_year, 
+            plan_start_month
+            <if test="timeGranularity != null and timeGranularity == 'day'">
+                , plan_start_day
+            </if>
+    </select>
+
+    <!-- 鏌ヨ鍘熷缁熻鏁版嵁锛堜笉杩涜鑱氬悎锛�- 鐢ㄤ簬鍦⊿ervice灞傝嚜琛屽鐞嗚仛鍚堥�昏緫 -->
+    <select id="selectRawStatData" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT 
+            process_name AS "processName",
+            process_plan_start_day AS "processPlanStartDay",
+            plant AS "plant",
+            major AS "major",
+            workshop AS "workshop",
+            process_total_time AS "processTotalTime"
+        FROM aps_gas_piping_route_stat
+        <where>
+            <if test="yearStart != null and monthStart != null">
+                (EXTRACT(YEAR FROM process_plan_start_day) > #{yearStart} OR 
+                 (EXTRACT(YEAR FROM process_plan_start_day) = #{yearStart} AND EXTRACT(MONTH FROM process_plan_start_day) >= #{monthStart}))
+                AND
+                (EXTRACT(YEAR FROM process_plan_start_day) &lt; #{yearEnd} OR 
+                 (EXTRACT(YEAR FROM process_plan_start_day) = #{yearEnd} AND EXTRACT(MONTH FROM process_plan_start_day) &lt;= #{monthEnd}))
+            </if>
+            <if test="plants != null and plants.size() > 0">
+                AND plant IN
+                <foreach collection="plants" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="plant != null and plant != ''">
+                AND plant = #{plant}
+            </if>
+            <if test="majors != null and majors.size() > 0">
+                AND major IN
+                <foreach collection="majors" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="major != null and major != ''">
+                AND major = #{major}
+            </if>
+            <if test="workshops != null and workshops.size() > 0">
+                AND workshop IN
+                <foreach collection="workshops" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="workshop != null and workshop != ''">
+                AND workshop = #{workshop}
+            </if>
+        </where>
+        ORDER BY 
+            process_name, 
+            process_plan_start_day
+    </select>
+
+    <!-- 鏌ヨ鎵�鏈夋墜宸ユ皵浣撳伐鍗曟暟鎹� -->
+    <select id="selectAllMoData" resultType="java.util.Map">
+        SELECT 
+            id,
+            mo,
+            factory,
+            material_code,
+            plan_end,
+            quantity
+        FROM aps_gas_pipeline_mo
+    </select>
+
+    <!-- 鏌ヨ鍩虹缁熻鏁版嵁锛堜笉鍖呭惈鏃堕棿闄愬埗锛夛紝鐢ㄤ簬鑾峰彇鎵�鏈夊彲鑳界殑宸ュ簭鍚嶅拰杞﹂棿 -->
+    <select id="selectBaseStatData" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT DISTINCT
+            process_name AS "processName",
+            plant AS "plant",
+            major AS "major",
+            workshop AS "workshop"
+        FROM aps_gas_piping_route_stat
+        <where>
+            <if test="plants != null and plants.size() > 0">
+                AND plant IN
+                <foreach collection="plants" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="plant != null and plant != ''">
+                AND plant = #{plant}
+            </if>
+            <if test="majors != null and majors.size() > 0">
+                AND major IN
+                <foreach collection="majors" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="major != null and major != ''">
+                AND major = #{major}
+            </if>
+            <if test="workshops != null and workshops.size() > 0">
+                AND workshop IN
+                <foreach collection="workshops" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="workshop != null and workshop != ''">
+                AND workshop = #{workshop}
+            </if>
+        </where>
+    </select>
+    
+    <!-- 鏌ヨ鎵�鏈夊幓閲嶇殑宸ュ簭鍚嶇О -->
+    <select id="selectDistinctProcessNames" resultType="java.lang.String">
+        SELECT DISTINCT process_name FROM aps_gas_piping_route_stat WHERE process_name IS NOT NULL AND process_name != ''
+    </select>
+    
+    <!-- 鏌ヨ鎵�鏈夊幓閲嶇殑杞﹂棿 -->
+    <select id="selectDistinctWorkshops" resultType="java.lang.String">
+        SELECT DISTINCT workshop FROM aps_gas_piping_route_stat WHERE workshop IS NOT NULL AND workshop != ''
+    </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3