<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
~
|
~ Copyright (c) 2018-2025, ztt All rights reserved.
|
~
|
~ Redistribution and use in source and binary forms, with or without
|
~ modification, are permitted provided that the following conditions are met:
|
~
|
~ Redistributions of source code must retain the above copyright notice,
|
~ this list of conditions and the following disclaimer.
|
~ Redistributions in binary form must reproduce the above copyright
|
~ notice, this list of conditions and the following disclaimer in the
|
~ documentation and/or other materials provided with the distribution.
|
~ Neither the name of the pig4cloud.com developer nor the names of its
|
~ contributors may be used to endorse or promote products derived from
|
~ this software without specific prior written permission.
|
~ Author: ztt
|
~
|
-->
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.chinaztt.mes.plan.mapper.ManufacturingOrderSnGenerateMapper">
|
|
|
<resultMap id="planManufacturingOrderSnGenerateMap"
|
type="com.chinaztt.mes.plan.dto.ManufacturingOrderSnGenerateDTO">
|
<id property="id" column="id"/>
|
<result property="operationId" column="operation_id"/>
|
<result property="parentId" column="parent_id"/>
|
<result property="sn" column="sn"/>
|
<result property="productSn" column="product_sn"/>
|
<result property="operationName" column="operation_name"/>
|
<result property="partId" column="part_id"/>
|
<result property="partNo" column="part_no"/>
|
<result property="partName" column="part_name"/>
|
<result property="moQty" column="mo_qty"/>
|
<result property="customerOrderNo" column="customer_order_no"/>
|
<result property="mpsId" column="mps_id"/>
|
<result property="otcLineNo" column="otc_line_no"/>
|
<result property="discToolMeasurement" column="disc_tool_measurement"/>
|
<result property="remark" column="remark"/>
|
<result property="section" column="section"/>
|
<result property="customerName" column="customer_name"/>
|
<result property="joinDocBomRoutingId" column="join_doc_bom_routing_id"/>
|
<result property="partPitch" column="part_pitch"/>
|
<result property="produceStatus" column="produce_status"/>
|
<result property="isGenerateSn" column="is_generate_sn"/>
|
<result property="isReproduce" column="is_reproduce"/>
|
<result property="originalSn" column="original_sn"/>
|
<result property="meterMark" column="meter_mark"/>
|
<result property="orderUploadRemark" column="order_upload_remark"/>
|
</resultMap>
|
|
<select id="selectListByProductSN" resultMap="planManufacturingOrderSnGenerateMap">
|
SELECT
|
mosg.*,
|
o.NAME operation_name,
|
pmo.qty_required mo_qty,
|
bp.part_no,
|
bp.part_name,
|
pmo.part_id
|
FROM
|
plan_manufacturing_order_sn_generate mosg
|
LEFT JOIN technology_operation o ON o.ID = mosg.operation_id
|
LEFT JOIN plan_manufacturing_order pmo ON pmo."id" = mosg.current_mo_id
|
LEFT JOIN basic_part bp ON bp.id = pmo.part_id
|
WHERE mosg.product_sn = #{productSn}
|
</select>
|
|
<select id="selectListByMoId" resultMap="planManufacturingOrderSnGenerateMap">
|
SELECT
|
mosg.*,
|
o.NAME operation_name,
|
pmo.qty_required mo_qty,
|
bp.part_no,
|
bp.part_name,
|
pmo.part_id
|
FROM
|
plan_manufacturing_order_sn_generate mosg
|
LEFT JOIN technology_operation o ON o.ID = mosg.operation_id
|
LEFT JOIN plan_manufacturing_order pmo ON pmo."id" = mosg.current_mo_id
|
LEFT JOIN basic_part bp ON bp.id = pmo.part_id
|
WHERE mosg.mo_id = #{moId}
|
</select>
|
|
<select id="getProductSnsByCustomerOrderNo" resultType="java.lang.String">
|
SELECT DISTINCT product_sn
|
FROM plan_manufacturing_order_sn_generate
|
WHERE customer_order_no LIKE #{customerOrderNo}
|
</select>
|
<select id="getProductSnByCustomerNoAndPartName" resultType="java.lang.String">
|
select distinct product_sn
|
from plan_manufacturing_order_sn_generate pmosg
|
left join plan_manufacturing_order pmo on pmosg.mo_id = pmo.id
|
left join basic_part bp on bp.id = pmo.part_id
|
where bp.part_name = #{partName}
|
<bind name="customerOrderNo" value="'%' + customerOrderNo + '%'"/>
|
and pmosg.customer_order_no like #{customerOrderNo}
|
</select>
|
|
<select id="getTaskDetailPage" resultMap="planManufacturingOrderSnGenerateMap">
|
SELECT * FROM (
|
SELECT
|
pmosg.*,
|
pcopt.qty,
|
pcopt.sn_no,
|
pcopt.otc_line_no,
|
pcopt.SECTION,
|
pcopt.disc_tool_measurement,
|
pcopt.customer_name,
|
pcopt.order_upload_remark,
|
bp.part_no,
|
bp.part_name,
|
bp.part_pitch,
|
o.NAME operation_name
|
FROM
|
plan_manufacturing_order_sn_generate pmosg
|
LEFT JOIN plan_customer_order_produce_task pcopt ON pmosg.merge_sn_no = pcopt.merge_sn_no
|
LEFT JOIN basic_part bp ON bp.ID = pmosg.part_id
|
LEFT JOIN technology_operation o ON o."id" = pmosg.operation_id
|
WHERE
|
pmosg.product_sn IS NULL
|
UNION
|
SELECT
|
DISTINCT
|
pmosg.*,
|
pcopt.qty,
|
pcopt.sn_no,
|
pcopt.otc_line_no,
|
pcopt.SECTION,
|
pcopt.disc_tool_measurement,
|
pcopt.customer_name,
|
pcopt.order_upload_remark,
|
bp.part_no,
|
bp.part_name,
|
bp.part_pitch,
|
o.NAME operation_name
|
FROM
|
plan_manufacturing_order_sn_generate pmosg
|
LEFT JOIN plan_customer_order_produce_task pcopt ON pmosg.merge_sn_no = pcopt.merge_sn_no
|
LEFT JOIN basic_part bp ON bp.ID = pmosg.part_id
|
LEFT JOIN technology_operation o ON o."id" = pmosg.operation_id
|
WHERE
|
pmosg.product_sn IS NOT NULL AND pmosg.product_sn = pcopt.sn_no
|
) TEMP
|
<where>
|
<if test="customerOrderNo != null and customerOrderNo != ''">
|
customer_order_no = #{customerOrderNo}
|
</if>
|
<if test="customerName != null and customerName != ''">
|
AND customer_name LIKE CONCAT('%', #{customerName}, '%')
|
</if>
|
<if test="operationId != null">
|
AND operation_id = #{operationId}
|
</if>
|
</where>
|
ORDER BY merge_sn_no, sn_no, sn ASC
|
</select>
|
|
<select id="getTaskDetailPageByWorkstation" resultMap="planManufacturingOrderSnGenerateMap">
|
SELECT * FROM (
|
SELECT
|
pmosg.*,
|
pcopt.qty,
|
pcopt.sn_no,
|
pcopt.otc_line_no,
|
pcopt.SECTION,
|
pcopt.disc_tool_measurement,
|
pcopt.customer_name,
|
pcopt.meter_mark,
|
pcopt.order_upload_remark,
|
bp.part_no,
|
bp.part_name,
|
bp.part_pitch,
|
o.NAME operation_name
|
FROM
|
plan_manufacturing_order_sn_generate pmosg
|
LEFT JOIN plan_customer_order_produce_task pcopt ON pmosg.merge_sn_no = pcopt.merge_sn_no
|
LEFT JOIN basic_part bp ON bp.ID = pmosg.part_id
|
LEFT JOIN technology_operation o ON o."id" = pmosg.operation_id
|
LEFT JOIN technology_join_document_bom_routing tjdbr ON tjdbr."id" = pmosg.join_doc_bom_routing_id
|
WHERE
|
pmosg.product_sn IS NULL
|
UNION
|
SELECT
|
DISTINCT
|
pmosg.*,
|
pcopt.qty,
|
pcopt.sn_no,
|
pcopt.otc_line_no,
|
pcopt.SECTION,
|
pcopt.disc_tool_measurement,
|
pcopt.customer_name,
|
pcopt.meter_mark,
|
pcopt.order_upload_remark,
|
bp.part_no,
|
bp.part_name,
|
bp.part_pitch,
|
o.NAME operation_name
|
FROM
|
plan_manufacturing_order_sn_generate pmosg
|
LEFT JOIN plan_customer_order_produce_task pcopt ON pmosg.merge_sn_no = pcopt.merge_sn_no
|
LEFT JOIN basic_part bp ON bp.ID = pmosg.part_id
|
LEFT JOIN technology_operation o ON o."id" = pmosg.operation_id
|
LEFT JOIN technology_join_document_bom_routing tjdbr ON tjdbr."id" = pmosg.join_doc_bom_routing_id
|
WHERE
|
pmosg.product_sn IS NOT NULL AND pmosg.product_sn = pcopt.sn_no
|
) TEMP
|
<where>
|
<if test="mpsId != null">
|
mps_id = #{mpsId}
|
</if>
|
<if test="moId != null ">
|
AND current_mo_id = #{moId}
|
</if>
|
<if test="operationIds != null and operationIds.size() != 0">
|
AND operation_id in
|
<foreach collection="operationIds" item="item" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="produceStatus != null">
|
AND produce_status = #{produceStatus}
|
</if>
|
</where>
|
ORDER BY merge_sn_no ASC
|
</select>
|
|
<select id="getOperationInfo" resultType="com.chinaztt.mes.technology.entity.Operation">
|
SELECT
|
DISTINCT
|
o.*
|
FROM
|
plan_manufacturing_order_sn_generate pmosg
|
LEFT JOIN technology_operation o ON o."id" = pmosg.operation_id
|
WHERE
|
pmosg.mps_id = #{mpsId}
|
</select>
|
|
<select id="getJoinDocBomRoutingIdByOperationTaskId" resultType="com.chinaztt.mes.plan.dto.ManufacturingOrderSnGenerateDTO">
|
SELECT
|
pmo."id" mo_id,
|
tro.operation_id
|
FROM
|
production_operation_task pot
|
LEFT JOIN technology_routing_operation tro ON pot.routing_operation_id = tro."id"
|
LEFT JOIN production_operation_task_supply pots ON pot."id" = pots.operation_task_id
|
LEFT JOIN plan_manufacturing_order pmo ON pmo."id" = pots.mo_id
|
WHERE
|
pot."id" = #{operationTaskId}
|
</select>
|
</mapper>
|