2025-01-09 18:29:48 +08:00
|
|
|
|
<?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.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch.TaskDispatchDetailMapper">
|
|
|
|
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
|
|
|
|
|
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
|
|
|
|
|
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
|
|
|
|
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
|
|
|
|
|
-->
|
|
|
|
|
|
<update id="updateOwnerAndPostIdById" parameterType="Long">
|
|
|
|
|
|
update pro_task_dispatch_detail set
|
|
|
|
|
|
<if test="type == 1">owner = null</if>
|
|
|
|
|
|
<if test="type == 2">post_id = null</if>
|
|
|
|
|
|
WHERE id =#{id}
|
|
|
|
|
|
</update>
|
2025-01-20 20:00:28 +08:00
|
|
|
|
<select id="planBbPage" resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO">
|
|
|
|
|
|
SELECT d.code AS projectCode,
|
|
|
|
|
|
d.project_name AS projectName,
|
2025-01-24 19:46:44 +08:00
|
|
|
|
j.plan_no AS taskNo, 0 AS planType,
|
2025-01-20 20:00:28 +08:00
|
|
|
|
e.name AS projectSubName,
|
|
|
|
|
|
c.material_name AS materialName,
|
|
|
|
|
|
f.name AS procdureName,
|
|
|
|
|
|
t.work_time AS workTime,
|
|
|
|
|
|
t.owner,
|
2025-01-21 14:30:21 +08:00
|
|
|
|
b.dispatch_type as type,
|
2025-01-20 20:00:28 +08:00
|
|
|
|
t.amount AS amount,
|
|
|
|
|
|
COALESCE(SUM(CASE WHEN h.work_time IS NULL THEN 0 ELSE h.work_time END), 0) AS bgWorkTime,
|
|
|
|
|
|
COALESCE(SUM(CASE WHEN h.amount IS NULL THEN 0 ELSE h.amount END), 0) AS bgAmount,
|
|
|
|
|
|
t.procedure_status AS wgType, t.end_time AS endTime
|
|
|
|
|
|
FROM pro_task_dispatch_detail t
|
|
|
|
|
|
LEFT JOIN pro_task_dispatch b ON (b.id = t.dispatch_id AND b.tenant_id = 2 AND b.deleted = 0)
|
|
|
|
|
|
LEFT JOIN pro_task_report h ON (h.dispatch_detail_id = t.id AND h.tenant_id = 2 AND h.deleted = 0)
|
|
|
|
|
|
LEFT JOIN pro_process_bom_detail c ON (c.id = b.bom_detail_id AND c.tenant_id = 2 AND c.deleted = 0)
|
|
|
|
|
|
LEFT JOIN project_sale_order d ON (d.id = b.project_id AND d.tenant_id = 2 AND d.deleted = 0)
|
|
|
|
|
|
LEFT JOIN project_sale_order_sub e ON (e.id = b.project_sub_id AND e.tenant_id = 2 AND e.deleted = 0)
|
|
|
|
|
|
LEFT JOIN base_procedure f ON (f.id = t.procedure_id AND f.tenant_id = 2 AND f.deleted = 0)
|
|
|
|
|
|
LEFT JOIN project_plan_task g ON (g.id = b.task_id AND g.tenant_id = 2 AND g.deleted = 0)
|
2025-01-24 19:46:44 +08:00
|
|
|
|
LEFT JOIN project_plan j ON (j.id = b.plan_id AND j.tenant_id = 2 AND j.deleted = 0)
|
2025-01-20 20:00:28 +08:00
|
|
|
|
WHERE t.deleted = 0 AND t.tenant_id = 2
|
|
|
|
|
|
<if test="reqVO.projectCode != null and reqVO.projectCode != ''">
|
|
|
|
|
|
AND d.code = #{reqVO.projectCode}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.projectName != null and reqVO.projectName != ''">
|
|
|
|
|
|
AND d.project_name = #{reqVO.projectName}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.taskNo != null and reqVO.taskNo != ''">
|
2025-01-24 19:46:44 +08:00
|
|
|
|
AND j.plan_no = #{reqVO.taskNo}
|
2025-01-20 20:00:28 +08:00
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.projectSubName != null and reqVO.projectSubName != ''">
|
|
|
|
|
|
AND e.name = #{reqVO.projectSubName}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.materialName != null and reqVO.materialName != ''">
|
|
|
|
|
|
AND c.material_name = #{reqVO.materialName}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.owner != null and reqVO.owner != ''">
|
|
|
|
|
|
AND t.owner = #{reqVO.owner}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
GROUP BY t.id
|
|
|
|
|
|
limit #{reqVO.pageNo},#{reqVO.pageSize}
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="planBb" resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO">
|
|
|
|
|
|
SELECT d.code AS projectCode,
|
|
|
|
|
|
d.project_name AS projectName,
|
2025-01-24 19:46:44 +08:00
|
|
|
|
j.plan_no AS taskNo, 0 AS planType,
|
2025-01-20 20:00:28 +08:00
|
|
|
|
e.name AS projectSubName,
|
|
|
|
|
|
c.material_name AS materialName,
|
|
|
|
|
|
f.name AS procdureName,
|
|
|
|
|
|
t.work_time AS workTime,
|
|
|
|
|
|
t.owner,
|
|
|
|
|
|
t.amount AS amount,
|
|
|
|
|
|
COALESCE(SUM(CASE WHEN h.work_time IS NULL THEN 0 ELSE h.work_time END), 0) AS bgWorkTime,
|
|
|
|
|
|
COALESCE(SUM(CASE WHEN h.amount IS NULL THEN 0 ELSE h.amount END), 0) AS bgAmount,
|
|
|
|
|
|
t.procedure_status AS wgType, t.end_time AS endTime
|
|
|
|
|
|
FROM pro_task_dispatch_detail t
|
|
|
|
|
|
LEFT JOIN pro_task_dispatch b ON (b.id = t.dispatch_id AND b.tenant_id = 2 AND b.deleted = 0)
|
|
|
|
|
|
LEFT JOIN pro_task_report h ON (h.dispatch_detail_id = t.id AND h.tenant_id = 2 AND h.deleted = 0)
|
|
|
|
|
|
LEFT JOIN pro_process_bom_detail c ON (c.id = b.bom_detail_id AND c.tenant_id = 2 AND c.deleted = 0)
|
|
|
|
|
|
LEFT JOIN project_sale_order d ON (d.id = b.project_id AND d.tenant_id = 2 AND d.deleted = 0)
|
|
|
|
|
|
LEFT JOIN project_sale_order_sub e ON (e.id = b.project_sub_id AND e.tenant_id = 2 AND e.deleted = 0)
|
|
|
|
|
|
LEFT JOIN base_procedure f ON (f.id = t.procedure_id AND f.tenant_id = 2 AND f.deleted = 0)
|
|
|
|
|
|
LEFT JOIN project_plan_task g ON (g.id = b.task_id AND g.tenant_id = 2 AND g.deleted = 0)
|
2025-01-24 19:46:44 +08:00
|
|
|
|
LEFT JOIN project_plan j ON (j.id = b.plan_id AND j.tenant_id = 2 AND j.deleted = 0)
|
2025-01-20 20:00:28 +08:00
|
|
|
|
WHERE t.deleted = 0 AND t.tenant_id = 2
|
|
|
|
|
|
<if test="reqVO.projectCode != null and reqVO.projectCode != ''">
|
|
|
|
|
|
AND d.code = #{reqVO.projectCode}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.projectName != null and reqVO.projectName != ''">
|
|
|
|
|
|
AND d.project_name = #{reqVO.projectName}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.taskNo != null and reqVO.taskNo != ''">
|
2025-01-24 19:46:44 +08:00
|
|
|
|
AND j.plan_no = #{reqVO.taskNo}
|
2025-01-20 20:00:28 +08:00
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.projectSubName != null and reqVO.projectSubName != ''">
|
|
|
|
|
|
AND e.name = #{reqVO.projectSubName}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.materialName != null and reqVO.materialName != ''">
|
|
|
|
|
|
AND c.material_name = #{reqVO.materialName}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
<if test="reqVO.owner != null and reqVO.owner != ''">
|
|
|
|
|
|
AND t.owner = #{reqVO.owner}
|
|
|
|
|
|
</if>
|
|
|
|
|
|
GROUP BY t.id
|
|
|
|
|
|
</select>
|
2025-07-05 08:45:03 +08:00
|
|
|
|
<select id="sumAssembleReport" parameterType="java.util.List" resultType="java.util.HashMap">
|
2025-05-17 13:44:07 +08:00
|
|
|
|
select t.dispatch_detail_id as detailId,count(t.id) as amount from pro_task_report t where t.dispatch_detail_id in
|
2025-05-16 21:51:43 +08:00
|
|
|
|
<foreach collection="list" item="id" open="(" separator="," close=")">
|
|
|
|
|
|
#{id}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
and t.has_report = 1
|
|
|
|
|
|
group by t.dispatch_detail_id
|
|
|
|
|
|
</select>
|
2025-08-04 15:43:45 +08:00
|
|
|
|
<select id="assemblyLaborCost" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT sum(COALESCE(r.work_time, 0) * p.grade_cost) cost
|
|
|
|
|
|
from
|
|
|
|
|
|
pro_task_report r
|
|
|
|
|
|
left join system_user_post u on u.user_id=r.owner and u.deleted=0 and u.tenant_id=2
|
|
|
|
|
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
|
|
|
|
|
where r.deleted=0 and r.dispatch_detail_id=#{id}
|
|
|
|
|
|
</select>
|
2025-08-08 17:58:23 +08:00
|
|
|
|
<select id="bubbleFees" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
SUM(COALESCE(p.mat_weight, 0) * COALESCE(c.price, 0)) AS cost
|
|
|
|
|
|
FROM
|
|
|
|
|
|
pro_process_bom_detail t
|
|
|
|
|
|
LEFT JOIN project_material_plan_boom p ON p.boom_detail_id = t.id
|
|
|
|
|
|
AND p.deleted = 0
|
|
|
|
|
|
AND p.tenant_id = 2
|
|
|
|
|
|
LEFT JOIN base_composition c ON t.composition_id = c.id
|
|
|
|
|
|
AND c.deleted = 0
|
|
|
|
|
|
AND c.tenant_id = 2
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
t.type = 2
|
|
|
|
|
|
AND p.boom_detail_id =#{bomDetailId} and p.procedure_id=#{procedureId}
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="materialCost" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT sum(r.work_time) cost
|
|
|
|
|
|
from pro_task_dispatch t
|
|
|
|
|
|
left join pro_task_dispatch_detail t1 on t.id=t1.dispatch_id and t1.deleted=0 and t1.tenant_id=2
|
|
|
|
|
|
left join pro_task_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2
|
|
|
|
|
|
where t1.is_outsourcing='Y' and t.deleted=0 and t.dispatch_type='PRODUCTION' and r.work_type=2 and t1.id=#{id}
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="internalLaborCost" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT sum(COALESCE(r.work_time, 0) * p.grade_cost) cost
|
|
|
|
|
|
from pro_task_dispatch t
|
|
|
|
|
|
left join pro_task_dispatch_detail t1 on t.id=t1.dispatch_id and t1.deleted=0 and t1.tenant_id=2
|
|
|
|
|
|
left join pro_task_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2
|
|
|
|
|
|
left join system_user_post u on u.user_id=r.owner and u.deleted=0 and u.tenant_id=2
|
|
|
|
|
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
|
|
|
|
|
where t1.is_outsourcing='N' and t.deleted=0 and t.dispatch_type='PRODUCTION' and r.work_type=1 and t1.id=#{id}
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="finalInspection" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT sum(COALESCE(t.work_time, 0) * p.grade_cost) cost
|
|
|
|
|
|
FROM quality_zj_pg_master_line g
|
|
|
|
|
|
LEFT JOIN quality_zj_bg_master_line t ON t.zj_mx_id = g.id and t.deleted = 0 and t.tenant_id = 2
|
|
|
|
|
|
left join system_user_post u on u.user_id=t.bg_user and u.deleted=0 and u.tenant_id=2
|
|
|
|
|
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
|
|
|
|
|
where g.deleted = 0 and g.project_id=#{id} and g.project_sub_id= #{projectSubId}
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="processInspection" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT sum(COALESCE(t.work_time, 0) * p.grade_cost) cost
|
|
|
|
|
|
FROM quality_pg_master_line g
|
|
|
|
|
|
LEFT JOIN quality_bg_master_line t ON t.zj_mx_id = g.id and t.deleted = 0 and t.tenant_id = 2
|
|
|
|
|
|
left join system_user_post u on u.user_id=t.bg_user and u.deleted=0 and u.tenant_id=2
|
|
|
|
|
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
|
|
|
|
|
where g.deleted = 0 and g.dispatch_detail_id=#{id}
|
|
|
|
|
|
</select>
|
2025-08-27 18:07:43 +08:00
|
|
|
|
<select id="materialCosts" resultType="java.math.BigDecimal">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
ROUND(SUM(unit_price * total_storage), 1) AS cost
|
|
|
|
|
|
FROM (
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
ROUND(t.estimated_price / t.purchase_amount, 1) AS unit_price,
|
|
|
|
|
|
SUM(s.storage_amount) AS total_storage
|
|
|
|
|
|
FROM project_purchase_order_no_detail t
|
|
|
|
|
|
JOIN project_storage_in_detail s on s.purchase_order_no_detail_id=t.id and s.deleted=0 and s.tenant_id=2
|
|
|
|
|
|
left join pro_process_bom_detail d on d.id=t.boom_detail_id
|
|
|
|
|
|
where t.deleted=0 and t.tenant_id=2 and d.type=2 and t.boom_detail_id=#{bomDetailId} and t.procedure_id=#{procedureId}
|
|
|
|
|
|
GROUP BY s.id
|
|
|
|
|
|
) AS subquery;
|
|
|
|
|
|
</select>
|
2025-11-05 09:01:37 +08:00
|
|
|
|
<select id="batchBubbleFees"
|
|
|
|
|
|
resultType="com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
p.boom_detail_id AS bomDetailId,
|
|
|
|
|
|
p.procedure_id AS procedureId,
|
|
|
|
|
|
SUM(COALESCE(p.mat_weight, 0) * COALESCE(c.price, 0)) AS cost
|
|
|
|
|
|
FROM
|
|
|
|
|
|
pro_process_bom_detail t
|
|
|
|
|
|
LEFT JOIN project_material_plan_boom p ON p.boom_detail_id = t.id
|
|
|
|
|
|
AND p.deleted = 0
|
|
|
|
|
|
AND p.tenant_id = 2
|
|
|
|
|
|
LEFT JOIN base_composition c ON t.composition_id = c.id
|
|
|
|
|
|
AND c.deleted = 0
|
|
|
|
|
|
AND c.tenant_id = 2
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
t.type = 2
|
|
|
|
|
|
AND p.boom_detail_id in
|
|
|
|
|
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
|
|
|
|
|
#{bomDetailId}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
and p.procedure_id in
|
|
|
|
|
|
<foreach collection="procedureIds" item="procedureId" open="(" close=")" separator=",">
|
|
|
|
|
|
#{procedureId}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
GROUP BY p.boom_detail_id, p.procedure_id
|
|
|
|
|
|
</select>
|
|
|
|
|
|
<select id="batchMaterialCosts"
|
|
|
|
|
|
resultType="com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult">
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
subquery.bomDetailId AS bomDetailId,
|
|
|
|
|
|
subquery.procedureId AS procedureId,
|
|
|
|
|
|
ROUND(SUM(unit_price * total_storage), 1) AS cost
|
|
|
|
|
|
FROM (
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
ROUND(t.estimated_price / t.purchase_amount, 1) AS unit_price,
|
|
|
|
|
|
SUM(s.storage_amount) AS total_storage,
|
|
|
|
|
|
t.boom_detail_id AS bomDetailId,
|
|
|
|
|
|
t.procedure_id AS procedureId
|
|
|
|
|
|
FROM project_purchase_order_no_detail t
|
|
|
|
|
|
JOIN project_storage_in_detail s on s.purchase_order_no_detail_id=t.id and s.deleted=0 and s.tenant_id=2
|
|
|
|
|
|
left join pro_process_bom_detail d on d.id=t.boom_detail_id
|
|
|
|
|
|
where t.deleted=0 and t.tenant_id=2 and d.type=2 and t.boom_detail_id in
|
|
|
|
|
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
|
|
|
|
|
#{bomDetailId}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
and t.procedure_id in
|
|
|
|
|
|
<foreach collection="procedureIds" item="procedureId" open="(" close=")" separator=",">
|
|
|
|
|
|
#{procedureId}
|
|
|
|
|
|
</foreach>
|
|
|
|
|
|
GROUP BY s.id
|
|
|
|
|
|
) AS subquery
|
|
|
|
|
|
GROUP BY subquery.bomDetailId, subquery.procedureId;
|
|
|
|
|
|
</select>
|
2025-11-25 14:30:02 +08:00
|
|
|
|
<select id="batchInternalLaborCost" resultType="com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult">
|
|
|
|
|
|
SELECT t1.id as dispatchDetailId,sum(COALESCE(r.work_time, 0) * p.grade_cost) cost
|
2025-11-05 09:01:37 +08:00
|
|
|
|
from pro_task_dispatch t
|
|
|
|
|
|
left join pro_task_dispatch_detail t1 on t.id=t1.dispatch_id and t1.deleted=0 and t1.tenant_id=2
|
|
|
|
|
|
left join pro_task_report r on r.dispatch_detail_id=t1.id and r.deleted=0 and r.tenant_id=2
|
|
|
|
|
|
left join system_user_post u on u.user_id=r.owner and u.deleted=0 and u.tenant_id=2
|
|
|
|
|
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
|
|
|
|
|
where t1.is_outsourcing='N' and t.deleted=0 and t.dispatch_type='PRODUCTION' and r.work_type=1 and t1.id in
|
|
|
|
|
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
|
|
|
|
|
#{bomDetailId}
|
|
|
|
|
|
</foreach>
|
2025-11-25 14:30:02 +08:00
|
|
|
|
group by t1.id
|
2025-11-05 09:01:37 +08:00
|
|
|
|
</select>
|
2025-11-25 14:30:02 +08:00
|
|
|
|
<select id="batchProcessInspection" resultType="com.chanko.yunxi.mes.module.heli.controller.admin.taskdispatch.vo.BubbleFeeResult">
|
|
|
|
|
|
SELECT g.dispatch_detail_id as dispatchDetailId,sum(COALESCE(t.work_time, 0) * p.grade_cost) cost
|
2025-11-05 09:01:37 +08:00
|
|
|
|
FROM quality_pg_master_line g
|
|
|
|
|
|
LEFT JOIN quality_bg_master_line t ON t.zj_mx_id = g.id and t.deleted = 0 and t.tenant_id = 2
|
|
|
|
|
|
left join system_user_post u on u.user_id=t.bg_user and u.deleted=0 and u.tenant_id=2
|
|
|
|
|
|
left join system_post p on p.id=u.post_id and u.deleted=0 and p.tenant_id=2 and p.status=0
|
|
|
|
|
|
where g.deleted = 0 and g.dispatch_detail_id in
|
|
|
|
|
|
<foreach collection="bomDetailIds" item="bomDetailId" open="(" close=")" separator=",">
|
|
|
|
|
|
#{bomDetailId}
|
|
|
|
|
|
</foreach>
|
2025-11-25 14:30:02 +08:00
|
|
|
|
group by g.dispatch_detail_id
|
2025-11-05 09:01:37 +08:00
|
|
|
|
</select>
|
2025-01-09 18:29:48 +08:00
|
|
|
|
</mapper>
|