wms/nflg-wms-repository/src/main/resources/mapper/QmsIncomingInspectionTaskMa...

260 lines
10 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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.nflg.wms.repository.mapper.QmsIncomingInspectionTaskMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO">
SELECT
t.id,
t.task_no,
t.request_no,
t.material_id,
m.material_no,
m.material_desc,
m.drawing_no_ver,
t.inspection_standard_id,
s.version AS standard_version,
t.supplier_code,
t.supplier_name,
t.delivery_order_no,
t.delivery_order_line,
t.purchase_order_no,
t.purchase_order_line,
t.factory,
t.inspection_type,
t.inspection_qty,
t.qualified_qty,
t.unqualified_qty,
t.inspection_status,
t.inspection_result,
t.inspector_id,
t.inspector_name,
t.agent_id,
t.agent_name,
CASE
WHEN t.agent_name IS NOT NULL AND t.inspector_name IS NOT NULL AND t.agent_name != t.inspector_name
THEN t.agent_name || '' || t.inspector_name
ELSE COALESCE(t.agent_name, t.inspector_name)
END AS current_handler_name,
t.submit_time,
t.inspection_start_time,
t.inspection_finish_time,
t.required_finish_time,
t.is_overdue,
t2.task_no as related_task_no,
t.update_user_id,
t.update_user_name,
t.update_time,
t.purchase_group,
t.callback_result,
t.warehouse,
t.storage_days,
t.storage_location,
t.detection_qty
FROM qms_incoming_inspection_task t
LEFT JOIN qms_qc_material m ON t.material_id = m.id
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
LEFT JOIN qms_incoming_inspection_task t2 ON t.related_task_id = t2.id
<where>
<if test="request.dataType != null">
AND t.data_type = #{request.dataType}
</if>
<if test="request.materialNo != null and request.materialNo != ''">
AND m.material_no ilike concat('%', #{request.materialNo}, '%')
</if>
<if test="request.purchaseOrderNo != null and request.purchaseOrderNo != ''">
AND t.purchase_order_no ilike concat('%', #{request.purchaseOrderNo}, '%')
</if>
<if test="request.supplierName != null and request.supplierName != ''">
AND t.supplier_name ilike concat('%', #{request.supplierName}, '%')
</if>
<if test="request.inspectorName != null and request.inspectorName != ''">
AND t.inspector_name ilike concat('%', #{request.inspectorName}, '%')
</if>
<if test="request.inspectionStatus != null">
AND t.inspection_status = #{request.inspectionStatus}
</if>
<if test="request.factory != null and request.factory != ''">
AND t.factory = #{request.factory}
</if>
<if test="request.warehouse != null and request.warehouse != ''">
AND t.warehouse = #{request.warehouse}
</if>
<if test="request.deliveryOrderNo != null and request.deliveryOrderNo != ''">
AND t.delivery_order_no ilike concat('%', #{request.deliveryOrderNo}, '%')
</if>
<if test="request.inspectionResult != null">
AND t.inspection_result = #{request.inspectionResult}
</if>
<if test="request.isOverdue != null">
AND t.is_overdue = #{request.isOverdue}
</if>
<if test="request.submitStartDate != null">
AND t.submit_time &gt;= #{request.submitStartDate}
</if>
<if test="request.submitEndDate != null">
AND t.submit_time &lt; #{request.submitEndDate} + INTERVAL '1 day'
</if>
<if test="request.inspectionBeginStartDate != null">
AND t.inspection_start_time >= #{request.inspectionBeginStartDate}
</if>
<if test="request.inspectionBeginEndDate != null">
AND t.inspection_start_time &lt; #{request.inspectionBeginEndDate} + INTERVAL '1 day'
</if>
<if test="request.inspectionStartDate != null">
AND t.inspection_finish_time &gt;= #{request.inspectionStartDate}
</if>
<if test="request.inspectionEndDate != null">
AND t.inspection_finish_time &lt; #{request.inspectionEndDate} + INTERVAL '1 day'
</if>
</where>
ORDER BY t.id DESC
</select>
<select id="todoSearch" resultType="com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO">
SELECT
t.id,
t.task_no,
t.request_no,
t.material_id,
m.material_no,
m.material_desc,
m.drawing_no_ver,
t.inspection_standard_id,
s.version AS standard_version,
t.supplier_code,
t.supplier_name,
t.delivery_order_no,
t.delivery_order_line,
t.purchase_order_no,
t.purchase_order_line,
t.factory,
t.inspection_type,
t.inspection_qty,
t.qualified_qty,
t.unqualified_qty,
t.inspection_status,
t.inspection_result,
t.inspector_id,
t.inspector_name,
t.agent_id,
t.agent_name,
CASE
WHEN t.agent_name IS NOT NULL AND t.inspector_name IS NOT NULL AND t.agent_name != t.inspector_name
THEN t.agent_name || '' || t.inspector_name
ELSE COALESCE(t.agent_name, t.inspector_name)
END AS current_handler_name,
t.submit_time,
t.inspection_start_time,
t.inspection_finish_time,
t.required_finish_time,
t.is_overdue,
t2.task_no as related_task_no,
t.update_user_id,
t.update_user_name,
t.update_time,
t.detection_qty
FROM qms_incoming_inspection_task t
LEFT JOIN qms_qc_material m ON t.material_id = m.id
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
LEFT JOIN qms_incoming_inspection_task t2 ON t.related_task_id = t2.id
<where>
<choose>
<when test="request.isOverdue != null">
t.is_overdue = #{request.isOverdue}
</when>
<when test="request.inspectionStatus != null">
t.inspection_status = #{request.inspectionStatus}
</when>
</choose>
AND (t.inspector_id = #{inspectorId} OR t.agent_id = #{inspectorId})
<if test="request.key != null and request.key != ''">
AND (m.material_no ilike concat('%', #{request.key}, '%')
or m.material_desc ilike concat('%', #{request.key}, '%')
or m.drawing_no ilike concat('%', #{request.key}, '%')
or t.task_no ilike concat('%', #{request.key}, '%')
or t.supplier_code ilike concat('%', #{request.key}, '%')
or t.supplier_name ilike concat('%', #{request.key}, '%')
)
</if>
</where>
ORDER BY t.required_finish_time ASC
</select>
<select id="getDetail" resultType="com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO">
SELECT t.id,
t.task_no,
t.request_no,
t.material_id,
m.material_no,
m.material_desc,
m.drawing_no_ver,
m.material_specifications,
t.inspection_standard_id,
s.version AS standard_version,
t.supplier_code,
t.supplier_name,
t.delivery_order_no,
t.delivery_order_line,
t.purchase_order_no,
t.purchase_order_line,
t.factory,
t.inspection_type,
t.inspection_qty,
t.qualified_qty,
t.unqualified_qty,
t.inspection_status,
t.inspection_result,
t.inspector_id,
t.inspector_name,
t.agent_id,
t.agent_name,
CASE
WHEN t.agent_name IS NOT NULL AND t.inspector_name IS NOT NULL AND t.agent_name != t.inspector_name
THEN t.agent_name || '' || t.inspector_name
ELSE COALESCE(t.agent_name, t.inspector_name)
END AS current_handler_name,
t.submit_time,
t.inspection_start_time,
t.inspection_finish_time,
t.required_finish_time,
t.is_overdue,
t2.task_no as related_task_no,
t.update_user_id,
t.update_user_name,
t.update_time,
t.purchase_group,
t.warehouse,
t.storage_location,
t.storage_days,
t.callback_result,
t.detection_qty
FROM qms_incoming_inspection_task t
LEFT JOIN qms_qc_material m ON t.material_id = m.id
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
LEFT JOIN qms_incoming_inspection_task t2 ON t.related_task_id = t2.id
WHERE t.id = #{id}
</select>
<select id="getInspectedQty" resultType="java.lang.Integer">
SELECT COALESCE(SUM(inspection_qty),0)
FROM qms_incoming_inspection_task_record
WHERE task_id=#{id}
</select>
<select id="getIncomingTodoNumByUserId" resultType="java.lang.Long">
SELECT COUNT(1)
FROM qms_incoming_inspection_task qiit
INNER JOIN qms_quality_inspector qqi ON qiit.inspector_id=qqi."id"
INNER JOIN "user" u ON u."id"=qqi.user_id
WHERE u."id"=#{userId} AND qiit.inspection_type=0 AND qiit.inspection_status &lt; 2
</select>
<select id="getInventoryTodoNumByUserId" resultType="java.lang.Long">
SELECT COUNT(1)
FROM qms_incoming_inspection_task qiit
INNER JOIN qms_quality_inspector qqi ON qiit.inspector_id=qqi."id"
INNER JOIN "user" u ON u."id"=qqi.user_id
WHERE u."id"=#{userId} AND qiit.inspection_type=1 AND qiit.inspection_status &lt; 2
</select>
</mapper>