<?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.aps.core.mapper.ApsPlateProcessStatMapper">
|
|
<resultMap type="com.aps.core.domain.ApsPlate.ApsPlateProcessStat" id="ApsPlateProcessStatResult">
|
<result property="id" column="id" />
|
<result property="workOrderNo" column="work_order_no" />
|
<result property="processName" column="process_name" />
|
<result property="num" column="num" />
|
<result property="routeProcessNumber" column="route_process_number" />
|
<result property="currentProcessNumber" column="current_process_number" />
|
<result property="productionQuantity" column="production_quantity" />
|
<result property="standardTime" column="standard_time" />
|
<result property="processTotalTime" column="process_total_time" />
|
<result property="processPlanEndDay" column="process_plan_end_day" />
|
<result property="computePlanEndDay" column="compute_plan_end_day" />
|
<result property="processPlanStartDay" column="process_plan_start_day" />
|
<result property="orderPlanEndDay" column="order_plan_end_day" />
|
<result property="designTimes" column="design_times" />
|
<result property="batchNumber" column="batch_number" />
|
<result property="createBy" column="create_by" />
|
<result property="delFlag" column="del_flag" />
|
<result property="warning" column="warning" />
|
<result property="exceptionStatus" column="exception_status" />
|
</resultMap>
|
|
<sql id="selectApsPlateProcessStatVo">
|
select id, work_order_no, process_name, num, route_process_number, current_process_number, production_quantity,
|
standard_time, process_total_time, process_plan_end_day,process_plan_start_day, order_plan_end_day, design_times,
|
batch_number, create_by, del_flag, warning,
|
CASE WHEN <![CDATA[ process_plan_start_day <= NOW() OR process_plan_end_day <= NOW() ]]> THEN '是' ELSE '否' END as exception_status
|
from aps_plate_process_stat
|
</sql>
|
|
<select id="selectApsPlateProcessStatList" parameterType="com.aps.core.domain.ApsPlate.ApsPlateProcessStat" resultMap="ApsPlateProcessStatResult">
|
<include refid="selectApsPlateProcessStatVo"/>
|
<where>
|
<if test="workOrderNo != null and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if>
|
<if test="processName != null and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
|
<if test="num != null "> and num = #{num}</if>
|
<if test="routeProcessNumber != null "> and route_process_number = #{routeProcessNumber}</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="processPlanEndDay != null "> and process_plan_end_day = #{processPlanEndDay}</if>
|
<if test="computePlanEndDay != null "> and compute_plan_end_day = #{computePlanEndDay}</if>
|
<if test="designTimes != null "> and design_times = #{designTimes}</if>
|
<if test="batchNumber != null and batchNumber != ''"> and batch_number = #{batchNumber}</if>
|
</where>
|
order by work_order_no asc,num desc
|
</select>
|
|
<select id="selectApsPlateProcessStatById" parameterType="String" resultMap="ApsPlateProcessStatResult">
|
<include refid="selectApsPlateProcessStatVo"/>
|
where id = #{id}
|
</select>
|
|
<insert id="insertApsPlateProcessStat" parameterType="com.aps.core.domain.ApsPlate.ApsPlateProcessStat">
|
insert into aps_plate_process_stat
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">id,</if>
|
<if test="workOrderNo != null">work_order_no,</if>
|
<if test="processName != null">process_name,</if>
|
<if test="num != null">num,</if>
|
<if test="routeProcessNumber != null">route_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="processPlanEndDay != null">process_plan_end_day,</if>
|
<if test="processPlanStartDay != null">process_plan_start_day,</if>
|
<if test="orderPlanEndDay != null">order_plan_end_day,</if>
|
<if test="designTimes != null">design_times,</if>
|
<if test="batchNumber != null">batch_number,</if>
|
<if test="createBy != null">create_by,</if>
|
<if test="warning != null">warning,</if>
|
del_flag,
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">#{id},</if>
|
<if test="workOrderNo != null">#{workOrderNo},</if>
|
<if test="processName != null">#{processName},</if>
|
<if test="num != null">#{num},</if>
|
<if test="routeProcessNumber != null">#{routeProcessNumber},</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="processPlanEndDay != null">#{processPlanEndDay},</if>
|
<if test="processPlanStartDay != null">#{processPlanStartDay},</if>
|
<if test="orderPlanEndDay != null">#{orderPlanEndDay},</if>
|
<if test="designTimes != null">#{designTimes},</if>
|
<if test="batchNumber != null">#{batchNumber},</if>
|
<if test="createBy != null">#{createBy},</if>
|
<if test="warning != null">#{warning},</if>
|
'0'
|
</trim>
|
</insert>
|
|
<update id="updateApsPlateProcessStat" parameterType="com.aps.core.domain.ApsPlate.ApsPlateProcessStat">
|
update aps_plate_process_stat
|
<trim prefix="SET" suffixOverrides=",">
|
<if test="workOrderNo != null">work_order_no = #{workOrderNo},</if>
|
<if test="processName != null">process_name = #{processName},</if>
|
<if test="num != null">num = #{num},</if>
|
<if test="routeProcessNumber != null">route_process_number = #{routeProcessNumber},</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="processPlanEndDay != null">process_plan_end_day = #{processPlanEndDay},</if>
|
<if test="computePlanEndDay != null">compute_plan_end_day = #{computePlanEndDay},</if>
|
<if test="designTimes != null">design_times = #{designTimes},</if>
|
<if test="batchNumber != null">batch_number = #{batchNumber},</if>
|
<if test="createBy != null">create_by = #{createBy},</if>
|
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
</trim>
|
where id = #{id}
|
</update>
|
|
<delete id="deleteApsPlateProcessStatById" parameterType="String">
|
delete from aps_plate_process_stat where id = #{id}
|
</delete>
|
|
<delete id="deleteApsPlateProcessStatByIds" parameterType="String">
|
delete from aps_plate_process_stat where id in
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</delete>
|
|
<select id="queryTempStat" resultMap="ApsPlateProcessStatResult">
|
with dt as ( select doc_no,require_date from aps_plate_require_date where del_flag=0),
|
rd as ( select doc_no,plan_end_day from aps_plate_standard_require_order_end_day where del_flag=0)
|
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 route_process_number,
|
cast(pl.process_number as numeric(18, 2)) as current_process_number,
|
pl.production_quantity,
|
rt.standard_time,
|
(rt.standard_time * pl.production_quantity) as process_total_time,
|
rt.process_plan_start_day,
|
rt.process_plan_end_day,
|
pl.plan_end_day,
|
rd.plan_end_day as modify_day,
|
dt.require_date,
|
COALESCE(rd.plan_end_day, COALESCE(dt.require_date, pl.plan_end_day) ) as order_plan_end_day
|
from aps_plate_plan as pl
|
left join aps_process_route as rt on pl.document_number = rt.work_order_no
|
left join rd on pl.document_number = rd.doc_no
|
left join dt on pl.document_number=dt.doc_no
|
where pl.document_number is not null
|
and rt.work_order_no is not null
|
order by rt.work_order_no, rt.process_number desc
|
</select>
|
<update id="removeOtherStat" parameterType="String">
|
delete from aps_plate_process_stat where batch_number != #{batchNumber}
|
</update>
|
<update id="deleteAll" parameterType="String">
|
delete from aps_plate_process_stat
|
</update>
|
<insert id="batchInsertPlateStat" parameterType="com.aps.core.domain.ApsPlate.ApsPlateProcessStat">
|
insert into aps_plate_process_stat
|
(
|
id,
|
work_order_no,
|
process_name,
|
num,
|
route_process_number,
|
current_process_number,
|
production_quantity,
|
standard_time,
|
process_total_time,
|
process_plan_start_day,
|
process_plan_end_day,
|
order_plan_end_day,
|
batch_number,
|
create_by,
|
del_flag,
|
warning
|
)
|
values
|
<foreach collection="list" item="item" index="index" separator=",">
|
(
|
#{item.id},
|
#{item.workOrderNo},
|
#{item.processName},
|
#{item.num},
|
#{item.routeProcessNumber},
|
#{item.currentProcessNumber},
|
#{item.productionQuantity},
|
#{item.standardTime},
|
#{item.processTotalTime},
|
#{item.processPlanStartDay},
|
#{item.processPlanEndDay},
|
#{item.orderPlanEndDay},
|
#{item.batchNumber},
|
#{item.createBy},
|
'0',
|
#{item.warning}
|
)
|
</foreach>
|
</insert>
|
</mapper>
|