2025-09-15 21:56:18 +08:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
|
|
<!DOCTYPE mapper
|
2025-09-25 19:20:28 +08:00
|
|
|
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
|
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
2025-09-15 21:56:18 +08:00
|
|
|
|
|
|
|
|
|
|
<mapper namespace="com.bonus.material.device.mapper.DevMergeMapper">
|
|
|
|
|
|
<select id="list" resultType="com.bonus.material.device.domain.vo.DevMergeVo">
|
2025-09-25 19:20:28 +08:00
|
|
|
|
SELECT
|
|
|
|
|
|
aaa.id AS id,
|
|
|
|
|
|
aaa.create_user AS createUser,
|
|
|
|
|
|
aaa.create_time AS createTime,
|
|
|
|
|
|
aaa.status AS status,
|
|
|
|
|
|
COUNT(bbb.dev_id) AS devCount,
|
2025-10-10 21:51:34 +08:00
|
|
|
|
aaa.order_number AS orderNumber,
|
2025-09-25 19:20:28 +08:00
|
|
|
|
SUM(CASE WHEN mdi.entry_status = 1 THEN 1 ELSE 0 END) AS agree,
|
|
|
|
|
|
SUM(CASE WHEN mdi.entry_status = 2 THEN 1 ELSE 0 END) AS reject
|
|
|
|
|
|
FROM
|
|
|
|
|
|
cs_device_status aaa
|
|
|
|
|
|
LEFT JOIN cs_device_real_dev bbb ON aaa.id = bbb.cs_id
|
2025-10-12 14:16:35 +08:00
|
|
|
|
LEFT JOIN ma_dev_info mdi ON bbb.dev_id = mdi.ma_id AND mdi.is_active = '1'
|
2025-09-25 19:20:28 +08:00
|
|
|
|
where aaa.is_active = 1
|
|
|
|
|
|
<if test="status != null and status != ''">
|
|
|
|
|
|
and aaa.status = #{status}
|
|
|
|
|
|
</if>
|
2025-09-27 11:16:22 +08:00
|
|
|
|
GROUP BY
|
|
|
|
|
|
aaa.id
|
|
|
|
|
|
ORDER BY aaa.status DESC
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<select id="devList" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
|
|
|
|
|
|
SELECT
|
2025-10-10 21:51:34 +08:00
|
|
|
|
cds.order_number AS orderNumber,
|
|
|
|
|
|
cds.create_user AS createUser,
|
|
|
|
|
|
cds.create_time AS createTime,
|
|
|
|
|
|
cds.status AS status,
|
2025-09-22 18:53:28 +08:00
|
|
|
|
mtv.proType,
|
|
|
|
|
|
mtv.mainGx,
|
|
|
|
|
|
mtv.childGx,
|
|
|
|
|
|
mtv.devCategory,
|
|
|
|
|
|
mtv.devSubcategory,
|
|
|
|
|
|
mtv.devName,
|
|
|
|
|
|
mtv.devModel,
|
|
|
|
|
|
mtv.unit_name,
|
|
|
|
|
|
d.ma_id as maId,
|
|
|
|
|
|
d.code as code,
|
|
|
|
|
|
d.identify_code as identifyCode,
|
|
|
|
|
|
d.device_name as deviceName,
|
|
|
|
|
|
d.device_count as deviceCount,
|
|
|
|
|
|
d.brand as brand,
|
|
|
|
|
|
d.production_date as productionDate,
|
|
|
|
|
|
d.working_hours as workingHours,
|
|
|
|
|
|
d.person as person,
|
|
|
|
|
|
d.person_phone as personPhone,
|
|
|
|
|
|
d.create_time as createTime,
|
|
|
|
|
|
d.update_time as updateTime,
|
2025-10-13 14:25:44 +08:00
|
|
|
|
d.on_company as companyId,
|
2025-09-22 18:53:28 +08:00
|
|
|
|
sd.dept_name as companyName,
|
|
|
|
|
|
c.operate_address as operateAddress,
|
2025-10-10 21:51:34 +08:00
|
|
|
|
d.entry_status AS entryStatus,
|
|
|
|
|
|
d.buy_price AS buyPrice
|
|
|
|
|
|
FROM cs_device_real_dev cdrd
|
|
|
|
|
|
LEFT JOIN ma_dev_info d ON cdrd.dev_id = d.ma_id AND d.is_active = '1'
|
|
|
|
|
|
LEFT JOIN cs_device_status cds ON cdrd.cs_id = cds.id
|
2025-10-13 14:25:44 +08:00
|
|
|
|
LEFT JOIN sys_dept sd ON d.on_company = sd.dept_id
|
2025-09-22 18:53:28 +08:00
|
|
|
|
LEFT JOIN bm_company_info c ON sd.dept_id = c.company_id
|
|
|
|
|
|
LEFT JOIN ma_type_view mtv ON mtv.typeId = d.type_id
|
2025-09-15 21:56:18 +08:00
|
|
|
|
<where>
|
2025-10-10 21:51:34 +08:00
|
|
|
|
<if test="orderId != null and orderId != ''">
|
|
|
|
|
|
and cdrd.cs_id = #{orderId}
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</if>
|
|
|
|
|
|
</where>
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<insert id="addOrder" useGeneratedKeys="true" keyProperty="id">
|
2025-10-10 21:51:34 +08:00
|
|
|
|
INSERT INTO cs_device_status (create_user, order_number)
|
|
|
|
|
|
VALUES (#{createUser}, #{orderNumber})
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</insert>
|
|
|
|
|
|
|
|
|
|
|
|
<insert id="insertOrderDevReal">
|
2025-09-25 19:20:28 +08:00
|
|
|
|
INSERT INTO cs_device_real_dev (cs_id, dev_id)
|
|
|
|
|
|
VALUES (#{orderId}, #{maId})
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</insert>
|
|
|
|
|
|
|
|
|
|
|
|
<update id="submitOrder">
|
2025-09-22 18:53:28 +08:00
|
|
|
|
UPDATE cs_device_status
|
|
|
|
|
|
SET status = #{status}
|
|
|
|
|
|
WHERE id = #{id}
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
|
|
<update id="updateDeviceStatus">
|
2025-09-22 18:57:42 +08:00
|
|
|
|
UPDATE ma_dev_info
|
|
|
|
|
|
SET entry_status = 0
|
|
|
|
|
|
WHERE ma_id IN (select dev_id
|
|
|
|
|
|
from cs_device_real_dev
|
|
|
|
|
|
where cs_id = #{id})
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
|
|
<delete id="delOrder">
|
2025-09-25 19:20:28 +08:00
|
|
|
|
update cs_device_status
|
|
|
|
|
|
set is_active = 0
|
|
|
|
|
|
where id = #{id}
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</delete>
|
|
|
|
|
|
|
|
|
|
|
|
<update id="updateDevice">
|
|
|
|
|
|
<foreach collection="list" item="data" separator=";">
|
|
|
|
|
|
UPDATE ma_dev_info SET entry_status = #{data.value} WHERE ma_id = #{data.key}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
|
|
<select id="getDevNoCheck" resultType="int">
|
2025-09-25 19:20:28 +08:00
|
|
|
|
select count(1)
|
|
|
|
|
|
from ma_dev_info
|
|
|
|
|
|
where ma_id IN (select dev_id
|
|
|
|
|
|
from cs_device_real_dev
|
|
|
|
|
|
where cs_id = #{id})
|
|
|
|
|
|
and is_active = 1
|
|
|
|
|
|
and entry_status = 0
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="findFirstLevelTypes" resultType="java.util.Map">
|
|
|
|
|
|
-- 查询一级类型(顶级类型)
|
|
|
|
|
|
SELECT type_id AS value,
|
|
|
|
|
|
level,
|
|
|
|
|
|
type_name AS label,
|
|
|
|
|
|
parent_id AS parentId
|
|
|
|
|
|
FROM ma_type
|
|
|
|
|
|
WHERE parent_id IS NULL
|
|
|
|
|
|
AND del_flag = '0'; -- 排除已删除的数据
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="findSecondAndThirdLevelTypes" resultType="java.util.Map">
|
|
|
|
|
|
-- 根据一级类型ID查询二、三级类型
|
|
|
|
|
|
-- 假设一级类型ID为:100(实际使用时替换为具体的一级类型ID)
|
|
|
|
|
|
SELECT t2.type_id AS value,
|
|
|
|
|
|
t2.level,
|
|
|
|
|
|
t2.type_name AS label,
|
|
|
|
|
|
t2.parent_id AS parentId
|
|
|
|
|
|
FROM ma_type t1
|
|
|
|
|
|
JOIN ma_type t2 ON t1.type_id = t2.parent_id
|
|
|
|
|
|
OR t1.type_id = (SELECT parent_id FROM ma_type WHERE type_id = t2.parent_id)
|
|
|
|
|
|
WHERE t1.type_id = #{firstLevelId} -- 一级类型ID
|
|
|
|
|
|
AND t1.parent_id IS NULL -- 确保t1是一级类型
|
|
|
|
|
|
AND t2.del_flag = '0';
|
|
|
|
|
|
</select>
|
2025-10-10 21:51:34 +08:00
|
|
|
|
|
2025-09-25 19:20:28 +08:00
|
|
|
|
<select id="getFourthToSixthLevelTypes" resultType="java.util.Map">
|
|
|
|
|
|
-- 根据三级类型ID查询四、五、六级类型
|
|
|
|
|
|
-- 假设三级类型ID为:300(实际使用时替换为具体的三级类型ID)
|
|
|
|
|
|
SELECT t.type_id AS value,
|
|
|
|
|
|
t.level,
|
|
|
|
|
|
t.type_name AS label,
|
|
|
|
|
|
t.parent_id AS parentId
|
|
|
|
|
|
FROM ma_type t3
|
|
|
|
|
|
JOIN ma_type t ON t3.type_id = t.parent_id
|
|
|
|
|
|
OR t3.type_id = (SELECT parent_id FROM ma_type WHERE type_id = t.parent_id)
|
|
|
|
|
|
OR t3.type_id = (SELECT parent_id
|
|
|
|
|
|
FROM ma_type
|
|
|
|
|
|
WHERE type_id = (SELECT parent_id FROM ma_type WHERE type_id = t.parent_id))
|
|
|
|
|
|
WHERE t3.type_id = #{thirdLevelId} -- 三级类型ID
|
|
|
|
|
|
AND t.del_flag = '0';
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="getSecondToFifthLevelTypes" resultType="java.util.Map">
|
|
|
|
|
|
-- MySQL 5.x兼容版本:查询二至五级类型
|
2025-10-10 21:51:34 +08:00
|
|
|
|
SELECT t.type_id AS value,
|
|
|
|
|
|
t.level,
|
|
|
|
|
|
t.type_name AS label,
|
|
|
|
|
|
t.parent_id AS parentId
|
2025-09-25 19:20:28 +08:00
|
|
|
|
FROM ma_type t1
|
|
|
|
|
|
-- 二级:直接子节点
|
|
|
|
|
|
LEFT JOIN ma_type t2 ON t1.type_id = t2.parent_id AND t2.del_flag = '0'
|
|
|
|
|
|
-- 三级:二级的子节点
|
|
|
|
|
|
LEFT JOIN ma_type t3 ON t2.type_id = t3.parent_id AND t3.del_flag = '0'
|
|
|
|
|
|
-- 四级:三级的子节点
|
|
|
|
|
|
LEFT JOIN ma_type t4 ON t3.type_id = t4.parent_id AND t4.del_flag = '0'
|
|
|
|
|
|
-- 五级:四级的子节点
|
|
|
|
|
|
LEFT JOIN ma_type t5 ON t4.type_id = t5.parent_id AND t5.del_flag = '0'
|
|
|
|
|
|
-- 合并所有层级结果
|
2025-10-10 21:51:34 +08:00
|
|
|
|
JOIN (SELECT type_id
|
|
|
|
|
|
FROM ma_type
|
|
|
|
|
|
WHERE parent_id = #{firstLevelId}
|
|
|
|
|
|
AND del_flag = '0' -- 二级
|
|
|
|
|
|
UNION
|
|
|
|
|
|
SELECT t3.type_id
|
|
|
|
|
|
FROM ma_type t2
|
|
|
|
|
|
JOIN ma_type t3 ON t2.type_id = t3.parent_id
|
|
|
|
|
|
WHERE t2.parent_id = #{firstLevelId}
|
|
|
|
|
|
AND t3.del_flag = '0' -- 三级
|
|
|
|
|
|
UNION
|
|
|
|
|
|
SELECT t4.type_id
|
|
|
|
|
|
FROM ma_type t2
|
|
|
|
|
|
JOIN ma_type t3 ON t2.type_id = t3.parent_id
|
|
|
|
|
|
JOIN ma_type t4 ON t3.type_id = t4.parent_id
|
|
|
|
|
|
WHERE t2.parent_id = #{firstLevelId}
|
|
|
|
|
|
AND t4.del_flag = '0' -- 四级
|
|
|
|
|
|
UNION
|
|
|
|
|
|
SELECT t5.type_id
|
|
|
|
|
|
FROM ma_type t2
|
|
|
|
|
|
JOIN ma_type t3 ON t2.type_id = t3.parent_id
|
|
|
|
|
|
JOIN ma_type t4 ON t3.type_id = t4.parent_id
|
|
|
|
|
|
JOIN ma_type t5 ON t4.type_id = t5.parent_id
|
|
|
|
|
|
WHERE t2.parent_id = #{firstLevelId}
|
|
|
|
|
|
AND t5.del_flag = '0' -- 五级
|
2025-09-25 19:20:28 +08:00
|
|
|
|
) AS all_levels ON t.type_id = all_levels.type_id
|
|
|
|
|
|
WHERE t1.type_id = #{firstLevelId}
|
|
|
|
|
|
AND t1.parent_id IS NULL -- 确保是一级类型
|
|
|
|
|
|
AND t.del_flag = '0';
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</select>
|
2025-10-10 21:51:34 +08:00
|
|
|
|
<select id="selectTodayOrderCount" resultType="java.lang.Integer">
|
|
|
|
|
|
SELECT COUNT(*)
|
|
|
|
|
|
FROM cs_device_status
|
|
|
|
|
|
WHERE DATE(create_time) = CURDATE()
|
|
|
|
|
|
AND order_number IS NOT NULL
|
|
|
|
|
|
</select>
|
2025-09-15 21:56:18 +08:00
|
|
|
|
</mapper>
|