<?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.pp.ReportingWorkMapper">
|
<resultMap id="reportingWorkMap" type="com.example.erp.entity.pp.ReportingWork">
|
<result property="orderId" column="order_id"/>
|
<result property="productionId" column="production_id"/>
|
<result property="previousProcess" column="previous_process"/>
|
<result property="nextProcess" column="next_process"/>
|
<result property="thisProcess" column="this_process"/>
|
<association property="order" javaType="com.example.erp.entity.sd.Order">
|
<result property="customerId" column="customer_id"/>
|
<result property="customerName" column="customer_name"/>
|
<result property="project" column="project"/>
|
</association>
|
<association property="flowCard" javaType="com.example.erp.entity.pp.FlowCard">
|
<result property="orderId" column="order_id"/>
|
<result property="productionId" column="production_id"/>
|
<result property="quantity" column="quantity"/>
|
</association>
|
<association property="reportingWorkDetail" javaType="com.example.erp.entity.pp.ReportingWorkDetail">
|
<result property="completedQuantity" column="completed_quantity"/>
|
</association>
|
|
</resultMap>
|
|
<select id="AddSelectLastWorkMp" resultMap="reportingWorkMap">
|
select o.order_id,
|
fc.production_id,
|
o.customer_id,
|
o.customer_name,
|
o.project,
|
SUM(fc.quantity) as quantity,
|
#{previousProcess} as previous_process,
|
#{nextProcess} as next_process,
|
#{process} as this_process
|
from sd.order as o
|
left join flow_card as fc on fc.order_id = o.order_id
|
where fc.process_id = #{processIdStr}
|
and position(fc.technology_number in #{technologyStr})
|
GROUP BY fc.process_id
|
</select>
|
|
<select id="SelectWorkBasicDeviceMp">
|
SELECT bdp.id,bdp.basic_type,bdp.basic_name, bd.basic_name as basic_category FROM sd.basic_data as bd left join `basic_data_produce` as bdp
|
on bd.id=bdp.basic_category
|
where bd.basic_category="process" and bdp.basic_type="device" and bd.basic_name = #{process}
|
</select>
|
|
<select id="SelectWorkBasicTeamsMp">
|
SELECT bdp.id,bdp.basic_type,bdp.basic_name, bd.basic_name as basic_category FROM sd.basic_data as bd left join `basic_data_produce` as bdp
|
on bd.id=bdp.basic_category
|
where bd.basic_category="process" and bdp.basic_type="teamsgroups" and bd.basic_name = #{process}
|
</select>
|
|
<!-- 查询流程卡工艺流程-->
|
<select id="SelectTechnologicalProcess">
|
select ogd.process
|
from sd.order_glass_detail as ogd
|
where ogd.production_id = LEFT(#{processIdStr}, 11)
|
limit 1
|
|
</select>
|
|
<select id="SelectWorkTechnologyMp">
|
select GROUP_CONCAT(distinct fc.technology_number)
|
from flow_card as fc
|
where fc.process_id = #{processIdStr}
|
</select>
|
|
<!-- 第一道工序报工明细查询-->
|
<select id="SelectTechnologicalNumMp">
|
SELECT
|
fc.order_number,
|
ogd.glass_child,
|
ogd.technology_number,
|
ogd.glass_address,
|
fc.quantity AS quantity_card,
|
ogd.child_width,
|
ogd.child_height,
|
od.shape,
|
fc.quantity -odpd.reporting_work_num + ifnull(c.patchNumSum,0) as quantity,
|
odpd.reporting_work_num_count as completed,
|
odpd.broken_num as onceBroken
|
FROM
|
sd.order_detail AS od
|
LEFT JOIN sd.order_glass_detail AS ogd
|
ON od.order_id = ogd.order_id
|
AND od.order_number = ogd.order_number
|
LEFT JOIN flow_card AS fc
|
ON fc.order_id = ogd.order_id
|
and fc.production_id=ogd.production_id
|
AND fc.order_number = ogd.order_number
|
AND fc.technology_number = ogd.technology_number
|
left join sd.order_process_detail as odpd
|
ON odpd.order_id = fc.order_id
|
AND odpd.order_number = fc.order_number
|
AND odpd.technology_number = fc.technology_number
|
and odpd.process_id = fc.process_id
|
left join
|
(select sum(patch_num) as patchNumSum,order_sort,technology_number,process_id
|
from patch_log
|
group by reporting_work_id,order_sort,technology_number) as c
|
on c.process_id = fc.process_id
|
and c.order_sort = fc.order_number
|
and c.technology_number = fc.technology_number
|
WHERE
|
fc.process_id = #{processIdStr}
|
AND fc.technology_number = #{technologyStr}
|
AND odpd.process = #{process}
|
order by fc.order_number
|
</select>
|
|
<!-- 非第一道工序报工明细查询-->
|
<select id="SelectReworlDetailMp">
|
SELECT
|
fc.order_number,
|
ogd.glass_child,
|
ogd.technology_number,
|
ogd.glass_address,
|
fc.quantity AS quantity_card,
|
ogd.child_width,
|
ogd.child_height,
|
od.shape,
|
odpds.reporting_work_num -odpd.reporting_work_num + ifnull(c.patchNumSum,0) as quantity,
|
odpd.reporting_work_num_count as completed,
|
odpd.broken_num as onceBroken
|
FROM
|
sd.order_detail AS od
|
LEFT JOIN sd.order_glass_detail AS ogd
|
ON od.order_id = ogd.order_id
|
AND od.order_number = ogd.order_number
|
LEFT JOIN flow_card AS fc
|
ON fc.order_id = ogd.order_id
|
and fc.production_id=ogd.production_id
|
AND fc.order_number = ogd.order_number
|
AND fc.technology_number = ogd.technology_number
|
left join sd.order_process_detail as odpd
|
ON odpd.order_id = fc.order_id
|
AND odpd.order_number = fc.order_number
|
AND odpd.technology_number = fc.technology_number
|
and odpd.process_id = fc.process_id
|
left join sd.order_process_detail as odpds
|
ON odpds.id = odpd.id-1
|
left join
|
(select sum(patch_num) as patchNumSum,order_sort,technology_number,process_id
|
from patch_log
|
group by reporting_work_id,order_sort,technology_number) as c
|
on c.process_id = fc.process_id
|
and c.order_sort = fc.order_number
|
and c.technology_number = fc.technology_number
|
WHERE
|
fc.process_id = #{processIdStr}
|
AND fc.technology_number = #{technologyStr}
|
AND odpd.process = #{process}
|
order by fc.order_number
|
</select>
|
|
<select id="SelectProcessMp">
|
select * from sd.basic_data where basic_type='product' and basic_category='process'
|
|
</select>
|
|
<select id="historyProcessMp">
|
select ifnull(GROUP_CONCAT(distinct rw.this_process),'') from reporting_work as rw where rw.process_id=#{processIdStr}
|
</select>
|
|
<select id="historyDeviceMp">
|
SELECT
|
bdp.id,
|
bdp.basic_type,
|
bdp.basic_name,
|
bd.basic_name AS basic_category
|
FROM
|
sd.basic_data AS bd
|
LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category
|
WHERE
|
bd.basic_category = 'process'
|
AND bdp.basic_type = 'device'
|
AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process}))
|
</select>
|
|
<select id="historyTeamsMp">
|
SELECT
|
bdp.id,
|
bdp.basic_type,
|
bdp.basic_name,
|
bd.basic_name,bd.id AS basic_category,
|
rw.process
|
FROM
|
sd.basic_data AS bd
|
LEFT JOIN `basic_data_produce` AS bdp
|
ON bd.id = bdp.basic_category
|
right join (
|
select distinct process from
|
( select distinct rw.this_process as process
|
from reporting_work as rw where rw.process_id=#{processIdStr}
|
UNION
|
select #{process}
|
) as t
|
) as rw
|
on rw.process=bd.basic_name
|
WHERE
|
bdp.basic_type = 'teamsgroups'
|
</select>
|
|
<select id="SelectHistoryProcessMp">
|
SELECT
|
distinct
|
bd.basic_name AS basic_category
|
FROM
|
sd.basic_data AS bd
|
LEFT JOIN `basic_data_produce` AS bdp ON bd.id = bdp.basic_category
|
WHERE
|
bd.basic_category = 'process'
|
AND bdp.basic_type = 'teamsgroups'
|
AND POSITION(bd.basic_name in CONCAT(#{historyProcess},#{process}))
|
</select>
|
|
<select id="selectBasicNameByType">
|
select * from `basic_data_produce` as a where a.basic_type = #{type}
|
</select>
|
|
<select id="selectMaxReportingWorkId">
|
select
|
ifnull(SUBSTR(max(reporting_work_id) from 9),0)
|
from
|
reporting_work as a
|
where
|
date(a.create_time) = curdate()
|
order by id desc,reporting_work_id desc limit 1
|
</select>
|
|
<!-- 查询流程卡工序报工可报数量-->
|
<select id="selectReportingWorkNum">
|
|
</select>
|
<select id="selectGlassProcessNum" resultType="java.lang.Integer">
|
select
|
d.reporting_work_num-b.reporting_work_num-b.broken_num+ifnull(c.patchNumSum,0)
|
from flow_card as a
|
left join sd.order_process_detail as b
|
on
|
b.order_number = a.order_number
|
and b.technology_number = a.technology_number
|
and b.order_id = SUBSTR(#{processId} from 1 for 10)
|
and b.process = #{thisProcess}
|
and b.process_id = a.process_id
|
left join sd.order_process_detail as d
|
on d.id=b.id-1
|
left join (select sum(patch_num) as patchNumSum,order_sort,technology_number,process_id
|
from patch_log
|
group by reporting_work_id,order_sort,technology_number) as c
|
on
|
c.process_id = a.process_id
|
and c.order_sort = a.order_number
|
and c.technology_number = a.technology_number
|
|
where
|
a.process_id=SUBSTR(#{processId} from 1 for 13)
|
and a.order_number = #{orderNumber}
|
and a.technology_number = #{technologyNumber}
|
</select>
|
<select id="selectFlowCardNum" resultType="java.lang.Integer">
|
select
|
a.quantity-b.reporting_work_num-b.broken_num+ifnull(c.patchNumSum,0)
|
from flow_card as a
|
left join sd.order_process_detail as b
|
on
|
b.order_number = a.order_number
|
and b.technology_number = a.technology_number
|
and b.order_id = SUBSTR(#{processId} from 1 for 10)
|
and b.process = #{thisProcess}
|
and b.process_id = a.process_id
|
left join (select sum(patch_num) as patchNumSum,order_sort,technology_number,process_id
|
from patch_log
|
group by reporting_work_id,order_sort,technology_number) as c
|
on
|
c.process_id = a.process_id
|
and c.order_sort = a.order_number
|
and c.technology_number = a.technology_number
|
|
where
|
a.process_id=SUBSTR(#{processId} from 1 for 13)
|
and a.order_number = #{orderNumber}
|
and a.technology_number = #{technologyNumber}
|
</select>
|
</mapper>
|