新增项目报工

This commit is contained in:
2025-06-16 13:25:00 +08:00
parent d9ae540fd7
commit c09c14642d
11 changed files with 659 additions and 26 deletions

View File

@@ -0,0 +1,71 @@
<?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.oa.mapper.OaProjectReportMapper">
<resultMap type="com.ruoyi.oa.domain.OaProjectReport" id="OaProjectReportResult">
<result property="reportId" column="report_id"/>
<result property="userId" column="user_id"/>
<result property="workPlace" column="work_place"/>
<result property="projectId" column="project_id"/>
<result property="content" column="content"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
</resultMap>
<select id="selectVoPagePlus" resultType="com.ruoyi.oa.domain.vo.OaProjectReportVo">
select opr.report_id,
opr.user_id,
is_trip,
work_place,
opr.project_id,
content,
opr.create_time,
opr.create_by,
opr.update_time,
opr.update_by,
opr.del_flag,
opr.remark,
op.project_name,
op.project_num,
op.project_code,
su.nick_name,
sd.dept_name
from oa_project_report opr
left join sys_oa_project op on opr.project_id = op.project_id
left join sys_user su on su.user_id = opr.user_id
left join sys_dept sd on su.dept_id = sd.dept_id
${ew.getCustomSqlSegment}
</select>
<select id="selectVoByIdPlus" resultType="com.ruoyi.oa.domain.vo.OaProjectReportVo">
select opr.report_id,
opr.user_id,
is_trip,
work_place,
opr.project_id,
content,
opr.create_time,
opr.create_by,
opr.update_time,
opr.update_by,
opr.del_flag,
opr.remark,
op.project_name,
op.project_num,
op.project_code,
su.nick_name,
sd.dept_name
from oa_project_report opr
left join sys_oa_project op on opr.project_id = op.project_id
left join sys_user su on su.user_id = opr.user_id
left join sys_dept sd on su.dept_id = sd.dept_id
where report_id = #{reportId}
</select>
</mapper>

View File

@@ -142,26 +142,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</where>
</select>
<!-- 3. 指定日期的入库量 -->
<!-- 3. 指定日期的入库量(单位统一为米/kg 并取整) -->
<select id="selectInboundOn" resultType="long">
SELECT IFNULL(SUM(d.amount),0)
SELECT
IFNULL(
SUM(
CASE
WHEN w.unit IN ('cm','厘米')
THEN FLOOR(d.amount / 100) -- 厘米→米,并去小数
WHEN w.unit IN ('g','克')
THEN FLOOR(d.amount / 1000) -- 克→千克,并去小数
ELSE
FLOOR(d.amount) -- 其他单位,也取整
END
)
, 0)
FROM sys_oa_warehouse_detail d
JOIN sys_oa_warehouse_master m
ON d.master_id = m.master_id
JOIN sys_oa_warehouse w
ON d.warehouse_id = w.id
JOIN sys_oa_warehouse_master m ON d.master_id = m.master_id
JOIN sys_oa_warehouse w ON d.warehouse_id = w.id
<where>
m.del_flag = 0
and d.del_flag = 0
and m.type = 1
AND d.del_flag = 0
AND m.type = 1
<!-- 当日 -->
<if test="f.endTime != null">
AND DATE(m.sign_time) = DATE(#{f.endTime})
</if>
<!-- 物料名/品牌/供应商 -->
<if test="f.name != null and f.name != ''">
AND w.name LIKE CONCAT('%',#{f.name},'%')
AND w.name LIKE CONCAT('%',#{f.name},'%')
</if>
<if test="f.brand != null and f.brand != ''">
AND w.brand LIKE CONCAT('%',#{f.brand},'%')
@@ -172,47 +181,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<!-- 4. 指定日期的出库量 -->
<!-- 4. 指定日期的出库量(同上) -->
<select id="selectOutboundOn"
parameterType="com.ruoyi.oa.domain.dto.SummaryFilterDTO"
resultType="long">
SELECT IFNULL(SUM(d.amount),0)
SELECT
IFNULL(
SUM(
CASE
WHEN w.unit IN ('cm','厘米')
THEN FLOOR(d.amount / 100)
WHEN w.unit IN ('g','克')
THEN FLOOR(d.amount / 1000)
ELSE
FLOOR(d.amount)
END
)
, 0)
FROM sys_oa_warehouse_detail d
JOIN sys_oa_warehouse_master m
ON d.master_id = m.master_id
JOIN sys_oa_warehouse w
ON d.warehouse_id = w.id
JOIN sys_oa_warehouse_master m ON d.master_id = m.master_id
JOIN sys_oa_warehouse w ON d.warehouse_id = w.id
<where>
m.del_flag = 0
AND d.del_flag = 0
AND m.type = 0
AND m.type = 0
<!-- “当日”条件,用 endTime 对比 -->
<if test="f.endTime != null">
AND DATE(m.sign_time) = DATE(#{f.endTime})
</if>
<!-- 可选的物料名过滤 -->
<!-- 可选过滤 -->
<if test="f.name != null and f.name != ''">
AND w.name LIKE CONCAT('%',#{f.name},'%')
AND w.name LIKE CONCAT('%',#{f.name},'%')
</if>
<!-- 可选品牌过滤 -->
<if test="f.brand != null and f.brand != ''">
AND w.brand LIKE CONCAT('%',#{f.brand},'%')
</if>
<!-- 可选供应商过滤 -->
<if test="f.supplier != null and f.supplier != ''">
AND EXISTS (
SELECT 1
FROM sys_oa_warehouse_task t
JOIN sys_oa_warehouse_master m2
ON t.master_id = m2.master_id
JOIN sys_oa_warehouse_master m2 ON t.master_id = m2.master_id
WHERE t.warehouse_id = w.id
AND m2.sign_user = #{f.supplier}
)
</if>
</where>
</select>
<!-- 5. 指定日期的预警数 -->
<select id="selectWarningOn" resultType="int">
SELECT COUNT(1)