<?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.ReportMapper">
|
|
<resultMap id="qualityReportMap" type="com.chinaztt.mes.quality.entity.Report">
|
<id property="id" column="id"/>
|
<result property="reportNo" column="report_no"/>
|
<result property="reportPerson" column="report_person"/>
|
<result property="isSubmit" column="is_submit"/>
|
<result property="remark" column="remark"/>
|
<result property="reportType" column="report_type"/>
|
<result property="checkState" column="check_state"/>
|
<result property="samplingRecordId" column="sampling_record_id"/>
|
</resultMap>
|
|
<resultMap id="submitReportMap" type="com.chinaztt.mes.quality.dto.SubmitReportDTO">
|
<result property="reportId" column="report_id"/>
|
<result property="ifsOrderNo" column="ifs_order_no"/>
|
<result property="ifsReleaseNo" column="ifs_release_no"/>
|
<result property="ifsSequenceNo" column="ifs_sequence_no"/>
|
<result property="partNo" column="part_no"/>
|
<result property="outBatchNo" column="out_batch_no"/>
|
<result property="qtyArrived" column="qty_arrived"/>
|
<result property="engChgLevel" column="eng_chg_level"/>
|
<result property="workstationId" column="workstation_id"/>
|
<result property="ifsLocationArrived" column="ifs_location_arrived"/>
|
<result property="qualifiedLocation" column="qualified_location"/>
|
<result property="unqualifiedLocation" column="unqualified_location"/>
|
<result property="detectionLocation" column="detection_location"/>
|
<result property="ifsBatchNo" column="ifs_batch_no"/>
|
<result property="totalLength" column="total_length"/>
|
<result property="scrapArrived" column="scrap_arrived"/>
|
<result property="nowDutyDate" column="now_duty_date"/>
|
<result property="shiftName" column="shift_name"/>
|
</resultMap>
|
|
<resultMap id="dockingIfsConditionActiveMap" type="com.chinaztt.mes.quality.dto.DockingIfsConditionActiveDTO">
|
<result property="isErp" column="is_erp"/>
|
<result property="reportType" column="report_type"/>
|
<result property="planningMethod" column="planning_method"/>
|
<result property="isLast" column="is_last"/>
|
<result property="inspection" column="inspection"/>
|
<result property="isReportOperation" column="is_report_operation"/>
|
<result property="prodOutIfsSync" column="ifs_sync"/>
|
</resultMap>
|
|
<resultMap id="ifsOperationScrapDTODataBeanMap" type="com.chinaztt.mes.quality.dto.IfsOperationScrapDTO$DataBean">
|
<result property="ORDER_NO" column="ifs_order_no"/>
|
<result property="RELEASE_NO" column="ifs_release_no"/>
|
<result property="SEQUENCE_NO" column="ifs_sequence_no"/>
|
<result property="OPERATION_NO" column="operation_order"/>
|
<result property="REPORTED_SCRAP_QTY" column="scrap_qty"/>
|
<result property="UNSCRAP_QTY" column="un_scrap_qty"/>
|
</resultMap>
|
|
<resultMap id="IfsOperationReportDTOBeanMap" type="com.chinaztt.mes.quality.dto.IfsOperationReportDTO$DataBean">
|
<result property="ORDER_NO" column="ifs_order_no"/>
|
<result property="RELEASE_NO" column="ifs_release_no"/>
|
<result property="SEQUENCE_NO" column="ifs_sequence_no"/>
|
<result property="REPORTED_QTY" column="product_qty"/>
|
<result property="MO_ID" column="mo_id"/>
|
</resultMap>
|
|
|
|
<select id="getApplyTypeBySN" resultType="java.lang.String">
|
SELECT qa.apply_type FROM
|
quality_apply_part AS qap
|
INNER JOIN
|
(SELECT * FROM quality_apply WHERE apply_type IS NOT NULL) AS qa
|
ON qap.apply_id = qa.id
|
WHERE qap.lot_batch_no = #{sn}
|
</select>
|
|
<update id="updateApplyPartReportId">
|
UPDATE quality_apply_part
|
SET report_id = #{reportId}
|
WHERE lot_batch_no = #{sn}
|
</update>
|
|
<update id="updateQualityReportSubmitState">
|
UPDATE quality_report
|
SET is_submit = #{state}
|
WHERE id = #{reportId}
|
</update>
|
|
<update id="updateProductOutIsSynIfs">
|
UPDATE production_product_output
|
SET ifs_sync = #{isSynIfs}
|
WHERE system_no = #{systemNo}
|
</update>
|
|
<select id="getManufacturingOrderInfo" resultMap="submitReportMap">
|
SELECT qap.report_id,pmo.ifs_order_no,pmo.ifs_release_no,pmo.ifs_sequence_no,qap.part_no,ppo.ifs_batch_no,ppo.out_batch_no,qap.qty_arrived,bp.eng_chg_level,pot.workstation_id,pdr.now_duty_date,bs.name as shift_name,qap.total_length,qap.scrap_arrived FROM
|
(SELECT * FROM quality_apply_part WHERE "id" = #{applyPartId}) qap
|
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
|
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_part bp ON qap.part_id = bp."id" --防止零件号重复
|
LEFT JOIN
|
basic_workstation bw ON pot.workstation_id = bw.id
|
left join
|
(select max(product_out_id) product_out_id,max(duty_record_id) duty_record_id
|
from production_product_output_staff group by product_out_id, duty_record_id
|
) T ON T.product_out_id = ppo.id
|
left join production_duty_record pdr on T.duty_record_id = pdr.id
|
left join basic_shift bs on bs."id"=pdr.shift_id
|
</select>
|
|
<select id="getIfsLocationArrivedByWorkstationId" resultType="java.lang.String">
|
SELECT bl.ifs_location FROM
|
(SELECT * FROM basic_workstation WHERE id = #{workstationId}) bw
|
LEFT JOIN
|
(SELECT * FROM basic_workstation_location WHERE location_type = #{locationType}) bwl
|
ON bw."id" = bwl.workstation_id
|
LEFT JOIN
|
basic_location bl ON bwl.location_id = bl."id" LIMIT 1
|
</select>
|
|
<select id="isProdOutLastOperationBySystemNo" resultType="java.lang.Boolean">
|
SELECT COALESCE(pmoro.is_last, FALSE) is_last
|
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"
|
</select>
|
|
<select id="getDockingIfsConditionActive" resultMap="dockingIfsConditionActiveMap">
|
SELECT
|
COALESCE(qap.is_erp,FALSE) is_erp, --null值默认为false
|
qr.report_type,
|
bp.planning_method,
|
COALESCE(pmoro.is_last,FALSE) is_last, --null值默认为false
|
COALESCE(pmoro.inspection,FALSE) inspection, --null值默认为false
|
COALESCE(pmo.is_report_operation,FALSE) is_report_operation, --null值默认为false
|
COALESCE(ppo.ifs_sync,FALSE) ifs_sync --null值默认为false
|
FROM
|
(SELECT * FROM quality_apply_part WHERE "id" = #{id}) qap --is_erp 是否是erp报检、part_id 零件id
|
LEFT JOIN quality_report qr ON qap.report_id = qr."id" --report_type 检测汇报类型
|
LEFT JOIN basic_part bp ON qap.part_id = bp."id" --planning_method 计划方法
|
LEFT JOIN production_product_output ppo ON qap.system_no = ppo.system_no --product_main_id 报工单主表
|
LEFT JOIN production_product_main ppm ON ppo.product_main_id = ppm."id" --operation_task_id 工单id
|
LEFT JOIN production_operation_task_supply pots ON ppm.operation_task_id = pots.operation_task_id --mo_id
|
LEFT JOIN plan_manufacturing_order pmo ON pots.mo_id = pmo."id" --is_report_operation IFS车间订单接收时报告工序
|
LEFT JOIN production_operation_task pot ON ppm.operation_task_id = pot."id" --mo_routing_operation_id 车间订单工艺工序id
|
LEFT JOIN plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id" --is_last 是否是最后一道工序
|
LIMIT 1
|
</select>
|
|
<select id="getIfsOperationScrapDTODataBeanByBatchNo" resultMap="ifsOperationScrapDTODataBeanMap">
|
SELECT
|
DISTINCT
|
ppo.scrap_qty,
|
ppo.scrap_qty un_scrap_qty,
|
pmo.ifs_order_no,
|
pmo.ifs_release_no,
|
pmo.ifs_sequence_no,
|
pmoro.operation_order * 10 operation_order -- mes工序排序 * 10 传给ifs
|
FROM
|
(SELECT SUM(scrap_qty) scrap_qty,MAX(product_main_id) product_main_id FROM production_product_output WHERE out_batch_no = #{batchNo} AND scrap_qty > 0 GROUP BY out_batch_no) ppo --对报废数量按批次号进行汇总,并取最大的报工单主表id进行后续关联
|
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" -- mo_routing_operation_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" -- ifs_order_no、ifs_release_no、ifs_sequence_no
|
LEFT JOIN
|
plan_manufacturing_order_routing_operation pmoro ON pot.mo_routing_operation_id = pmoro."id" --operation_order
|
</select>
|
|
<select id="getIfsOperationReportDTOBeanBySystemNo" resultMap="IfsOperationReportDTOBeanMap">
|
SELECT
|
DISTINCT
|
ppo.product_qty,
|
pmo.ifs_order_no,
|
pmo.ifs_release_no,
|
pmo.ifs_sequence_no,
|
pmo."id" mo_id
|
FROM
|
(
|
SELECT SUM(product_qty) product_qty,MAX(product_main_id) product_main_id FROM production_product_output WHERE out_batch_no IN
|
(SELECT out_batch_no FROM production_product_output WHERE system_no = #{systemNo}) AND product_qty > 0
|
) 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
|
LEFT JOIN
|
plan_manufacturing_order pmo ON pots.mo_id = pmo."id"
|
|
<!--SELECT
|
DISTINCT
|
ppo.product_qty,
|
pmo.ifs_order_no,
|
pmo.ifs_release_no,
|
pmo.ifs_sequence_no,
|
pmo."id" mo_id
|
FROM
|
(SELECT * FROM production_product_output WHERE system_no = #{systemNo} AND product_qty > 0) 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
|
LEFT JOIN
|
plan_manufacturing_order pmo ON pots.mo_id = pmo."id"-->
|
</select>
|
|
<select id="getIfsOperationReportAllOperationNo" resultType="java.lang.Integer">
|
SELECT operation_order * 10 operation_order FROM plan_manufacturing_order_routing_operation WHERE mo_id = #{moId} ORDER BY operation_order ASC
|
</select>
|
|
|
</mapper>
|