<?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.chinaztt.mes.quality.mapper.ApplyPartMapper">
|
<sql id="Base_Column_List">
|
id,
|
apply_id,
|
report_id,
|
system_no,
|
part_id,
|
is_qualified,
|
remark,
|
is_erp,
|
part_no,
|
part_desc,
|
qty_arrived,
|
qty_to_inspect,
|
lot_batch_no,
|
order_no,
|
line_no,
|
release_no,
|
receipt_no,
|
supplier_id,
|
supplier_name,
|
waiv_dev_rej_no,
|
location_no,
|
test_standard_no,
|
unqualified_arrived,
|
serial_no,
|
eng_chg_level,
|
activity_seq,
|
mo_test_standard_id,
|
operation_id,
|
workshop_type_code
|
</sql>
|
<resultMap id="BaseResultMap" type="com.chinaztt.mes.quality.entity.ApplyPart">
|
<result column="id" property="id"/>
|
<result column="apply_id" property="applyId"/>
|
<result column="report_id" property="reportId"/>
|
<result column="system_no" property="systemNo"/>
|
<result column="part_id" property="partId"/>
|
<result column="is_qualified" property="isQualified"/>
|
<result column="remark" property="remark"/>
|
<result column="is_erp" property="isErp"/>
|
<result column="part_no" property="partNo"/>
|
<result column="part_desc" property="partDesc"/>
|
<result column="qty_arrived" property="qtyArrived"/>
|
<result column="qty_to_inspect" property="qtyToInspect"/>
|
<result column="lot_batch_no" property="lotBatchNo"/>
|
<result column="order_no" property="orderNo"/>
|
<result column="line_no" property="lineNo"/>
|
<result column="release_no" property="releaseNo"/>
|
<result column="receipt_no" property="receiptNo"/>
|
<result column="supplier_id" property="supplierId"/>
|
<result column="supplier_name" property="supplierName"/>
|
<result column="waiv_dev_rej_no" property="waivDevRejNo"/>
|
<result column="location_no" property="locationNo"/>
|
<result column="test_standard_no" property="testStandardNo"/>
|
<result column="unqualified_arrived" property="unqualifiedArrived"/>
|
<result column="serial_no" property="serialNo"/>
|
<result column="eng_chg_level" property="engChgLevel"/>
|
<result column="activity_seq" property="activitySeq"/>
|
<result column="mo_test_standard_id" property="moTestStandardId"/>
|
<result column="operation_id" property="operationId"/>
|
<result property="totalLength" column="total_length"/>
|
<result property="checkLength" column="check_length"/>
|
<result property="replacePartId" column="replace_part_id"/>
|
<result property="replacePartNo" column="replace_part_no"/>
|
<result property="replacePartName" column="replace_part_name"/>
|
<result property="examiner" column="examiner"/>
|
<result property="measuringInstrument" column="measuring_instrument"/>
|
<result property="scrapArrived" column="scrap_arrived"/>
|
<result property="sourceLocationId" column="source_location_id"/>
|
<result property="targetQualifiedLocationId" column="target_qualified_location_id"/>
|
<result property="targetUnqualifiedLocationId" column="target_unqualified_location_id"/>
|
<result property="stockId" column="stock_id"/>
|
<result property="sampleCheckLength" column="sample_check_length"/>
|
<result property="temperature" column="temperature"/>
|
</resultMap>
|
<resultMap id="applyPartMap" type="com.chinaztt.mes.quality.dto.ApplyPartDTO">
|
<id property="id" column="id"/>
|
<result property="applyId" column="apply_id"/>
|
<result property="reportId" column="report_id"/>
|
<result property="systemNo" column="system_no"/>
|
<result property="partId" column="part_id"/>
|
<result property="isQualified" column="is_qualified"/>
|
<result property="isErp" column="is_erp"/>
|
<result property="remark" column="remark"/>
|
<result property="partNo" column="part_no"/>
|
<result property="partName" column="part_name"/>
|
<result property="outBatchNo" column="out_batch_no"/>
|
<result property="applyNo" column="apply_no"/>
|
<result property="applyType" column="apply_type"/>
|
<result property="reportNo" column="report_no"/>
|
<result property="unqualifiedProcessId" column="unqualified_process_id"/>
|
<result property="qtyToInspect" column="qty_to_inspect"/>
|
<result property="serialNo" column="serial_no"/>
|
<result property="engChgLevel" column="eng_chg_level"/>
|
<result property="activitySeq" column="activity_seq"/>
|
<result property="lotBatchNo" column="lot_batch_no"/>
|
<result property="unqualifiedArrived" column="unqualified_arrived"/>
|
<result property="qtyArrived" column="qty_arrived"/>
|
<result property="orderNo" column="order_no"/>
|
<result property="lineNo" column="line_no"/>
|
<result property="releaseNo" column="release_no"/>
|
<result property="receiptNo" column="receipt_no"/>
|
<result property="supplierId" column="supplier_id"/>
|
<result property="supplierName" column="supplier_name"/>
|
<result property="waivDevRejNo" column="waiv_dev_rej_no"/>
|
<result property="locationNo" column="location_no"/>
|
<result property="isUsed" column="is_used"/>
|
<result property="resultId" column="result_id"/>
|
<result property="operationId" column="operation_id"/>
|
<result property="operationName" column="operation_name"/>
|
<result property="workshopTypeCode" column="workshop_type_code"/>
|
<result property="workstationNo" column="workstation_no"/>
|
<result property="name" column="name"/>
|
<result property="totalLength" column="total_length"/>
|
<result property="checkLength" column="check_length"/>
|
<result property="replacePartId" column="replace_part_id"/>
|
<result property="replacePartNo" column="replace_part_no"/>
|
<result property="replacePartName" column="replace_part_name"/>
|
<result property="examiner" column="examiner"/>
|
<result property="measuringInstrument" column="measuring_instrument"/>
|
<result property="scrapArrived" column="scrap_arrived"/>
|
<result property="checkTime" column="check_time"/>
|
<result property="customerName" column="customer_name"/>
|
<result property="prodName" column="prod_name"/>
|
<result property="partModel" column="part_model"/>
|
<result property="specs" column="specs"/>
|
<result property="workstationName" column="workstation_name"/>
|
<result property="reelNumber" column="reel_number"/>
|
<result property="produceUser" column="produce_user"/>
|
<result property="produceTime" column="produce_time"/>
|
<result property="moId" column="mo_id"/>
|
<result property="reportState" column="report_state"/>
|
<result property="sourceLocationId" column="source_location_id"/>
|
<result property="targetQualifiedLocationId" column="target_qualified_location_id"/>
|
<result property="targetUnqualifiedLocationId" column="target_unqualified_location_id"/>
|
<result property="applyUser" column="apply_user"/>
|
<result property="reportPerson" column="report_person"/>
|
<result property="applyTime" column="apply_time"/>
|
<result property="stockId" column="stock_id"/>
|
<result property="customerOrderNo" column="customer_order_no"/>
|
<result property="operationStockStatus" column="operation_stock_status"/>
|
<result property="moNo" column="mo_no"/>
|
<result property="moRoutingOperationId" column="mo_routing_operation_id"/>
|
<result property="isNotOutCheck" column="is_not_out_check"/>
|
<result property="sampleCheckLength" column="sample_check_length"/>
|
<result property="temperature" column="temperature"/>
|
</resultMap>
|
|
<select id="getApplyPartPage" resultMap="applyPartMap">
|
select temp.*
|
from (
|
select qap.*,qa.apply_no,qr.is_used,qr."id" result_id,too.id operation_id,too.name operation_name,pmo.workshop_type_code,bp.part_name,bw.workstation_no
|
from quality_apply_part qap
|
left join quality_apply qa on qa."id" = qap.apply_id
|
left join quality_result qr on qr.apply_type = qa.apply_type AND qr.system_no = qap.system_no AND qr.part_batch_no = qap.lot_batch_no
|
left join technology_operation too on qap.operation_id = too."id"
|
left join production_product_output ppo ON qap.system_no = ppo.system_no --通过申请id关联产出表
|
left join production_product_main ppm ON ppo.product_main_id = ppm."id" --通过产出表的报工单id关联报工单
|
left join production_operation_task pot ON ppm.operation_task_id = pot."id" --通过报工单的工单id关联工单
|
left join production_operation_task_supply pots ON pot."id" = pots.operation_task_id --通过工单的id关联工单供应
|
left join plan_manufacturing_order pmo ON pots.mo_id = pmo."id" --通过工单供应的车间订单id关联车间订单
|
left join basic_part bp ON ppo.part_id = bp."id"
|
left join basic_workstation bw on ppm.workstation_id = bw.id
|
) temp
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<select id="getApplyPartPageForReport" resultMap="applyPartMap">
|
select temp.*
|
from (
|
select qap.*,qa.apply_no,qa.apply_type,too.id operation_id,too.name operation_name,pmo.workshop_type_code,
|
bw.workstation_no,
|
bw."name"
|
from quality_apply_part qap
|
left join quality_apply qa on qa."id" = qap.apply_id
|
left join technology_operation too on qap.operation_id = too."id"
|
left join production_product_output ppo ON qap.system_no = ppo.system_no --通过申请id关联产出表
|
left join production_product_main ppm ON ppo.product_main_id = ppm."id" --通过产出表的报工单id关联报工单
|
left join production_operation_task pot ON ppm.operation_task_id = pot."id" --通过报工单的工单id关联工单
|
left join production_operation_task_supply pots ON pot."id" = pots.operation_task_id --通过工单的id关联工单供应
|
left join plan_manufacturing_order pmo ON pots.mo_id = pmo."id" --通过工单供应的车间订单id关联车间订单
|
left join basic_workstation bw ON bw."id" = ppm.workstation_id --通过报工单主表的工作站id关联工作站
|
where qap.report_id is null
|
) temp
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<select id="getApplyPartPageForUnqualified" resultMap="applyPartMap">
|
select temp.*
|
from (
|
select qap.*,bp.part_name,ppo.out_batch_no,qa.apply_no,qr.report_no
|
from quality_apply_part qap
|
left join basic_part bp on bp."id" = qap.part_id
|
left join production_product_output ppo on ppo.system_no = qap.system_no
|
left join quality_apply qa on qa."id" = qap.apply_id
|
left join quality_report qr on qr."id" = qap.report_id
|
where qap.is_qualified = false and qap.unqualified_arrived is not null
|
<![CDATA[ and qap.unqualified_arrived <> '0']]>
|
<![CDATA[ and qap.unqualified_arrived <> '']]>
|
and
|
not exists(select 1
|
from quality_unqualified_process qup
|
where qup.apply_part_id = qap."id"
|
and
|
qup.id = #{unqualifiedProcessId})
|
) temp
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<update id="deleteByIdForReport">
|
UPDATE quality_apply_part
|
SET report_id= NULL
|
WHERE id = #{id}
|
</update>
|
|
<select id="findTestStandardNoBySystemNo" resultType="com.chinaztt.mes.quality.entity.TestStandard">
|
SELECT pmts.id,pmts.standard_no
|
FROM production_product_output ppo
|
LEFT JOIN production_product_main ppm ON ppm."id" = ppo.product_main_id
|
LEFT JOIN production_operation_task pot ON pot."id" = ppm.operation_task_id
|
LEFT JOIN production_operation_task_supply pots ON pots.operation_task_id = ppm.operation_task_id
|
RIGHT JOIN plan_mo_test_standard pmts ON pmts.mo_id = pots.mo_id AND pmts.routing_operation_id = pot.routing_operation_id
|
WHERE ppo.system_no = #{systemNo}
|
</select>
|
|
<select id="getApplyPartDtoById" resultMap="applyPartMap">
|
SELECT
|
qap.*,
|
qr.id report_id,
|
qr.report_type apply_type,
|
qr.report_no,
|
qr.check_time,
|
pmo.id mo_id,
|
pmo.mo_no,
|
pco.customer_name,
|
pco.customer_order_no,
|
bp.part_model,
|
bp.prod_name,
|
bp.specs,
|
bw.name workstation_name,
|
ppo.reel_number,
|
COALESCE(bs3.staff_name, ppo.create_user) produce_user,
|
ppo.create_time produce_time,
|
ws.operation_stock_status,
|
pot.mo_routing_operation_id,
|
CASE
|
WHEN
|
qr.is_submit = 't' THEN
|
'汇报已提交'
|
WHEN qr.is_submit = 'f' THEN
|
'汇报未提交'
|
WHEN qr."id" IS NULL THEN
|
'汇报未创建' ELSE'汇报未提交'
|
END report_state
|
FROM quality_apply_part qap
|
LEFT JOIN quality_report qr ON qap.report_id = qr."id"
|
LEFT JOIN production_product_output ppo ON qap.system_no = ppo.system_no
|
LEFT JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
LEFT JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
LEFT JOIN basic_workstation bw ON ppm.workstation_id = bw."id"
|
LEFT JOIN technology_operation too ON qap.operation_id = too."id"
|
LEFT JOIN production_operation_task_supply pots ON pot."id" = pots.operation_task_id
|
LEFT JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo."id"
|
LEFT JOIN plan_join_model_customer pjmc ON pjmc.model_id = pmo."id" AND pjmc.model = 'plan_manufacturing_order'
|
LEFT JOIN plan_customer_order pco ON pco."id" = pjmc.customer_order_id
|
LEFT JOIN basic_part bp ON bp."id" = qap.part_id
|
LEFT JOIN basic_staff bs3 ON ppo.create_user = bs3.staff_no
|
LEFT JOIN warehouse_stock ws ON ws.system_no = qap.system_no AND ws.part_batch_no = qap.lot_batch_no
|
WHERE qap.id = #{id}
|
LIMIT 1
|
</select>
|
|
<select id="selectShowInfoBySystemNo" resultType="com.alibaba.fastjson.JSONObject">
|
SELECT ppo.out_batch_no,bp.part_no,bp.part_name,SUM(ppo.product_qty) product_qty,ppo.part_id,MIN(ppo.start_meter_mark) start_meter_mark,MAX(ppo.end_meter_mark) end_meter_mark FROM
|
production_product_output ppo
|
INNER JOIN
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo}) ppo_tmp ON ppo.out_batch_no = ppo_tmp.out_batch_no
|
LEFT JOIN basic_part bp ON bp."id" = ppo.part_id
|
GROUP BY ppo.out_batch_no,bp.part_no,bp.part_name,ppo.part_id
|
<!--SELECT ppo.out_batch_no,bp.part_no,bp.part_name,ppo.product_qty,ppo.part_id
|
FROM production_product_output ppo
|
LEFT JOIN basic_part bp ON bp."id" = ppo.part_id
|
WHERE ppo.system_no = #{systemNo}-->
|
</select>
|
|
<select id="selectApplyPart" resultType="com.alibaba.fastjson.JSONObject">
|
SELECT A.order_no as "orderNo",
|
A.line_no as "lineNo",
|
A.release_no as "releaseNo",
|
A.part_no as "partNo"
|
,
|
A.location_no as "locationNo",
|
#{locationNo} as "toLocationNo",
|
A.lot_batch_no as "lotBatchNo",
|
A.waiv_dev_rej_no as
|
"waivDevRejNo",
|
to_number(A.qty_to_inspect, '999999.999999') as "inventQty",
|
cast(A.receipt_no as int) as "receiptNo",
|
to_number(A.qty_arrived, '999999.999999') as qty
|
,
|
A.serial_no as "serialNo",
|
A.eng_chg_level as "engChgLevel",
|
cast(A.activity_seq as int) as "activitySeq"
|
FROM quality_apply_part A
|
where A.id in
|
<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</select>
|
|
<select id="selectPartIdBySystemNo" resultType="java.lang.Long">
|
SELECT ppo.part_id
|
FROM production_product_output ppo
|
WHERE ppo.system_no = #{systemNo}
|
</select>
|
|
<select id="selectApplyTypeByApplyPartId" resultType="java.lang.String">
|
SELECT qa.apply_type
|
FROM quality_apply qa
|
LEFT JOIN quality_apply_part qap ON qa."id" = qap.apply_id
|
WHERE qap."id" = #{applyPartId}
|
</select>
|
|
<select id="selectUnApplyPart" resultType="com.alibaba.fastjson.JSONObject">
|
SELECT A.order_no as "orderNo",
|
A.line_no as "lineNo",
|
A.release_no as "releaseNo",
|
A.part_no as "partNo"
|
,
|
A.location_no as "locationNo",
|
#{locationNo} as "toLocationNo",
|
A.lot_batch_no as "lotBatchNo",
|
A.waiv_dev_rej_no as
|
"waivDevRejNo",
|
to_number(A.qty_to_inspect, '999999.999999') as "inventQty",
|
cast(A.receipt_no as int) as "receiptNo",
|
to_number(A.unqualified_arrived, '999999.999999') as qty
|
,
|
A.serial_no as "serialNo",
|
A.eng_chg_level as "engChgLevel",
|
cast(A.activity_seq as int) as "activitySeq"
|
FROM quality_apply_part A
|
where A.id in
|
<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</select>
|
<select id="selectRegistrationApplyPart" resultType="com.alibaba.fastjson.JSONObject">
|
SELECT A.order_no as "orderNo",
|
A.line_no as "lineNo",
|
A.release_no as "releaseNo",
|
A.part_no as "partNo"
|
,
|
A.location_no as "locationNo",
|
#{locationNo} as "toLocationNo",
|
A.lot_batch_no as "lotBatchNo",
|
A.waiv_dev_rej_no as
|
"waivDevRejNo",
|
to_number(A.qty_to_inspect, '999999.999999') as "inventQty",
|
A.receipt_no as "receiptNo",
|
to_number(A.unqualified_arrived, '999999.999999') as qty
|
,
|
A.serial_no as "serialNo",
|
A.eng_chg_level as "engChgLevel",
|
cast(A.activity_seq as int) as "activitySeq"
|
FROM quality_apply_part A
|
where A.id in
|
<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</select>
|
<select id="selectOperationIdBySystemNo" resultType="java.lang.Long">
|
SELECT
|
too.id
|
FROM
|
production_product_output ppo
|
LEFT JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
LEFT JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
LEFT JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
WHERE
|
ppo.system_no = #{systemNo}
|
</select>
|
|
<update id="clearReportId">
|
UPDATE quality_apply_part
|
SET report_id = NULL,
|
is_qualified = NULL
|
WHERE report_id = #{reportId}
|
</update>
|
|
<select id="selectListByReportId" resultMap="BaseResultMap">
|
SELECT *
|
FROM quality_apply_part
|
WHERE report_id = #{reportId}
|
</select>
|
|
<select id="selectApplyApertByInspState" resultType="com.chinaztt.mes.quality.entity.ApplyPart">
|
SELECT qap.*
|
FROM quality_apply_part qap
|
LEFT JOIN quality_apply qa ON qap.apply_id = qa."id"
|
WHERE qap.lot_batch_no = #{lotBatchNo} AND qa.apply_type != '00outputfirst' AND qa.apply_type != '07batchfirst'
|
|
<!--SELECT qap.*
|
FROM quality_apply_part qap
|
LEFT JOIN quality_apply qa ON qap.apply_id = qa."id"
|
WHERE qap.lot_batch_no = #{lotBatchNo}
|
AND qa.apply_type = #{applyType} -->
|
</select>
|
|
<select id="getApplyPartDtoBySysNoAndAppType" resultType="com.chinaztt.mes.quality.dto.ApplyPartDTO">
|
SELECT qap.*
|
FROM quality_apply_part qap
|
LEFT JOIN quality_apply qa ON qap.apply_id=qa.id
|
WHERE qap.system_no=#{systemNo} AND qap.report_id is not null order by qap.id desc
|
</select>
|
|
<select id="getFinishedProductReportNo" resultType="java.lang.String">
|
SELECT qr.report_no FROM
|
(SELECT * FROM quality_apply_part WHERE system_no = #{systemNo} AND report_id IS NOT NULL) qap
|
INNER JOIN
|
(SELECT * FROM quality_report WHERE report_type = '06finishedproduct') qr
|
ON qap.report_id = qr."id" LIMIT 1
|
</select>
|
|
<select id="isLastOperationBySystemNo" resultType="java.lang.Boolean">
|
SELECT
|
CASE WHEN COUNT(*) = 0 THEN FALSE
|
ELSE TRUE
|
END res
|
FROM
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo}) ppo --锁定产出
|
INNER JOIN production_product_main ppm ON ppo.product_main_id = ppm."id" --找到报工单
|
INNER JOIN production_operation_task pot ON ppm.operation_task_id = pot."id" --找到工单
|
INNER JOIN production_operation_task_supply pots ON pots.operation_task_id = pot."id" --关联工单供应表
|
INNER JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo."id" --找到车间订单
|
INNER JOIN plan_master_production_schedule pmps ON pmo.mps_id = pmps."id" --找到主计划
|
INNER JOIN (SELECT * FROM technology_join_document_bom_routing WHERE parent_id IS NULL) tjdbr ON pmps.technology_document_id = tjdbr.document_id --工艺文件、bom、工艺路线关系表(锁定是根节点)
|
INNER JOIN technology_routing_operation tro ON tjdbr.routing_id = tro.routing_id AND tro."id" = pot.routing_operation_id --锁定工序节点
|
WHERE ppo.part_id = tro.part_id AND tro.is_last = 't' --锁定工序节点表的零件id且工序节点表是否是最后一道工序字段为true
|
</select>
|
|
<select id="selectOperationNoBySystemNo" resultType="java.lang.String">
|
SELECT
|
too.operation_no
|
FROM
|
production_product_output ppo
|
LEFT JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
LEFT JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
LEFT JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
WHERE
|
ppo.system_no = #{systemNo}
|
</select>
|
|
<select id="isConfigFinishedProdTest" resultType="java.lang.Boolean">
|
SELECT
|
CASE WHEN COUNT(*) = 0 THEN FALSE
|
ELSE TRUE
|
END res
|
FROM
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo}) ppo
|
INNER JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
INNER JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
INNER JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
INNER JOIN technology_operation too ON pmoro.operation_id = too."id"
|
INNER JOIN
|
(SELECT * FROM plan_mo_test_standard WHERE inspection_type = '06finishedproduct') pmts ON pmts.mo_id = pmoro.mo_id AND pmts.mo_routing_operation_id = pot.mo_routing_operation_id
|
</select>
|
|
<select id="isConfigMoveLibraryTest" resultType="java.lang.Boolean">
|
SELECT
|
CASE WHEN COUNT(*) = 0 THEN FALSE
|
ELSE TRUE
|
END res
|
FROM
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo}) ppo
|
INNER JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
INNER JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
INNER JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
INNER JOIN technology_operation too ON pmoro.operation_id = too."id"
|
INNER JOIN
|
(SELECT * FROM quality_test_apply_rule WHERE inspection_type = '01output' OR inspection_type = '08process') qtar ON too.operation_no = qtar.operation_no
|
</select>
|
|
<select id="isExistTestApplyConfigBySystemNo" resultType="java.lang.Boolean">
|
SELECT
|
CASE WHEN COUNT(*) = 0 THEN FALSE
|
ELSE TRUE
|
END res
|
FROM
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo}) ppo
|
INNER JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
INNER JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
INNER JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
INNER JOIN technology_operation too ON pmoro.operation_id = too."id"
|
INNER JOIN
|
plan_mo_test_standard pmts ON pmts.mo_id = pmoro.mo_id AND pmts.mo_routing_operation_id = pot.mo_routing_operation_id
|
</select>
|
|
<select id="isAutoApplyPartExist" resultType="java.lang.Long">
|
SELECT COUNT(*) num FROM
|
quality_apply_part qap
|
INNER JOIN
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo}) ppo ON qap.lot_batch_no = ppo.out_batch_no
|
INNER JOIN
|
(SELECT * FROM quality_apply WHERE apply_type = #{applyType}) qa
|
ON qap.apply_id = qa."id"
|
</select>
|
<select id="selectStockOperationStatus" resultType="java.lang.Boolean">
|
SELECT DISTINCT
|
ws.operation_stock_status
|
FROM
|
warehouse_stock ws
|
WHERE
|
ws.system_no = #{systemNo}
|
</select>
|
|
|
<select id="getQualityCheckRate" resultType="com.chinaztt.mes.quality.dto.QualityCheckRateDTO">
|
SELECT SUM
|
( CAST ( A.qty_arrived AS NUMERIC ) ) AS qty_arrived,
|
SUM ( CAST ( A.unqualified_arrived AS NUMERIC ) ) AS unqualified_arrived,
|
SUM ( CAST ( A.product_qty AS NUMERIC ) ) AS product_qty,
|
pmo.work_shop,
|
to_char( qr.update_time, 'YYYYMM' ) AS quality_date,
|
too."name",
|
round( SUM ( CAST ( A.qty_arrived AS NUMERIC ) ) / SUM ( CAST ( A.product_qty AS NUMERIC ) ) * 100, 2 ) AS ratio,
|
MAX ( bp.unit ) AS unit
|
FROM
|
(
|
SELECT MAX
|
( CAST ( qap.qty_arrived AS NUMERIC ) ) AS qty_arrived,
|
MAX ( CAST ( qap.unqualified_arrived AS NUMERIC ) ) AS unqualified_arrived,
|
SUM ( CAST ( ppo.product_qty AS NUMERIC ) ) AS product_qty,
|
MAX ( qap.report_id ) AS report_id,
|
MAX ( ppo.product_main_id ) AS product_main_id,
|
MAX ( qap.part_id ) AS part_id
|
FROM
|
quality_apply_part qap
|
JOIN ( SELECT MAX ( ID ) AS ID FROM quality_apply_part GROUP BY system_no ) A ON qap.ID = A.
|
ID JOIN production_product_output ppo ON qap.lot_batch_no = ppo.out_batch_no
|
GROUP BY
|
qap.lot_batch_no
|
)
|
A JOIN quality_report qr ON A.report_id = qr.
|
ID JOIN production_product_main ppm ON A.product_main_id = ppm.
|
ID JOIN production_operation_task_supply pots ON ppm.operation_task_id = pots.operation_task_id
|
JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo.
|
ID JOIN production_operation_task pot ON pots.operation_task_id = pot.
|
ID LEFT JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
JOIN basic_part bp ON A.part_id = bp.ID
|
<where>
|
<if test="input.workShop != null and input.workShop != ''">
|
AND pmo.work_shop = #{input.workShop}
|
</if>
|
<if test="input.dateBefore != null and input.dateAfter != ''">
|
AND to_char( qr.update_time, 'YYYYMMDD' ) between #{input.dateBefore} and #{input.dateAfter}
|
</if>
|
<if test="input.operationIdList!=null and input.operationIdList.size>0">
|
and too.id in
|
<foreach collection="input.operationIdList" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach>
|
</if>
|
<if test="input.partNoList!=null and input.partNoList.size>0">
|
and bp.part_no in
|
<foreach collection="input.partNoList" item="partNo" index="index" open="(" close=")" separator=",">
|
#{partNo}
|
</foreach>
|
</if>
|
<if test="input.partName != null and input.partName != ''">
|
AND bp.part_name = #{input.partName}
|
</if>
|
</where>
|
GROUP BY
|
to_char( qr.update_time, 'YYYYMM' ),
|
pmo.work_shop,
|
too."name"
|
ORDER BY
|
to_char( qr.update_time, 'YYYYMM' ) DESC
|
</select>
|
|
|
|
|
|
|
<select id="getQualityCheckRatePicture" resultType="com.chinaztt.mes.quality.dto.QualityCheckRatePictureDTO">
|
SELECT * FROM(
|
SELECT
|
qty_arrived AS quality_value,
|
'产量' AS chart_type,
|
quality_date,
|
name,
|
work_shop
|
FROM
|
(
|
SELECT
|
SUM ( CAST ( G.qty_arrived AS NUMERIC ) ) AS qty_arrived,
|
SUM ( CAST ( G.unqualified_arrived AS NUMERIC ) ) AS unqualified_arrived,
|
pmo.work_shop,
|
too.name,
|
to_char( qr.update_time, 'YYYYMM' ) AS quality_date
|
FROM
|
(
|
SELECT Max
|
( CAST ( qap.qty_arrived AS NUMERIC ) ) AS qty_arrived,
|
MAX ( CAST ( qap.unqualified_arrived AS NUMERIC ) ) AS unqualified_arrived,
|
SUM ( CAST ( ppo.product_qty AS NUMERIC ) ) AS product_qty,
|
MAX ( qap.report_id ) AS report_id,
|
MAX ( ppo.product_main_id ) AS product_main_id,
|
MAX ( qap.part_id ) AS part_id
|
FROM
|
quality_apply_part qap
|
JOIN ( SELECT MAX ( ID ) AS ID FROM quality_apply_part GROUP BY system_no ) A ON qap.ID = A.
|
ID JOIN production_product_output ppo ON qap.lot_batch_no = ppo.out_batch_no
|
GROUP BY
|
qap.lot_batch_no
|
) G
|
JOIN quality_report qr ON G.report_id = qr.ID
|
JOIN production_product_main ppm ON G.product_main_id = ppm.ID
|
JOIN production_operation_task_supply pots ON ppm.operation_task_id = pots.operation_task_id
|
JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo.ID
|
JOIN production_operation_task pot ON pots.operation_task_id = pot.ID
|
LEFT JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
JOIN basic_part bp ON G.part_id = bp.ID
|
<where>
|
<if test="input.workShop != null and input.workShop != ''">
|
AND pmo.work_shop = #{input.workShop}
|
</if>
|
<if test="input.dateBefore != null and input.dateAfter != ''">
|
AND to_char( qr.update_time, 'YYYYMMDD' ) between #{input.dateBefore} and #{input.dateAfter}
|
</if>
|
<if test="input.operationIdList!=null and input.operationIdList.size>0">
|
and too.id in
|
<foreach collection="input.operationIdList" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach>
|
</if>
|
<if test="input.partNoList!=null and input.partNoList.size>0">
|
and bp.part_no in
|
<foreach collection="input.partNoList" item="partNo" index="index" open="(" close=")" separator=",">
|
#{partNo}
|
</foreach>
|
</if>
|
<if test="input.partName != null and input.partName != ''">
|
AND bp.part_name = #{input.partName}
|
</if>
|
</where>
|
GROUP BY
|
to_char( qr.update_time, 'YYYYMM' ),
|
pmo.work_shop,
|
too.name
|
ORDER BY
|
to_char( qr.update_time, 'YYYYMM' ) ,pmo.work_shop,too.name DESC
|
) A UNION
|
SELECT
|
round( qty_arrived / product_qty * 100, 2 ) AS quality_value,
|
'合格率' AS chart_type,
|
quality_date,
|
name,
|
work_shop
|
FROM
|
(
|
SELECT
|
SUM ( CAST ( G.qty_arrived AS NUMERIC ) ) AS qty_arrived,
|
SUM ( CAST ( G.unqualified_arrived AS NUMERIC ) ) AS unqualified_arrived,
|
SUM ( CAST ( G.product_qty AS NUMERIC ) ) AS product_qty,
|
pmo.work_shop,
|
too.name,
|
to_char( qr.update_time, 'YYYYMM' ) AS quality_date
|
FROM
|
(
|
|
|
SELECT Max
|
( CAST ( qap.qty_arrived AS NUMERIC ) ) AS qty_arrived,
|
MAX ( CAST ( qap.unqualified_arrived AS NUMERIC ) ) AS unqualified_arrived,
|
SUM ( CAST ( ppo.product_qty AS NUMERIC ) ) AS product_qty,
|
MAX ( qap.report_id ) AS report_id,
|
MAX ( ppo.product_main_id ) AS product_main_id,
|
MAX ( qap.part_id ) AS part_id
|
FROM
|
quality_apply_part qap
|
JOIN ( SELECT MAX ( ID ) AS ID FROM quality_apply_part GROUP BY system_no ) A ON qap.ID = A.
|
ID JOIN production_product_output ppo ON qap.lot_batch_no = ppo.out_batch_no
|
GROUP BY
|
qap.lot_batch_no
|
|
|
|
) G
|
|
JOIN quality_report qr ON G.report_id = qr.ID
|
|
JOIN production_product_main ppm ON G.product_main_id = ppm.ID
|
JOIN production_operation_task_supply pots ON ppm.operation_task_id = pots.operation_task_id
|
JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo.ID
|
JOIN production_operation_task pot ON pots.operation_task_id = pot.ID
|
LEFT JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
JOIN basic_part bp ON G.part_id = bp.ID
|
<where>
|
<if test="input.workShop != null and input.workShop != ''">
|
AND pmo.work_shop = #{input.workShop}
|
</if>
|
<if test="input.dateBefore != null and input.dateAfter != ''">
|
AND to_char( qr.update_time, 'YYYYMMDD' ) between #{input.dateBefore} and #{input.dateAfter}
|
</if>
|
<if test="input.operationIdList!=null and input.operationIdList.size>0">
|
and too.id in
|
<foreach collection="input.operationIdList" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach>
|
</if>
|
<if test="input.partNoList!=null and input.partNoList.size>0">
|
and bp.part_no in
|
<foreach collection="input.partNoList" item="partNo" index="index" open="(" close=")" separator=",">
|
#{partNo}
|
</foreach>
|
</if>
|
<if test="input.partName != null and input.partName != ''">
|
AND bp.part_name = #{input.partName}
|
</if>
|
</where>
|
GROUP BY
|
to_char( qr.update_time, 'YYYYMM' ),
|
pmo.work_shop,
|
too.name
|
ORDER BY
|
to_char( qr.update_time, 'YYYYMM' ) ,pmo.work_shop,too.name DESC
|
) B
|
) C ORDER BY quality_date,work_shop,
|
name ASC
|
</select>
|
|
<select id="selectMoRoutingOperationBySystemNo" resultType="com.chinaztt.mes.quality.dto.MoRoutingOperationDTO">
|
SELECT
|
pots.mo_id,
|
pot.mo_routing_operation_id id
|
FROM
|
production_product_output ppo
|
LEFT JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
LEFT JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
LEFT JOIN production_operation_task_supply pots ON pot."id" = pots.operation_task_id
|
WHERE
|
ppo.system_no = #{systemNo}
|
LIMIT 1
|
</select>
|
|
<select id="selectMoTestStandardByMoRoutingOperationIdAndMoId"
|
resultType="com.chinaztt.mes.quality.dto.MoTestStandardDTO">
|
SELECT pmts.* FROM plan_mo_test_standard pmts
|
INNER JOIN (
|
SELECT pmoro.id, pmoro.mo_id FROM
|
plan_manufacturing_order_routing_operation pmoro
|
WHERE
|
pmoro.mo_id = #{moId}
|
AND pmoro.operation_order =
|
(
|
SELECT operation_order + 1 FROM plan_manufacturing_order_routing_operation WHERE "id" = #{moRoutingOperationId}
|
)
|
) pmoro ON pmts.mo_id = pmoro.mo_id AND pmoro.id = pmts.mo_routing_operation_id
|
</select>
|
|
<select id="isExistFinishedApplyPart" resultType="boolean">
|
SELECT
|
CASE WHEN COUNT(*) = 0 THEN FALSE
|
ELSE TRUE
|
END res
|
FROM
|
(SELECT * FROM quality_apply_part WHERE system_no = #{systemNo}) qap
|
INNER JOIN quality_apply qa ON qap.apply_id = qa."id"
|
WHERE
|
qa.apply_type = '06finishedproduct'
|
</select>
|
|
<select id="selectTestRulesBySystemNo" resultType="java.lang.String">
|
SELECT
|
pmts.inspection_type
|
FROM production_product_output ppo
|
INNER JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
INNER JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
INNER JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id"
|
INNER JOIN technology_operation too ON pmoro.operation_id = too."id"
|
INNER JOIN plan_mo_test_standard pmts ON pmts.mo_id = pmoro.mo_id AND pmts.mo_routing_operation_id = pot.mo_routing_operation_id
|
WHERE
|
ppo.system_no = #{systemNo}
|
GROUP BY pmts.inspection_type
|
</select>
|
|
<select id="getTestApplyPage" resultMap="applyPartMap">
|
SELECT * FROM (
|
SELECT
|
qa.apply_no,
|
qa.apply_type,
|
qa.create_time apply_time,
|
ppo.reel_number,
|
qap.system_no,
|
qap.lot_batch_no out_batch_no,
|
qap.id,
|
qap.part_no,
|
qap.part_desc part_name,
|
qap.total_length,
|
qap.replace_part_no,
|
qap.check_length,
|
qap.scrap_arrived,
|
qr.id report_id,
|
qr.report_no,
|
qr.report_person,
|
too."name" operation_name,
|
COALESCE(bs1.staff_name, qa.create_user) apply_user,
|
COALESCE(bs3.staff_name, ppo.create_user) produce_user,
|
pmo.mo_no,
|
bw."name" workstation_name,
|
qr.check_time,
|
CASE
|
WHEN
|
qr.is_submit = 't' THEN
|
'汇报已提交'
|
WHEN qr.is_submit = 'f' THEN
|
'汇报未提交'
|
WHEN qr."id" IS NULL THEN
|
'汇报未创建' ELSE'汇报未提交'
|
END report_state,
|
CASE
|
WHEN
|
qap.source_location_id IS NULL THEN
|
FALSE
|
ELSE TRUE
|
END is_not_out_check
|
FROM
|
quality_apply qa
|
LEFT JOIN quality_apply_part qap ON qap.apply_id = qa."id"
|
LEFT JOIN production_product_output ppo ON qap.system_no = ppo.system_no
|
LEFT JOIN production_product_main ppm ON ppo.product_main_id = ppm."id"
|
LEFT JOIN production_operation_task pot ON ppm.operation_task_id = pot."id"
|
LEFT JOIN basic_workstation bw ON ppm.workstation_id = bw."id"
|
LEFT JOIN quality_report qr ON qap.report_id = qr."id"
|
LEFT JOIN technology_operation too ON qap.operation_id = too."id"
|
LEFT JOIN production_operation_task_supply pots ON pot."id" = pots.operation_task_id
|
LEFT JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo."id"
|
LEFT JOIN basic_staff bs1 ON qa.create_user = bs1.staff_no
|
LEFT JOIN basic_staff bs3 ON ppo.create_user = bs3.staff_no
|
WHERE
|
qap.id IS NOT NULL
|
<if test="queryType == 0">
|
AND qr."id" IS NULL
|
</if>
|
<if test="queryType == 1">
|
AND qr."id" IS NOT NULL
|
</if>
|
ORDER BY qap.system_no,qa.apply_no ASC
|
) TEMP
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<update id="removeReplacePart">
|
UPDATE quality_apply_part
|
SET replace_part_id = NULL,
|
replace_part_no = NULL,
|
replace_part_name = NULL
|
WHERE
|
id = #{id}
|
</update>
|
</mapper>
|