<?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.ruoyi.production.mapper.ProductOrderMapper">
|
|
|
<resultMap id="basicMap" type="com.ruoyi.production.pojo.ProductOrder">
|
<id property="id" column="id"/>
|
<result property="tenantId" column="tenant_id"/>
|
<result property="routeId" column="route_id"/>
|
<result property="npsNo" column="nps_no"/>
|
<result property="createTime" column="create_time"/>
|
<result property="updateTime" column="update_time"/>
|
<result property="planCompleteTime" column="plan_complete_time"/>
|
<result property="status" column="status"/>
|
</resultMap>
|
|
<select id="pageProductOrder" resultType="com.ruoyi.production.dto.ProductOrderDto">
|
SELECT
|
po.id,
|
po.nps_no,
|
po.tenant_id,
|
po.create_time,
|
po.update_time,
|
po.route_id,
|
po.quantity,
|
po.complete_quantity,
|
po.start_time,
|
po.end_time,
|
po.plan_complete_time,
|
po.status,
|
pm.product_name,
|
po.strength AS strength,
|
pr.process_route_code AS processRouteCode,
|
pr.description,
|
pb.id AS bomId,
|
pb.bom_no AS bomNo,
|
ROUND(po.complete_quantity / po.quantity * 100, 2) AS completionStatus,
|
pms.model,
|
pms.material_code AS materialCode
|
FROM product_order po
|
LEFT JOIN process_route pr ON po.route_id = pr.id
|
LEFT JOIN product_bom pb ON pr.bom_id = pb.id
|
LEFT JOIN product_order_plan pop ON po.id = pop.product_order_id
|
LEFT JOIN production_plan pp ON pop.production_plan_id = pp.id
|
LEFT JOIN product_material_sku pms ON pms.id = pp.product_material_sku_id
|
LEFT JOIN product_material pm ON pm.id = pms.product_id
|
<where>
|
<if test="c.npsNo != null and c.npsNo != ''">
|
AND po.nps_no LIKE CONCAT('%', #{c.npsNo}, '%')
|
</if>
|
<if test="c.startTime != null and c.endTime != null">
|
AND po.create_time BETWEEN #{c.startTime} AND #{c.endTime}
|
</if>
|
</where>
|
</select>
|
|
<select id="listProcessRoute" resultType="com.ruoyi.production.pojo.ProcessRoute">
|
select pr.*
|
from process_route pr
|
left join product_material_sku pms on pms.id = pr.product_model_id
|
where pms.id = #{productModelId}
|
</select>
|
<select id="listProcessBom" resultType="com.ruoyi.production.dto.ProductStructureDto">
|
select ps.id,
|
ps.product_model_id,
|
ps.process_id,
|
ps.unit_quantity,
|
ps.unit_quantity * po.quantity as demandedQuantity,
|
ps.unit,
|
p.product_name,
|
pp.name as process_name,
|
pm.product_id,
|
pm.model
|
from product_structure ps
|
left join product_model pm on ps.product_model_id = pm.id
|
left join product p on pm.product_id = p.id
|
left join product_process pp on ps.process_id = pp.id
|
left join product_process_route ppr on ps.bom_id = ppr.bom_id
|
left join product_order po on po.id = ppr.product_order_id
|
where ppr.product_order_id = #{orderId}
|
order by ps.id
|
</select>
|
|
|
<select id="countCreated" resultType="java.lang.Integer">
|
SELECT count(1)
|
FROM product_order
|
WHERE create_time >= #{startDate}
|
AND create_time <= #{endDate}
|
</select>
|
|
<select id="countCompleted" resultType="java.lang.Integer">
|
SELECT count(1)
|
FROM product_order
|
WHERE end_time >= #{startDate}
|
AND end_time <= #{endDate}
|
AND complete_quantity >= quantity
|
</select>
|
|
<select id="countPending" resultType="java.lang.Integer">
|
SELECT count(1)
|
FROM product_order
|
WHERE create_time >= #{startDate}
|
AND create_time <= #{endDate}
|
AND complete_quantity < quantity
|
</select>
|
</mapper>
|