进度+文件上传重构+文件权限控制
This commit is contained in:
@@ -22,57 +22,53 @@
|
||||
|
||||
|
||||
<select id="selectVoPagePlus" resultType="com.ruoyi.oa.domain.vo.OaProjectScheduleVo">
|
||||
SELECT
|
||||
ops.schedule_id,
|
||||
ops.project_id,
|
||||
ops.template_id,
|
||||
ops.current_step,
|
||||
opss.step_name AS currentStepName,
|
||||
ops.start_time,
|
||||
ops.end_time,
|
||||
ops.status,
|
||||
ops.remark,
|
||||
SELECT ops.schedule_id,
|
||||
ops.project_id,
|
||||
ops.template_id,
|
||||
ops.current_step,
|
||||
opss.step_name AS currentStepName,
|
||||
ops.start_time,
|
||||
ops.end_time,
|
||||
ops.status,
|
||||
ops.remark,
|
||||
|
||||
-- 项目信息
|
||||
op.project_id AS opProjectId,
|
||||
op.project_name,
|
||||
op.project_num,
|
||||
op.project_type,
|
||||
op.address,
|
||||
op.funds,
|
||||
op.functionary,
|
||||
op.begin_time,
|
||||
op.finish_time,
|
||||
op.introduction,
|
||||
op.project_grade,
|
||||
op.project_status,
|
||||
op.trade_type,
|
||||
op.pre_pay,
|
||||
opss.plan_end,
|
||||
/* ======================== 项目信息 ==================== */
|
||||
op.project_id AS opProjectId,
|
||||
op.project_name,
|
||||
op.project_num,
|
||||
op.project_type,
|
||||
op.address,
|
||||
op.funds,
|
||||
op.functionary,
|
||||
op.begin_time,
|
||||
op.finish_time,
|
||||
op.introduction,
|
||||
op.project_grade,
|
||||
op.project_status,
|
||||
op.trade_type,
|
||||
op.pre_pay,
|
||||
opss.plan_end,
|
||||
TIMESTAMPDIFF(DAY, NOW(), opss.plan_end) AS remainTime,
|
||||
ROUND(
|
||||
(
|
||||
(ops.current_step - CASE WHEN opss.status = 0 THEN 1 ELSE 0 END)
|
||||
/ NULLIF(maxs.max_order, 0)
|
||||
) * 100,
|
||||
2
|
||||
) AS schedulePercentage
|
||||
|
||||
-- 剩余天数
|
||||
TIMESTAMPDIFF(DAY, NOW(), opss.plan_end) AS remainTime,
|
||||
|
||||
-- 进度百分比:当 current_step=1 时强制为0,否则按公式计算
|
||||
CASE
|
||||
WHEN ops.current_step = 1 THEN 0
|
||||
ELSE ROUND((ops.current_step / NULLIF(maxs.max_order,0)) * 100, 2)
|
||||
END AS schedulePercentage -- 添加 NULLIF 防止除以0
|
||||
|
||||
FROM oa_project_schedule ops
|
||||
LEFT JOIN sys_oa_project op ON ops.project_id = op.project_id
|
||||
LEFT JOIN oa_project_schedule_step opss
|
||||
FROM oa_project_schedule AS ops
|
||||
LEFT JOIN sys_oa_project AS op ON ops.project_id = op.project_id
|
||||
LEFT JOIN oa_project_schedule_step AS opss
|
||||
ON ops.schedule_id = opss.schedule_id
|
||||
AND opss.step_order = ops.current_step
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
schedule_id,
|
||||
MAX(step_order) AS max_order
|
||||
FROM oa_project_schedule_step
|
||||
GROUP BY schedule_id
|
||||
) maxs ON maxs.schedule_id = ops.schedule_id
|
||||
AND opss.use_flag = '1'
|
||||
LEFT JOIN (SELECT schedule_id,
|
||||
MAX(step_order) AS max_order
|
||||
FROM oa_project_schedule_step
|
||||
WHERE use_flag = '1'
|
||||
GROUP BY schedule_id) AS maxs ON maxs.schedule_id = ops.schedule_id
|
||||
${ew.getCustomSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
@@ -20,17 +20,29 @@
|
||||
<result property="actualEnd" column="actual_end"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="expectedDays" column="expected_days"/>
|
||||
<result property="useFlag" column="use_flag"/>
|
||||
|
||||
<!-- ========== 附件列表:多对一 折叠 ========= -->
|
||||
<collection property="fileList"
|
||||
ofType="com.ruoyi.system.domain.SysOss"
|
||||
javaType="java.util.ArrayList">
|
||||
<result property="ossId" column="attach_oss_id"/>
|
||||
<result property="ossId" column="oss_id"/>
|
||||
<result property="url" column="attach_url"/>
|
||||
<result property="fileName" column="attach_file_name"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="isPublic" column="is_public"/>
|
||||
<result property="ownerId" column="owner_id"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<sql id="OssVisibleCondition">
|
||||
( so.is_public = 1
|
||||
OR so.owner_id = #{userId}
|
||||
OR EXISTS (SELECT 1 FROM sys_oss_acl a
|
||||
WHERE a.oss_id = so.oss_id
|
||||
AND a.user_id = #{userId}) )
|
||||
</sql>
|
||||
|
||||
<update id="updateByStepAndScheduleId">
|
||||
UPDATE oa_project_schedule_step
|
||||
SET
|
||||
@@ -40,6 +52,7 @@
|
||||
schedule_id = #{scheduleId}
|
||||
AND step_order = #{currentStep}
|
||||
AND del_flag = '0'
|
||||
and use_flag = '1'
|
||||
</update>
|
||||
<select id="maxStepByScheduleId" resultMap="OaProjectScheduleStepResult">
|
||||
SELECT opss.track_id,
|
||||
@@ -54,6 +67,7 @@
|
||||
opss.status,
|
||||
opss.del_flag,
|
||||
opss.header,
|
||||
opss.use_flag,
|
||||
osts.expected_days,
|
||||
osts.description
|
||||
FROM oa_project_schedule_step opss
|
||||
@@ -61,12 +75,15 @@
|
||||
LEFT JOIN fad_oa.oa_schedule_template_step osts ON osts.template_id = ops.template_id AND osts.step_order = opss.step_order
|
||||
WHERE opss.schedule_id = #{scheduleId}
|
||||
AND opss.del_flag = '0'
|
||||
and opss.use_flag = '1'
|
||||
AND opss.step_order = (
|
||||
SELECT MAX(step_order)
|
||||
FROM oa_project_schedule_step
|
||||
WHERE schedule_id = #{scheduleId}
|
||||
AND del_flag = '0'
|
||||
and use_flag = '1'
|
||||
)
|
||||
|
||||
</select>
|
||||
<select id="selectVoPagePlus" resultMap="OaProjectScheduleStepResult">
|
||||
select opss.track_id,
|
||||
@@ -81,42 +98,53 @@
|
||||
opss.status,
|
||||
opss.del_flag,
|
||||
opss.header,
|
||||
opss.use_flag,
|
||||
osts.expected_days,
|
||||
osts.description,
|
||||
so.oss_id AS oss_id,
|
||||
so.url AS attach_url,
|
||||
so.original_name AS attach_file_name, -- 如有需要
|
||||
so.create_by
|
||||
so.create_by,
|
||||
so.is_public,
|
||||
so.owner_id,
|
||||
batch_id
|
||||
from oa_project_schedule_step opss
|
||||
left join fad_oa.oa_project_schedule ops on ops.schedule_id = opss.schedule_id
|
||||
left join fad_oa.oa_schedule_template_step osts on osts.template_id = ops.template_id and osts.step_order = opss.step_order
|
||||
LEFT JOIN sys_oss so ON FIND_IN_SET(so.oss_id, opss.accessory)
|
||||
LEFT JOIN sys_oss so ON FIND_IN_SET(so.oss_id, opss.accessory)
|
||||
AND <include refid="OssVisibleCondition"/>
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
<select id="selectVoPlusById" resultMap="OaProjectScheduleStepResult">
|
||||
select opss.track_id,
|
||||
opss.accessory,
|
||||
opss.schedule_id,
|
||||
opss.step_order,
|
||||
opss.step_name,
|
||||
opss.plan_start,
|
||||
opss.plan_end,
|
||||
opss.actual_start,
|
||||
opss.actual_end,
|
||||
opss.status,
|
||||
opss.del_flag,
|
||||
opss.header,
|
||||
osts.expected_days,
|
||||
osts.description,
|
||||
so.oss_id AS oss_id,
|
||||
so.url AS attach_url,
|
||||
so.original_name AS attach_file_name, -- 如有需要
|
||||
so.create_by
|
||||
opss.accessory,
|
||||
opss.schedule_id,
|
||||
opss.step_order,
|
||||
opss.step_name,
|
||||
opss.plan_start,
|
||||
opss.plan_end,
|
||||
opss.actual_start,
|
||||
opss.actual_end,
|
||||
opss.status,
|
||||
opss.use_flag,
|
||||
opss.del_flag,
|
||||
opss.header,
|
||||
osts.expected_days,
|
||||
osts.description,
|
||||
so.oss_id AS oss_id,
|
||||
so.url AS attach_url,
|
||||
so.original_name AS attach_file_name, -- 如有需要
|
||||
so.create_by,
|
||||
so.owner_id,
|
||||
so.is_public
|
||||
from oa_project_schedule_step opss
|
||||
left join fad_oa.oa_project_schedule ops on ops.schedule_id = opss.schedule_id
|
||||
left join fad_oa.oa_schedule_template_step osts on osts.template_id = ops.template_id and osts.step_order = opss.step_order
|
||||
LEFT JOIN sys_oss so ON FIND_IN_SET(so.oss_id, opss.accessory)
|
||||
where opss.track_id = #{trackId} and opss.del_flag='0'
|
||||
left join fad_oa.oa_project_schedule ops on ops.schedule_id = opss.schedule_id
|
||||
left join fad_oa.oa_schedule_template_step osts on osts.template_id = ops.template_id and osts.step_order =
|
||||
opss.step_order
|
||||
LEFT JOIN sys_oss so ON FIND_IN_SET(so.oss_id, opss.accessory)
|
||||
AND
|
||||
<include refid="OssVisibleCondition"/>
|
||||
where opss.track_id = #{trackId} and opss.del_flag='0' and opss.use_flag = '1'
|
||||
</select>
|
||||
|
||||
|
||||
@@ -130,11 +158,13 @@
|
||||
plan_end,
|
||||
actual_start,
|
||||
actual_end,
|
||||
opss.use_flag,
|
||||
status,
|
||||
header
|
||||
from oa_project_schedule_step opss
|
||||
WHERE schedule_id = #{scheduleId}
|
||||
AND step_order = #{currentStep}
|
||||
and use_flag = '1'
|
||||
AND del_flag = '0'
|
||||
</select>
|
||||
|
||||
|
||||
@@ -20,17 +20,12 @@
|
||||
</resultMap>
|
||||
<select id="selectVoPagePlus" resultType="com.ruoyi.oa.domain.vo.OaScheduleTemplateStepVo">
|
||||
|
||||
select ANY_VALUE(step_id),
|
||||
template_id,
|
||||
step_order,
|
||||
select max(step_id) as stepId,
|
||||
max(template_id) as templateId,
|
||||
max(step_order) as stepOrder,
|
||||
step_name,
|
||||
expected_days,
|
||||
header,
|
||||
create_by,
|
||||
create_time,
|
||||
update_by,
|
||||
update_time,
|
||||
del_flag,
|
||||
description
|
||||
from oa_schedule_template_step
|
||||
${ew.getCustomSqlSegment}
|
||||
|
||||
@@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="projectName" column="project_name"/>
|
||||
<result property="address" column="address"/>
|
||||
<collection property="detailList" javaType="list" resultMap="SysOaClaimDetailResult"/>
|
||||
<collection property="fileList" javaType="list" resultMap="SysOaFileResult"/>
|
||||
<collection property="fileList" javaType="list" resultMap="SysOssResult"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ruoyi.oa.domain.SysOaClaimDetail" id="SysOaClaimDetailResult">
|
||||
@@ -42,16 +42,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap type="com.ruoyi.oa.domain.SysOaFile" id="SysOaFileResult">
|
||||
<result property="fileId" column="file_id"/>
|
||||
<result property="fileUrl" column="file_url"/>
|
||||
<result property="status" column="status"/>
|
||||
<resultMap type="com.ruoyi.system.domain.SysOss" id="SysOssResult">
|
||||
<result property="ossId" column="oss_id"/>
|
||||
<result property="url" column="file_url"/>
|
||||
<result property="fileName" column="file_name"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="remark" column="remark"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectSysOaClaimVoById" resultMap="SysOaClaimResult" parameterType="Long">
|
||||
@@ -73,9 +71,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
soc.del_flag,
|
||||
soc.proc_ins_id,
|
||||
soc.completed_time,
|
||||
sof.file_id,
|
||||
file_url,
|
||||
status,
|
||||
so.oss_id,
|
||||
url,
|
||||
so.file_name,
|
||||
socd.claim_detail_id,
|
||||
claim_type,
|
||||
socd.begin_time ,
|
||||
@@ -93,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
sop.project_name
|
||||
FROM sys_oa_claim soc
|
||||
left join sys_oa_claim_detail socd on soc.claim_id = socd.claim_id
|
||||
left JOIN sys_oa_file sof ON FIND_IN_SET(sof.file_id, soc.file_ids) > 0
|
||||
left join sys_oss so on FIND_IN_SET(so.oss_id, soc.file_ids) > 0
|
||||
left join sys_oa_project sop on soc.project_id = sop.project_id
|
||||
where soc.claim_id = #{claimId}
|
||||
</select>
|
||||
@@ -144,9 +142,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
soc.del_flag,
|
||||
soc.proc_ins_id,
|
||||
soc.completed_time,
|
||||
sof.file_id,
|
||||
file_url,
|
||||
status,
|
||||
so.oss_id,
|
||||
url,
|
||||
so.file_name,
|
||||
socd.claim_detail_id,
|
||||
claim_type,
|
||||
socd.begin_time ,
|
||||
@@ -164,7 +162,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
sop.project_name
|
||||
FROM sys_oa_claim soc
|
||||
left join sys_oa_claim_detail socd on soc.claim_id = socd.claim_id
|
||||
left JOIN sys_oa_file sof ON FIND_IN_SET(sof.file_id, soc.file_ids) > 0
|
||||
left join sys_oss so on FIND_IN_SET(so.oss_id, soc.file_ids) > 0
|
||||
left join sys_oa_project sop on soc.project_id = sop.project_id
|
||||
where soc.proc_ins_id = #{procInsId}
|
||||
</select>
|
||||
|
||||
@@ -356,7 +356,7 @@
|
||||
end AS sign_time,
|
||||
|
||||
GROUP_CONCAT(
|
||||
f.file_url
|
||||
so.url
|
||||
SEPARATOR ','
|
||||
) AS file_urls
|
||||
|
||||
@@ -373,11 +373,11 @@
|
||||
LEFT JOIN sys_oa_task_item ti
|
||||
ON t.task_id = ti.task_id
|
||||
|
||||
LEFT JOIN sys_oa_file f
|
||||
LEFT JOIN sys_oss so
|
||||
ON (
|
||||
(t.status = 0 AND FIND_IN_SET(CONCAT(f.file_id, ''), t.files) > 0)
|
||||
(t.status = 0 AND FIND_IN_SET(CONCAT(so.oss_id, ''), t.files) > 0)
|
||||
OR
|
||||
(t.status = 1 AND FIND_IN_SET(CONCAT(f.file_id, ''), ti.files) > 0)
|
||||
(t.status = 1 AND FIND_IN_SET(CONCAT(so.oss_id, ''), ti.files) > 0)
|
||||
)
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
@@ -62,9 +62,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
sot.completed_time,
|
||||
sot.content,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
|
||||
) AS accessory,
|
||||
|
||||
sot.rank_number,
|
||||
@@ -90,9 +90,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
ELSE 0
|
||||
END AS overDays,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
|
||||
) AS files
|
||||
|
||||
FROM sys_oa_task sot
|
||||
@@ -148,9 +149,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
su2.nick_name AS workerNickName,
|
||||
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
|
||||
) AS accessory,
|
||||
|
||||
sot.rank_number,
|
||||
@@ -177,9 +178,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
soti.end_time AS itemEndTime,
|
||||
soti.remark AS itemRemark,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
|
||||
) AS files,
|
||||
CASE
|
||||
WHEN sot.completed_time IS NULL
|
||||
@@ -325,9 +326,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
sot.completed_time,
|
||||
sot.content,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
|
||||
) AS accessory,
|
||||
|
||||
sot.rank_number,
|
||||
@@ -353,9 +354,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
ELSE 0
|
||||
END AS overDays,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
|
||||
) AS files
|
||||
|
||||
FROM sys_oa_task_user sotu
|
||||
@@ -378,16 +379,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
sot.create_user_id,
|
||||
sot.worker_id,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
|
||||
) AS accessory,
|
||||
su1.nick_name AS createUserNickName,
|
||||
su2.nick_name AS workerNickName,
|
||||
(
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
|
||||
) AS files
|
||||
FROM sys_oa_task sot
|
||||
LEFT JOIN sys_user su1 ON su1.user_id = sot.create_user_id
|
||||
@@ -399,14 +400,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
AND sot.del_flag = '0'
|
||||
AND (
|
||||
IFNULL((
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, sot.accessory) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, sot.accessory) > 0
|
||||
), '') != ''
|
||||
OR IFNULL((
|
||||
SELECT GROUP_CONCAT(sof.file_url SEPARATOR ',')
|
||||
FROM sys_oa_file sof
|
||||
WHERE FIND_IN_SET(sof.file_id, soti.files) > 0
|
||||
SELECT GROUP_CONCAT(so.url SEPARATOR ',')
|
||||
FROM sys_oss so
|
||||
WHERE FIND_IN_SET(so.oss_id, soti.files) > 0
|
||||
), '') != ''
|
||||
)
|
||||
|
||||
|
||||
@@ -106,4 +106,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -4,69 +4,101 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.oa.mapper.SysOaWarehouseMasterMapper">
|
||||
|
||||
<resultMap type="com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo" id="SysOaWarehouseMasterResult">
|
||||
<result property="masterId" column="master_id"/>
|
||||
<result property="masterNum" column="master_num"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="projectId" column="project_id"/>
|
||||
<result property="signTime" column="sign_time"/>
|
||||
<result property="signUser" column="sign_user"/>
|
||||
<result property="remark" column="remark"/>
|
||||
|
||||
<!-- ===================================================== -->
|
||||
<!-- 主表 + 子表 统一 ResultMap -->
|
||||
<!-- ===================================================== -->
|
||||
<resultMap id="SysOaWarehouseMasterResult"
|
||||
type="com.ruoyi.oa.domain.vo.SysOaWarehouseMasterVo">
|
||||
|
||||
<id property="masterId" column="master_id"/>
|
||||
<result property="masterNum" column="master_num"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="projectId" column="project_id"/>
|
||||
<result property="signTime" column="sign_time"/>
|
||||
<result property="signUser" column="sign_user"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="projectName" column="project_name"/>
|
||||
<result property="status" column="status"/>
|
||||
<collection property="warehouseList" ofType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo" javaType="list">
|
||||
<result property="signPrice" column="sign_price"/>
|
||||
<result property="id" column="outId"/>
|
||||
<result property="projectName" column="project_name"/>
|
||||
<result property="model" column="model"/>
|
||||
<result property="specifications" column="specifications"/>
|
||||
<result property="projectId" column="project_id"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="warehouseName" column="warehouseName"/>
|
||||
</collection>
|
||||
<collection property="warehouseTaskList" resultMap="SysOaWarehouseTaskResult" javaType="list"/>
|
||||
<result property="status" column="status"/>
|
||||
|
||||
<collection property="warehouseList"
|
||||
column="master_id"
|
||||
javaType="list"
|
||||
ofType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo"
|
||||
select="selectDetailByMasterId"/>
|
||||
|
||||
<collection property="warehouseTaskList"
|
||||
column="master_id"
|
||||
javaType="list"
|
||||
ofType="com.ruoyi.oa.domain.SysOaWarehouseTask"
|
||||
select="selectTaskByMasterId"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap type="com.ruoyi.oa.domain.SysOaWarehouseTask" id="SysOaWarehouseTaskResult">
|
||||
<result property="taskId" column="task_id"/>
|
||||
<result property="masterId" column="master_id"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="model" column="model"/>
|
||||
<result property="taskInventory" column="task_inventory"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="specifications" column="specifications"/>
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
<select id="selectVoPagePlus" resultMap="SysOaWarehouseMasterResult">
|
||||
select sowm.master_id,
|
||||
sowm.sign_time,
|
||||
sowm.sign_user,
|
||||
sowd.sign_price,
|
||||
sowm.master_num,
|
||||
sowm.type,
|
||||
sowd.amount,
|
||||
sow.name as warehouseName,
|
||||
sowm.remark,
|
||||
sop.project_id,
|
||||
sop.project_name,
|
||||
sowm.status,
|
||||
sowd.id as outId,
|
||||
task_id,
|
||||
sowt.name,
|
||||
COALESCE(sow.model,sowt.model) as model,
|
||||
task_inventory,
|
||||
COALESCE(sow.brand,sowt.brand) as brand,
|
||||
COALESCE(sow.specifications,sowt.specifications) as specifications
|
||||
from sys_oa_warehouse_master sowm
|
||||
left join sys_oa_warehouse_detail sowd on sowd.master_id = sowm.master_id and sowd.del_flag='0'
|
||||
left join sys_oa_warehouse sow on sow.id = sowd.warehouse_id
|
||||
left join sys_oa_warehouse_task sowt on sowm.master_id = sowt.master_id
|
||||
left join sys_oa_project sop on sowm.project_id = sop.project_id
|
||||
<!-- ===================================================== -->
|
||||
<!-- 分页查询(只查主表字段,真正参与 LIMIT / OFFSET) -->
|
||||
<!-- ===================================================== -->
|
||||
<select id="selectVoPagePlus"
|
||||
resultMap="SysOaWarehouseMasterResult">
|
||||
SELECT
|
||||
sowm.master_id,
|
||||
sowm.master_num,
|
||||
sowm.type,
|
||||
sowm.project_id,
|
||||
sowm.sign_time,
|
||||
sowm.sign_user,
|
||||
sowm.remark,
|
||||
sowm.status,
|
||||
sop.project_name
|
||||
FROM sys_oa_warehouse_master sowm
|
||||
LEFT JOIN sys_oa_project sop
|
||||
ON sop.project_id = sowm.project_id
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
<!-- ===================================================== -->
|
||||
<!-- 子查询:明细列表 by masterId -->
|
||||
<!-- ===================================================== -->
|
||||
<select id="selectDetailByMasterId"
|
||||
parameterType="long"
|
||||
resultType="com.ruoyi.oa.domain.vo.SysOaWarehouseDetailVo">
|
||||
SELECT
|
||||
sowd.id AS outId,
|
||||
sowd.master_id,
|
||||
sowd.sign_price,
|
||||
sowd.amount,
|
||||
sowd.project_id,
|
||||
sow.name AS warehouseName,
|
||||
COALESCE(sow.model, sowt.model) AS model,
|
||||
COALESCE(sow.brand, sowt.brand) AS brand,
|
||||
COALESCE(sow.specifications, sowt.specifications) AS specifications,
|
||||
sowt.task_inventory,
|
||||
sop.project_name
|
||||
FROM sys_oa_warehouse_detail sowd
|
||||
LEFT JOIN sys_oa_warehouse sow ON sow.id = sowd.warehouse_id
|
||||
LEFT JOIN sys_oa_warehouse_task sowt ON sowt.master_id = sowd.master_id
|
||||
LEFT JOIN sys_oa_project sop ON sop.project_id = sowd.project_id
|
||||
WHERE sowd.del_flag = '0'
|
||||
AND sowd.master_id = #{masterId}
|
||||
ORDER BY sowd.id
|
||||
</select>
|
||||
|
||||
<!-- ===================================================== -->
|
||||
<!-- 子查询:任务列表 by masterId -->
|
||||
<!-- ===================================================== -->
|
||||
<select id="selectTaskByMasterId"
|
||||
parameterType="long"
|
||||
resultType="com.ruoyi.oa.domain.SysOaWarehouseTask">
|
||||
SELECT
|
||||
task_id,
|
||||
master_id,
|
||||
name,
|
||||
model,
|
||||
task_inventory,
|
||||
brand,
|
||||
specifications
|
||||
FROM sys_oa_warehouse_task
|
||||
WHERE master_id = #{masterId}
|
||||
ORDER BY task_id
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user