<?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.plan.mapper.ManufacturingOrderMapper">
|
|
<resultMap id="manufacturingOrderMap" type="com.chinaztt.mes.plan.dto.ManufacturingOrderDTO">
|
<id property="id" column="id"/>
|
<result property="factoryId" column="factory_id"/>
|
<result property="moNo" column="mo_no"/>
|
<result property="mpsNo" column="mps_no"/>
|
<result property="partId" column="part_id"/>
|
<result property="qtyRequired" column="qty_required"/>
|
<result property="qtyFinished" column="qty_finished"/>
|
<result property="operationNames" column="operation_names"/>
|
<result property="requiredDate" column="required_date"/>
|
<result property="state" column="state"/>
|
<result property="remark" column="remark"/>
|
<result property="createTime" column="create_time"/>
|
<result property="updateTime" column="update_time"/>
|
<result property="createUser" column="create_user"/>
|
<result property="updateUser" column="update_user"/>
|
<result property="technologyRoutingId" column="technology_routing_id"/>
|
<result property="factoryName" column="factory_name"/>
|
<result property="partNo" column="part_no"/>
|
<result property="partName" column="part_name"/>
|
<result property="operationPartName" column="operation_part_name"/>
|
<result property="operationPartNo" column="operation_part_no"/>
|
<result property="partDescription" column="part_description"/>
|
<result property="planned" column="planned"/>
|
<result property="unit" column="unit"/>
|
<result property="units" column="units"/>
|
<result property="pda" column="pda"/>
|
<result property="plannedQuantity" column="planned_quantity"/>
|
<result property="completedQuantity" column="completed_quantity"/>
|
<result property="name" column="name"/>
|
<result property="count" column="count"/>
|
<result property="mpsId" column="mps_id"/>
|
<result property="currentOperation" column="current_operation"/>
|
<result property="outerColor" column="outer_color"/>
|
<result property="insulationColor" column="insulation_color"/>
|
<result property="customerOrderNo" column="customer_order_no"/>
|
<result property="customerName" column="customer_name"/>
|
<result property="lengthRequirement" column="length_requirement"/>
|
<result property="orderRemark" column="order_remark"/>
|
<result property="printRequirement" column="print_requirement"/>
|
<result property="processConfirmStatus" column="process_confirm_status"/>
|
<result property="bomConfirmStatus" column="bom_confirm_status"/>
|
<result property="standardConfirmStatus" column="standard_confirm_status"/>
|
<result property="workShop" column="work_shop"/>
|
<result property="workshopTypeCode" column="workshop_type_code"/>
|
<result property="ifsOrderNo" column="ifs_order_no"/>
|
<result property="ifsReleaseNo" column="ifs_release_no"/>
|
<result property="ifsSequenceNo" column="ifs_sequence_no"/>
|
<result property="ifsSync" column="ifs_sync"/>
|
<result property="qtyApply" column="qty_apply"/>
|
<result property="startDate" column="start_date"/>
|
<result property="endDate" column="end_date"/>
|
<result property="manufactureAttr" column="manufacture_attr"/>
|
<result property="isReportOperation" column="is_report_operation"/>
|
<result property="oriIfsOrderNo" column="ori_ifs_order_no"/>
|
<result property="ratio" column="ratio"/>
|
</resultMap>
|
|
<!-- 待定 -->
|
<select id="getManufacturingOrderPage" resultMap="manufacturingOrderMap">
|
SELECT *
|
FROM (
|
SELECT pmo.*,
|
pmps.mps_no,
|
bf.factory_name,
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
bp.description part_description,
|
pco.customer_name,
|
pco.customer_order_no,
|
ops.operation_names,
|
pcop.value length_requirement,
|
pcop2.value order_remark,
|
pcop3.value print_requirement,
|
round( pmo.qty_finished / pmo.qty_required * 100, 2 ) AS ratio
|
FROM plan_manufacturing_order pmo
|
LEFT JOIN basic_factory bf on bf."id" = pmo.factory_id
|
LEFT JOIN basic_part bp on bp."id" = pmo.part_id
|
LEFT JOIN plan_master_production_schedule pmps ON pmps."id" = pmo.mps_id
|
LEFT JOIN (SELECT
|
pmoro.mo_id,
|
string_agg(too."name", ',' ORDER BY pmoro.operation_order ASC) AS operation_names
|
FROM
|
plan_manufacturing_order_routing_operation pmoro
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
GROUP BY
|
pmoro.mo_id) ops ON ops.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 plan_customer_order_param pcop
|
on pcop.order_id = pco.id and pcop.field = 'LengthRequirement'
|
LEFT JOIN plan_customer_order_param pcop2
|
on pcop2.order_id = pco.id and pcop2.field = 'Remark'
|
LEFT JOIN plan_customer_order_param pcop3
|
on pcop3.order_id = pco.id and pcop3.field = 'PrintRequirement'
|
) a
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<select id="selectDtoById" resultMap="manufacturingOrderMap">
|
SELECT
|
pmo.*,
|
bp.part_no,
|
bp.part_name,
|
bp.unit
|
FROM plan_manufacturing_order pmo
|
LEFT JOIN basic_part bp ON bp."id" = pmo.part_id
|
WHERE pmo.id = #{id}
|
</select>
|
|
<select id="getOperationSupplyById" resultMap="manufacturingOrderMap">
|
SELECT
|
pmo.*,
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
pos.quantity_supply
|
FROM
|
plan_manufacturing_order pmo
|
LEFT JOIN basic_part bp ON bp."id" = pmo.part_id
|
LEFT JOIN production_operation_task_supply pos ON pos.mo_id = pmo."id"
|
LEFT JOIN production_operation_task pot ON pot."id" = pos.operation_task_id
|
WHERE
|
pot."id" = #{id}
|
</select>
|
|
<!-- 待定 -->
|
<select id="getManufacturingOrderPageByCustomer" resultMap="manufacturingOrderMap">
|
SELECT *
|
FROM (
|
SELECT pmo.*,
|
bf.factory_name,
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
bp.description part_description,
|
round( pmo.qty_finished / pmo.qty_required * 100, 2 ) AS ratio
|
FROM plan_manufacturing_order pmo
|
LEFT JOIN basic_factory bf ON bf."id" = pmo.factory_id
|
LEFT JOIN basic_part bp ON bp."id" = pmo.part_id
|
WHERE EXISTS(
|
SELECT A.customer_order_id
|
FROM plan_join_model_customer A
|
WHERE A.model_id = pmo."id"
|
AND A.model = 'plan_manufacturing_order' AND A.customer_order_id IN
|
<foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach>
|
)
|
) a
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<select id="checkOperationTaskStateByMoId" resultType="java.lang.String">
|
SELECT pot.optask_no
|
FROM production_operation_task pot
|
LEFT JOIN production_operation_task_supply pots ON pots.operation_task_id = pot."id"
|
WHERE pots.mo_id = #{moId}
|
AND pot."state" not in
|
<foreach collection="stateList" index="index" item="state" open="(" separator="," close=")">
|
#{state}
|
</foreach>
|
</select>
|
|
<select id="getStatementPage" resultMap="manufacturingOrderMap">
|
SELECT
|
D.part_no,
|
D.part_name,
|
D.unit,
|
D.units,
|
D.operation_part_no,
|
D.operation_part_name,
|
D.mps_no,
|
D.customer_order_no,
|
D.customer_name,
|
D.mo_no,
|
D.NAME,
|
D.required_date,
|
D.qty_required,
|
D.pda,
|
D.planned_quantity,
|
D.completed_quantity,
|
D.count,
|
D.technology_routing_id,
|
D.workshop_type_code
|
FROM
|
(
|
SELECT
|
pco.customer_name,
|
pco.customer_order_no,
|
pmps.mps_no,
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
bps.unit units,
|
bps.part_no operation_part_no,
|
bps.part_name operation_part_name,
|
pmo.mo_no,
|
top."name",
|
pmo.required_date,
|
pmo.qty_required,
|
pmo.technology_routing_id,
|
pmo.workshop_type_code,
|
SUM(pmsc.qpa) * pmo.qty_required AS pda,
|
SUM(oot.planned_quantity) AS planned_quantity,
|
SUM(oot.completed_quantity) AS completed_quantity,
|
CASE
|
WHEN SUM ( oot.completed_quantity ) IS NULL OR SUM ( pmsc.qpa ) * pmo.qty_required IS NULL
|
THEN '0.00%' ELSE TO_CHAR( ROUND(SUM ( oot.completed_quantity ) :: NUMERIC / ( SUM ( pmsc.qpa ) * pmo.qty_required ) :: NUMERIC * 100,4),'fm9999990.00') || '%'
|
END AS count
|
FROM
|
plan_master_production_schedule pmps
|
LEFT JOIN plan_join_model_customer pjmc ON pjmc.model_id = pmps."id" AND pjmc.model = 'plan_master_production_schedule'
|
LEFT JOIN plan_customer_order pco ON pco."id" = pjmc.customer_order_id
|
LEFT JOIN plan_manufacturing_order pmo ON pmo.mps_id = pmps."id"
|
LEFT JOIN basic_part bp ON bp.ID = pmps.part_id
|
LEFT JOIN basic_part bps ON bps."id" = pmo.part_id
|
LEFT JOIN plan_mo_structure_component pmsc ON pmsc.plan_manufacturing_order_id = pmo."id"
|
LEFT JOIN technology_routing_operation tro ON tro.routing_id = pmo.technology_routing_id
|
LEFT JOIN technology_operation top ON top."id" = tro.operation_id
|
LEFT JOIN production_operation_task_supply pots ON pmo."id" = pots.mo_id
|
LEFT JOIN production_operation_task oot ON pots.operation_task_id = oot."id" AND oot.routing_operation_id = tro."id"
|
GROUP BY
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
bps.unit,
|
bps.part_no,
|
bps.part_name,
|
pmps.mps_no,
|
pco.customer_order_no,
|
pco.customer_name,
|
pmo.mo_no,
|
top."name",
|
pmo.required_date,
|
pmo.qty_required,
|
pmo.technology_routing_id,
|
pmo.workshop_type_code
|
ORDER BY
|
pmo.mo_no
|
) D
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
<select id="getManufacturingOrder" resultType="com.chinaztt.mes.plan.dto.MoTestStandardDTO">
|
SELECT DISTINCT pmts.* FROM
|
(SELECT * FROM production_product_output WHERE out_batch_no = #{sn}) pro
|
LEFT JOIN
|
production_product_main ppm ON pro.product_main_id = ppm."id"
|
LEFT JOIN
|
production_operation_task_supply pots ON pots.operation_task_id = ppm.operation_task_id
|
LEFT 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
|
plan_mo_test_standard pmts ON pots.mo_id = pmts.mo_id AND pmts.mo_routing_operation_id = pmoro."id"
|
|
<!-- SELECT DISTINCT pmts.*
|
FROM plan_mo_test_standard pmts
|
INNER JOIN production_operation_task_supply pots ON pots.mo_id = pmts.mo_id
|
INNER JOIN production_product_main prm ON prm.operation_task_id = pots.operation_task_id
|
INNER JOIN
|
(SELECT * FROM production_product_output WHERE out_batch_no = #{sn}) pro
|
ON pro.product_main_id = prm."id" -->
|
</select>
|
|
<select id="getMergeCheckData" resultType="java.lang.String">
|
SELECT DISTINCT keycol
|
FROM (SELECT
|
concat(part_id, '|', technology_routing_id, '|', bom_id) AS keycol
|
FROM
|
plan_manufacturing_order
|
WHERE "id" IN
|
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
) AS foo
|
</select>
|
<select id="getSNByTaskId" resultType="java.lang.String">
|
select distinct pmosg.sn
|
from production_operation_task oot
|
left join production_operation_task_supply pots on pots.operation_task_id = oot."id"
|
left join plan_manufacturing_order_sn_generate pmosg on pots.mo_id = pmosg.current_mo_id
|
where oot.id = #{taskId} limit 1
|
</select>
|
|
|
<select id="getExcelDataByParam" resultType="com.chinaztt.mes.plan.excel.ManufacturingOrderData">
|
SELECT *
|
FROM (
|
SELECT pmo.*,
|
pmps.mps_no,
|
bf.factory_name,
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
bp.description part_description,
|
pco.customer_name,
|
pco.customer_order_no,
|
ops.operation_names,
|
pcop.value length_requirement,
|
pcop2.value order_remark,
|
pcop3.value print_requirement
|
FROM plan_manufacturing_order pmo
|
LEFT JOIN basic_factory bf on bf."id" = pmo.factory_id
|
LEFT JOIN basic_part bp on bp."id" = pmo.part_id
|
LEFT JOIN plan_master_production_schedule pmps ON pmps."id" = pmo.mps_id
|
LEFT JOIN (SELECT
|
pmoro.mo_id,
|
string_agg(too."name", ',' ORDER BY pmoro.operation_order ASC) AS operation_names
|
FROM
|
plan_manufacturing_order_routing_operation pmoro
|
LEFT JOIN technology_operation too ON pmoro.operation_id = too."id"
|
GROUP BY
|
pmoro.mo_id) ops ON ops.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 plan_customer_order_param pcop
|
on pcop.order_id = pco.id and pcop.field = 'LengthRequirement'
|
LEFT JOIN plan_customer_order_param pcop2
|
on pcop2.order_id = pco.id and pcop2.field = 'Remark'
|
LEFT JOIN plan_customer_order_param pcop3
|
on pcop3.order_id = pco.id and pcop3.field = 'PrintRequirement'
|
) a
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
|
<select id="getExcelDataByList" resultType="com.chinaztt.mes.plan.excel.ManufacturingOrderData">
|
SELECT *
|
FROM (
|
SELECT pmo.*,
|
bf.factory_name,
|
bp.part_no,
|
bp.part_name,
|
bp.unit,
|
bp.description part_description
|
FROM plan_manufacturing_order pmo
|
LEFT JOIN basic_factory bf ON bf."id" = pmo.factory_id
|
LEFT JOIN basic_part bp ON bp."id" = pmo.part_id
|
WHERE EXISTS(
|
SELECT A.customer_order_id
|
FROM plan_join_model_customer A
|
WHERE A.model_id = pmo."id"
|
AND A.model = 'plan_manufacturing_order' AND A.customer_order_id IN
|
<foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
|
#{id}
|
</foreach>
|
)
|
) a
|
<if test="ew.emptyOfWhere == false">
|
${ew.customSqlSegment}
|
</if>
|
</select>
|
|
|
<select id="getAllStateByMoId" resultType="java.lang.String">
|
select pot.state from production_operation_task pot
|
left join production_operation_task_supply pots on pot.id = pots.operation_task_id
|
where pots.mo_id = #{moId}
|
</select>
|
|
|
</mapper>
|