From f274ea473d1ba857c8ac213fc43524b4e773cf71 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期四, 22 五月 2025 16:24:01 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipingRouteStatMapper.xml | 263 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 221 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 20beb21..4b097a5 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 @@ -28,8 +28,10 @@ <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="routeProcessNumber" column="route_process_number" /> <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"> @@ -38,27 +40,27 @@ 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 , warning, plant + 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="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 >= #{searchStartDate} and process_plan_start_day <= #{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='绠¤矾') @@ -66,8 +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="plant != null and plant != ''"> and plant = #{plant} </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> @@ -81,12 +94,12 @@ <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 ">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> @@ -102,18 +115,20 @@ <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="batchNumber != null">batch_number,</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 ">#{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> @@ -129,8 +144,10 @@ <if test="planStartDay != null">#{planStartDay},</if> <if test="processPlanEndDay != null">#{processPlanEndDay},</if> <if test="orderPlanEndDay != null">#{orderPlanEndDay},</if> - <if test="batchNumber != null">#{batchNumber},</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> @@ -138,12 +155,12 @@ 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> @@ -157,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> @@ -171,31 +194,37 @@ #{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,process_plan_end_day,warning,order_plan_end_day,plant - ) - 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}, #{stat.processPlanEndDay},#{stat.warning},#{stat.orderPlanEndDay},#{stat.plant} + #{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, @@ -219,5 +248,155 @@ 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, + m.domain, + 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 + 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, + m.domain, + 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 + 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 < #{yearEnd} OR + (plan_start_year = #{yearEnd} AND plan_start_month <= #{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) < #{yearEnd} OR + (EXTRACT(YEAR FROM process_plan_start_day) = #{yearEnd} AND EXTRACT(MONTH FROM process_plan_start_day) <= #{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> </mapper> \ No newline at end of file -- Gitblit v1.9.3