From 6ad5c2cdc193cf7bb02884961b7434cd7f607a0d Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 16 四月 2026 10:48:09 +0800
Subject: [PATCH] feat(production): 扩展生产工艺路线支持多产品绑定及工单权限控制
---
src/main/resources/mapper/production/ProcessRouteItemMapper.xml | 87 +++++++++++++++++++++++++++++++++++--------
1 files changed, 71 insertions(+), 16 deletions(-)
diff --git a/src/main/resources/mapper/production/ProcessRouteItemMapper.xml b/src/main/resources/mapper/production/ProcessRouteItemMapper.xml
index 1b5e2b4..a4d62ba 100644
--- a/src/main/resources/mapper/production/ProcessRouteItemMapper.xml
+++ b/src/main/resources/mapper/production/ProcessRouteItemMapper.xml
@@ -1,5 +1,5 @@
-<?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">
+锘�<?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.ProcessRouteItemMapper">
<resultMap id="basicMap" type="com.ruoyi.production.pojo.ProcessRouteItem">
@@ -7,29 +7,84 @@
<result property="routeId" column="route_id"/>
<result property="processId" column="process_id"/>
<result property="productModelId" column="product_model_id"/>
+ <result property="productModelIds" column="product_model_ids"/>
<result property="tenantId" column="tenant_id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="dragSort" column="drag_sort"/>
+ <result property="isQuality" column="is_quality"/>
</resultMap>
<select id="listProcessRouteItemDto" resultType="com.ruoyi.production.dto.ProcessRouteItemDto">
select pri.*,
- pr.description ,
+ pr.description as route_name,
pp.name as process_name,
- pm.speculative_trading_name,
- pm.product_id,
- pm.model,
- p.product_name,
- pm.unit
- from
- process_route_item pri
- left join product_model pm on pri.product_model_id = pm.id
- left join product_process pp on pp.id = pri.process_id
- left join product p on p.id = pm.product_id
- left join process_route pr on pr.id = pri.route_id
- where
- pri.route_id = #{c.routeId}
+ t.speculative_trading_name,
+ t.product_id,
+ t.model,
+ t.product_name,
+ t.unit
+ from process_route_item pri
+ left join product_process pp on pp.id = pri.process_id
+ left join process_route pr on pr.id = pri.route_id
+ left join (
+ select item.id as item_id,
+ group_concat(
+ distinct pm.speculative_trading_name
+ order by
+ case
+ when item.product_model_ids is null or item.product_model_ids = '' then pm.id
+ else find_in_set(pm.id, item.product_model_ids)
+ end
+ separator ','
+ ) as speculative_trading_name,
+ max(pm.product_id) as product_id,
+ group_concat(
+ distinct pm.model
+ order by
+ case
+ when item.product_model_ids is null or item.product_model_ids = '' then pm.id
+ else find_in_set(pm.id, item.product_model_ids)
+ end
+ separator ','
+ ) as model,
+ group_concat(
+ distinct p.product_name
+ order by
+ case
+ when item.product_model_ids is null or item.product_model_ids = '' then pm.id
+ else find_in_set(pm.id, item.product_model_ids)
+ end
+ separator ','
+ ) as product_name,
+ group_concat(
+ distinct pm.unit
+ order by
+ case
+ when item.product_model_ids is null or item.product_model_ids = '' then pm.id
+ else find_in_set(pm.id, item.product_model_ids)
+ end
+ separator ','
+ ) as unit
+ from process_route_item item
+ left join product_model pm
+ on (find_in_set(pm.id, item.product_model_ids) > 0
+ or ((item.product_model_ids is null or item.product_model_ids = '') and pm.id = item.product_model_id))
+ left join product p on p.id = pm.product_id
+ group by item.id
+ ) t on t.item_id = pri.id
+ where pri.route_id = #{c.routeId}
+ <if test="c.productModelId != null">
+ and exists (
+ select 1
+ from product_model pm_filter
+ where (
+ find_in_set(pm_filter.id, pri.product_model_ids) > 0
+ or ((pri.product_model_ids is null or pri.product_model_ids = '') and pm_filter.id = pri.product_model_id)
+ )
+ and pm_filter.id = #{c.productModelId}
+ )
+ </if>
order by pri.drag_sort
</select>
</mapper>
--
Gitblit v1.9.3