feat: add last report memory for work report form

This commit is contained in:
2026-07-04 19:07:41 +08:00
parent 5544056833
commit 8cfd69d9bb
7 changed files with 74 additions and 0 deletions

View File

@@ -201,6 +201,14 @@ public class OaProjectReportController extends BaseController {
return R.ok(iOaProjectReportService.getSummaryData(start,end)); return R.ok(iOaProjectReportService.getSummaryData(start,end));
} }
/**
* 查询当前用户最近一次报工记录(用于表单记忆回填)
*/
@GetMapping("/lastReport")
public R<OaProjectReportVo> getLastReport() {
return R.ok(iOaProjectReportService.getLastReport());
}
/** /**
* 查询当前登录用户今日的报工记录 * 查询当前登录用户今日的报工记录
*/ */

View File

@@ -59,4 +59,9 @@ public interface OaProjectReportMapper extends BaseMapperPlus<OaProjectReportMap
@Param("workPlace") String workPlace); @Param("workPlace") String workPlace);
List<OaProjectReportVo> getSummaryData(@Param("start") LocalDate start, @Param("end") LocalDate end); List<OaProjectReportVo> getSummaryData(@Param("start") LocalDate start, @Param("end") LocalDate end);
/**
* 查询当前用户最近一次报工记录(含项目信息,用于表单记忆回填)
*/
OaProjectReportVo selectLastReportByUserId(@Param("userId") Long userId);
} }

View File

@@ -45,4 +45,9 @@ public interface IOaProjectReportService {
Boolean insertReportSupplement(OaProjectReportBo bo); Boolean insertReportSupplement(OaProjectReportBo bo);
TableDataInfo<OaProjectTravelCompareVo> getTravelCompareList(LocalDate start, LocalDate end, String nickName, String workPlace, PageQuery pageQuery); TableDataInfo<OaProjectTravelCompareVo> getTravelCompareList(LocalDate start, LocalDate end, String nickName, String workPlace, PageQuery pageQuery);
/**
* 获取当前用户最近一次报工记录(用于表单记忆回填)
*/
OaProjectReportVo getLastReport();
} }

View File

@@ -370,6 +370,12 @@ public class OaProjectReportServiceImpl implements IOaProjectReportService {
return baseMapper.selectVoByIdPlus(report.getReportId()); return baseMapper.selectVoByIdPlus(report.getReportId());
} }
@Override
public OaProjectReportVo getLastReport() {
Long userId = LoginHelper.getUserId();
return baseMapper.selectLastReportByUserId(userId);
}
@Override @Override
public Boolean insertReportSupplement(OaProjectReportBo bo) { public Boolean insertReportSupplement(OaProjectReportBo bo) {
//补录接口前端会传入经办人id还有报工时间也就是创建时间 //补录接口前端会传入经办人id还有报工时间也就是创建时间

View File

@@ -267,6 +267,27 @@
GROUP BY u.user_id, u.nick_name, d.dept_name GROUP BY u.user_id, u.nick_name, d.dept_name
ORDER BY u.nick_name ORDER BY u.nick_name
</select> </select>
<!-- 查询当前用户最近一次报工记录(用于表单记忆回填) -->
<select id="selectLastReportByUserId" resultType="com.ruoyi.oa.domain.vo.OaProjectReportVo">
SELECT opr.report_id,
opr.user_id,
opr.work_place,
opr.project_id,
opr.content,
opr.remark,
opr.is_trip,
opr.work_type,
op.project_name,
op.project_num,
op.project_code
FROM oa_project_report opr
LEFT JOIN sys_oa_project op ON opr.project_id = op.project_id
WHERE opr.user_id = #{userId}
AND opr.del_flag = 0
ORDER BY opr.create_time DESC
LIMIT 1
</select>
<select id="selectAll" resultType="com.ruoyi.oa.domain.vo.OaProjectReportVo"> <select id="selectAll" resultType="com.ruoyi.oa.domain.vo.OaProjectReportVo">
SELECT SELECT
opr.*, opr.*,

View File

@@ -144,4 +144,12 @@ export function suppProjectReport (data) {
method: 'post', method: 'post',
data: data data: data
}) })
}
// 查询当前用户最近一次报工记录(用于表单记忆回填)
export function getLastReport () {
return request({
url: '/oa/projectReport/lastReport',
method: 'get'
})
} }

View File

@@ -167,6 +167,7 @@
import { import {
addProjectReport, addProjectReport,
delProjectReport, delProjectReport,
getLastReport,
getProjectReport, getProjectReport,
getTodayProjectReport, getTodayProjectReport,
listProjectReport, listProjectReport,
@@ -448,6 +449,10 @@ export default {
this.suppVisible = false; this.suppVisible = false;
this.title = "添加项目报工"; this.title = "添加项目报工";
this.checkTodayReport().finally(() => { this.checkTodayReport().finally(() => {
// 如果今天还没报过工,尝试加载上次报工记录回填
if (!this.hasTodayReport) {
this.loadLastReport();
}
this.open = true; this.open = true;
this.$nextTick(() => { this.$nextTick(() => {
if (!this.form.reportId) { if (!this.form.reportId) {
@@ -456,6 +461,22 @@ export default {
}); });
}); });
}, },
/** 加载上次报工记录,回填表单关键字段(项目、工作地点、是否出差等) */
loadLastReport () {
getLastReport().then(response => {
if (response.data && response.data.projectId) {
this.form = {
...this.form,
projectId: response.data.projectId,
workPlace: response.data.workPlace || this.form.workPlace,
isTrip: response.data.isTrip,
workType: response.data.workType,
};
}
}).catch(() => {
// 加载失败不影响正常使用
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate (row) { handleUpdate (row) {
this.suppVisible = false; this.suppVisible = false;