Compare commits

..
Author SHA1 Message Date
zlwuandCursor 8c33135f4c fix: CI web 构建堆改为 3584MB,配合测试机扩容后的 swap
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-24 13:21:47 +08:00
zlwuandCursor f067c95d93 fix: CI web 构建改用 2G 堆内存,适配测试机小内存
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-24 13:10:08 +08:00
zlwuandCursor 8a48b2cf02 fix: 统一 classMsg API 引用大小写,修复 Linux CI 构建找不到模块
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-24 12:23:24 +08:00
zlwuandCursor 2fac0c91f6 fix: web 打包改用 Node 18 与 legacy-peer-deps,规避 npm edgesOut 错误
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-24 12:04:32 +08:00
zlwuandCursor 6ccb9f8cd4 fix: web 打包改用 npm install(仓库未纳入 package-lock.json)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-24 11:56:25 +08:00
zlwuandCursor 97706f1c5e feat: 增加 Drone tag 触发的 backend/web/mobile-h5 三端打包流水线
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-24 11:39:46 +08:00
“wuzhen”andCursor b26bf58744 fix(mobile): 审批弹窗加大字号、补请假天数并缩小意见框
同步请假类型下线外出/回家、新增临时回寝的安全 SQL(历史单不迁移)。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-22 08:45:27 +08:00
“wuzhen”andCursor 15ed3ec9fb fix(leave/dorm): 打回重提、审批摘要与待办标题优化
修复请假/销假打回后空 flowCode 导致启动失败;审批弹窗展示请假摘要并去掉附件;待办标题短显请假/销假;点名 todaySummary 与楼栋关联脚本一并同步。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-21 11:24:48 +08:00
“wuzhen”andCursor de223a1f5a fix(mobile): 修复待办列表办理/审批按钮点击无响应
u-button 的 click 不带事件对象,去掉 @click.stop,避免 stopPropagation 报错导致按钮失效。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 20:20:36 +08:00
“wuzhen”andCursor 7cea0566ac feat(xg): 请假审批修复、点名今日汇总与寝室扣分条例脚本
同步请假/销假审批上下文与状态、宿舍点名今日汇总与假期留宿标识,并补充寝室检查扣分条例生产 SQL 与执行说明。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 18:01:12 +08:00
“wuzhen” 3e6349112c Merge branch 'master' of http://101.35.245.122:3000/hzdyjs-xg/all-project 2026-10-20 12:51:47 +08:00
zlwu 6034b215e5 提交 2026-10-20 11:50:53 +08:00
“wuzhen”andCursor b098b9ec44 fix(dorm): 点名提交后房间卡片立即展示本次统计人数
提交结果里已有在寝、请假、不在人数,卡片原先只标记已点名,人数仍停在加载时的 0。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 08:43:52 +08:00
“wuzhen”andCursor a0bb39d069 fix(dorm): 人文学院宿舍分配班级树以班级表为准合并全校一年级
班级树改为 xg_class_msg 主数据源(无住宿生也可见),统一入学年口径与学院向上解析,避免代理院一年级列表不全或挂错。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 09:46:04 +08:00
“wuzhen”andCursor 04d12bbce1 feat(dorm): 一年级宿舍分配到班级由人文学院代理操作
复用请假代理学院配置,班级树对人文学院合并全校一年级、对他院隐藏一年级;分配/回收增加本学院床位与一年级代理写校验,不改班级真实归属。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-12 16:51:42 +08:00
zlwu 103a53f6f3 提交 2026-09-28 10:09:09 +08:00
“wuzhen”andCursor 623f5b65e7 fix(security): 恢复业务模块权限注解并加固上传与招生脱敏
恢复各业务 Controller 被注释的 @SaCheckPermission,收紧 OSS 上传白名单,招生查询双因子脱敏,志愿团队改为简要 VO,降低垂直越权与敏感信息泄露风险。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-23 01:40:28 +08:00
zlwu 1e6dcb164c 提交 2026-09-22 19:22:18 +08:00
“wuzhen”andCursor 5fd0042068 fix(dorm): 班主任床位分配页去掉退宿选中床位按钮
避免老师误点退宿,页面仅保留分配、收回与调宿操作。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:41:57 +08:00
“wuzhen”andCursor 64f805cca4 fix(dorm): 点名请假仅认审批完成,并修正点名时间时区
宿舍点名/卫生检查只展示 finish 请假;点名提交改用服务端本地时间,避免 toISOString 少 8 小时。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 15:37:46 +08:00
“wuzhen”andCursor a6a5b88f47 fix(leave): 修复请假流程 waiting 与业务 draft 不同步导致无审批按钮
申请人提交后业务表可能仍停在 draft,办理页不显示审批按钮;在请假模块内补齐任务创建时状态对齐,禁止 waiting 被回写为 draft,并仅在暂存时写 draft。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-20 10:27:28 +08:00
zlwu 65abe022c7 提交 2026-09-18 23:42:09 +08:00
“wuzhen”andCursor c2905e78f1 style(mobile): 请假列表加大姓名、天数、是否离校字号便于核查
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 09:40:36 +08:00
“wuzhen”andCursor a76fd32d71 feat(leave): 一年级请假二级学院与分管领导改走人文学院
按入学年与每年9月1日切届判定一年级;代理学院 dept_id 通过 sys_config 配置,提交时覆写选人,流程定义与销假不变。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 09:10:11 +08:00
zlwuandCursor 08fbb49e89 docs: 同步批量换班级 API 说明与设计状态
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 16:58:56 +08:00
zlwuandCursor 3de49f732b feat(studentMsg): 换班级支持批量 UI 与串行提交
弹窗改为学生列表+共用目标表单,串行调用现有接口并汇总失败明细。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 16:58:56 +08:00
zlwuandCursor b7175105ed feat(studentMsg): 换班级弹窗支持加载多名学生
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 16:54:10 +08:00
zlwuandCursor ae6ac58332 docs: 新增批量学生换班级实现计划
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 16:50:05 +08:00
zlwuandCursor 33e207e466 docs: 新增批量学生换班级设计说明
确认采用前端循环现有单条接口方案,供后续实现计划引用。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 16:48:12 +08:00
zlwu 66d8769020 提交 2026-09-02 13:23:38 +08:00
zlwu f231386592 提交 2026-09-02 09:58:57 +08:00
“wuzhen”andCursor 8f99ac7482 chore: 配置统一身份认证中间库 Oracle 生产连接信息
更新 data.conf.prod 中第三方提供的中间库地址 172.16.0.82:1521/zfdb 及 CHG_RZ 账号。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 10:03:42 +08:00
“wuzhen”andCursor 334bd8742e feat: 新增统一身份认证用户数据定时同步脚本
将校园系统部门、教职工、学生数据同步到认证中间库6张标准表,支持 MySQL 本地测试与 Oracle 生产目标库配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 10:01:16 +08:00
zlwu 672f45befd 提交 2026-08-20 18:15:07 +08:00
“wuzhen”andCursor 6a0f1206fa fix: 修复床位分配对象展示与卫生检查提交误报校验
恢复房间床位详情完整关联查询以显示学院/班级/学生;修复卫生检查 Web/移动端表单校验误报,并将房间学生 ID 以字符串返回避免精度丢失。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:17:41 +08:00
“wuzhen” 3518ea697e wuzhen 更新假期住宿申请 2026-08-20 15:17:40 +08:00
zlwuandCursor 1d67506451 fix: 显式声明接口参数名并优化移动端若干页面
生产环境未保留方法参数名时 Spring 无法绑定 @RequestParam/@PathVariable,补齐注解名称并在 Maven 编译中强制 -parameters;同时优化走访、勤工助学、请假和宿舍点名页交互。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 11:48:08 +08:00
508 changed files with 1441671 additions and 7182 deletions

No files matched your search

+24
View File
@@ -741,6 +741,29 @@ public class UserBo {
}
```
#### 🔴 请求参数名必须显式声明(强制性)
**背景**:生产环境若未使用 `-parameters` 编译,Spring 无法通过反射获取方法参数名,会报错:
`Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection.`
**强制要求**:`@RequestParam` / `@PathVariable` 必须写明参数名,禁止依赖编译器保留参数名。
```java
// ✅ 正确
@PutMapping("/authUser/selectAll")
public R<Void> selectAuthUserAll(@RequestParam("roleId") Long roleId,
@RequestParam("userIds") Long[] userIds) { ... }
@GetMapping("/{roleId}")
public R<SysRoleVo> getInfo(@PathVariable("roleId") Long roleId) { ... }
// ❌ 错误(本地 IDEA 可能正常,生产易 500)
public R<Void> selectAuthUserAll(Long roleId, Long[] userIds) { ... }
public R<SysRoleVo> getInfo(@PathVariable Long roleId) { ... }
```
父 POM 已配置 `<parameters>true</parameters>` 与 `-parameters` 作为兜底,但接口代码仍必须显式声明参数名。
#### 🚨 接口开发检查清单
**每个新接口必须检查**:
@@ -752,6 +775,7 @@ public class UserBo {
- [ ] 是否添加了@SaCheckPermission 权限注解?
- [ ] 是否添加了@Operation 接口描述?
- [ ] 是否进行了参数校验?
- [ ] `@RequestParam`/`@PathVariable` 是否显式声明了参数名?
- [ ] 是否符合 RESTful 命名规范?
- [ ] 是否包含了必要的请求头(clientid、Content-Type 等)?
- [ ] 是否在 API 文档中记录了接口信息?
+6
View File
@@ -632,6 +632,12 @@ const handleStartWorkFlow = async (businessData: any) => {
// - 退回 (backProcess)
```
**🔴 退回残留任务清理(强制性,2026-10-15)**:
- `backProcess` 在 `skip(REJECT)` 后必须清理同实例下非目标节点残留 `flow_task`/`flow_user`(`cleanResidualTasksAfterBack`)
- 草稿/撤销/退回重新提交时,`startWorkFlow` 需自愈多任务脏数据并按实例状态解析正确 taskId(`healResidualTasksOnRestart`)
- 背景:退回后若残留原审批节点 + draft 申请人任务,移动端再提交会报「启动工作流失败」
### 3. 流程撤销
```typescript
File diff suppressed because it is too large. Load diff
+72
View File
@@ -0,0 +1,72 @@
# 仅 tag 触发:顺序打包 backend / web / mobile-h5
# 产物:/root/hzdyjs-releases/<tag>/{backend,web,mobile-h5}-<tag>.*
# Maven 缓存:宿主机 /root/maven-repo → 容器 /maven-repo(由 runner DRONE_RUNNER_VOLUMES 注入)
# 发版目录:/root/hzdyjs-releases → /hzdyjs-releases(同上,勿在本文件重复挂载)
kind: pipeline
type: docker
name: package-prod
concurrency:
limit: 1
trigger:
event:
- tag
clone:
depth: 1
steps:
- name: package-backend
image: maven:3.9-eclipse-temurin-17
commands:
- set -eu
- echo "==> backend tag=${DRONE_TAG} commit=${DRONE_COMMIT}"
- test -n "${DRONE_TAG}"
- mkdir -p "/hzdyjs-releases/${DRONE_TAG}"
- cd backend
- |
mvn clean package -Pprod \
-Dmaven.test.skip=true \
-Dmaven.compiler.parameters=true \
-Dmaven.repo.local=/maven-repo
- test -f ruoyi-admin/target/ruoyi-admin.jar
- cp -v ruoyi-admin/target/ruoyi-admin.jar "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
- ls -lh "/hzdyjs-releases/${DRONE_TAG}/backend-${DRONE_TAG}.jar"
- name: package-web
# 无 package-lock(被 gitignore);Node20 需 --legacy-peer-deps 规避 npm edgesOut
image: node:20-bookworm
environment:
NPM_CONFIG_REGISTRY: https://registry.npmmirror.com
commands:
- set -eu
- echo "==> web tag=${DRONE_TAG} npm=$(npm -v) node=$(node -v)"
- mkdir -p "/hzdyjs-releases/${DRONE_TAG}"
- cd web
- npm install --legacy-peer-deps --no-audit --no-fund
# 测试机物理内存约 3.6G;配合加大后的 swap,堆设 3584 避免 OOM 又不过分挤爆
- node --max-old-space-size=3584 node_modules/vite/bin/vite.js build --mode production
- test -f dist/index.html
- tar -C dist -czf "/hzdyjs-releases/${DRONE_TAG}/web-${DRONE_TAG}.tar.gz" .
- ls -lh "/hzdyjs-releases/${DRONE_TAG}/web-${DRONE_TAG}.tar.gz"
- name: package-mobile-h5
image: node:20-bookworm
environment:
NPM_CONFIG_REGISTRY: https://registry.npmmirror.com
commands:
- set -eu
- echo "==> mobile-h5 tag=${DRONE_TAG}"
- mkdir -p "/hzdyjs-releases/${DRONE_TAG}"
- corepack enable
- corepack prepare pnpm@9 --activate
- cd mobile
- pnpm config set registry https://registry.npmmirror.com
- pnpm install --frozen-lockfile
- pnpm run build
- test -d dist/build/h5
- tar -C dist/build/h5 -czf "/hzdyjs-releases/${DRONE_TAG}/mobile-h5-${DRONE_TAG}.tar.gz" .
- ls -lh "/hzdyjs-releases/${DRONE_TAG}/"
- ls -lh "/hzdyjs-releases/${DRONE_TAG}/mobile-h5-${DRONE_TAG}.tar.gz"
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# 生产环境打包脚本
# 强制保留方法参数名,避免 Spring 在生产环境无法绑定请求参数
set -euo pipefail
cd "$(dirname "$0")"
echo "==> 开始生产打包: mvn clean package -Pprod -Dmaven.compiler.parameters=true"
mvn clean package -Pprod -Dmaven.compiler.parameters=true "$@"
JAR="ruoyi-admin/target/ruoyi-admin.jar"
if [[ -f "$JAR" ]]; then
echo "==> 打包成功: $JAR"
ls -lh "$JAR"
else
echo "==> 未找到 $JAR,请检查构建日志" >&2
exit 1
fi
+7 -3
View File
@@ -17,6 +17,8 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version>
<!-- 强制 javac 保留方法参数名,避免生产环境 Spring 绑定 @RequestParam 失败 -->
<maven.compiler.parameters>true</maven.compiler.parameters>
<mybatis.version>3.5.16</mybatis.version>
<springdoc.version>2.8.8</springdoc.version>
<therapi-javadoc.version>0.15.0</therapi-javadoc.version>
@@ -78,7 +80,7 @@
<profiles.active>dev</profiles.active>
<logging.level>info</logging.level>
<monitor.username>ruoyi</monitor.username>
<monitor.password>123456</monitor.password>
<monitor.password>HzdyjsMon@Dev#9Kx7mQ2pL</monitor.password>
</properties>
<activation>
<!-- 默认环境 -->
@@ -92,7 +94,7 @@
<profiles.active>prod-local</profiles.active>
<logging.level>warn</logging.level>
<monitor.username>ruoyi</monitor.username>
<monitor.password>123456</monitor.password>
<monitor.password>HzdyjsMon@Prod#TclhloNMWuVjq</monitor.password>
</properties>
</profile>
<profile>
@@ -101,7 +103,7 @@
<profiles.active>prod</profiles.active>
<logging.level>warn</logging.level>
<monitor.username>ruoyi</monitor.username>
<monitor.password>123456</monitor.password>
<monitor.password>HzdyjsMon@Prod#TclhloNMWuVjq</monitor.password>
</properties>
</profile>
</profiles>
@@ -480,6 +482,8 @@
<version>${mapstruct-plus.lombok.version}</version>
</path>
</annotationProcessorPaths>
<!-- 强制保留方法参数名,避免 @PathVariable/@RequestParam 缺少显式名称时运行时报错 -->
<parameters>true</parameters>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
+3 -1
View File
@@ -80,11 +80,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再打入运行包(含 /demo/mail、/demo/queue 等) -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
@@ -64,7 +64,7 @@ public class XgStuMsgController extends BaseController {
@SaCheckPermission("test:stuMsg:query")
@GetMapping("/{id}")
public R<XgStuMsgVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(xgStuMsgService.queryById(id));
}
@@ -99,7 +99,7 @@ public class XgStuMsgController extends BaseController {
@Log(title = "学生信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(xgStuMsgService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -21,6 +21,8 @@ import org.dromara.common.core.domain.model.SocialLoginBody;
import org.dromara.common.core.utils.*;
import org.dromara.common.encrypt.annotation.ApiEncrypt;
import org.dromara.common.json.utils.JsonUtils;
import org.dromara.common.ratelimiter.annotation.RateLimiter;
import org.dromara.common.ratelimiter.enums.LimitType;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.social.config.properties.SocialLoginConfigProperties;
import org.dromara.common.social.config.properties.SocialProperties;
@@ -41,6 +43,7 @@ import org.dromara.web.domain.vo.TenantListVo;
import org.dromara.web.service.IAuthStrategy;
import org.dromara.web.service.SysLoginService;
import org.dromara.web.service.SysRegisterService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -73,6 +76,12 @@ public class AuthController {
private final ISysClientService clientService;
private final ScheduledExecutorService scheduledExecutorService;
/**
* 配置层注册总开关,默认 false(优先于数据库 sys.account.registerUser)
*/
@Value("${user.register.enabled:false}")
private boolean registerEnabled;
/**
* 登录方法
*
@@ -118,7 +127,8 @@ public class AuthController {
*/
@GetMapping("/binding/{source}")
public R<String> authBinding(@PathVariable("source") String source,
@RequestParam String tenantId, @RequestParam String domain) {
@RequestParam("tenantId") String tenantId, @RequestParam("domain") String domain) {
loginService.checkTenant(tenantId);
SocialLoginConfigProperties obj = socialProperties.getType().get(source);
if (ObjectUtil.isNull(obj)) {
return R.fail(source + "平台账号暂不支持");
@@ -161,7 +171,7 @@ public class AuthController {
* @param socialId socialId
*/
@DeleteMapping(value = "/unlock/{socialId}")
public R<Void> unlockSocial(@PathVariable Long socialId) {
public R<Void> unlockSocial(@PathVariable("socialId") Long socialId) {
// 校验token
StpUtil.checkLogin();
Boolean rows = socialUserService.deleteWithValidById(socialId);
@@ -178,11 +188,18 @@ public class AuthController {
}
/**
* 用户注册
* 用户注册(免登接口;默认关闭,需同时打开配置与数据库开关)
*/
@ApiEncrypt
@RateLimiter(time = 60, count = 5, limitType = LimitType.IP)
@PostMapping("/register")
public R<Void> register(@Validated @RequestBody RegisterBody user) {
// P6:配置层硬关闭,避免仅依赖库开关被后台误开后遭滥用
if (!registerEnabled) {
return R.fail("当前系统没有开启注册功能!");
}
// 先校验租户(含格式白名单),禁止脏 tenantId 进入 selectRegisterEnabled 触发 SQL 注入
loginService.checkTenant(user.getTenantId());
if (!configService.selectRegisterEnabled(user.getTenantId())) {
return R.fail("当前系统没有开启注册功能!");
}
@@ -68,9 +68,11 @@ public class CasController {
CAS_BASE, CLIENT_ID, CLIENT_SECRET, URLEncoder.encode(code, StandardCharsets.UTF_8.toString()),
REDIRECT_URI_ENCODED);
log.info("请求 CAS accessToken: {}", url);
// 禁止打印 client_secret、完整换票 URL、access_token
log.info("请求 CAS accessToken: base={}, client_id={}, codeLen={}", CAS_BASE, CLIENT_ID,
code != null ? code.length() : 0);
String resp = HttpUtil.get(url);
log.info("CAS accessToken 响应: {}", resp);
log.info("CAS accessToken 响应已收到: respLen={}", resp != null ? resp.length() : 0);
// 尝试解析 access_token(CAS 可能返回 JSON 或 query-string 风格)
String accessToken = null;
@@ -96,9 +98,10 @@ public class CasController {
// 使用 access_token 请求 profile 接口
String profileUrl = String.format("%s/cas/oauth2.0/profile?access_token=%s", CAS_BASE,
URLEncoder.encode(accessToken, StandardCharsets.UTF_8.toString()));
log.info("请求 CAS profile: {}", profileUrl);
// 禁止打印 access_token 与完整 profile
log.info("请求 CAS profile: base={}", CAS_BASE);
String profileResp = HttpUtil.get(profileUrl);
log.info("CAS profile 响应: {}", profileResp);
log.info("CAS profile 响应已收到: respLen={}", profileResp != null ? profileResp.length() : 0);
// 解析 profile,尝试从 attributes 中找到 CODE(用户名) 和 TENANTID
try {
@@ -178,7 +181,7 @@ public class CasController {
return R.fail("处理 CAS profile 失败: " + e.getMessage());
}
} else {
return R.fail("无法解析 CAS access_token,原始响应: " + resp);
return R.fail("无法解析 CAS access_token");
}
} catch (Exception e) {
log.error("请求 CAS accessToken 失败", e);
@@ -225,6 +225,10 @@ public class SysLoginService {
* @param tenantId 租户ID
*/
public void checkTenant(String tenantId) {
// 只要传入了 tenantId,无论租户开关是否开启都先做格式白名单(防注入)
if (StringUtils.isNotBlank(tenantId)) {
TenantHelper.checkTenantIdFormat(tenantId);
}
if (!TenantHelper.isEnable()) {
return;
}
@@ -22,6 +22,7 @@ import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
@@ -37,11 +38,19 @@ public class SysRegisterService {
private final SysUserMapper userMapper;
private final CaptchaProperties captchaProperties;
@Value("${user.register.enabled:false}")
private boolean registerEnabled;
/**
* 注册
*/
public void register(RegisterBody registerBody) {
if (!registerEnabled) {
throw new UserException("user.register.disabled");
}
String tenantId = registerBody.getTenantId();
// 动态租户查询前校验格式,防止绕过 Controller 时注入
TenantHelper.checkTenantIdFormat(tenantId);
String username = registerBody.getUsername();
String password = registerBody.getPassword();
// 校验用户类型是否存在
@@ -1,7 +1,19 @@
--- # 监控中心配置
--- # Actuator 全关(不使用)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: ""
endpoint:
health:
enabled: false
heapdump:
enabled: false
--- # 监控中心配置(不使用,关闭客户端)
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP
@@ -74,8 +86,8 @@ spring:
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
# 增加锁等待超时参数,减少锁冲突
url: jdbc:mysql://47.99.164.66:3306/hzdyjs_xg?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&innodb_lock_wait_timeout=120&autocommit=true
username: root
password: hn02le.34lkdLKD
username: hzdyjs_app
password: Hzdyjs@App#n4SQi8AfPHldNj49
# # 从库数据源
# slave:
# lazy: true
@@ -130,7 +142,7 @@ spring.data:
# 数据库索引
database: 8
# redis 密码必须配置
password: Hzdyjs@123456
password: "Fwd7y-8UDlZ3%3VO8kwn%J1T"
# 连接超时时间
timeout: 30s
# 是否开启ssl
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -18,7 +18,7 @@ logging:
# 监控中心配置 - 端口漂移
spring.boot.admin.client:
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -1,10 +1,22 @@
--- # 临时文件存储位置 避免临时文件被系统清理报错
spring.servlet.multipart.location: /ruoyi/server/temp
--- # 监控中心配置
--- # Actuator 全关(不使用)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: ""
endpoint:
health:
enabled: false
heapdump:
enabled: false
--- # 监控中心配置(不使用,关闭客户端)
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://47.121.125.41:9090/admin
instance:
service-host-type: IP
@@ -53,8 +65,8 @@ spring:
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://47.99.164.66:3306/hzdyjs_xg?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: hn02le.34lkdLKD
username: hzdyjs_app
password: Hzdyjs@App#n4SQi8AfPHldNj49
# # 从库数据源
# slave:
# lazy: true
@@ -107,7 +119,7 @@ spring.data:
# 数据库索引
database: 3
# redis 密码必须配置
password: Hzdyjs@123456
password: "Fwd7y-8UDlZ3%3VO8kwn%J1T"
# 连接超时时间
timeout: 10s
# 是否开启ssl
@@ -1,10 +1,22 @@
--- # 临时文件存储位置 避免临时文件被系统清理报错
spring.servlet.multipart.location: /ruoyi/server/temp
--- # 监控中心配置
--- # Actuator 全关(不使用)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: ""
endpoint:
health:
enabled: false
heapdump:
enabled: false
--- # 监控中心配置(不使用,关闭客户端)
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -53,8 +65,8 @@ spring:
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://172.16.0.67:3306/hzdyjs_xg?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: Hzdyjs@Root@123456
username: hzdyjs_app
password: Hzdyjs@App#n4SQi8AfPHldNj49
# # 从库数据源
# slave:
# lazy: true
@@ -107,7 +119,7 @@ spring.data:
# 数据库索引
database: 3
# redis 密码必须配置
password: Hzdyjs@redis@123456
password: Hzdyschool@redis@15937
# 连接超时时间
timeout: 10s
# 是否开启ssl
@@ -58,6 +58,9 @@ logging:
# 用户配置
user:
# 开放注册总开关(P6:校园场景默认关闭,防止免登 /auth/register 被滥用)
register:
enabled: false
password:
# 密码最大错误次数
maxRetryCount: 5
@@ -125,7 +128,7 @@ sa-token:
# security配置
security:
# 排除路径
# 排除路径(P0:已下线 Swagger/api-docs,不再加入白名单)
excludes:
- /*.html
- /**/*.html
@@ -133,20 +136,10 @@ security:
- /**/*.js
- /favicon.ico
- /error
- /*/api-docs
- /*/api-docs/**
- /api-docs
- /api-docs/**
- /swagger-ui/**
- /swagger-ui.html
- /swagger-ui/index.html
- /v3/api-docs/**
- /webjars/**
- /warm-flow-ui/config
# 招聘门户公开接口 weizhong
- /rs/job/public/**
- /rs/job/view/**
- /rs/application/submit
- /system/dict/data/type/*
# 多租户配置
@@ -164,6 +157,7 @@ tenant:
- sys_user_role
- sys_client
- sys_oss_config
- sys_bucket_access_record
- xljk_evaluation
- xljk_evaluation_detail
@@ -215,50 +209,25 @@ api-decrypt:
# 对应前端加密公钥 MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==
privateKey: MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKNPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gAkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWowcSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99EcvDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthhYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3UP8iWi1Qw0Y=
# P0:Swagger / api-docs 已下线,禁止对外暴露接口清单
springdoc:
api-docs:
# 是否开启接口文档
enabled: true
# 接口文档路径
enabled: false
path: /api-docs
swagger-ui:
# 启用 Swagger UI
enabled: true
# Swagger UI 路径
enabled: false
path: /swagger-ui.html
info:
# 标题
title: '标题:杭州第一技师学院智慧校园管理系统_接口文档'
# 描述
description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...'
# 版本
description: '描述:接口文档已关闭'
version: '版本号: ${ruoyi.version}'
# 作者信息
contact:
name: Lion Li
email: crazylionli@163.com
url: https://gitee.com/dromara/RuoYi-Vue-Plus
components:
# 鉴权方式配置
security-schemes:
apiKey:
type: APIKEY
in: HEADER
name: ${sa-token.token-name}
#这里定义了两个分组,可定义多个,也可以不定义
group-configs:
- group: 1.演示模块
packages-to-scan: org.dromara.demo
- group: 2.通用模块
packages-to-scan: org.dromara.web
- group: 3.系统模块
packages-to-scan: org.dromara.system
- group: 4.代码生成模块
packages-to-scan: org.dromara.generator
- group: 5.工作流模块
packages-to-scan: org.dromara.workflow
- group: 6.所有业务模块
packages-to-scan: org.dromara
group-configs: []
# 防止XSS攻击
xss:
@@ -285,15 +254,18 @@ lock4j:
# 分布式锁的超时时间,默认为 30 秒
expire: 30000
--- # Actuator 监控端点的配置项
--- # Actuator:不使用监控,关闭全部 Web 端点(含 heapdump)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: '*'
include: ""
endpoint:
health:
show-details: ALWAYS
enabled: false
heapdump:
enabled: false
logfile:
external-file: ./logs/sys-console.log
@@ -25,6 +25,7 @@ user.login.success=登录成功
user.register.success=注册成功
user.register.save.error=保存用户 {0} 失败,注册账号已存在
user.register.error=注册失败,请联系系统管理人员
user.register.disabled=当前系统没有开启注册功能!
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
@@ -56,6 +57,7 @@ social.code.not.blank=第三方登录平台[code]不能为空
social.state.not.blank=第三方登录平台[state]不能为空
##租户
tenant.number.not.blank=租户编号不能为空
tenant.id.invalid=租户编号格式不正确
tenant.not.exists=对不起, 您的租户不存在,请联系管理员
tenant.blocked=对不起,您的租户已禁用,请联系管理员
tenant.expired=对不起,您的租户已过期,请联系管理员
@@ -25,6 +25,7 @@ user.login.success=Login successful
user.register.success=Register successful
user.register.save.error=Failed to save user {0}, The registered account already exists
user.register.error=Register failed, please contact system administrator
user.register.disabled=User registration is disabled
user.notfound=Please login again
user.forcelogout=The administrator is forced to exit,please login again
user.unknown.error=Unknown error, please login again
@@ -56,6 +57,7 @@ social.code.not.blank=Social login platform [code] cannot be blank
social.state.not.blank=Social login platform [state] cannot be blank
##租户
tenant.number.not.blank=Tenant number cannot be blank
tenant.id.invalid=Invalid tenant number format
tenant.not.exists=Sorry, your tenant does not exist. Please contact the administrator
tenant.blocked=Sorry, your tenant is disabled. Please contact the administrator
tenant.expired=Sorry, your tenant has expired. Please contact the administrator.
@@ -25,6 +25,7 @@ user.login.success=登录成功
user.register.success=注册成功
user.register.save.error=保存用户 {0} 失败,注册账号已存在
user.register.error=注册失败,请联系系统管理人员
user.register.disabled=当前系统没有开启注册功能!
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
@@ -56,6 +57,7 @@ social.code.not.blank=第三方登录平台[code]不能为空
social.state.not.blank=第三方登录平台[state]不能为空
##租户
tenant.number.not.blank=租户编号不能为空
tenant.id.invalid=租户编号格式不正确
tenant.not.exists=对不起, 您的租户不存在,请联系管理员
tenant.blocked=对不起,您的租户已禁用,请联系管理员
tenant.expired=对不起,您的租户已过期,请联系管理员
@@ -3,6 +3,7 @@ package org.dromara.common.core.config;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 程序注解配置
@@ -12,6 +13,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@AutoConfiguration
@EnableAspectJAutoProxy
@EnableAsync(proxyTargetClass = true)
@EnableScheduling
public class ApplicationConfig {
}
@@ -1,6 +1,7 @@
package org.dromara.common.core.domain.model;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import java.io.Serial;
@@ -31,8 +32,9 @@ public class LoginBody implements Serializable {
private String grantType;
/**
* 租户ID
* 租户ID(仅允许纯数字,防止拼进 SQL 导致注入)
*/
@Pattern(regexp = "^[0-9]{1,20}$", message = "{tenant.id.invalid}")
private String tenantId;
/**
@@ -26,10 +26,10 @@ public class MimeTypeUtils {
public static final String[] VIDEO_EXTENSION = {"mp4", "avi", "rmvb"};
public static final String[] DEFAULT_ALLOWED_EXTENSION = {
// 图片
// 图片(不含 svg,避免脚本型 XSS)
"bmp", "gif", "jpg", "jpeg", "png",
// word excel powerpoint
"doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt",
// word excel powerpoint(不含 html/htm)
"doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt",
// 压缩文件
"rar", "zip", "gz", "bz2",
// 视频格式
@@ -10,17 +10,16 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 启动定时任务
* 启动 SnailJob 客户端
* <p>Spring {@code @Scheduled} 已由 {@code ApplicationConfig} 统一开启,不再依赖本配置。</p>
*
* @author opensnail
* @date 2024-05-17
*/
@AutoConfiguration
@ConditionalOnProperty(prefix = "snail-job", name = "enabled", havingValue = "true")
@EnableScheduling
@EnableSnailJob
public class SnailJobConfig {
@@ -2,9 +2,11 @@ package org.dromara.common.redis.config;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
@@ -51,8 +53,19 @@ public class RedisConfig {
om.registerModule(javaTimeModule);
om.setTimeZone(TimeZone.getDefault());
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// 指定序列化输入的类型,类必须是非final修饰的。序列化时将对象全类名一起保存下来
om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
// 使用包名白名单替代 LaissezFaireSubTypeValidator,降低 Redis 被写入恶意 @class 时的反序列化 RCE 风险
// 说明:RedisUtils/Sa-Token 以 Object 读写缓存,仍需保留类型信息;禁止完全放开任意类反序列化
PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder()
.allowIfSubType("org.dromara.")
.allowIfSubType("cn.dev33.satoken.")
.allowIfSubType("cn.hutool.")
.allowIfSubType("java.util.")
.allowIfSubType("java.lang.")
.allowIfSubType("java.time.")
.allowIfSubType("java.math.")
.allowIfSubType("java.util.concurrent.")
.build();
om.activateDefaultTyping(ptv, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
// LoggerFactory.useSlf4jLogging(true);
// FuryCodec furyCodec = new FuryCodec();
// CompositeCodec codec = new CompositeCodec(StringCodec.INSTANCE, furyCodec, furyCodec);
@@ -31,7 +31,8 @@ public class PlusTenantLineHandler implements TenantLineHandler {
log.error("无法获取有效的租户id -> Null");
return new NullValue();
}
// 返回固定租户
// sink 白名单:非法租户ID绝不拼进 SQL(防 SQL 注入)
TenantHelper.checkTenantIdFormat(tenantId);
return new StringValue(tenantId);
}
@@ -16,9 +16,11 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.reflect.ReflectUtils;
import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.tenant.exception.TenantException;
import java.util.Stack;
import java.util.function.Supplier;
import java.util.regex.Pattern;
/**
* 租户助手
@@ -35,6 +37,12 @@ public class TenantHelper {
private static final ThreadLocal<Stack<Integer>> REENTRANT_IGNORE = ThreadLocal.withInitial(Stack::new);
/**
* 租户ID格式白名单:仅允许纯数字(与系统生成的 6 位租户编号及默认租户 000000 一致)
* 防止外部传入的 tenantId 被拼进 SQL 字面量导致注入
*/
private static final Pattern TENANT_ID_PATTERN = Pattern.compile("^[0-9]{1,20}$");
/**
* 租户功能是否启用
*/
@@ -42,6 +50,30 @@ public class TenantHelper {
return Convert.toBool(SpringUtils.getProperty("tenant.enable"), false);
}
/**
* 校验租户ID格式是否合法(白名单)
*
* @param tenantId 租户ID
* @return true 合法
*/
public static boolean isValidTenantId(String tenantId) {
return StringUtils.isNotBlank(tenantId) && TENANT_ID_PATTERN.matcher(tenantId).matches();
}
/**
* 校验租户ID格式,非法则抛出异常(fail-closed,不降级继续拼 SQL)
*
* @param tenantId 租户ID
*/
public static void checkTenantIdFormat(String tenantId) {
if (!isValidTenantId(tenantId)) {
String safe = tenantId == null ? "null"
: tenantId.length() > 64 ? tenantId.substring(0, 64) + "..." : tenantId;
log.error("租户ID格式非法,已阻断: [{}]", safe);
throw new TenantException("tenant.id.invalid");
}
}
private static IgnoreStrategy getIgnoreStrategy() {
Object ignoreStrategyLocal = ReflectUtils.getStaticFieldValue(ReflectUtils.getField(InterceptorIgnoreHelper.class, "IGNORE_STRATEGY_LOCAL"));
if (ignoreStrategyLocal instanceof ThreadLocal<?> IGNORE_STRATEGY_LOCAL) {
@@ -128,6 +160,10 @@ public class TenantHelper {
* @param global 是否全局生效
*/
public static void setDynamic(String tenantId, boolean global) {
// 传入非空时一律先校验格式,避免租户开关关闭时仍把脏数据带入后续逻辑
if (StringUtils.isNotBlank(tenantId)) {
checkTenantIdFormat(tenantId);
}
if (!isEnable()) {
return;
}
@@ -21,22 +21,25 @@ spring:
title: RuoYi-Vue-Plus服务监控中心
context-path: /admin
--- # Actuator 监控端点的配置项
--- # Actuator 全关(不使用)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: '*'
include: ""
endpoint:
health:
show-details: ALWAYS
enabled: false
heapdump:
enabled: false
logfile:
external-file: ./logs/ruoyi-monitor-admin.log
--- # 监控配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
# 设置 Spring Boot Admin Server 地址
url: http://47.121.125.41:9090/admin
instance:
@@ -23,22 +23,25 @@ spring:
# 配置公网访问地址,确保重定向和静态资源路径包含正确的端口号
# public-url: http://web.hzdyjsxy.cn:18081/admin
--- # Actuator 监控端点的配置项
--- # Actuator 全关(不使用)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: '*'
include: ""
endpoint:
health:
show-details: ALWAYS
enabled: false
heapdump:
enabled: false
logfile:
external-file: ./logs/ruoyi-monitor-admin.log
--- # 监控配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
# 设置 Spring Boot Admin Server 地址
url: http://172.16.0.67:9090/admin
instance:
@@ -21,22 +21,25 @@ spring:
title: RuoYi-Vue-Plus服务监控中心
context-path: /admin
--- # Actuator 监控端点的配置项
--- # Actuator 全关(不使用)
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: '*'
include: ""
endpoint:
health:
show-details: ALWAYS
enabled: false
heapdump:
enabled: false
logfile:
external-file: ./logs/ruoyi-monitor-admin.log
--- # 监控配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
# 设置 Spring Boot Admin Server 地址
url: http://127.0.0.1:9090/admin
instance:
@@ -3,8 +3,8 @@ spring:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.99.164.66:3306/hzdyjs_xg?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: hn02le.34lkdLKD
username: hzdyjs_app
password: Hzdyjs@App#n4SQi8AfPHldNj49
hikari:
connection-timeout: 30000
validation-timeout: 5000
@@ -29,7 +29,7 @@ snail-job:
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP
@@ -3,8 +3,8 @@ spring:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.99.164.66:3306/hzdyjs_xg?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: hn02le.34lkdLKD
username: hzdyjs_app
password: Hzdyjs@App#n4SQi8AfPHldNj49
hikari:
connection-timeout: 30000
validation-timeout: 5000
@@ -29,7 +29,7 @@ snail-job:
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://47.121.125.41:9090/admin
instance:
service-host-type: IP
@@ -3,8 +3,8 @@ spring:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://172.16.0.67:3306/hzdyjs_xg?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: Hzdyjs@Root@123456
username: hzdyjs_app
password: Hzdyjs@App#n4SQi8AfPHldNj49
hikari:
connection-timeout: 30000
validation-timeout: 5000
@@ -29,7 +29,7 @@ snail-job:
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://172.16.0.67:9090/admin
instance:
service-host-type: IP
@@ -29,11 +29,14 @@ logging:
management:
endpoints:
enabled-by-default: false
web:
exposure:
include: '*'
include: ""
endpoint:
health:
show-details: ALWAYS
enabled: false
heapdump:
enabled: false
logfile:
external-file: ./logs/ruoyi-snailjob-server/console.log
+3 -1
View File
@@ -92,11 +92,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再依赖 -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
+3 -1
View File
@@ -92,11 +92,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再依赖 -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
@@ -42,7 +42,7 @@ public class AssessmentApprovalController extends BaseController {
/**
* 查询班主任考核审核列表
*/
// @SaCheckPermission("bzrkh:assessmentApproval:list")
@SaCheckPermission("bzrkh:assessmentApproval:list")
@GetMapping("/list")
public TableDataInfo<AssessmentApprovalVo> list(AssessmentApprovalQueryBo bo, PageQuery pageQuery) {
return assessmentApprovalService.queryPageList(bo, pageQuery);
@@ -51,12 +51,12 @@ public class AssessmentApprovalController extends BaseController {
/**
* 获取考核审核详情
*/
// @SaCheckPermission("bzrkh:assessmentApproval:query")
@SaCheckPermission("bzrkh:assessmentApproval:query")
@GetMapping("/detail")
public R<AssessmentApprovalDetailVo> getApprovalDetail(
@RequestParam @NotNull(message = "计划ID不能为空") Long planId,
@RequestParam @NotNull(message = "班级ID不能为空") Long classId,
@RequestParam @NotNull(message = "被评价用户ID不能为空") Long evaluatedUserId) {
@RequestParam("planId") @NotNull(message = "计划ID不能为空") Long planId,
@RequestParam("classId") @NotNull(message = "班级ID不能为空") Long classId,
@RequestParam("evaluatedUserId") @NotNull(message = "被评价用户ID不能为空") Long evaluatedUserId) {
AssessmentApprovalDetailVo detail = assessmentApprovalService.getApprovalDetail(planId, classId,
evaluatedUserId);
return R.ok(detail);
@@ -65,7 +65,7 @@ public class AssessmentApprovalController extends BaseController {
/**
* 提交考核审核
*/
// @SaCheckPermission("bzrkh:assessmentApproval:approve")
@SaCheckPermission("bzrkh:assessmentApproval:approve")
@Log(title = "班主任考核审核", businessType = BusinessType.UPDATE)
@PostMapping("/submit")
public R<Void> submitApproval(@RequestBody @Validated AssessmentApprovalSubmitBo bo) {
@@ -77,7 +77,7 @@ public class AssessmentApprovalController extends BaseController {
/**
* 批量审核通过
*/
// @SaCheckPermission("bzrkh:assessmentApproval:approve")
@SaCheckPermission("bzrkh:assessmentApproval:approve")
@Log(title = "班主任考核审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchApprove")
public R<Void> batchApprove(@RequestBody BatchApprovalBo bo) {
@@ -89,7 +89,7 @@ public class AssessmentApprovalController extends BaseController {
/**
* 批量审核拒绝
*/
// @SaCheckPermission("bzrkh:assessmentApproval:approve")
@SaCheckPermission("bzrkh:assessmentApproval:approve")
@Log(title = "班主任考核审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchReject")
public R<Void> batchReject(@Validated @RequestBody BatchApprovalBo bo) {
@@ -102,10 +102,10 @@ public class AssessmentApprovalController extends BaseController {
* 删除异常的审批记录(管理员专用)
* 用于清理审批列表中显示但实际已被删除的异常数据
*/
// @SaCheckPermission("bzrkh:assessmentApproval:delete")
@SaCheckPermission("bzrkh:assessmentApproval:delete")
@Log(title = "班主任考核审核", businessType = BusinessType.DELETE)
@DeleteMapping("/deleteAbnormalRecord")
public R<Void> deleteAbnormalRecord(@RequestParam Long planId, @RequestParam Long evaluatedUserId) {
public R<Void> deleteAbnormalRecord(@RequestParam("planId") Long planId, @RequestParam("evaluatedUserId") Long evaluatedUserId) {
boolean result = assessmentApprovalService.deleteAbnormalRecord(planId, evaluatedUserId);
return result ? R.ok() : R.fail("删除异常记录失败");
}
@@ -113,7 +113,7 @@ public class AssessmentApprovalController extends BaseController {
/**
* 获取考核方案下拉选项
*/
// @SaCheckPermission("bzrkh:assessmentApproval:list")
@SaCheckPermission("bzrkh:assessmentApproval:list")
@GetMapping("/schemeOptions")
public R<List<SchemeOptionVo>> getSchemeOptions() {
List<SchemeOptionVo> options = assessmentApprovalService.getSchemeOptions();
@@ -123,7 +123,7 @@ public class AssessmentApprovalController extends BaseController {
/**
* 导出班主任考核审核数据
*/
// @SaCheckPermission("bzrkh:assessmentApproval:export")
@SaCheckPermission("bzrkh:assessmentApproval:export")
@Log(title = "班主任考核审核", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(AssessmentApprovalQueryBo bo, HttpServletResponse response) {
@@ -134,9 +134,9 @@ public class AssessmentApprovalController extends BaseController {
/**
* 获取评价等级统计数据
*/
// @SaCheckPermission("bzrkh:assessmentApproval:query")
@SaCheckPermission("bzrkh:assessmentApproval:query")
@GetMapping("/evaluationStats")
public R<EvaluationLevelStatsVo> getEvaluationLevelStats(@RequestParam @NotNull(message = "计划ID不能为空") Long planId) {
public R<EvaluationLevelStatsVo> getEvaluationLevelStats(@RequestParam("planId") @NotNull(message = "计划ID不能为空") Long planId) {
EvaluationLevelStatsVo stats = assessmentApprovalService.getEvaluationLevelStats(planId);
return R.ok(stats);
}
@@ -39,7 +39,7 @@ public class BmzrAssessmentIndicatorController extends BaseController {
/**
* 查询班主任考核指标体系列表
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:list")
@SaCheckPermission("bzrkh:assessmentIndicator:list")
@GetMapping("/list")
public TableDataInfo<BmzrAssessmentIndicatorVo> list(BmzrAssessmentIndicatorBo bo, PageQuery pageQuery) {
return bmzrAssessmentIndicatorService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class BmzrAssessmentIndicatorController extends BaseController {
/**
* 查询班主任考核指标体系树形结构(用于父级选择)
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:list")
@SaCheckPermission("bzrkh:assessmentIndicator:list")
@GetMapping("/treeselect")
public R<List<BmzrAssessmentIndicatorVo>> treeselect(BmzrAssessmentIndicatorBo bo) {
List<BmzrAssessmentIndicatorVo> list = bmzrAssessmentIndicatorService.queryTreeList(bo);
@@ -58,7 +58,7 @@ public class BmzrAssessmentIndicatorController extends BaseController {
/**
* 导出班主任考核指标体系列表
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:export")
@SaCheckPermission("bzrkh:assessmentIndicator:export")
@Log(title = "班主任考核指标体系", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BmzrAssessmentIndicatorBo bo, HttpServletResponse response) {
@@ -71,16 +71,16 @@ public class BmzrAssessmentIndicatorController extends BaseController {
*
* @param id 主键
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:query")
@SaCheckPermission("bzrkh:assessmentIndicator:query")
@GetMapping("/{id}")
public R<BmzrAssessmentIndicatorVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<BmzrAssessmentIndicatorVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(bmzrAssessmentIndicatorService.queryById(id));
}
/**
* 新增班主任考核指标体系
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:add")
@SaCheckPermission("bzrkh:assessmentIndicator:add")
@Log(title = "班主任考核指标体系", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -91,7 +91,7 @@ public class BmzrAssessmentIndicatorController extends BaseController {
/**
* 修改班主任考核指标体系
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:edit")
@SaCheckPermission("bzrkh:assessmentIndicator:edit")
@Log(title = "班主任考核指标体系", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -104,10 +104,10 @@ public class BmzrAssessmentIndicatorController extends BaseController {
*
* @param ids 主键串
*/
// @SaCheckPermission("bzrkh:assessmentIndicator:remove")
@SaCheckPermission("bzrkh:assessmentIndicator:remove")
@Log(title = "班主任考核指标体系", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(bmzrAssessmentIndicatorService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -39,7 +39,7 @@ public class BmzrAssessmentIndicatorTypeController extends BaseController {
/**
* 查询班主任考核指标类型列表
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:list")
@SaCheckPermission("bzrkh:assessmentIndicatorType:list")
@GetMapping("/list")
public TableDataInfo<BmzrAssessmentIndicatorTypeVo> list(BmzrAssessmentIndicatorTypeBo bo, PageQuery pageQuery) {
return bmzrAssessmentIndicatorTypeService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class BmzrAssessmentIndicatorTypeController extends BaseController {
/**
* 查询所有班主任考核指标类型列表(包括已逻辑删除的)
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:list")
@SaCheckPermission("bzrkh:assessmentIndicatorType:list")
@GetMapping("/listAllIncludeDeleted")
public R<List<BmzrAssessmentIndicatorTypeVo>> listAllIncludeDeleted(BmzrAssessmentIndicatorTypeBo bo) {
List<BmzrAssessmentIndicatorTypeVo> list = bmzrAssessmentIndicatorTypeService.queryListWithDeleted(bo);
@@ -58,7 +58,7 @@ public class BmzrAssessmentIndicatorTypeController extends BaseController {
/**
* 导出班主任考核指标类型列表
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:export")
@SaCheckPermission("bzrkh:assessmentIndicatorType:export")
@Log(title = "班主任考核指标类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BmzrAssessmentIndicatorTypeBo bo, HttpServletResponse response) {
@@ -71,16 +71,16 @@ public class BmzrAssessmentIndicatorTypeController extends BaseController {
*
* @param id 主键
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:query")
@SaCheckPermission("bzrkh:assessmentIndicatorType:query")
@GetMapping("/{id}")
public R<BmzrAssessmentIndicatorTypeVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<BmzrAssessmentIndicatorTypeVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(bmzrAssessmentIndicatorTypeService.queryById(id));
}
/**
* 新增班主任考核指标类型
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:add")
@SaCheckPermission("bzrkh:assessmentIndicatorType:add")
@Log(title = "班主任考核指标类型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -91,7 +91,7 @@ public class BmzrAssessmentIndicatorTypeController extends BaseController {
/**
* 修改班主任考核指标类型
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:edit")
@SaCheckPermission("bzrkh:assessmentIndicatorType:edit")
@Log(title = "班主任考核指标类型", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -104,10 +104,10 @@ public class BmzrAssessmentIndicatorTypeController extends BaseController {
*
* @param ids 主键串
*/
// @SaCheckPermission("bzrkh:assessmentIndicatorType:remove")
@SaCheckPermission("bzrkh:assessmentIndicatorType:remove")
@Log(title = "班主任考核指标类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(bmzrAssessmentIndicatorTypeService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -39,7 +39,7 @@ public class BmzrAssessmentPlanController extends BaseController {
/**
* 查询班主任考核计划列表
*/
// @SaCheckPermission("bzrkh:assessmentPlan:list")
@SaCheckPermission("bzrkh:assessmentPlan:list")
@GetMapping("/list")
public TableDataInfo<BmzrAssessmentPlanVo> list(BmzrAssessmentPlanBo bo, PageQuery pageQuery) {
return bmzrAssessmentPlanService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class BmzrAssessmentPlanController extends BaseController {
/**
* 导出班主任考核计划列表
*/
// @SaCheckPermission("bzrkh:assessmentPlan:export")
@SaCheckPermission("bzrkh:assessmentPlan:export")
@Log(title = "班主任考核计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BmzrAssessmentPlanBo bo, HttpServletResponse response) {
@@ -59,16 +59,16 @@ public class BmzrAssessmentPlanController extends BaseController {
/**
* 获取班主任考核计划详细信息
*/
// @SaCheckPermission("bzrkh:assessmentPlan:query")
@SaCheckPermission("bzrkh:assessmentPlan:query")
@GetMapping("/{id}")
public R<BmzrAssessmentPlanVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<BmzrAssessmentPlanVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(bmzrAssessmentPlanService.queryById(id));
}
/**
* 新增班主任考核计划
*/
// @SaCheckPermission("bzrkh:assessmentPlan:add")
@SaCheckPermission("bzrkh:assessmentPlan:add")
@Log(title = "班主任考核计划", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -79,7 +79,7 @@ public class BmzrAssessmentPlanController extends BaseController {
/**
* 修改班主任考核计划
*/
// @SaCheckPermission("bzrkh:assessmentPlan:edit")
@SaCheckPermission("bzrkh:assessmentPlan:edit")
@Log(title = "班主任考核计划", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -90,17 +90,17 @@ public class BmzrAssessmentPlanController extends BaseController {
/**
* 删除班主任考核计划
*/
// @SaCheckPermission("bzrkh:assessmentPlan:remove")
@SaCheckPermission("bzrkh:assessmentPlan:remove")
@Log(title = "班主任考核计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(bmzrAssessmentPlanService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 修改考核计划状态
*/
// @SaCheckPermission("bzrkh:assessmentPlan:edit")
@SaCheckPermission("bzrkh:assessmentPlan:edit")
@Log(title = "班主任考核计划", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestBody BmzrAssessmentPlanBo bo) {
@@ -110,7 +110,7 @@ public class BmzrAssessmentPlanController extends BaseController {
/**
* 获取可用的考核方案选项
*/
// @SaCheckPermission("bzrkh:assessmentPlan:list")
@SaCheckPermission("bzrkh:assessmentPlan:list")
@GetMapping("/schemes/options")
public R<List<BmzrAssessmentPlanVo>> getAvailableSchemes() {
return R.ok(bmzrAssessmentPlanService.getAvailableSchemes());
@@ -41,7 +41,7 @@ public class BmzrAssessmentSchemeController extends BaseController {
/**
* 查询班主任考核方案列表
*/
// @SaCheckPermission("bzrkh:assessmentScheme:list")
@SaCheckPermission("bzrkh:assessmentScheme:list")
@GetMapping("/list")
public TableDataInfo<BmzrAssessmentSchemeVo> list(BmzrAssessmentSchemeBo bo, PageQuery pageQuery) {
return bmzrAssessmentSchemeService.queryPageList(bo, pageQuery);
@@ -50,7 +50,7 @@ public class BmzrAssessmentSchemeController extends BaseController {
/**
* 导出班主任考核方案列表
*/
// @SaCheckPermission("bzrkh:assessmentScheme:export")
@SaCheckPermission("bzrkh:assessmentScheme:export")
@Log(title = "班主任考核方案", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BmzrAssessmentSchemeBo bo, HttpServletResponse response) {
@@ -63,16 +63,16 @@ public class BmzrAssessmentSchemeController extends BaseController {
*
* @param id 主键
*/
// @SaCheckPermission("bzrkh:assessmentScheme:query")
@SaCheckPermission("bzrkh:assessmentScheme:query")
@GetMapping("/{id}")
public R<BmzrAssessmentSchemeVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<BmzrAssessmentSchemeVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(bmzrAssessmentSchemeService.queryById(id));
}
/**
* 新增班主任考核方案
*/
// @SaCheckPermission("bzrkh:assessmentScheme:add")
@SaCheckPermission("bzrkh:assessmentScheme:add")
@Log(title = "班主任考核方案", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping
@@ -83,7 +83,7 @@ public class BmzrAssessmentSchemeController extends BaseController {
/**
* 修改班主任考核方案
*/
// @SaCheckPermission("bzrkh:assessmentScheme:edit")
@SaCheckPermission("bzrkh:assessmentScheme:edit")
@Log(title = "班主任考核方案", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping
@@ -94,10 +94,10 @@ public class BmzrAssessmentSchemeController extends BaseController {
/**
* 删除班主任考核方案
*/
// @SaCheckPermission("bzrkh:assessmentScheme:remove")
@SaCheckPermission("bzrkh:assessmentScheme:remove")
@Log(title = "班主任考核方案", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(bmzrAssessmentSchemeService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -39,7 +39,7 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
/**
* 查询班主任考核方案指标关联列表
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:list")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:list")
@GetMapping("/list")
public TableDataInfo<BmzrAssessmentSchemeIndicatorVo> list(BmzrAssessmentSchemeIndicatorBo bo,
PageQuery pageQuery) {
@@ -49,9 +49,9 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
/**
* 根据方案ID查询指标关联列表(无分页)
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:list")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:list")
@GetMapping("/listBySchemeId/{schemeId}")
public R<List<BmzrAssessmentSchemeIndicatorVo>> listBySchemeId(@PathVariable Long schemeId) {
public R<List<BmzrAssessmentSchemeIndicatorVo>> listBySchemeId(@PathVariable("schemeId") Long schemeId) {
List<BmzrAssessmentSchemeIndicatorVo> list = bmzrAssessmentSchemeIndicatorService.queryBySchemeId(schemeId);
return R.ok(list);
}
@@ -59,7 +59,7 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
/**
* 导出班主任考核方案指标关联列表
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:export")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:export")
@Log(title = "班主任考核方案指标关联", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BmzrAssessmentSchemeIndicatorBo bo, HttpServletResponse response) {
@@ -72,16 +72,16 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
*
* @param id 主键
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:query")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:query")
@GetMapping("/{id}")
public R<BmzrAssessmentSchemeIndicatorVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<BmzrAssessmentSchemeIndicatorVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(bmzrAssessmentSchemeIndicatorService.queryById(id));
}
/**
* 新增班主任考核方案指标关联
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:add")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:add")
@Log(title = "班主任考核方案指标关联", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -92,7 +92,7 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
/**
* 修改班主任考核方案指标关联
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:edit")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:edit")
@Log(title = "班主任考核方案指标关联", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -105,10 +105,10 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
*
* @param ids 主键串
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:remove")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:remove")
@Log(title = "班主任考核方案指标关联", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(bmzrAssessmentSchemeIndicatorService.deleteWithValidByIds(List.of(ids), true));
}
@@ -118,11 +118,11 @@ public class BmzrAssessmentSchemeIndicatorController extends BaseController {
* @param schemeId 方案ID
* @param indicatorList 指标列表
*/
// @SaCheckPermission("bzrkh:assessmentSchemeIndicator:edit")
@SaCheckPermission("bzrkh:assessmentSchemeIndicator:edit")
@Log(title = "批量保存方案指标关联", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/batchSave/{schemeId}")
public R<Void> batchSave(@PathVariable Long schemeId,
public R<Void> batchSave(@PathVariable("schemeId") Long schemeId,
@RequestBody List<BmzrAssessmentSchemeIndicatorBo> indicatorList) {
return toAjax(bmzrAssessmentSchemeIndicatorService.batchSaveSchemeIndicators(schemeId, indicatorList));
}
@@ -42,9 +42,9 @@ public class TeacherAssessmentController extends BaseController {
/**
* 查询班主任管理的班级列表
*/
// @SaCheckPermission("bzrkh:teacherAssessment:list")
@SaCheckPermission("bzrkh:teacherAssessment:list")
@GetMapping("/classes")
public R<List<TeacherClassVo>> getTeacherClasses(@RequestParam(required = false) Long teacherId) {
public R<List<TeacherClassVo>> getTeacherClasses(@RequestParam(value = "teacherId", required = false) Long teacherId) {
// 如果没有传入teacherId,则使用当前登录用户ID
Long currentTeacherId = teacherId != null ? teacherId : LoginHelper.getUserId();
List<TeacherClassVo> list = teacherAssessmentService.queryTeacherClassList(currentTeacherId);
@@ -54,7 +54,7 @@ public class TeacherAssessmentController extends BaseController {
/**
* 查询班主任考核计划列表
*/
// @SaCheckPermission("bzrkh:teacherAssessment:list")
@SaCheckPermission("bzrkh:teacherAssessment:list")
@GetMapping("/plans")
public TableDataInfo<BmzrAssessmentPlanVo> getTeacherAssessmentPlans(TeacherAssessmentQueryBo bo,
PageQuery pageQuery) {
@@ -68,7 +68,7 @@ public class TeacherAssessmentController extends BaseController {
/**
* 提交考核
*/
// @SaCheckPermission("bzrkh:teacherAssessment:submit")
@SaCheckPermission("bzrkh:teacherAssessment:submit")
@Log(title = "班主任考核管理", businessType = BusinessType.UPDATE)
@PostMapping("/submit")
public R<Void> submitAssessment(@RequestBody TeacherAssessmentSubmitRequest request) {
@@ -90,7 +90,7 @@ public class TeacherAssessmentController extends BaseController {
/**
* 撤销考核提交
*/
// @SaCheckPermission("bzrkh:teacherAssessment:withdraw")
@SaCheckPermission("bzrkh:teacherAssessment:withdraw")
@Log(title = "班主任考核管理", businessType = BusinessType.UPDATE)
@PostMapping("/withdraw")
public R<Void> withdrawAssessment(@RequestBody TeacherAssessmentSubmitRequest request) {
@@ -103,9 +103,9 @@ public class TeacherAssessmentController extends BaseController {
/**
* 查看考核详情
*/
// @SaCheckPermission("bzrkh:teacherAssessment:detail")
@SaCheckPermission("bzrkh:teacherAssessment:detail")
@GetMapping("/detail")
public R<Object> getAssessmentDetail(@RequestParam Long planId, @RequestParam Long classId) {
public R<Object> getAssessmentDetail(@RequestParam("planId") Long planId, @RequestParam("classId") Long classId) {
Long teacherId = LoginHelper.getUserId();
Object detail = teacherAssessmentService.getAssessmentDetail(planId, classId, teacherId);
return R.ok(detail);
@@ -114,9 +114,9 @@ public class TeacherAssessmentController extends BaseController {
/**
* 获取考核提交详情数据
*/
// @SaCheckPermission("bzrkh:teacherAssessment:detail")
@SaCheckPermission("bzrkh:teacherAssessment:detail")
@GetMapping("/submitDetail")
public R<AssessmentDetailVo> getAssessmentSubmitDetail(@RequestParam Long planId, @RequestParam Long classId) {
public R<AssessmentDetailVo> getAssessmentSubmitDetail(@RequestParam("planId") Long planId, @RequestParam("classId") Long classId) {
Long teacherId = LoginHelper.getUserId();
AssessmentDetailVo detail = teacherAssessmentService.getAssessmentSubmitDetail(planId, classId, teacherId);
return R.ok(detail);
@@ -125,7 +125,7 @@ public class TeacherAssessmentController extends BaseController {
/**
* 提交考核评分数据
*/
// @SaCheckPermission("bzrkh:teacherAssessment:submit")
@SaCheckPermission("bzrkh:teacherAssessment:submit")
@Log(title = "班主任考核管理", businessType = BusinessType.INSERT)
@PostMapping("/submitScore")
public R<Void> submitAssessmentScore(@RequestBody AssessmentSubmitBo bo) {
@@ -148,7 +148,7 @@ public class TeacherAssessmentController extends BaseController {
* 用于验证特定人数的系数计算是否正确
*/
@GetMapping("/testCoefficient")
public R<Object> testStudentCountCoefficient(@RequestParam int studentCount) {
public R<Object> testStudentCountCoefficient(@RequestParam("studentCount") int studentCount) {
BigDecimal coefficient = teacherAssessmentService.testStudentCountCoefficient(studentCount);
return R.ok("学生人数: " + studentCount + ", 计算系数: " + coefficient);
}
@@ -156,9 +156,9 @@ public class TeacherAssessmentController extends BaseController {
/**
* 查询班级学生违纪记录和奖励记录
*/
// @SaCheckPermission("bzrkh:teacherAssessment:detail")
@SaCheckPermission("bzrkh:teacherAssessment:detail")
@GetMapping("/classStudentRecords")
public R<ClassStudentRecordsVo> getClassStudentRecords(@RequestParam Long classId, @RequestParam Long planId) {
public R<ClassStudentRecordsVo> getClassStudentRecords(@RequestParam("classId") Long classId, @RequestParam("planId") Long planId) {
ClassStudentRecordsVo records = teacherAssessmentService.queryClassStudentRecords(classId, planId);
return R.ok(records);
}
+3 -1
View File
@@ -92,11 +92,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再依赖 -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
@@ -44,7 +44,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询审批记录列表
*/
// @SaCheckPermission("cw:approval:list")
@SaCheckPermission("cw:approval:list")
@GetMapping("/list")
public TableDataInfo<CwApprovalRecordVo> list(CwApprovalRecordBo bo, PageQuery pageQuery) {
return approvalRecordService.queryPageList(bo, pageQuery);
@@ -53,7 +53,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 导出审批记录列表
*/
// @SaCheckPermission("cw:approval:export")
@SaCheckPermission("cw:approval:export")
@Log(title = "审批记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CwApprovalRecordBo bo, HttpServletResponse response) {
@@ -64,18 +64,18 @@ public class CwApprovalRecordController extends BaseController {
/**
* 获取审批记录详细信息
*/
// @SaCheckPermission("cw:approval:query")
@SaCheckPermission("cw:approval:query")
@GetMapping("/{id}")
public R<CwApprovalRecordVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<CwApprovalRecordVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(approvalRecordService.queryById(id));
}
/**
* 根据申报ID查询审批记录列表
*/
// @SaCheckPermission("cw:approval:query")
@SaCheckPermission("cw:approval:query")
@GetMapping("/byApplication/{applicationId}")
public R<List<CwApprovalRecordVo>> getByApplicationId(@PathVariable Long applicationId) {
public R<List<CwApprovalRecordVo>> getByApplicationId(@PathVariable("applicationId") Long applicationId) {
List<CwApprovalRecordVo> list = approvalRecordService.queryByApplicationId(applicationId);
return R.ok(list);
}
@@ -83,7 +83,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询当前用户待审批记录列表
*/
// @SaCheckPermission("cw:approval:list")
@SaCheckPermission("cw:approval:list")
@GetMapping("/pending")
public R<List<CwApprovalRecordVo>> getPendingList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryPendingByCurrentUser();
@@ -93,7 +93,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询当前用户已审批记录列表
*/
// @SaCheckPermission("cw:approval:list")
@SaCheckPermission("cw:approval:list")
@GetMapping("/my")
public R<List<CwApprovalRecordVo>> getMyApprovedList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryApprovedByCurrentUser();
@@ -103,7 +103,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询部门待审批申报列表
*/
// @SaCheckPermission("cw:approval:dept")
@SaCheckPermission("cw:approval:dept")
@GetMapping("/dept/pending")
public R<List<CwApprovalRecordVo>> getDeptPendingList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryDeptPendingApprovals();
@@ -113,7 +113,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询财务待审批申报列表
*/
// @SaCheckPermission("cw:approval:finance")
@SaCheckPermission("cw:approval:finance")
@GetMapping("/finance/pending")
public R<List<CwApprovalRecordVo>> getFinancePendingList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryFinancePendingApprovals();
@@ -123,7 +123,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询财务已审批申报列表
*/
// @SaCheckPermission("cw:approval:finance")
@SaCheckPermission("cw:approval:finance")
@GetMapping("/finance/approved")
public R<List<CwApprovalRecordVo>> getFinanceApprovedList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryFinanceApprovedRecords();
@@ -133,7 +133,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询学院领导待审批申报列表
*/
// @SaCheckPermission("cw:approval:leader")
@SaCheckPermission("cw:approval:leader")
@GetMapping("/leader/pending")
public R<List<CwApprovalRecordVo>> getLeaderPendingList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryLeaderPendingApprovals();
@@ -143,7 +143,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询学院领导已审批申报列表
*/
// @SaCheckPermission("cw:approval:leader")
@SaCheckPermission("cw:approval:leader")
@GetMapping("/leader/approved")
public R<List<CwApprovalRecordVo>> getLeaderApprovedList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryLeaderApprovedApprovals();
@@ -153,7 +153,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 查询所有待审批申报列表(超级管理员专用)
*/
// @SaCheckPermission("cw:approval:list")
@SaCheckPermission("cw:approval:list")
@GetMapping("/all/pending")
public R<List<CwApprovalRecordVo>> getAllPendingList() {
List<CwApprovalRecordVo> list = approvalRecordService.queryAllPendingApprovals();
@@ -163,7 +163,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 新增审批记录
*/
// @SaCheckPermission("cw:approval:add")
@SaCheckPermission("cw:approval:add")
@Log(title = "审批记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -174,7 +174,7 @@ public class CwApprovalRecordController extends BaseController {
/**
* 修改审批记录
*/
// @SaCheckPermission("cw:approval:edit")
@SaCheckPermission("cw:approval:edit")
@Log(title = "审批记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -185,20 +185,20 @@ public class CwApprovalRecordController extends BaseController {
/**
* 删除审批记录
*/
// @SaCheckPermission("cw:approval:remove")
@SaCheckPermission("cw:approval:remove")
@Log(title = "审批记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(approvalRecordService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 创建审批流程
*/
// @SaCheckPermission("cw:approval:create")
@SaCheckPermission("cw:approval:create")
@Log(title = "创建审批流程", businessType = BusinessType.INSERT)
@PostMapping("/create/{applicationId}")
public R<Void> createProcess(@PathVariable Long applicationId, @RequestParam String applicationNo) {
public R<Void> createProcess(@PathVariable("applicationId") Long applicationId, @RequestParam("applicationNo") String applicationNo) {
// 收集当前用户上下文信息
Long currentUserId = LoginHelper.getUserId();
String currentUserName = LoginHelper.getUsername();
@@ -213,36 +213,36 @@ public class CwApprovalRecordController extends BaseController {
/**
* 审批操作
*/
// @SaCheckPermission("cw:approval:process")
@SaCheckPermission("cw:approval:process")
@Log(title = "审批操作", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/process")
public R<Void> processApproval(@RequestParam Long applicationId,
@RequestParam String nodeCode,
@RequestParam String approveAction,
@RequestParam(required = false) String approveOpinion) {
public R<Void> processApproval(@RequestParam("applicationId") Long applicationId,
@RequestParam("nodeCode") String nodeCode,
@RequestParam("approveAction") String approveAction,
@RequestParam(value = "approveOpinion", required = false) String approveOpinion) {
return toAjax(approvalRecordService.processApproval(applicationId, nodeCode, approveAction, approveOpinion));
}
/**
* 部门审批
*/
// @SaCheckPermission("cw:approval:dept")
@SaCheckPermission("cw:approval:dept")
@Log(title = "部门审批", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/dept")
public R<Void> deptApprove(@RequestParam Long applicationId,
@RequestParam String approveAction,
@RequestParam(required = false) String approveOpinion) {
public R<Void> deptApprove(@RequestParam("applicationId") Long applicationId,
@RequestParam("approveAction") String approveAction,
@RequestParam(value = "approveOpinion", required = false) String approveOpinion) {
return toAjax(approvalRecordService.deptApprove(applicationId, approveAction, approveOpinion));
}
/**
* 查询当前审批节点
*/
// @SaCheckPermission("cw:approval:query")
@SaCheckPermission("cw:approval:query")
@GetMapping("/current/{applicationId}")
public R<CwApprovalRecordVo> getCurrentNode(@PathVariable Long applicationId) {
public R<CwApprovalRecordVo> getCurrentNode(@PathVariable("applicationId") Long applicationId) {
CwApprovalRecordVo record = approvalRecordService.queryCurrentApprovalNode(applicationId);
return R.ok(record);
}
@@ -250,9 +250,9 @@ public class CwApprovalRecordController extends BaseController {
/**
* 检查审批权限
*/
// @SaCheckPermission("cw:approval:check")
@SaCheckPermission("cw:approval:check")
@GetMapping("/check/{applicationId}")
public R<Boolean> checkPermission(@PathVariable Long applicationId, @RequestParam String nodeCode) {
public R<Boolean> checkPermission(@PathVariable("applicationId") Long applicationId, @RequestParam("nodeCode") String nodeCode) {
Boolean hasPermission = approvalRecordService.checkApprovalPermission(applicationId, nodeCode);
return R.ok(hasPermission);
}
@@ -260,9 +260,9 @@ public class CwApprovalRecordController extends BaseController {
/**
* 检查部门审批权限
*/
// @SaCheckPermission("cw:approval:dept")
@SaCheckPermission("cw:approval:dept")
@GetMapping("/check/dept/{applicationId}")
public R<Boolean> checkDeptPermission(@PathVariable Long applicationId) {
public R<Boolean> checkDeptPermission(@PathVariable("applicationId") Long applicationId) {
Boolean hasPermission = approvalRecordService.checkDeptApprovalPermission(applicationId);
return R.ok(hasPermission);
}
@@ -270,9 +270,9 @@ public class CwApprovalRecordController extends BaseController {
/**
* 获取可选审批人列表(院领导)
*/
// @SaCheckPermission("cw:approval:finance")
@SaCheckPermission("cw:approval:finance")
@GetMapping("/approvers/{applicationId}")
public R<List<Map<String, Object>>> getAvailableApprovers(@PathVariable Long applicationId) {
public R<List<Map<String, Object>>> getAvailableApprovers(@PathVariable("applicationId") Long applicationId) {
List<Map<String, Object>> approvers = approvalRecordService.getAvailableApprovers(applicationId);
return R.ok(approvers);
}
@@ -280,11 +280,11 @@ public class CwApprovalRecordController extends BaseController {
/**
* 分管领导审批
*/
// @SaCheckPermission("cw:approval:leader")
@SaCheckPermission("cw:approval:leader")
@PostMapping("/leader")
public R<Void> leaderApproval(@RequestParam Long applicationId,
@RequestParam String approveAction,
@RequestParam String approveOpinion) {
public R<Void> leaderApproval(@RequestParam("applicationId") Long applicationId,
@RequestParam("approveAction") String approveAction,
@RequestParam("approveOpinion") String approveOpinion) {
log.info("🔍 分管领导审批:applicationId={}, approveAction={}, approveOpinion={}",
applicationId, approveAction, approveOpinion);
@@ -305,12 +305,12 @@ public class CwApprovalRecordController extends BaseController {
/**
* 财务审批
*/
// @SaCheckPermission("cw:approval:finance")
@SaCheckPermission("cw:approval:finance")
@PostMapping("/finance")
public R<Void> financeApproval(@RequestParam Long applicationId,
@RequestParam String approveAction,
@RequestParam String approveOpinion,
@RequestParam(required = false) Long selectedApproverId) {
public R<Void> financeApproval(@RequestParam("applicationId") Long applicationId,
@RequestParam("approveAction") String approveAction,
@RequestParam("approveOpinion") String approveOpinion,
@RequestParam(value = "selectedApproverId", required = false) Long selectedApproverId) {
log.info("🔍 财务审批:applicationId={}, approveAction={}, approveOpinion={}, selectedApproverId={}",
applicationId, approveAction, approveOpinion, selectedApproverId);
@@ -30,7 +30,7 @@ public class CwBudgetExecutionImportController extends BaseController {
* @param file 导入文件
*/
@Log(title = "预算执行导入", businessType = BusinessType.IMPORT)
//@SaCheckPermission("cw:budgetExecutionImport:import")
@SaCheckPermission("cw:budgetExecutionImport:import")
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
try (InputStream is = file.getInputStream()) {
@@ -45,7 +45,7 @@ public class CwBudgetExecutionImportController extends BaseController {
/**
* 获取导入模板(导出空模板)
*/
//@SaCheckPermission("cw:budgetExecutionImport:import")
@SaCheckPermission("cw:budgetExecutionImport:import")
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) {
ExcelUtil.exportExcel(java.util.List.of(), "预算执行导入模板", CwBudgetExecutionImportVo.class, response);
@@ -54,7 +54,7 @@ public class CwBudgetExecutionImportController extends BaseController {
/**
* 查询导入批次分页列表
*/
//@SaCheckPermission("cw:budgetExecutionImport:list")
@SaCheckPermission("cw:budgetExecutionImport:list")
@GetMapping("/batch/list")
public org.dromara.common.mybatis.core.page.TableDataInfo<?> batchList(org.dromara.common.mybatis.core.page.PageQuery pageQuery) {
var service = org.dromara.common.core.utils.SpringUtils.getBean(org.dromara.cw.service.ICwBudgetExecutionImportService.class);
@@ -64,7 +64,7 @@ public class CwBudgetExecutionImportController extends BaseController {
/**
* 查询导入明细分页列表
*/
//@SaCheckPermission("cw:budgetExecutionImport:list")
@SaCheckPermission("cw:budgetExecutionImport:list")
@GetMapping("/item/list")
public org.dromara.common.mybatis.core.page.TableDataInfo<?> itemList(@RequestParam("batchId") Long batchId, org.dromara.common.mybatis.core.page.PageQuery pageQuery) {
var service = org.dromara.common.core.utils.SpringUtils.getBean(org.dromara.cw.service.ICwBudgetExecutionImportService.class);
@@ -40,7 +40,7 @@ public class CwMonitoringManagementController extends BaseController {
* 查询绩效自评列表(运行监控管理)
* 财务管理员和学校领导可以看到所有人的数据
*/
//@SaCheckPermission("cw:monitoringManagement:list")
@SaCheckPermission("cw:monitoringManagement:list")
@GetMapping("/list")
public TableDataInfo<CwProjectPerformanceSelfEvaluationVo> list(CwProjectPerformanceSelfEvaluationBo bo, PageQuery pageQuery) {
return monitoringManagementService.queryPageList(bo, pageQuery);
@@ -49,38 +49,38 @@ public class CwMonitoringManagementController extends BaseController {
/**
* 获取绩效自评详细信息(运行监控管理)
*/
//@SaCheckPermission("cw:monitoringManagement:query")
@SaCheckPermission("cw:monitoringManagement:query")
@GetMapping("/{id}")
public R<CwProjectPerformanceSelfEvaluationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<CwProjectPerformanceSelfEvaluationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(monitoringManagementService.queryById(id));
}
/**
* 锁定绩效自评(单个)
*/
//@SaCheckPermission("cw:monitoringManagement:lock")
@SaCheckPermission("cw:monitoringManagement:lock")
@Log(title = "运行监控管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/lock/{id}")
public R<Void> lock(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<Void> lock(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return toAjax(monitoringManagementService.lockEvaluation(id));
}
/**
* 解锁绩效自评(单个)
*/
//@SaCheckPermission("cw:monitoringManagement:unlock")
@SaCheckPermission("cw:monitoringManagement:unlock")
@Log(title = "运行监控管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/unlock/{id}")
public R<Void> unlock(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<Void> unlock(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return toAjax(monitoringManagementService.unlockEvaluation(id));
}
/**
* 批量锁定绩效自评
*/
//@SaCheckPermission("cw:monitoringManagement:lock")
@SaCheckPermission("cw:monitoringManagement:lock")
@Log(title = "运行监控管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/lock/batch")
@@ -91,7 +91,7 @@ public class CwMonitoringManagementController extends BaseController {
/**
* 批量解锁绩效自评
*/
//@SaCheckPermission("cw:monitoringManagement:unlock")
@SaCheckPermission("cw:monitoringManagement:unlock")
@Log(title = "运行监控管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/unlock/batch")
@@ -35,25 +35,25 @@ public class CwPerformanceMonitoringController extends BaseController {
/**
* 根据自评ID查询运行监控列表
*/
//@SaCheckPermission("cw:performanceMonitoring:query")
@SaCheckPermission("cw:performanceMonitoring:query")
@GetMapping("/list/{evaluationId}")
public R<List<CwPerformanceMonitoringVo>> listByEvaluationId(@NotNull(message = "自评ID不能为空") @PathVariable Long evaluationId) {
public R<List<CwPerformanceMonitoringVo>> listByEvaluationId(@NotNull(message = "自评ID不能为空") @PathVariable("evaluationId") Long evaluationId) {
return R.ok(performanceMonitoringService.queryByEvaluationId(evaluationId));
}
/**
* 获取绩效运行监控详细信息
*/
//@SaCheckPermission("cw:performanceMonitoring:query")
@SaCheckPermission("cw:performanceMonitoring:query")
@GetMapping("/{id}")
public R<CwPerformanceMonitoringVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<CwPerformanceMonitoringVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(performanceMonitoringService.queryById(id));
}
/**
* 新增绩效运行监控
*/
//@SaCheckPermission("cw:performanceMonitoring:add")
@SaCheckPermission("cw:performanceMonitoring:add")
@Log(title = "绩效运行监控", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -64,7 +64,7 @@ public class CwPerformanceMonitoringController extends BaseController {
/**
* 修改绩效运行监控
*/
//@SaCheckPermission("cw:performanceMonitoring:edit")
@SaCheckPermission("cw:performanceMonitoring:edit")
@Log(title = "绩效运行监控", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -75,10 +75,10 @@ public class CwPerformanceMonitoringController extends BaseController {
/**
* 删除绩效运行监控
*/
//@SaCheckPermission("cw:performanceMonitoring:remove")
@SaCheckPermission("cw:performanceMonitoring:remove")
@Log(title = "绩效运行监控", businessType = BusinessType.DELETE)
@DeleteMapping("/{id}")
public R<Void> remove(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<Void> remove(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return toAjax(performanceMonitoringService.deleteWithValidByIds(List.of(id), true));
}
}
@@ -43,7 +43,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 查询项目预算申报列表
*/
//@SaCheckPermission("cw:application:list")
@SaCheckPermission("cw:application:list")
@GetMapping("/list")
public TableDataInfo<CwProjectApplicationVo> list(CwProjectApplicationBo bo, PageQuery pageQuery) {
return projectApplicationService.queryPageList(bo, pageQuery);
@@ -52,9 +52,9 @@ public class CwProjectApplicationController extends BaseController {
/**
* 查询我的申报列表
*/
//@SaCheckPermission("cw:application:list")
@SaCheckPermission("cw:application:list")
@GetMapping("/myList")
public R<List<CwProjectApplicationVo>> myList(@RequestParam(required = false) Integer year) {
public R<List<CwProjectApplicationVo>> myList(@RequestParam(value = "year", required = false) Integer year) {
Long applicantId = LoginHelper.getUserId();
List<CwProjectApplicationVo> list = projectApplicationService.queryMyApplications(applicantId, year);
return R.ok(list);
@@ -63,9 +63,9 @@ public class CwProjectApplicationController extends BaseController {
/**
* 查询部门申报列表
*/
//@SaCheckPermission("cw:application:list")
@SaCheckPermission("cw:application:list")
@GetMapping("/deptList")
public R<List<CwProjectApplicationVo>> deptList(@RequestParam Long departmentId, @RequestParam(required = false) Integer year) {
public R<List<CwProjectApplicationVo>> deptList(@RequestParam("departmentId") Long departmentId, @RequestParam(value = "year", required = false) Integer year) {
List<CwProjectApplicationVo> list = projectApplicationService.queryDeptApplications(departmentId, year);
return R.ok(list);
}
@@ -73,7 +73,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 查询待我审批的申报列表
*/
//@SaCheckPermission("cw:approvalRecord:list")
@SaCheckPermission("cw:approvalRecord:list")
@GetMapping("/pendingList")
public R<List<CwProjectApplicationVo>> pendingList() {
Long approverId = LoginHelper.getUserId();
@@ -84,7 +84,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 导出项目申报信息
*/
//@SaCheckPermission("cw:application:export")
@SaCheckPermission("cw:application:export")
@Log(title = "项目申报", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CwProjectApplicationBo bo, HttpServletResponse response) {
@@ -95,7 +95,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 项目预算统计 - 获取项目清单
*/
//@SaCheckPermission("cw:statistics:list")
@SaCheckPermission("cw:statistics:list")
@GetMapping("/statistics/list")
public TableDataInfo<CwProjectApplicationVo> getStatisticsList(CwProjectApplicationBo bo, PageQuery pageQuery) {
log.info("🚀 [统计页面-项目清单] Controller接收到统计查询请求");
@@ -113,9 +113,9 @@ public class CwProjectApplicationController extends BaseController {
/**
* 项目预算统计 - 状态统计
*/
//@SaCheckPermission("cw:statistics:list")
@SaCheckPermission("cw:statistics:list")
@GetMapping("/statistics/status")
public R<Map<String, Object>> getStatusStatistics(@RequestParam(required = false) String budgetYear) {
public R<Map<String, Object>> getStatusStatistics(@RequestParam(value = "budgetYear", required = false) String budgetYear) {
Map<String, Object> statistics = projectApplicationService.getStatusStatistics(budgetYear);
return R.ok(statistics);
}
@@ -123,9 +123,9 @@ public class CwProjectApplicationController extends BaseController {
/**
* 项目预算统计 - 部门预算汇总
*/
//@SaCheckPermission("cw:statistics:list")
@SaCheckPermission("cw:statistics:list")
@GetMapping("/statistics/department")
public R<List<Map<String, Object>>> getDepartmentStatistics(@RequestParam(required = false) String budgetYear) {
public R<List<Map<String, Object>>> getDepartmentStatistics(@RequestParam(value = "budgetYear", required = false) String budgetYear) {
List<Map<String, Object>> statistics = projectApplicationService.getDepartmentStatistics(budgetYear);
return R.ok(statistics);
}
@@ -133,7 +133,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 项目预算统计 - 年度汇总
*/
//@SaCheckPermission("cw:statistics:list")
@SaCheckPermission("cw:statistics:list")
@GetMapping("/statistics/yearly")
public R<List<Map<String, Object>>> getYearlyStatistics() {
List<Map<String, Object>> statistics = projectApplicationService.getYearlyStatistics();
@@ -143,26 +143,26 @@ public class CwProjectApplicationController extends BaseController {
/**
* 获取项目预算申报详细信息
*/
//@SaCheckPermission("cw:application:query")
@SaCheckPermission("cw:application:query")
@GetMapping("/{id}")
public R<CwProjectApplicationVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(projectApplicationService.queryById(id));
}
/**
* 根据申报编号获取详细信息
*/
//@SaCheckPermission("cw:application:query")
@SaCheckPermission("cw:application:query")
@GetMapping("/byNo/{applicationNo}")
public R<CwProjectApplicationVo> getInfoByNo(@PathVariable String applicationNo) {
public R<CwProjectApplicationVo> getInfoByNo(@PathVariable("applicationNo") String applicationNo) {
return R.ok(projectApplicationService.queryByApplicationNo(applicationNo));
}
/**
* 新增项目预算申报
*/
//@SaCheckPermission("cw:application:add")
@SaCheckPermission("cw:application:add")
@Log(title = "项目预算申报", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -180,7 +180,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 修改项目预算申报
*/
//@SaCheckPermission("cw:application:edit")
@SaCheckPermission("cw:application:edit")
@Log(title = "项目预算申报", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -191,7 +191,7 @@ public class CwProjectApplicationController extends BaseController {
/**
* 保存草稿
*/
//@SaCheckPermission("cw:application:add")
@SaCheckPermission("cw:application:add")
@Log(title = "保存申报草稿", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/saveDraft")
@@ -213,49 +213,49 @@ public class CwProjectApplicationController extends BaseController {
/**
* 提交申报
*/
//@SaCheckPermission("cw:application:submit")
@SaCheckPermission("cw:application:submit")
@Log(title = "提交项目预算申报", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/submit/{id}")
public R<Void> submit(@PathVariable Long id) {
public R<Void> submit(@PathVariable("id") Long id) {
return toAjax(projectApplicationService.submitApplication(id));
}
/**
* 撤回申报
*/
//@SaCheckPermission("cw:application:edit")
@SaCheckPermission("cw:application:edit")
@Log(title = "撤回项目预算申报", businessType = BusinessType.UPDATE)
@PostMapping("/withdraw/{id}")
public R<Void> withdraw(@PathVariable Long id) {
public R<Void> withdraw(@PathVariable("id") Long id) {
return toAjax(projectApplicationService.withdrawApplication(id));
}
/**
* 取消申报
*/
//@SaCheckPermission("cw:application:remove")
@SaCheckPermission("cw:application:remove")
@Log(title = "取消项目预算申报", businessType = BusinessType.UPDATE)
@PostMapping("/cancel/{id}")
public R<Void> cancel(@PathVariable Long id) {
public R<Void> cancel(@PathVariable("id") Long id) {
return toAjax(projectApplicationService.cancelApplication(id));
}
/**
* 删除项目预算申报
*/
//@SaCheckPermission("cw:application:remove")
@SaCheckPermission("cw:application:remove")
@Log(title = "项目预算申报", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(projectApplicationService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 生成申报编号
*/
//@SaCheckPermission("cw:application:add")
@SaCheckPermission("cw:application:add")
@GetMapping("/generateNo")
public R<String> generateApplicationNo() {
return R.ok(projectApplicationService.generateApplicationNo());
@@ -264,9 +264,9 @@ public class CwProjectApplicationController extends BaseController {
/**
* 统计数据
*/
//@SaCheckPermission("cw:application:list")
@SaCheckPermission("cw:application:list")
@GetMapping("/statistics")
public R<java.util.Map<String, Object>> statistics(@RequestParam(required = false) Integer year) {
public R<java.util.Map<String, Object>> statistics(@RequestParam(value = "year", required = false) Integer year) {
java.util.Map<String, Object> result = new java.util.HashMap<>();
// 申报数量统计 - 使用字符串状态值
@@ -38,7 +38,7 @@ public class CwProjectApprovalController extends BaseController {
/**
* 启动自定义审批流程
*/
//@SaCheckPermission("cw:projectApproval:start")
@SaCheckPermission("cw:projectApproval:start")
@Log(title = "启动审批流程", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/start")
@@ -52,7 +52,7 @@ public class CwProjectApprovalController extends BaseController {
/**
* 执行审批操作
*/
//@SaCheckPermission("cw:projectApproval:approve")
@SaCheckPermission("cw:projectApproval:approve")
@Log(title = "执行审批操作", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/approve")
@@ -63,7 +63,7 @@ public class CwProjectApprovalController extends BaseController {
/**
* 获取我的待审批列表
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@GetMapping("/pending")
public TableDataInfo<CwApprovalRecordVo> getMyPendingApprovals(PageQuery pageQuery) {
return projectApprovalService.getMyPendingApprovals(pageQuery);
@@ -72,7 +72,7 @@ public class CwProjectApprovalController extends BaseController {
/**
* 获取我的已审批列表
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@GetMapping("/processed")
public TableDataInfo<CwApprovalRecordVo> getMyProcessedApprovals(PageQuery pageQuery) {
return projectApprovalService.getMyProcessedApprovals(pageQuery);
@@ -81,7 +81,7 @@ public class CwProjectApprovalController extends BaseController {
/**
* 查询审批流程列表
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@GetMapping("/list")
public TableDataInfo<CwProjectApprovalProcessVo> list(PageQuery pageQuery) {
return projectApprovalService.queryProcessList(pageQuery);
@@ -90,37 +90,37 @@ public class CwProjectApprovalController extends BaseController {
/**
* 获取审批流程详情
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@GetMapping("/{id}")
public R<CwProjectApprovalProcessVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(projectApprovalService.getProcessDetail(id));
}
/**
* 获取审批记录列表
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@GetMapping("/records/{applicationId}")
public R<List<CwApprovalRecordVo>> getApprovalRecords(@PathVariable Long applicationId) {
public R<List<CwApprovalRecordVo>> getApprovalRecords(@PathVariable("applicationId") Long applicationId) {
return R.ok(projectApprovalService.getApprovalRecords(applicationId));
}
/**
* 终止审批流程
*/
//@SaCheckPermission("cw:projectApproval:terminate")
@SaCheckPermission("cw:projectApproval:terminate")
@Log(title = "终止审批流程", businessType = BusinessType.UPDATE)
@DeleteMapping("/{ids}")
public R<Void> terminate(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(projectApprovalService.terminateProcess(List.of(ids)));
}
/**
* 审批流程验证
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@PostMapping("/validate")
public R<String> validateApprovalProcess(@RequestBody CwCustomApprovalBo bo) {
// 简单验证逻辑
@@ -136,7 +136,7 @@ public class CwProjectApprovalController extends BaseController {
/**
* 审批选项查询(用于下拉选择)
*/
//@SaCheckPermission("cw:projectApproval:query")
@SaCheckPermission("cw:projectApproval:query")
@GetMapping("/options")
public R<Object> getApprovalOptions() {
// 返回一些选项数据,比如审批动作选项等
@@ -40,7 +40,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 查询项目审核人配置列表
*/
//@SaCheckPermission("cw:projectAuditor:list")
@SaCheckPermission("cw:projectAuditor:list")
@GetMapping("/list")
public TableDataInfo<CwProjectAuditorVo> list(CwProjectAuditorBo bo, PageQuery pageQuery) {
return cwProjectAuditorService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 导出项目审核人配置列表
*/
//@SaCheckPermission("cw:projectAuditor:export")
@SaCheckPermission("cw:projectAuditor:export")
@Log(title = "项目审核人配置", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CwProjectAuditorBo bo, HttpServletResponse response) {
@@ -60,17 +60,17 @@ public class CwProjectAuditorController extends BaseController {
/**
* 获取项目审核人配置详细信息
*/
//@SaCheckPermission("cw:projectAuditor:query")
@SaCheckPermission("cw:projectAuditor:query")
@GetMapping("/{id}")
public R<CwProjectAuditorVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(cwProjectAuditorService.queryById(id));
}
/**
* 新增项目审核人配置
*/
//@SaCheckPermission("cw:projectAuditor:add")
@SaCheckPermission("cw:projectAuditor:add")
@Log(title = "项目审核人配置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -84,7 +84,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 修改项目审核人配置
*/
//@SaCheckPermission("cw:projectAuditor:edit")
@SaCheckPermission("cw:projectAuditor:edit")
@Log(title = "项目审核人配置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -95,18 +95,18 @@ public class CwProjectAuditorController extends BaseController {
/**
* 删除项目审核人配置
*/
//@SaCheckPermission("cw:projectAuditor:remove")
@SaCheckPermission("cw:projectAuditor:remove")
@Log(title = "项目审核人配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(cwProjectAuditorService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 批量添加审核人
*/
//@SaCheckPermission("cw:projectAuditor:add")
@SaCheckPermission("cw:projectAuditor:add")
@Log(title = "批量添加审核人", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/batchAdd")
@@ -122,7 +122,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 获取可用审核人列表
*/
//@SaCheckPermission("cw:projectAuditor:list")
@SaCheckPermission("cw:projectAuditor:list")
@GetMapping("/available")
public R<List<CwProjectAuditorVo>> getAvailableAuditors() {
return R.ok(cwProjectAuditorService.getAvailableAuditors());
@@ -131,9 +131,9 @@ public class CwProjectAuditorController extends BaseController {
/**
* 根据部门ID获取用户列表
*/
//@SaCheckPermission("cw:projectAuditor:list")
@SaCheckPermission("cw:projectAuditor:list")
@GetMapping("/deptUsers/{deptId}")
public R<List<Object>> getDeptUsers(@PathVariable Long deptId) {
public R<List<Object>> getDeptUsers(@PathVariable("deptId") Long deptId) {
// 参数验证
if (deptId == null || deptId <= 0) {
return R.fail("部门ID参数无效");
@@ -144,7 +144,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 批量更新状态
*/
//@SaCheckPermission("cw:projectAuditor:edit")
@SaCheckPermission("cw:projectAuditor:edit")
@Log(title = "批量更新审核人状态", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/status")
@@ -155,7 +155,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 我配置的审核人
*/
//@SaCheckPermission("cw:projectAuditor:list")
@SaCheckPermission("cw:projectAuditor:list")
@GetMapping("/myConfig")
public TableDataInfo<CwProjectAuditorVo> getMyConfig(CwProjectAuditorBo bo, PageQuery pageQuery) {
bo.setConfigBy(LoginHelper.getUserId());
@@ -165,7 +165,7 @@ public class CwProjectAuditorController extends BaseController {
/**
* 获取审核人选项(用于下拉选择)
*/
//@SaCheckPermission("cw:projectAuditor:list")
@SaCheckPermission("cw:projectAuditor:list")
@GetMapping("/options")
public R<List<CwProjectAuditorVo>> getAuditorOptions() {
return R.ok(cwProjectAuditorService.getAvailableAuditors());
@@ -174,27 +174,27 @@ public class CwProjectAuditorController extends BaseController {
/**
* 批量启用
*/
//@SaCheckPermission("cw:projectAuditor:edit")
@SaCheckPermission("cw:projectAuditor:edit")
@Log(title = "批量启用审核人", businessType = BusinessType.UPDATE)
@PutMapping("/enable/{ids}")
public R<Void> enable(@PathVariable Long[] ids) {
public R<Void> enable(@PathVariable("ids") Long[] ids) {
return toAjax(cwProjectAuditorService.updateStatus(List.of(ids), "1"));
}
/**
* 批量停用
*/
//@SaCheckPermission("cw:projectAuditor:edit")
@SaCheckPermission("cw:projectAuditor:edit")
@Log(title = "批量停用审核人", businessType = BusinessType.UPDATE)
@PutMapping("/disable/{ids}")
public R<Void> disable(@PathVariable Long[] ids) {
public R<Void> disable(@PathVariable("ids") Long[] ids) {
return toAjax(cwProjectAuditorService.updateStatus(List.of(ids), "0"));
}
/**
* 获取审核人统计数据
*/
//@SaCheckPermission("cw:projectAuditor:list")
@SaCheckPermission("cw:projectAuditor:list")
@GetMapping("/statistics")
public R<Object> getStatistics() {
return R.ok(cwProjectAuditorService.getStatistics());
@@ -40,7 +40,7 @@ public class CwProjectEvaluationIndicatorController extends BaseController {
/**
* 查询项目绩效自评指标明细列表
*/
//@SaCheckPermission("cw:indicator:list")
@SaCheckPermission("cw:indicator:list")
@GetMapping("/list")
public TableDataInfo<CwProjectEvaluationIndicatorVo> list(CwProjectEvaluationIndicatorBo bo, PageQuery pageQuery) {
return indicatorService.queryPageList(bo, pageQuery);
@@ -49,36 +49,36 @@ public class CwProjectEvaluationIndicatorController extends BaseController {
/**
* 获取项目绩效自评指标明细详细信息
*/
//@SaCheckPermission("cw:indicator:query")
@SaCheckPermission("cw:indicator:query")
@GetMapping("/{id}")
public R<CwProjectEvaluationIndicatorVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<CwProjectEvaluationIndicatorVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(indicatorService.queryById(id));
}
/**
* 根据自评ID查询指标明细列表
*/
//@SaCheckPermission("cw:indicator:query")
@SaCheckPermission("cw:indicator:query")
@GetMapping("/evaluation/{evaluationId}")
public R<List<CwProjectEvaluationIndicatorVo>> getByEvaluationId(@NotNull(message = "自评ID不能为空") @PathVariable Long evaluationId) {
public R<List<CwProjectEvaluationIndicatorVo>> getByEvaluationId(@NotNull(message = "自评ID不能为空") @PathVariable("evaluationId") Long evaluationId) {
return R.ok(indicatorService.queryByEvaluationId(evaluationId));
}
/**
* 根据自评ID和指标类型查询指标明细列表
*/
//@SaCheckPermission("cw:indicator:query")
@SaCheckPermission("cw:indicator:query")
@GetMapping("/evaluation/{evaluationId}/type/{indicatorType}")
public R<List<CwProjectEvaluationIndicatorVo>> getByEvaluationIdAndType(
@NotNull(message = "自评ID不能为空") @PathVariable Long evaluationId,
@NotBlank(message = "指标类型不能为空") @PathVariable String indicatorType) {
@NotNull(message = "自评ID不能为空") @PathVariable("evaluationId") Long evaluationId,
@NotBlank(message = "指标类型不能为空") @PathVariable("indicatorType") String indicatorType) {
return R.ok(indicatorService.queryByEvaluationIdAndType(evaluationId, indicatorType));
}
/**
* 新增项目绩效自评指标明细
*/
//@SaCheckPermission("cw:indicator:add")
@SaCheckPermission("cw:indicator:add")
@Log(title = "项目绩效自评指标明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -89,7 +89,7 @@ public class CwProjectEvaluationIndicatorController extends BaseController {
/**
* 修改项目绩效自评指标明细
*/
//@SaCheckPermission("cw:indicator:edit")
@SaCheckPermission("cw:indicator:edit")
@Log(title = "项目绩效自评指标明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -100,28 +100,28 @@ public class CwProjectEvaluationIndicatorController extends BaseController {
/**
* 批量保存指标明细
*/
//@SaCheckPermission("cw:indicator:edit")
@SaCheckPermission("cw:indicator:edit")
@Log(title = "批量保存指标明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/batch")
public R<Void> batchSave(@RequestParam Long evaluationId, @RequestBody List<CwProjectEvaluationIndicatorBo> boList) {
public R<Void> batchSave(@RequestParam("evaluationId") Long evaluationId, @RequestBody List<CwProjectEvaluationIndicatorBo> boList) {
return toAjax(indicatorService.batchSave(evaluationId, boList));
}
/**
* 删除项目绩效自评指标明细
*/
//@SaCheckPermission("cw:indicator:remove")
@SaCheckPermission("cw:indicator:remove")
@Log(title = "项目绩效自评指标明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(indicatorService.deleteWithValidByIds(Arrays.asList(ids), true));
}
/**
* 导出项目绩效自评指标明细列表
*/
//@SaCheckPermission("cw:indicator:export")
@SaCheckPermission("cw:indicator:export")
@Log(title = "项目绩效自评指标明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CwProjectEvaluationIndicatorBo bo, HttpServletResponse response) {
@@ -41,7 +41,7 @@ public class CwProjectMonthlyMonitoringController extends BaseController {
/**
* 查询项目月度运行监控列表
*/
//@SaCheckPermission("cw:monitoring:list")
@SaCheckPermission("cw:monitoring:list")
@GetMapping("/list")
public TableDataInfo<CwProjectMonthlyMonitoringVo> list(CwProjectMonthlyMonitoringBo bo, PageQuery pageQuery) {
return monitoringService.queryPageList(bo, pageQuery);
@@ -50,36 +50,36 @@ public class CwProjectMonthlyMonitoringController extends BaseController {
/**
* 获取项目月度运行监控详细信息
*/
//@SaCheckPermission("cw:monitoring:query")
@SaCheckPermission("cw:monitoring:query")
@GetMapping("/{id}")
public R<CwProjectMonthlyMonitoringVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<CwProjectMonthlyMonitoringVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(monitoringService.queryById(id));
}
/**
* 根据自评ID查询月度监控列表
*/
//@SaCheckPermission("cw:monitoring:query")
@SaCheckPermission("cw:monitoring:query")
@GetMapping("/evaluation/{evaluationId}")
public R<List<CwProjectMonthlyMonitoringVo>> getByEvaluationId(@NotNull(message = "自评ID不能为空") @PathVariable Long evaluationId) {
public R<List<CwProjectMonthlyMonitoringVo>> getByEvaluationId(@NotNull(message = "自评ID不能为空") @PathVariable("evaluationId") Long evaluationId) {
return R.ok(monitoringService.queryByEvaluationId(evaluationId));
}
/**
* 查询某个自评的全年监控数据
*/
//@SaCheckPermission("cw:monitoring:query")
@SaCheckPermission("cw:monitoring:query")
@GetMapping("/year/{evaluationId}/{year}")
public R<Map<Integer, CwProjectMonthlyMonitoringVo>> getYearlyMonitoring(
@NotNull(message = "自评ID不能为空") @PathVariable Long evaluationId,
@NotNull(message = "年份不能为空") @PathVariable Integer year) {
@NotNull(message = "自评ID不能为空") @PathVariable("evaluationId") Long evaluationId,
@NotNull(message = "年份不能为空") @PathVariable("year") Integer year) {
return R.ok(monitoringService.queryYearlyMonitoring(evaluationId, year));
}
/**
* 新增项目月度运行监控
*/
//@SaCheckPermission("cw:monitoring:add")
@SaCheckPermission("cw:monitoring:add")
@Log(title = "项目月度运行监控", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -90,7 +90,7 @@ public class CwProjectMonthlyMonitoringController extends BaseController {
/**
* 修改项目月度运行监控
*/
//@SaCheckPermission("cw:monitoring:edit")
@SaCheckPermission("cw:monitoring:edit")
@Log(title = "项目月度运行监控", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -101,7 +101,7 @@ public class CwProjectMonthlyMonitoringController extends BaseController {
/**
* 填报月度数据
*/
//@SaCheckPermission("cw:monitoring:fill")
@SaCheckPermission("cw:monitoring:fill")
@Log(title = "填报月度数据", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/fill")
@@ -112,28 +112,28 @@ public class CwProjectMonthlyMonitoringController extends BaseController {
/**
* 批量保存月度监控数据
*/
//@SaCheckPermission("cw:monitoring:edit")
@SaCheckPermission("cw:monitoring:edit")
@Log(title = "批量保存月度监控数据", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/batch")
public R<Void> batchSave(@RequestParam Long evaluationId, @RequestBody List<CwProjectMonthlyMonitoringBo> boList) {
public R<Void> batchSave(@RequestParam("evaluationId") Long evaluationId, @RequestBody List<CwProjectMonthlyMonitoringBo> boList) {
return toAjax(monitoringService.batchSave(evaluationId, boList));
}
/**
* 删除项目月度运行监控
*/
//@SaCheckPermission("cw:monitoring:remove")
@SaCheckPermission("cw:monitoring:remove")
@Log(title = "项目月度运行监控", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(monitoringService.deleteWithValidByIds(Arrays.asList(ids), true));
}
/**
* 导出项目月度运行监控列表
*/
//@SaCheckPermission("cw:monitoring:export")
@SaCheckPermission("cw:monitoring:export")
@Log(title = "项目月度运行监控", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CwProjectMonthlyMonitoringBo bo, HttpServletResponse response) {
@@ -43,7 +43,7 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 查询项目绩效自评列表
*/
//@SaCheckPermission("cw:evaluation:list")
@SaCheckPermission("cw:evaluation:list")
@GetMapping("/list")
public TableDataInfo<CwProjectPerformanceSelfEvaluationVo> list(CwProjectPerformanceSelfEvaluationBo bo, PageQuery pageQuery) {
return evaluationService.queryPageList(bo, pageQuery);
@@ -52,16 +52,16 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 获取项目绩效自评详细信息
*/
//@SaCheckPermission("cw:evaluation:query")
@SaCheckPermission("cw:evaluation:query")
@GetMapping("/{id}")
public R<CwProjectPerformanceSelfEvaluationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<CwProjectPerformanceSelfEvaluationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(evaluationService.queryById(id));
}
/**
* 新增项目绩效自评
*/
//@SaCheckPermission("cw:evaluation:add")
@SaCheckPermission("cw:evaluation:add")
@Log(title = "项目绩效自评", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -76,7 +76,7 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 修改项目绩效自评
*/
//@SaCheckPermission("cw:evaluation:edit")
@SaCheckPermission("cw:evaluation:edit")
@Log(title = "项目绩效自评", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -87,7 +87,7 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 保存草稿
*/
//@SaCheckPermission("cw:evaluation:add")
@SaCheckPermission("cw:evaluation:add")
@Log(title = "保存自评草稿", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/saveDraft")
@@ -98,41 +98,41 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 提交自评
*/
//@SaCheckPermission("cw:evaluation:submit")
@SaCheckPermission("cw:evaluation:submit")
@Log(title = "提交自评", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/submit/{id}")
public R<Void> submit(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<Void> submit(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return toAjax(evaluationService.submitEvaluation(id));
}
/**
* 审核自评
*/
//@SaCheckPermission("cw:evaluation:approve")
@SaCheckPermission("cw:evaluation:approve")
@Log(title = "审核自评", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/approve/{id}")
public R<Void> approve(@NotNull(message = "主键不能为空") @PathVariable Long id,
@RequestParam String opinion,
@RequestParam Boolean approved) {
public R<Void> approve(@NotNull(message = "主键不能为空") @PathVariable("id") Long id,
@RequestParam("opinion") String opinion,
@RequestParam("approved") Boolean approved) {
return toAjax(evaluationService.approveEvaluation(id, opinion, approved));
}
/**
* 删除项目绩效自评
*/
//@SaCheckPermission("cw:evaluation:remove")
@SaCheckPermission("cw:evaluation:remove")
@Log(title = "项目绩效自评", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(evaluationService.deleteWithValidByIds(Arrays.asList(ids), true));
}
/**
* 查询我的自评列表
*/
//@SaCheckPermission("cw:evaluation:list")
@SaCheckPermission("cw:evaluation:list")
@GetMapping("/my")
public R<List<CwProjectPerformanceSelfEvaluationVo>> myEvaluations() {
return R.ok(evaluationService.queryMyEvaluations(LoginHelper.getUserId()));
@@ -141,7 +141,7 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 查询待审核自评列表
*/
//@SaCheckPermission("cw:evaluation:approve")
@SaCheckPermission("cw:evaluation:approve")
@GetMapping("/pending")
public R<List<CwProjectPerformanceSelfEvaluationVo>> pendingApprovals() {
return R.ok(evaluationService.queryPendingApprovals());
@@ -150,7 +150,7 @@ public class CwProjectPerformanceSelfEvaluationController extends BaseController
/**
* 导出项目绩效自评列表
*/
//@SaCheckPermission("cw:evaluation:export")
@SaCheckPermission("cw:evaluation:export")
@Log(title = "项目绩效自评", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CwProjectPerformanceSelfEvaluationBo bo, HttpServletResponse response) {
@@ -141,7 +141,7 @@ public class TestDemoController extends BaseController {
@Log(title = "测试单表", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(testDemoService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
@@ -101,7 +101,7 @@ public class TestTreeController extends BaseController {
@Log(title = "测试树表", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(testTreeService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
@@ -52,7 +52,7 @@ public class GenController extends BaseController {
*/
@SaCheckPermission("tool:gen:query")
@GetMapping(value = "/{tableId}")
public R<Map<String, Object>> getInfo(@PathVariable Long tableId) {
public R<Map<String, Object>> getInfo(@PathVariable("tableId") Long tableId) {
GenTable table = genTableService.selectGenTableById(tableId);
List<GenTable> tables = genTableService.selectGenTableAll();
List<GenTableColumn> list = genTableService.selectGenTableColumnListByTableId(tableId);
@@ -123,7 +123,7 @@ public class GenController extends BaseController {
@SaCheckPermission("tool:gen:remove")
@Log(title = "代码生成", businessType = BusinessType.DELETE)
@DeleteMapping("/{tableIds}")
public R<Void> remove(@PathVariable Long[] tableIds) {
public R<Void> remove(@PathVariable("tableIds") Long[] tableIds) {
genTableService.deleteGenTableByIds(tableIds);
return R.ok();
}
+3 -1
View File
@@ -92,11 +92,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再依赖 -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
@@ -41,7 +41,7 @@ public class HqHallInfoController extends BaseController {
* 查询报告厅信息列表
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallInfo:list")
@SaCheckPermission("hq:hallInfo:list")
@GetMapping("/list")
public TableDataInfo<HqHallInfoVo> list(HqHallInfoBo bo, PageQuery pageQuery) {
return hqHallInfoService.queryPageList(bo, pageQuery);
@@ -51,7 +51,7 @@ public class HqHallInfoController extends BaseController {
* 导出报告厅信息列表
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallInfo:export")
@SaCheckPermission("hq:hallInfo:export")
@Log(title = "报告厅信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqHallInfoBo bo, HttpServletResponse response) {
@@ -65,9 +65,9 @@ public class HqHallInfoController extends BaseController {
* @param id 主键
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallInfo:query")
@SaCheckPermission("hq:hallInfo:query")
@GetMapping("/{id}")
public R<HqHallInfoVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqHallInfoVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(hqHallInfoService.queryById(id));
}
@@ -75,7 +75,7 @@ public class HqHallInfoController extends BaseController {
* 新增报告厅信息
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallInfo:add")
@SaCheckPermission("hq:hallInfo:add")
@Log(title = "报告厅信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -87,7 +87,7 @@ public class HqHallInfoController extends BaseController {
* 修改报告厅信息
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallInfo:edit")
@SaCheckPermission("hq:hallInfo:edit")
@Log(title = "报告厅信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -101,10 +101,10 @@ public class HqHallInfoController extends BaseController {
* @param ids 主键串
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallInfo:remove")
@SaCheckPermission("hq:hallInfo:remove")
@Log(title = "报告厅信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(hqHallInfoService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -44,7 +44,7 @@ public class HqHallReservationController extends BaseController {
* 查询报告厅预约列表
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:list")
@SaCheckPermission("hq:hallReservation:list")
@GetMapping("/list")
public TableDataInfo<HqHallReservationVo> list(HqHallReservationBo bo, PageQuery pageQuery) {
return hqHallReservationService.queryPageList(bo, pageQuery);
@@ -54,7 +54,7 @@ public class HqHallReservationController extends BaseController {
* 导出报告厅预约列表
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:export")
@SaCheckPermission("hq:hallReservation:export")
@Log(title = "报告厅预约", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqHallReservationBo bo, HttpServletResponse response) {
@@ -68,9 +68,9 @@ public class HqHallReservationController extends BaseController {
* @param id 主键
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:query")
@SaCheckPermission("hq:hallReservation:query")
@GetMapping("/{id}")
public R<HqHallReservationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqHallReservationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(hqHallReservationService.queryById(id));
}
@@ -78,7 +78,7 @@ public class HqHallReservationController extends BaseController {
* 新增报告厅预约
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:add")
@SaCheckPermission("hq:hallReservation:add")
@Log(title = "报告厅预约", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -90,7 +90,7 @@ public class HqHallReservationController extends BaseController {
* 修改报告厅预约
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:edit")
@SaCheckPermission("hq:hallReservation:edit")
@Log(title = "报告厅预约", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -104,10 +104,10 @@ public class HqHallReservationController extends BaseController {
* @param ids 主键串
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:remove")
@SaCheckPermission("hq:hallReservation:remove")
@Log(title = "报告厅预约", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(hqHallReservationService.deleteWithValidByIds(List.of(ids), true));
}
@@ -115,7 +115,7 @@ public class HqHallReservationController extends BaseController {
* 审核报告厅预约(批准/拒绝)
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:audit")
@SaCheckPermission("hq:hallReservation:audit")
@Log(title = "报告厅预约审核", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/audit")
@@ -127,7 +127,7 @@ public class HqHallReservationController extends BaseController {
* 检查报告厅时间冲突
*/
@ApiEncrypt(response = true)
//@SaCheckPermission("hq:hallReservation:query")
@SaCheckPermission("hq:hallReservation:query")
@PostMapping("/checkTimeConflict")
public R<HqHallTimeCheckVo> checkTimeConflict(@Validated @RequestBody HqHallTimeCheckBo timeCheckBo) {
HqHallTimeCheckVo result = hqHallReservationService.checkTimeConflict(timeCheckBo);
@@ -42,7 +42,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 查询报修附件列表
*/
//@SaCheckPermission("pm:attachment:list")
@SaCheckPermission("pm:attachment:list")
@GetMapping("/list")
public TableDataInfo<HqPmRepairAttachmentVo> list(HqPmRepairAttachmentBo bo, PageQuery pageQuery) {
return attachmentService.queryPageList(bo, pageQuery);
@@ -51,7 +51,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 根据工单ID获取附件列表
*/
//@SaCheckPermission("pm:attachment:list")
@SaCheckPermission("pm:attachment:list")
@GetMapping("/order/{orderId}")
public R<List<HqPmRepairAttachmentVo>> getByOrderId(@PathVariable("orderId") Long orderId) {
List<HqPmRepairAttachmentVo> list = attachmentService.queryByOrderId(orderId);
@@ -61,16 +61,16 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 获取报修附件详细信息
*/
//@SaCheckPermission("pm:attachment:query")
@SaCheckPermission("pm:attachment:query")
@GetMapping("/{id}")
public R<HqPmRepairAttachmentVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqPmRepairAttachmentVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(attachmentService.queryById(id));
}
/**
* 新增报修附件
*/
//@SaCheckPermission("pm:attachment:add")
@SaCheckPermission("pm:attachment:add")
@Log(title = "报修附件", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping
@@ -81,7 +81,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 修改报修附件
*/
//@SaCheckPermission("pm:attachment:edit")
@SaCheckPermission("pm:attachment:edit")
@Log(title = "报修附件", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping
@@ -93,17 +93,17 @@ public class HqPmRepairAttachmentController extends BaseController {
* 删除报修附件
* //
*/
//@SaCheckPermission("pm:attachment:remove")
@SaCheckPermission("pm:attachment:remove")
@Log(title = "报修附件", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(attachmentService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 上传单个附件文件
*/
//@SaCheckPermission("pm:attachment:upload")
@SaCheckPermission("pm:attachment:upload")
@Log(title = "上传报修附件", businessType = BusinessType.INSERT)
@PostMapping("/upload")
public R<HqPmRepairAttachmentVo> uploadFile(
@@ -127,7 +127,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 批量上传附件文件
*/
//@SaCheckPermission("pm:attachment:upload")
@SaCheckPermission("pm:attachment:upload")
@Log(title = "批量上传报修附件", businessType = BusinessType.INSERT)
@PostMapping("/upload/batch")
public R<List<HqPmRepairAttachmentVo>> uploadFiles(
@@ -152,7 +152,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 删除附件文件(包括OSS文件和数据库记录)
*/
//@SaCheckPermission("pm:attachment:remove")
@SaCheckPermission("pm:attachment:remove")
@Log(title = "删除报修附件文件", businessType = BusinessType.DELETE)
@DeleteMapping("/file/{id}")
public R<Void> deleteAttachment(@PathVariable("id") Long id) {
@@ -162,7 +162,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 下载附件文件
*/
//@SaCheckPermission("pm:attachment:download")
@SaCheckPermission("pm:attachment:download")
@GetMapping("/download/{id}")
public void downloadFile(@PathVariable("id") Long id, HttpServletResponse response) {
HqPmRepairAttachmentVo attachment = attachmentService.queryById(id);
@@ -186,7 +186,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 更新附件的工单ID(用于新增工单时关联已上传的附件)
*/
//@SaCheckPermission("pm:attachment:edit")
@SaCheckPermission("pm:attachment:edit")
@Log(title = "更新附件工单ID", businessType = BusinessType.UPDATE)
@PutMapping("/{attachmentId}/order/{orderId}")
public R<Void> updateAttachmentOrderId(@PathVariable("attachmentId") Long attachmentId,
@@ -197,7 +197,7 @@ public class HqPmRepairAttachmentController extends BaseController {
/**
* 批量更新附件的工单ID(用于新增工单时关联已上传的附件)
*/
//@SaCheckPermission("pm:attachment:edit")
@SaCheckPermission("pm:attachment:edit")
@Log(title = "批量更新附件工单ID", businessType = BusinessType.UPDATE)
@PutMapping("/batch-update-order")
public R<Void> batchUpdateAttachmentOrderId(@RequestBody BatchUpdateOrderIdRequest request) {
@@ -39,7 +39,7 @@ public class HqPmRepairCategoryController extends BaseController {
/**
* 查询维修类型列表
*/
//@SaCheckPermission("pm:category:list")
@SaCheckPermission("pm:category:list")
@GetMapping("/list")
public TableDataInfo<HqPmRepairCategoryVo> list(HqPmRepairCategoryBo bo, PageQuery pageQuery) {
return repairCategoryService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqPmRepairCategoryController extends BaseController {
/**
* 导出维修类型列表
*/
//@SaCheckPermission("pm:category:export")
@SaCheckPermission("pm:category:export")
@Log(title = "维修类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqPmRepairCategoryBo bo, HttpServletResponse response) {
@@ -59,16 +59,16 @@ public class HqPmRepairCategoryController extends BaseController {
/**
* 获取维修类型详细信息
*/
//@SaCheckPermission("pm:category:query")
@SaCheckPermission("pm:category:query")
@GetMapping("/{id}")
public R<HqPmRepairCategoryVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqPmRepairCategoryVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(repairCategoryService.queryById(id));
}
/**
* 新增维修类型
*/
//@SaCheckPermission("pm:category:add")
@SaCheckPermission("pm:category:add")
@Log(title = "维修类型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -79,7 +79,7 @@ public class HqPmRepairCategoryController extends BaseController {
/**
* 修改维修类型
*/
//@SaCheckPermission("pm:category:edit")
@SaCheckPermission("pm:category:edit")
@Log(title = "维修类型", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -90,17 +90,17 @@ public class HqPmRepairCategoryController extends BaseController {
/**
* 删除维修类型
*/
//@SaCheckPermission("pm:category:remove")
@SaCheckPermission("pm:category:remove")
@Log(title = "维修类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(repairCategoryService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 获取维修类型树形结构
*/
//@SaCheckPermission("pm:category:tree")
@SaCheckPermission("pm:category:tree")
@GetMapping("/tree")
public R<List<HqPmRepairCategoryVo>> tree() {
return R.ok(repairCategoryService.queryTree());
@@ -109,7 +109,7 @@ public class HqPmRepairCategoryController extends BaseController {
/**
* 获取维修类型下拉选项
*/
//@SaCheckPermission("pm:category:options")
@SaCheckPermission("pm:category:options")
@GetMapping("/options")
public R<List<java.util.Map<String, Object>>> options() {
List<HqPmRepairCategoryVo> list = repairCategoryService.queryTree();
@@ -42,7 +42,7 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 查询报修工单列表
*/
//@SaCheckPermission("pm:repairOrder:list")
@SaCheckPermission("pm:repairOrder:list")
@GetMapping("/list")
public TableDataInfo<HqPmRepairOrderVo> list(HqPmRepairOrderBo bo, PageQuery pageQuery) {
TableDataInfo<HqPmRepairOrderVo> result = repairOrderService.queryPageList(bo, pageQuery);
@@ -52,7 +52,7 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 导出报修工单列表
*/
//@SaCheckPermission("pm:repairOrder:export")
@SaCheckPermission("pm:repairOrder:export")
@Log(title = "报修工单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqPmRepairOrderBo bo, HttpServletResponse response) {
@@ -63,16 +63,16 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 获取报修工单详细信息
*/
//@SaCheckPermission("pm:repairOrder:query")
@SaCheckPermission("pm:repairOrder:query")
@GetMapping("/{id}")
public R<HqPmRepairOrderVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqPmRepairOrderVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(repairOrderService.queryById(id));
}
/**
* 新增报修工单
*/
//@SaCheckPermission("pm:repairOrder:add")
@SaCheckPermission("pm:repairOrder:add")
@Log(title = "报修工单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -89,7 +89,7 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 修改报修工单
*/
//@SaCheckPermission("pm:repairOrder:edit")
@SaCheckPermission("pm:repairOrder:edit")
@Log(title = "报修工单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -100,69 +100,69 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 删除报修工单
*/
//@SaCheckPermission("pm:repairOrder:remove")
@SaCheckPermission("pm:repairOrder:remove")
@Log(title = "报修工单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(repairOrderService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 分派工单
*/
//@SaCheckPermission("pm:repairOrder:assign")
@SaCheckPermission("pm:repairOrder:assign")
@Log(title = "分派工单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{orderId}/assign")
public R<Void> assignOrder(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId,
@NotNull(message = "维修员ID不能为空") @RequestParam Long assigneeId,
@RequestParam(required = false) String assignRemark) {
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId,
@NotNull(message = "维修员ID不能为空") @RequestParam("assigneeId") Long assigneeId,
@RequestParam(value = "assignRemark", required = false) String assignRemark) {
return toAjax(repairOrderService.assignOrder(orderId, assigneeId, assignRemark));
}
/**
* 开始维修
*/
//@SaCheckPermission("pm:repairOrder:start")
@SaCheckPermission("pm:repairOrder:start")
@Log(title = "开始维修", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{orderId}/start")
public R<Void> startRepair(@NotNull(message = "工单ID不能为空") @PathVariable Long orderId) {
public R<Void> startRepair(@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId) {
return toAjax(repairOrderService.startRepair(orderId));
}
/**
* 完成维修
*/
//@SaCheckPermission("pm:repairOrder:finish")
@SaCheckPermission("pm:repairOrder:finish")
@Log(title = "完成维修", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{orderId}/finish")
public R<Void> finishRepair(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId,
@RequestParam(required = false) String repairResult,
@RequestParam(required = false) String usedMaterials) {
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId,
@RequestParam(value = "repairResult", required = false) String repairResult,
@RequestParam(value = "usedMaterials", required = false) String usedMaterials) {
return toAjax(repairOrderService.finishRepair(orderId, repairResult, usedMaterials));
}
/**
* 取消工单
*/
//@SaCheckPermission("pm:repairOrder:cancel")
@SaCheckPermission("pm:repairOrder:cancel")
@Log(title = "取消工单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{orderId}/cancel")
public R<Void> cancelOrder(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId,
@RequestParam(required = false) String cancelReason) {
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId,
@RequestParam(value = "cancelReason", required = false) String cancelReason) {
return toAjax(repairOrderService.cancelOrder(orderId, cancelReason));
}
/**
* 生成工单编号
*/
//@SaCheckPermission("pm:repairOrder:generateOrderNo")
@SaCheckPermission("pm:repairOrder:generateOrderNo")
@GetMapping("/generateOrderNo")
public R<String> generateOrderNo() {
return R.ok(repairOrderService.generateOrderNo());
@@ -171,7 +171,7 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 获取报修统计数据
*/
//@SaCheckPermission("pm:repairOrder:statistics")
@SaCheckPermission("pm:repairOrder:statistics")
@GetMapping("/statistics")
public R<java.util.Map<String, Object>> statistics() {
// 模拟统计数据,实际项目中应该从service获取真实统计
@@ -247,7 +247,7 @@ public class HqPmRepairOrderController extends BaseController {
* 获取维修人员选项
* 返回拥有"维修人员"角色的用户列表
*/
//@SaCheckPermission("pm:repairOrder:assign")
@SaCheckPermission("pm:repairOrder:assign")
@GetMapping("/maintenance-workers")
public R<List<java.util.Map<String, Object>>> getMaintenanceWorkers() {
return R.ok(repairOrderService.getMaintenanceWorkers());
@@ -256,10 +256,10 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 获取工单进度列表
*/
//@SaCheckPermission("pm:repairOrder:progress")
@SaCheckPermission("pm:repairOrder:progress")
@GetMapping("/{orderId}/progress")
public R<List<java.util.Map<String, Object>>> getRepairProgress(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId) {
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId) {
List<java.util.Map<String, Object>> progressList = repairOrderService.getRepairProgress(orderId);
return R.ok(progressList);
}
@@ -267,7 +267,7 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 更新维修进度
*/
//@SaCheckPermission("pm:repairOrder:updateProgress")
@SaCheckPermission("pm:repairOrder:updateProgress")
@Log(title = "更新进度", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/progress")
@@ -279,12 +279,12 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 完成工单(新的完成接口,支持详细信息)
*/
//@SaCheckPermission("pm:repairOrder:complete")
@SaCheckPermission("pm:repairOrder:complete")
@Log(title = "完成工单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{orderId}/complete")
public R<Void> completeOrder(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId,
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId,
@RequestBody java.util.Map<String, Object> completeData) {
String repairResult = (String) completeData.get("repairResult");
String usedMaterials = (String) completeData.get("usedMaterials");
@@ -296,7 +296,7 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 创建服务评价
*/
//@SaCheckPermission("pm:repairOrder:evaluate")
@SaCheckPermission("pm:repairOrder:evaluate")
@Log(title = "服务评价", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/evaluation")
@@ -309,10 +309,10 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 获取工单的服务评价
*/
//@SaCheckPermission("pm:repairOrder:query")
@SaCheckPermission("pm:repairOrder:query")
@GetMapping("/{orderId}/evaluation")
public R<java.util.Map<String, Object>> getServiceEvaluation(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId) {
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId) {
// 从service获取真实评价数据
java.util.Map<String, Object> evaluation = repairOrderService.getServiceEvaluation(orderId);
return R.ok(evaluation);
@@ -321,10 +321,10 @@ public class HqPmRepairOrderController extends BaseController {
/**
* 获取工单附件列表
*/
//@SaCheckPermission("pm:repairOrder:query")
@SaCheckPermission("pm:repairOrder:query")
@GetMapping("/{orderId}/attachments")
public R<List<HqPmRepairAttachmentVo>> getRepairAttachments(
@NotNull(message = "工单ID不能为空") @PathVariable Long orderId) {
@NotNull(message = "工单ID不能为空") @PathVariable("orderId") Long orderId) {
List<HqPmRepairAttachmentVo> attachments = attachmentService.queryByOrderId(orderId);
return R.ok(attachments);
}
@@ -39,7 +39,7 @@ public class HqSatCategoryController extends BaseController {
/**
* 查询题目分类列表
*/
//@SaCheckPermission("hq:satCategory:list")
@SaCheckPermission("hq:satCategory:list")
@GetMapping("/list")
public TableDataInfo<HqSatCategoryVo> list(HqSatCategoryBo bo, PageQuery pageQuery) {
return hqSatCategoryService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqSatCategoryController extends BaseController {
/**
* 查询所有题目分类列表(包括已逻辑删除的)
*/
//@SaCheckPermission("hq:satCategory:list")
@SaCheckPermission("hq:satCategory:list")
@GetMapping("/listAllIncludeDeleted")
public R<List<HqSatCategoryVo>> listAllIncludeDeleted(HqSatCategoryBo bo) {
List<HqSatCategoryVo> list = hqSatCategoryService.queryListWithDeleted(bo);
@@ -58,7 +58,7 @@ public class HqSatCategoryController extends BaseController {
/**
* 导出题目分类列表
*/
//@SaCheckPermission("hq:satCategory:export")
@SaCheckPermission("hq:satCategory:export")
@Log(title = "题目分类", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatCategoryBo bo, HttpServletResponse response) {
@@ -71,17 +71,17 @@ public class HqSatCategoryController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satCategory:query")
@SaCheckPermission("hq:satCategory:query")
@GetMapping("/{id}")
public R<HqSatCategoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(hqSatCategoryService.queryById(id));
}
/**
* 新增题目分类
*/
//@SaCheckPermission("hq:satCategory:add")
@SaCheckPermission("hq:satCategory:add")
@Log(title = "题目分类", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -92,7 +92,7 @@ public class HqSatCategoryController extends BaseController {
/**
* 修改题目分类
*/
//@SaCheckPermission("hq:satCategory:edit")
@SaCheckPermission("hq:satCategory:edit")
@Log(title = "题目分类", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -105,11 +105,11 @@ public class HqSatCategoryController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satCategory:remove")
@SaCheckPermission("hq:satCategory:remove")
@Log(title = "题目分类", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(hqSatCategoryService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -39,7 +39,7 @@ public class HqSatDetailController extends BaseController {
/**
* 查询答题详情列表
*/
//@SaCheckPermission("hq:satDetail:list")
@SaCheckPermission("hq:satDetail:list")
@GetMapping("/list")
public TableDataInfo<HqSatDetailVo> list(HqSatDetailBo bo, PageQuery pageQuery) {
return hqSatDetailService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqSatDetailController extends BaseController {
/**
* 导出答题详情列表
*/
//@SaCheckPermission("hq:satDetail:export")
@SaCheckPermission("hq:satDetail:export")
@Log(title = "答题详情", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatDetailBo bo, HttpServletResponse response) {
@@ -61,17 +61,17 @@ public class HqSatDetailController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satDetail:query")
@SaCheckPermission("hq:satDetail:query")
@GetMapping("/{id}")
public R<HqSatDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(hqSatDetailService.queryById(id));
}
/**
* 新增答题详情
*/
//@SaCheckPermission("hq:satDetail:add")
@SaCheckPermission("hq:satDetail:add")
@Log(title = "答题详情", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -82,7 +82,7 @@ public class HqSatDetailController extends BaseController {
/**
* 修改答题详情
*/
//@SaCheckPermission("hq:satDetail:edit")
@SaCheckPermission("hq:satDetail:edit")
@Log(title = "答题详情", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -95,11 +95,11 @@ public class HqSatDetailController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satDetail:remove")
@SaCheckPermission("hq:satDetail:remove")
@Log(title = "答题详情", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(hqSatDetailService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -39,7 +39,7 @@ public class HqSatOptionController extends BaseController {
/**
* 查询评分选项列表
*/
//@SaCheckPermission("hq:satOption:list")
@SaCheckPermission("hq:satOption:list")
@GetMapping("/list")
public TableDataInfo<HqSatOptionVo> list(HqSatOptionBo bo, PageQuery pageQuery) {
return hqSatOptionService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqSatOptionController extends BaseController {
/**
* 导出评分选项列表
*/
//@SaCheckPermission("hq:satOption:export")
@SaCheckPermission("hq:satOption:export")
@Log(title = "评分选项", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatOptionBo bo, HttpServletResponse response) {
@@ -61,17 +61,17 @@ public class HqSatOptionController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satOption:query")
@SaCheckPermission("hq:satOption:query")
@GetMapping("/{id}")
public R<HqSatOptionVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(hqSatOptionService.queryById(id));
}
/**
* 新增评分选项
*/
//@SaCheckPermission("hq:satOption:add")
@SaCheckPermission("hq:satOption:add")
@Log(title = "评分选项", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -82,7 +82,7 @@ public class HqSatOptionController extends BaseController {
/**
* 修改评分选项
*/
//@SaCheckPermission("hq:satOption:edit")
@SaCheckPermission("hq:satOption:edit")
@Log(title = "评分选项", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -95,11 +95,11 @@ public class HqSatOptionController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satOption:remove")
@SaCheckPermission("hq:satOption:remove")
@Log(title = "评分选项", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(hqSatOptionService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -43,7 +43,7 @@ public class HqSatQuestionController extends BaseController {
/**
* 查询题库列表
*/
//@SaCheckPermission("hq:satQuestion:list")
@SaCheckPermission("hq:satQuestion:list")
@GetMapping("/list")
public TableDataInfo<HqSatQuestionVo> list(HqSatQuestionBo bo, PageQuery pageQuery) {
return hqSatQuestionService.queryPageList(bo, pageQuery);
@@ -52,7 +52,7 @@ public class HqSatQuestionController extends BaseController {
/**
* 导出题库列表
*/
//@SaCheckPermission("hq:satQuestion:export")
@SaCheckPermission("hq:satQuestion:export")
@Log(title = "题库", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatQuestionBo bo, HttpServletResponse response) {
@@ -65,16 +65,16 @@ public class HqSatQuestionController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satQuestion:query")
@SaCheckPermission("hq:satQuestion:query")
@GetMapping("/{id}")
public R<HqSatQuestionVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqSatQuestionVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(hqSatQuestionService.queryById(id));
}
/**
* 新增题库
*/
//@SaCheckPermission("hq:satQuestion:add")
@SaCheckPermission("hq:satQuestion:add")
@Log(title = "题库", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -85,7 +85,7 @@ public class HqSatQuestionController extends BaseController {
/**
* 修改题库
*/
//@SaCheckPermission("hq:satQuestion:edit")
@SaCheckPermission("hq:satQuestion:edit")
@Log(title = "题库", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -98,10 +98,10 @@ public class HqSatQuestionController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satQuestion:remove")
@SaCheckPermission("hq:satQuestion:remove")
@Log(title = "题库", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(hqSatQuestionService.deleteWithValidByIds(List.of(ids), true));
}
@@ -110,9 +110,9 @@ public class HqSatQuestionController extends BaseController {
*
* @param questionId 题目ID
*/
//@SaCheckPermission("hq:satQuestion:query")
@SaCheckPermission("hq:satQuestion:query")
@GetMapping("/{questionId}/options")
public R<List<HqSatOptionVo>> getQuestionOptions(@PathVariable Long questionId) {
public R<List<HqSatOptionVo>> getQuestionOptions(@PathVariable("questionId") Long questionId) {
// 根据题目ID获取该题目的选项
HqSatOptionBo bo = new HqSatOptionBo();
bo.setQuestionId(questionId); // 使用questionId进行过滤
@@ -39,7 +39,7 @@ public class HqSatRecordController extends BaseController {
/**
* 查询答题记录列表
*/
//@SaCheckPermission("hq:satRecord:list")
@SaCheckPermission("hq:satRecord:list")
@GetMapping("/list")
public TableDataInfo<HqSatRecordVo> list(HqSatRecordBo bo, PageQuery pageQuery) {
return hqSatRecordService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqSatRecordController extends BaseController {
/**
* 导出答题记录列表
*/
//@SaCheckPermission("hq:satRecord:export")
@SaCheckPermission("hq:satRecord:export")
@Log(title = "答题记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatRecordBo bo, HttpServletResponse response) {
@@ -61,17 +61,17 @@ public class HqSatRecordController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satRecord:query")
@SaCheckPermission("hq:satRecord:query")
@GetMapping("/{id}")
public R<HqSatRecordVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(hqSatRecordService.queryById(id));
}
/**
* 新增答题记录
*/
//@SaCheckPermission("hq:satRecord:add")
@SaCheckPermission("hq:satRecord:add")
@Log(title = "答题记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -82,7 +82,7 @@ public class HqSatRecordController extends BaseController {
/**
* 修改答题记录
*/
//@SaCheckPermission("hq:satRecord:edit")
@SaCheckPermission("hq:satRecord:edit")
@Log(title = "答题记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -95,11 +95,11 @@ public class HqSatRecordController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satRecord:remove")
@SaCheckPermission("hq:satRecord:remove")
@Log(title = "答题记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(hqSatRecordService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -45,7 +45,7 @@ public class HqSatSurveyController extends BaseController {
/**
* 查询问卷列表
*/
//@SaCheckPermission("hq:satSurvey:list")
@SaCheckPermission("hq:satSurvey:list")
@GetMapping("/list")
public TableDataInfo<HqSatSurveyVo> list(HqSatSurveyBo bo, PageQuery pageQuery) {
// 从params中获取权限过滤参数
@@ -77,7 +77,7 @@ public class HqSatSurveyController extends BaseController {
/**
* 导出问卷列表
*/
//@SaCheckPermission("hq:satSurvey:export")
@SaCheckPermission("hq:satSurvey:export")
@Log(title = "问卷", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatSurveyBo bo, HttpServletResponse response) {
@@ -90,16 +90,16 @@ public class HqSatSurveyController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satSurvey:query")
@SaCheckPermission("hq:satSurvey:query")
@GetMapping("/{id}")
public R<HqSatSurveyVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqSatSurveyVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(hqSatSurveyService.queryById(id));
}
/**
* 新增问卷
*/
//@SaCheckPermission("hq:satSurvey:add")
@SaCheckPermission("hq:satSurvey:add")
@Log(title = "问卷", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -110,7 +110,7 @@ public class HqSatSurveyController extends BaseController {
/**
* 修改问卷
*/
//@SaCheckPermission("hq:satSurvey:edit")
@SaCheckPermission("hq:satSurvey:edit")
@Log(title = "问卷", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -123,10 +123,10 @@ public class HqSatSurveyController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satSurvey:remove")
@SaCheckPermission("hq:satSurvey:remove")
@Log(title = "问卷", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(hqSatSurveyService.deleteWithValidByIds(List.of(ids), true));
}
@@ -135,10 +135,10 @@ public class HqSatSurveyController extends BaseController {
*
* @param surveyId 问卷ID
*/
//@SaCheckPermission("hq:satSurvey:question")
@SaCheckPermission("hq:satSurvey:question")
@GetMapping("/{surveyId}/questions")
public R<List<HqSatSurveyQuestionVo>> getSurveyQuestions(
@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId) {
@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId) {
return R.ok(hqSatSurveyService.getSurveyQuestions(surveyId));
}
@@ -148,11 +148,11 @@ public class HqSatSurveyController extends BaseController {
* @param surveyId 问卷ID
* @param questions 题目列表
*/
//@SaCheckPermission("hq:satSurvey:question")
@SaCheckPermission("hq:satSurvey:question")
@Log(title = "问卷题目管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{surveyId}/questions")
public R<Void> updateSurveyQuestions(@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId,
public R<Void> updateSurveyQuestions(@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId,
@RequestBody List<Object> questions) {
return toAjax(hqSatSurveyService.updateSurveyQuestions(surveyId, questions));
}
@@ -162,11 +162,11 @@ public class HqSatSurveyController extends BaseController {
*
* @param id 问卷ID
*/
//@SaCheckPermission("hq:satSurvey:publish")
@SaCheckPermission("hq:satSurvey:publish")
@Log(title = "发布问卷", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{id}/publish")
public R<Void> publishSurvey(@NotNull(message = "问卷ID不能为空") @PathVariable Long id) {
public R<Void> publishSurvey(@NotNull(message = "问卷ID不能为空") @PathVariable("id") Long id) {
return toAjax(hqSatSurveyService.publishSurvey(id));
}
@@ -175,11 +175,11 @@ public class HqSatSurveyController extends BaseController {
*
* @param id 问卷ID
*/
//@SaCheckPermission("hq:satSurvey:unpublish")
@SaCheckPermission("hq:satSurvey:unpublish")
@Log(title = "撤销发布问卷", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/{id}/unpublish")
public R<Void> unpublishSurvey(@NotNull(message = "问卷ID不能为空") @PathVariable Long id) {
public R<Void> unpublishSurvey(@NotNull(message = "问卷ID不能为空") @PathVariable("id") Long id) {
return toAjax(hqSatSurveyService.unpublishSurvey(id));
}
@@ -239,7 +239,7 @@ public class HqSatSurveyController extends BaseController {
* @param surveyId 问卷ID
*/
@GetMapping("/{surveyId}/answered")
public R<Boolean> checkUserAnswered(@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId) {
public R<Boolean> checkUserAnswered(@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId) {
return R.ok(hqSatSurveyService.checkUserAnswered(surveyId));
}
@@ -249,7 +249,7 @@ public class HqSatSurveyController extends BaseController {
* @param surveyId 问卷ID
*/
@GetMapping("/{surveyId}/answer")
public R<HqSatRecordVo> getUserSurveyAnswer(@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId) {
public R<HqSatRecordVo> getUserSurveyAnswer(@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId) {
try {
HqSatRecordVo recordVo = hqSatSurveyService.getUserSurveyAnswer(surveyId);
@@ -398,9 +398,9 @@ public class HqSatSurveyController extends BaseController {
*
* @param surveyId 问卷ID
*/
//@SaCheckPermission("hq:satSurvey:result")
@SaCheckPermission("hq:satSurvey:result")
@GetMapping("/{surveyId}/statistics")
public R<java.util.Map<String, Object>> getSurveyStatistics(@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId) {
public R<java.util.Map<String, Object>> getSurveyStatistics(@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId) {
return R.ok(hqSatSurveyService.getSurveyStatistics(surveyId));
}
@@ -414,15 +414,15 @@ public class HqSatSurveyController extends BaseController {
* @param pageNum 页码
* @param pageSize 每页大小
*/
//@SaCheckPermission("hq:satSurvey:result")
@SaCheckPermission("hq:satSurvey:result")
@GetMapping("/{surveyId}/records")
public R<java.util.Map<String, Object>> getSurveyAnswerRecords(
@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId,
@RequestParam(required = false) String status,
@RequestParam(required = false) String userName,
@RequestParam(required = false) String[] dateRange,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId,
@RequestParam(value = "status", required = false) String status,
@RequestParam(value = "userName", required = false) String userName,
@RequestParam(value = "dateRange", required = false) String[] dateRange,
@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
java.util.Map<String, Object> query = new java.util.HashMap<>();
query.put("status", status);
@@ -439,9 +439,9 @@ public class HqSatSurveyController extends BaseController {
*
* @param recordId 答题记录ID
*/
//@SaCheckPermission("hq:satSurvey:result")
@SaCheckPermission("hq:satSurvey:result")
@GetMapping("/record/{recordId}")
public R<java.util.Map<String, Object>> getAnswerRecordDetail(@NotNull(message = "记录ID不能为空") @PathVariable Long recordId) {
public R<java.util.Map<String, Object>> getAnswerRecordDetail(@NotNull(message = "记录ID不能为空") @PathVariable("recordId") Long recordId) {
return R.ok(hqSatSurveyService.getAnswerRecordDetail(recordId));
}
@@ -450,10 +450,10 @@ public class HqSatSurveyController extends BaseController {
*
* @param surveyId 问卷ID
*/
//@SaCheckPermission("hq:satSurvey:export")
@SaCheckPermission("hq:satSurvey:export")
@Log(title = "导出调查报告", businessType = BusinessType.EXPORT)
@PostMapping("/{surveyId}/exportReport")
public void exportSurveyReport(@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId, HttpServletResponse response) {
public void exportSurveyReport(@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId, HttpServletResponse response) {
hqSatSurveyService.exportSurveyReport(surveyId, response);
}
@@ -462,10 +462,10 @@ public class HqSatSurveyController extends BaseController {
*
* @param surveyId 问卷ID
*/
//@SaCheckPermission("hq:satSurvey:export")
@SaCheckPermission("hq:satSurvey:export")
@Log(title = "导出原始数据", businessType = BusinessType.EXPORT)
@PostMapping("/{surveyId}/exportRawData")
public void exportSurveyRawData(@NotNull(message = "问卷ID不能为空") @PathVariable Long surveyId, HttpServletResponse response) {
public void exportSurveyRawData(@NotNull(message = "问卷ID不能为空") @PathVariable("surveyId") Long surveyId, HttpServletResponse response) {
hqSatSurveyService.exportSurveyRawData(surveyId, response);
}
}
@@ -39,7 +39,7 @@ public class HqSatSurveyQuestionController extends BaseController {
/**
* 查询问卷题目关联列表
*/
//@SaCheckPermission("hq:satSurveyQuestion:list")
@SaCheckPermission("hq:satSurveyQuestion:list")
@GetMapping("/list")
public TableDataInfo<HqSatSurveyQuestionVo> list(HqSatSurveyQuestionBo bo, PageQuery pageQuery) {
return hqSatSurveyQuestionService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqSatSurveyQuestionController extends BaseController {
/**
* 导出问卷题目关联列表
*/
//@SaCheckPermission("hq:satSurveyQuestion:export")
@SaCheckPermission("hq:satSurveyQuestion:export")
@Log(title = "问卷题目关联", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqSatSurveyQuestionBo bo, HttpServletResponse response) {
@@ -61,17 +61,17 @@ public class HqSatSurveyQuestionController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("hq:satSurveyQuestion:query")
@SaCheckPermission("hq:satSurveyQuestion:query")
@GetMapping("/{id}")
public R<HqSatSurveyQuestionVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(hqSatSurveyQuestionService.queryById(id));
}
/**
* 新增问卷题目关联
*/
//@SaCheckPermission("hq:satSurveyQuestion:add")
@SaCheckPermission("hq:satSurveyQuestion:add")
@Log(title = "问卷题目关联", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -82,7 +82,7 @@ public class HqSatSurveyQuestionController extends BaseController {
/**
* 修改问卷题目关联
*/
//@SaCheckPermission("hq:satSurveyQuestion:edit")
@SaCheckPermission("hq:satSurveyQuestion:edit")
@Log(title = "问卷题目关联", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -95,11 +95,11 @@ public class HqSatSurveyQuestionController extends BaseController {
*
* @param ids 主键串
*/
//@SaCheckPermission("hq:satSurveyQuestion:remove")
@SaCheckPermission("hq:satSurveyQuestion:remove")
@Log(title = "问卷题目关联", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(hqSatSurveyQuestionService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -39,7 +39,7 @@ public class HqVenueInfoController extends BaseController {
/**
* 查询场地信息列表
*/
//@SaCheckPermission("hq:venue:list")
@SaCheckPermission("hq:venue:list")
@GetMapping("/list")
public TableDataInfo<HqVenueInfoVo> list(HqVenueInfoBo bo, PageQuery pageQuery) {
return venueInfoService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class HqVenueInfoController extends BaseController {
/**
* 导出场地信息列表
*/
//@SaCheckPermission("hq:venue:export")
@SaCheckPermission("hq:venue:export")
@Log(title = "场地信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqVenueInfoBo bo, HttpServletResponse response) {
@@ -59,16 +59,16 @@ public class HqVenueInfoController extends BaseController {
/**
* 获取场地信息详细信息
*/
//@SaCheckPermission("hq:venue:query")
@SaCheckPermission("hq:venue:query")
@GetMapping("/{id}")
public R<HqVenueInfoVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqVenueInfoVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(venueInfoService.queryById(id));
}
/**
* 新增场地信息
*/
//@SaCheckPermission("hq:venue:add")
@SaCheckPermission("hq:venue:add")
@Log(title = "场地信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -79,7 +79,7 @@ public class HqVenueInfoController extends BaseController {
/**
* 修改场地信息
*/
//@SaCheckPermission("hq:venue:edit")
@SaCheckPermission("hq:venue:edit")
@Log(title = "场地信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -90,26 +90,26 @@ public class HqVenueInfoController extends BaseController {
/**
* 删除场地信息
*/
//@SaCheckPermission("hq:venue:remove")
@SaCheckPermission("hq:venue:remove")
@Log(title = "场地信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(venueInfoService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 根据场地编码查询场地信息
*/
//@SaCheckPermission("hq:venue:query")
@SaCheckPermission("hq:venue:query")
@GetMapping("/code/{venueCode}")
public R<HqVenueInfoVo> getByCode(@PathVariable String venueCode) {
public R<HqVenueInfoVo> getByCode(@PathVariable("venueCode") String venueCode) {
return R.ok(venueInfoService.queryByVenueCode(venueCode));
}
/**
* 获取可用场地列表
*/
//@SaCheckPermission("hq:venue:query")
@SaCheckPermission("hq:venue:query")
@GetMapping("/available")
public R<List<HqVenueInfoVo>> getAvailableVenues() {
return R.ok(venueInfoService.getAvailableVenues());
@@ -41,7 +41,7 @@ public class HqVenueReservationController extends BaseController {
/**
* 查询场地预约列表
*/
//@SaCheckPermission("hq:reservation:list")
@SaCheckPermission("hq:reservation:list")
@GetMapping("/list")
public TableDataInfo<HqVenueReservationVo> list(HqVenueReservationBo bo, PageQuery pageQuery) {
return reservationService.queryPageList(bo, pageQuery);
@@ -50,7 +50,7 @@ public class HqVenueReservationController extends BaseController {
/**
* 查询我的预约列表
*/
//@SaCheckPermission("hq:reservation:my")
@SaCheckPermission("hq:reservation:my")
@GetMapping("/my")
public TableDataInfo<HqVenueReservationVo> myList(HqVenueReservationBo bo, PageQuery pageQuery) {
return reservationService.queryMyPageList(bo, pageQuery);
@@ -59,7 +59,7 @@ public class HqVenueReservationController extends BaseController {
/**
* 查询待审批预约列表
*/
//@SaCheckPermission("hq:reservation:approve")
@SaCheckPermission("hq:reservation:approve")
@GetMapping("/pending")
public TableDataInfo<HqVenueReservationVo> pendingList(HqVenueReservationBo bo, PageQuery pageQuery) {
return reservationService.queryPendingPageList(bo, pageQuery);
@@ -68,7 +68,7 @@ public class HqVenueReservationController extends BaseController {
/**
* 导出场地预约列表
*/
//@SaCheckPermission("hq:reservation:export")
@SaCheckPermission("hq:reservation:export")
@Log(title = "场地预约", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HqVenueReservationBo bo, HttpServletResponse response) {
@@ -79,16 +79,16 @@ public class HqVenueReservationController extends BaseController {
/**
* 获取场地预约详细信息
*/
//@SaCheckPermission("hq:reservation:query")
@SaCheckPermission("hq:reservation:query")
@GetMapping("/{id}")
public R<HqVenueReservationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<HqVenueReservationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(reservationService.queryById(id));
}
/**
* 新增场地预约
*/
//@SaCheckPermission("hq:reservation:add")
@SaCheckPermission("hq:reservation:add")
@Log(title = "场地预约", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -99,7 +99,7 @@ public class HqVenueReservationController extends BaseController {
/**
* 修改场地预约
*/
//@SaCheckPermission("hq:reservation:edit")
@SaCheckPermission("hq:reservation:edit")
@Log(title = "场地预约", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -110,23 +110,23 @@ public class HqVenueReservationController extends BaseController {
/**
* 删除场地预约
*/
//@SaCheckPermission("hq:reservation:remove")
@SaCheckPermission("hq:reservation:remove")
@Log(title = "场地预约", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(reservationService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 检查时间冲突
*/
//@SaCheckPermission("hq:reservation:query")
@SaCheckPermission("hq:reservation:query")
@GetMapping("/conflict")
public R<List<HqVenueReservationVo>> checkTimeConflict(
@RequestParam Long venueId,
@RequestParam LocalDateTime startTime,
@RequestParam LocalDateTime endTime,
@RequestParam(required = false) Long excludeId) {
@RequestParam("venueId") Long venueId,
@RequestParam("startTime") LocalDateTime startTime,
@RequestParam("endTime") LocalDateTime endTime,
@RequestParam(value = "excludeId", required = false) Long excludeId) {
List<HqVenueReservationVo> conflicts = reservationService.checkTimeConflict(venueId, startTime, endTime, excludeId);
return R.ok(conflicts);
}
@@ -134,7 +134,7 @@ public class HqVenueReservationController extends BaseController {
/**
* 审批场地预约
*/
//@SaCheckPermission("hq:reservation:approve")
@SaCheckPermission("hq:reservation:approve")
@Log(title = "场地预约审批", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/approve")
@@ -174,4 +174,11 @@ public interface IHqSatSurveyService {
* @param response HTTP响应
*/
void exportSurveyRawData(Long surveyId, jakarta.servlet.http.HttpServletResponse response);
/**
* 将已过期问卷状态更新为已结束(status=2)
*
* @return 更新条数
*/
int updateExpiredSurveys();
}
@@ -6,7 +6,9 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.dromara.common.tenant.helper.TenantHelper;
import cn.hutool.core.collection.CollUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -1741,4 +1743,21 @@ public class HqSatSurveyServiceImpl implements IHqSatSurveyService {
public java.util.List<java.util.Map<String, Object>> getAnswers() { return answers; }
public void setAnswers(java.util.List<java.util.Map<String, Object>> answers) { this.answers = answers; }
}
/**
* 将 end_time 已过期且未结束的问卷标记为已结束。
* 定时任务无登录上下文,需忽略租户插件,覆盖全部租户。
*/
@Override
public int updateExpiredSurveys() {
Date now = new Date();
return TenantHelper.ignore(() -> {
LambdaUpdateWrapper<HqSatSurvey> updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.set(HqSatSurvey::getStatus, "2")
.set(HqSatSurvey::getUpdateTime, now)
.lt(HqSatSurvey::getEndTime, now)
.ne(HqSatSurvey::getStatus, "2");
return baseMapper.update(null, updateWrapper);
});
}
}
@@ -0,0 +1,46 @@
package org.dromara.hq.task;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.hq.service.IHqSatSurveyService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.Duration;
/**
* 满意度调查问卷过期扫描任务
* <p>替代原 SnailJob surveyEndTimeJobExecutor:每小时将 end_time 已过期的问卷 status 更新为 2(已结束)。</p>
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class HqSatSurveyExpireTask {
private static final String LOCK_KEY = "hq:sat:survey:expire:lock";
private static final Duration LOCK_TTL = Duration.ofMinutes(10);
private final IHqSatSurveyService satSurveyService;
/**
* 每小时整点执行(与原 SnailJob 3600 秒间隔对齐)
*/
@Scheduled(cron = "0 0 * * * ?")
public void updateExpiredSurveys() {
boolean locked = RedisUtils.setObjectIfAbsent(LOCK_KEY, "1", LOCK_TTL);
if (!locked) {
log.debug("满意度调查过期扫描跳过:其他实例正在执行");
return;
}
try {
log.info("开始执行满意度调查过期扫描");
int updatedCount = satSurveyService.updateExpiredSurveys();
log.info("满意度调查过期扫描完成,更新数量: {}", updatedCount);
} catch (Exception e) {
log.error("满意度调查过期扫描失败", e);
} finally {
RedisUtils.deleteObject(LOCK_KEY);
}
}
}
+3 -1
View File
@@ -92,11 +92,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再依赖 -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
@@ -52,7 +52,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 查询贫困生认定申请列表
*/
//@SaCheckPermission("jcbt:povertyApplication:list")
@SaCheckPermission("jcbt:povertyApplication:list")
@GetMapping("/list")
@Operation(summary = "查询贫困生认定申请列表")
public TableDataInfo<JcbtPovertyApplicationVo> list(JcbtPovertyApplicationBo bo, PageQuery pageQuery) {
@@ -62,17 +62,17 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 获取贫困生认定申请详细信息
*/
//@SaCheckPermission("jcbt:povertyApplication:query")
@SaCheckPermission("jcbt:povertyApplication:query")
@GetMapping("/{id}")
@Operation(summary = "获取贫困生认定申请详细信息")
public R<JcbtPovertyApplicationVo> getInfo(@Parameter(description = "主键") @PathVariable Long id) {
public R<JcbtPovertyApplicationVo> getInfo(@Parameter(description = "主键") @PathVariable("id") Long id) {
return R.ok(povertyApplicationService.queryById(id));
}
/**
* 新增贫困生认定申请
*/
//@SaCheckPermission("jcbt:povertyApplication:add")
@SaCheckPermission("jcbt:povertyApplication:add")
@Log(title = "贫困生认定申请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping
@@ -89,7 +89,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 修改贫困生认定申请
*/
//@SaCheckPermission("jcbt:povertyApplication:edit")
@SaCheckPermission("jcbt:povertyApplication:edit")
@Log(title = "贫困生认定申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping
@@ -101,18 +101,18 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 删除贫困生认定申请
*/
//@SaCheckPermission("jcbt:povertyApplication:remove")
@SaCheckPermission("jcbt:povertyApplication:remove")
@Log(title = "删除贫困生认定申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@Operation(summary = "删除贫困生认定申请")
public R<Void> remove(@Parameter(description = "主键集合") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@Parameter(description = "主键集合") @NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(povertyApplicationService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 导出贫困生认定申请列表
*/
//@SaCheckPermission("jcbt:povertyApplication:export")
@SaCheckPermission("jcbt:povertyApplication:export")
@Log(title = "导出贫困生认定申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "导出贫困生认定申请列表")
@@ -124,7 +124,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 导出我的申请列表(班主任导出自己提交的申请)
*/
//@SaCheckPermission("jcbt:povertyApplication:myList")
@SaCheckPermission("jcbt:povertyApplication:myList")
@Log(title = "导出我的贫困生认定申请", businessType = BusinessType.EXPORT)
@PostMapping("/myExport")
@Operation(summary = "导出我的申请列表")
@@ -139,7 +139,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 查询我的申请列表(班主任查看自己提交的申请)
*/
//@SaCheckPermission("jcbt:povertyApplication:myList")
@SaCheckPermission("jcbt:povertyApplication:myList")
@GetMapping("/myList")
@Operation(summary = "查询我的申请列表")
public TableDataInfo<JcbtPovertyApplicationVo> myList(JcbtPovertyApplicationBo bo, PageQuery pageQuery) {
@@ -150,7 +150,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 查询待审核申请列表(审核人员使用)
*/
//@SaCheckPermission("jcbt:povertyApplication:pendingList")
@SaCheckPermission("jcbt:povertyApplication:pendingList")
@GetMapping("/pendingList")
@Operation(summary = "查询待审核申请列表")
public TableDataInfo<JcbtPovertyApplicationVo> pendingList(JcbtPovertyApplicationBo bo, PageQuery pageQuery) {
@@ -160,24 +160,24 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 提交申请
*/
//@SaCheckPermission("jcbt:povertyApplication:submit")
@SaCheckPermission("jcbt:povertyApplication:submit")
@Log(title = "提交贫困生认定申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/submit/{id}")
@Operation(summary = "提交申请")
public R<Void> submit(@Parameter(description = "申请ID") @PathVariable Long id) {
public R<Void> submit(@Parameter(description = "申请ID") @PathVariable("id") Long id) {
return toAjax(povertyApplicationService.submitApplication(id));
}
/**
* 撤销申请
*/
//@SaCheckPermission("jcbt:povertyApplication:cancel")
@SaCheckPermission("jcbt:povertyApplication:cancel")
@Log(title = "撤销贫困生认定申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/cancel/{id}")
@Operation(summary = "撤销申请")
public R<Void> cancel(@Parameter(description = "申请ID") @PathVariable Long id) {
public R<Void> cancel(@Parameter(description = "申请ID") @PathVariable("id") Long id) {
return toAjax(povertyApplicationService.cancelApplication(id));
}
@@ -186,17 +186,17 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 根据申请编号获取申请信息
*/
//@SaCheckPermission("jcbt:povertyApplication:query")
@SaCheckPermission("jcbt:povertyApplication:query")
@GetMapping("/byApplicationNo/{applicationNo}")
@Operation(summary = "根据申请编号获取申请信息")
public R<JcbtPovertyApplicationVo> getInfoByApplicationNo(@Parameter(description = "申请编号") @PathVariable String applicationNo) {
public R<JcbtPovertyApplicationVo> getInfoByApplicationNo(@Parameter(description = "申请编号") @PathVariable("applicationNo") String applicationNo) {
return R.ok(povertyApplicationService.queryByApplicationNo(applicationNo));
}
/**
* 保存草稿
*/
//@SaCheckPermission("jcbt:povertyApplication:saveDraft")
@SaCheckPermission("jcbt:povertyApplication:saveDraft")
@Log(title = "保存贫困生认定申请草稿", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/saveDraft")
@@ -208,7 +208,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 审核通过
*/
//@SaCheckPermission("jcbt:povertyApplication:approve")
@SaCheckPermission("jcbt:povertyApplication:approve")
@Log(title = "审核通过贫困生认定申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/approve")
@@ -220,7 +220,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 审核驳回
*/
//@SaCheckPermission("jcbt:povertyApplication:reject")
@SaCheckPermission("jcbt:povertyApplication:reject")
@Log(title = "审核驳回贫困生认定申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/reject")
@@ -232,7 +232,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 生成申请编号
*/
//@SaCheckPermission("jcbt:povertyApplication:add")
@SaCheckPermission("jcbt:povertyApplication:add")
@GetMapping("/generateApplicationNo")
@Operation(summary = "生成申请编号")
public R<String> generateApplicationNo() {
@@ -242,13 +242,13 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 检查学生申请是否重复
*/
//@SaCheckPermission("jcbt:povertyApplication:add")
@SaCheckPermission("jcbt:povertyApplication:add")
@GetMapping("/checkDuplicate")
@Operation(summary = "检查学生申请是否重复")
public R<Boolean> checkDuplicate(@Parameter(description = "学生ID") @RequestParam Long studentId,
@Parameter(description = "学年") @RequestParam String academicYear,
@Parameter(description = "认定类型ID") @RequestParam Long recognitionTypeId,
@Parameter(description = "排除的申请ID") @RequestParam(required = false) Long excludeId) {
public R<Boolean> checkDuplicate(@Parameter(description = "学生ID") @RequestParam("studentId") Long studentId,
@Parameter(description = "学年") @RequestParam("academicYear") String academicYear,
@Parameter(description = "认定类型ID") @RequestParam("recognitionTypeId") Long recognitionTypeId,
@Parameter(description = "排除的申请ID") @RequestParam(value = "excludeId", required = false) Long excludeId) {
boolean exists = povertyApplicationService.checkStudentApplicationExists(studentId, academicYear, recognitionTypeId, excludeId);
return R.ok(exists);
}
@@ -258,10 +258,10 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 获取申请统计信息
*/
//@SaCheckPermission("jcbt:povertyApplication:statistics")
@SaCheckPermission("jcbt:povertyApplication:statistics")
@GetMapping("/statistics")
@Operation(summary = "获取申请统计信息")
public R<Map<String, Object>> statistics(@Parameter(description = "班主任ID") @RequestParam(required = false) Long teacherId) {
public R<Map<String, Object>> statistics(@Parameter(description = "班主任ID") @RequestParam(value = "teacherId", required = false) Long teacherId) {
List<JcbtPovertyApplicationVo> statisticsList = povertyApplicationService.getApplicationStatistics(teacherId);
// 转换为前端需要的格式
@@ -284,7 +284,7 @@ public class JcbtPovertyApplicationController extends BaseController {
/**
* 获取我的申请统计信息(班主任使用)
*/
//@SaCheckPermission("jcbt:povertyApplication:myList")
@SaCheckPermission("jcbt:povertyApplication:myList")
@GetMapping("/myStatistics")
@Operation(summary = "获取我的申请统计信息")
public R<Map<String, Object>> myStatistics() {
@@ -312,7 +312,7 @@ public class JcbtPovertyApplicationController extends BaseController {
* 获取当前用户班级信息
*/
@Operation(summary = "获取当前用户班级信息")
//@SaCheckPermission("jcbt:povertyApplication:list")
@SaCheckPermission("jcbt:povertyApplication:list")
@GetMapping("/user/classes")
public R<List<Map<String, Object>>> getCurrentUserClasses() {
Long currentUserId = LoginHelper.getLoginUser().getUserId();
@@ -325,9 +325,9 @@ public class JcbtPovertyApplicationController extends BaseController {
*/
@Operation(summary = "获取班级学生列表")
@Parameter(name = "classId", description = "班级ID", required = true)
//@SaCheckPermission("jcbt:povertyApplication:list")
@SaCheckPermission("jcbt:povertyApplication:list")
@GetMapping("/class/{classId}/students")
public R<List<Map<String, Object>>> getClassStudents(@PathVariable Long classId) {
public R<List<Map<String, Object>>> getClassStudents(@PathVariable("classId") Long classId) {
List<Map<String, Object>> students = povertyApplicationService.getClassStudents(classId);
return R.ok(students);
}
@@ -51,7 +51,7 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 查询待审核申请列表
*/
//@SaCheckPermission("jcbt:povertyApplication:query")
@SaCheckPermission("jcbt:povertyApplication:query")
@GetMapping("/pendingList")
@Operation(summary = "查询待审核申请列表")
public TableDataInfo<JcbtPovertyApplicationVo> pendingList(JcbtPovertyApplicationBo bo, PageQuery pageQuery) {
@@ -61,7 +61,7 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 查询所有申请列表(支持多状态筛选)
*/
//@SaCheckPermission("jcbt:povertyApplication:query")
@SaCheckPermission("jcbt:povertyApplication:query")
@GetMapping("/list")
@Operation(summary = "查询所有申请列表")
public TableDataInfo<JcbtPovertyApplicationVo> list(JcbtPovertyApplicationBo bo, PageQuery pageQuery) {
@@ -86,17 +86,17 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 获取申请详情
*/
//@SaCheckPermission("jcbt:povertyApplication:detail")
@SaCheckPermission("jcbt:povertyApplication:detail")
@GetMapping("/{id}")
@Operation(summary = "获取申请详情")
public R<JcbtPovertyApplicationVo> getInfo(@Parameter(description = "申请ID") @PathVariable Long id) {
public R<JcbtPovertyApplicationVo> getInfo(@Parameter(description = "申请ID") @PathVariable("id") Long id) {
return R.ok(povertyApplicationService.queryById(id));
}
/**
* 审核通过
*/
//@SaCheckPermission("jcbt:povertyApplication:approve")
@SaCheckPermission("jcbt:povertyApplication:approve")
@Log(title = "审核通过贫困生认定申请", businessType = BusinessType.UPDATE)
@PutMapping("/approve")
@Operation(summary = "审核通过")
@@ -107,7 +107,7 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 审核驳回
*/
//@SaCheckPermission("jcbt:povertyApplication:reject")
@SaCheckPermission("jcbt:povertyApplication:reject")
@Log(title = "审核驳回贫困生认定申请", businessType = BusinessType.UPDATE)
@PutMapping("/reject")
@Operation(summary = "审核驳回")
@@ -118,7 +118,7 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 打回修改
*/
//@SaCheckPermission("jcbt:povertyApplication:reject")
@SaCheckPermission("jcbt:povertyApplication:reject")
@Log(title = "打回修改贫困生认定申请", businessType = BusinessType.UPDATE)
@PutMapping("/returnToDraft")
@Operation(summary = "打回修改")
@@ -129,24 +129,24 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 批量审核通过
*/
//@SaCheckPermission("jcbt:povertyApplication:approve")
@SaCheckPermission("jcbt:povertyApplication:approve")
@Log(title = "批量审核通过贫困生认定申请", businessType = BusinessType.UPDATE)
@PutMapping("/batchApprove")
@Operation(summary = "批量审核通过")
public R<Void> batchApprove(@Parameter(description = "申请ID列表") @RequestBody List<Long> ids,
@Parameter(description = "审核意见") @RequestParam(required = false) String auditOpinion) {
@Parameter(description = "审核意见") @RequestParam(value = "auditOpinion", required = false) String auditOpinion) {
return toAjax(povertyApplicationService.batchApproveApplications(ids, auditOpinion));
}
/**
* 批量审核驳回
*/
//@SaCheckPermission("jcbt:povertyApplication:reject")
@SaCheckPermission("jcbt:povertyApplication:reject")
@Log(title = "批量审核驳回贫困生认定申请", businessType = BusinessType.UPDATE)
@PutMapping("/batchReject")
@Operation(summary = "批量审核驳回")
public R<Void> batchReject(@Parameter(description = "申请ID列表") @RequestBody List<Long> ids,
@Parameter(description = "审核意见") @RequestParam String auditOpinion) {
@Parameter(description = "审核意见") @RequestParam("auditOpinion") String auditOpinion) {
return toAjax(povertyApplicationService.batchRejectApplications(ids, auditOpinion));
}
@@ -155,11 +155,11 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 获取审核统计信息
*/
//@SaCheckPermission("jcbt:povertyApplication:statistics")
@SaCheckPermission("jcbt:povertyApplication:statistics")
@GetMapping("/statistics")
@Operation(summary = "获取审核统计信息")
public R<Map<String, Object>> statistics(@Parameter(description = "学年") @RequestParam(required = false) String academicYear,
@Parameter(description = "学院ID") @RequestParam(required = false) Long collegeId) {
public R<Map<String, Object>> statistics(@Parameter(description = "学年") @RequestParam(value = "academicYear", required = false) String academicYear,
@Parameter(description = "学院ID") @RequestParam(value = "collegeId", required = false) Long collegeId) {
List<JcbtPovertyApplicationVo> statisticsList = povertyApplicationService.getReviewStatistics(academicYear, collegeId);
// 转换为前端需要的格式
@@ -182,11 +182,11 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 获取审核工作量统计
*/
//@SaCheckPermission("jcbt:povertyApplication:statistics")
@SaCheckPermission("jcbt:povertyApplication:statistics")
@GetMapping("/workloadStatistics")
@Operation(summary = "获取审核工作量统计")
public R<List<Map<String, Object>>> workloadStatistics(@Parameter(description = "开始时间") @RequestParam(required = false) String startTime,
@Parameter(description = "结束时间") @RequestParam(required = false) String endTime) {
public R<List<Map<String, Object>>> workloadStatistics(@Parameter(description = "开始时间") @RequestParam(value = "startTime", required = false) String startTime,
@Parameter(description = "结束时间") @RequestParam(value = "endTime", required = false) String endTime) {
List<Map<String, Object>> workloadStats = povertyApplicationService.getAuditorWorkloadStatistics(startTime, endTime);
return R.ok(workloadStats);
}
@@ -196,7 +196,7 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 导出申请数据
*/
//@SaCheckPermission("jcbt:povertyApplication:export")
@SaCheckPermission("jcbt:povertyApplication:export")
@Log(title = "导出贫困生认定申请数据", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "导出申请数据")
@@ -208,7 +208,7 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 导出待审核申请数据
*/
//@SaCheckPermission("jcbt:povertyApplication:export")
@SaCheckPermission("jcbt:povertyApplication:export")
@Log(title = "导出待审核贫困生认定申请数据", businessType = BusinessType.EXPORT)
@PostMapping("/exportPending")
@Operation(summary = "导出待审核申请数据")
@@ -224,10 +224,10 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 获取申请附件预览信息
*/
//@SaCheckPermission("jcbt:povertyApplication:detail")
@SaCheckPermission("jcbt:povertyApplication:detail")
@GetMapping("/{id}/attachments")
@Operation(summary = "获取申请附件预览信息")
public R<Map<String, Object>> getAttachments(@Parameter(description = "申请ID") @PathVariable Long id) {
public R<Map<String, Object>> getAttachments(@Parameter(description = "申请ID") @PathVariable("id") Long id) {
JcbtPovertyApplicationVo application = povertyApplicationService.queryById(id);
if (application == null) {
return R.fail("申请不存在");
@@ -253,10 +253,10 @@ public class JcbtPovertyApplicationReviewController extends BaseController {
/**
* 获取审核历史记录
*/
//@SaCheckPermission("jcbt:povertyApplication:detail")
@SaCheckPermission("jcbt:povertyApplication:detail")
@GetMapping("/{id}/history")
@Operation(summary = "获取审核历史记录")
public R<List<Map<String, Object>>> getAuditHistory(@Parameter(description = "申请ID") @PathVariable Long id) {
public R<List<Map<String, Object>>> getAuditHistory(@Parameter(description = "申请ID") @PathVariable("id") Long id) {
List<Map<String, Object>> history = povertyApplicationService.getApplicationAuditHistory(id);
return R.ok(history);
}
@@ -53,7 +53,7 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 查询奖学金申请记录列表
*/
//@SaCheckPermission("jcbt:scholarshipApplication:list")
@SaCheckPermission("jcbt:scholarshipApplication:list")
@GetMapping("/list")
@Operation(summary = "查询奖学金申请记录列表")
public TableDataInfo<JcbtScholarshipApplicationVo> list(JcbtScholarshipApplicationBo bo, PageQuery pageQuery) {
@@ -63,17 +63,17 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 获取奖学金申请记录详细信息
*/
//@SaCheckPermission("jcbt:scholarshipApplication:query")
@SaCheckPermission("jcbt:scholarshipApplication:query")
@GetMapping("/{id}")
@Operation(summary = "获取奖学金申请记录详细信息")
public R<JcbtScholarshipApplicationVo> getInfo(@Parameter(description = "主键") @PathVariable Long id) {
public R<JcbtScholarshipApplicationVo> getInfo(@Parameter(description = "主键") @PathVariable("id") Long id) {
return R.ok(applicationService.queryById(id));
}
/**
* 新增奖学金申请记录
*/
//@SaCheckPermission("jcbt:scholarshipApplication:add")
@SaCheckPermission("jcbt:scholarshipApplication:add")
@Log(title = "奖学金申请记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping
@@ -85,7 +85,7 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 修改奖学金申请记录
*/
//@SaCheckPermission("jcbt:scholarshipApplication:edit")
@SaCheckPermission("jcbt:scholarshipApplication:edit")
@Log(title = "奖学金申请记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping
@@ -116,22 +116,22 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 删除奖学金申请记录
*/
//@SaCheckPermission("jcbt:scholarshipApplication:remove")
@SaCheckPermission("jcbt:scholarshipApplication:remove")
@Log(title = "奖学金申请记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@Operation(summary = "删除奖学金申请记录")
public R<Void> remove(@Parameter(description = "主键串") @PathVariable Long[] ids) {
public R<Void> remove(@Parameter(description = "主键串") @PathVariable("ids") Long[] ids) {
return toAjax(applicationService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 获取可申请的奖学金类型列表
*/
//@SaCheckPermission("jcbt:scholarshipApplication:available")
@SaCheckPermission("jcbt:scholarshipApplication:available")
@GetMapping("/available")
@Operation(summary = "获取可申请的奖学金类型列表")
public R<List<Map<String, Object>>> getAvailableScholarshipTypes(@Parameter(description = "班级ID") @RequestParam Long classId,
@Parameter(description = "批次ID") @RequestParam Long batchId) {
public R<List<Map<String, Object>>> getAvailableScholarshipTypes(@Parameter(description = "班级ID") @RequestParam("classId") Long classId,
@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId) {
return R.ok(applicationService.queryAvailableScholarshipTypes(classId, batchId));
}
@@ -140,49 +140,49 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 查询我的申请记录(班主任)
*/
//@SaCheckPermission("jcbt:scholarshipApplication:my")
@SaCheckPermission("jcbt:scholarshipApplication:my")
@GetMapping("/my")
@Operation(summary = "查询我的申请记录")
public R<List<JcbtScholarshipApplicationVo>> getMyApplications(@Parameter(description = "申请人ID") @RequestParam Long applicantId,
@Parameter(description = "批次ID") @RequestParam(required = false) Long batchId) {
public R<List<JcbtScholarshipApplicationVo>> getMyApplications(@Parameter(description = "申请人ID") @RequestParam("applicantId") Long applicantId,
@Parameter(description = "批次ID") @RequestParam(value = "batchId", required = false) Long batchId) {
return R.ok(applicationService.queryApplicationsByApplicant(applicantId, batchId));
}
/**
* 查询待审核申请
*/
//@SaCheckPermission("jcbt:scholarshipApplication:pending")
@SaCheckPermission("jcbt:scholarshipApplication:pending")
@GetMapping("/pending")
@Operation(summary = "查询待审核申请")
public R<List<JcbtScholarshipApplicationVo>> getPendingApplications(@Parameter(description = "审核人ID") @RequestParam(required = false) Long reviewerId,
@Parameter(description = "申请状态") @RequestParam(required = false) String status) {
public R<List<JcbtScholarshipApplicationVo>> getPendingApplications(@Parameter(description = "审核人ID") @RequestParam(value = "reviewerId", required = false) Long reviewerId,
@Parameter(description = "申请状态") @RequestParam(value = "status", required = false) String status) {
return R.ok(applicationService.queryPendingApplications(reviewerId, status));
}
/**
* 检查学生申请资格
*/
//@SaCheckPermission("jcbt:scholarshipApplication:check")
@SaCheckPermission("jcbt:scholarshipApplication:check")
@GetMapping("/check")
@Operation(summary = "检查学生申请资格")
public R<Map<String, Object>> checkStudentEligibility(@Parameter(description = "学生ID") @RequestParam Long studentId,
@Parameter(description = "批次ID") @RequestParam Long batchId,
@Parameter(description = "奖学金类型ID") @RequestParam Long scholarshipTypeId) {
public R<Map<String, Object>> checkStudentEligibility(@Parameter(description = "学生ID") @RequestParam("studentId") Long studentId,
@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId,
@Parameter(description = "奖学金类型ID") @RequestParam("scholarshipTypeId") Long scholarshipTypeId) {
return R.ok(applicationService.checkStudentEligibility(studentId, batchId, scholarshipTypeId));
}
/**
* 批量审核申请
*/
//@SaCheckPermission("jcbt:scholarshipApplication:approve")
@SaCheckPermission("jcbt:scholarshipApplication:approve")
@Log(title = "批量审核奖学金申请", businessType = BusinessType.UPDATE)
@PostMapping("/approve")
@Operation(summary = "批量审核申请")
public R<Void> batchApprove(@Parameter(description = "申请ID列表") @RequestBody @NotEmpty List<Long> applicationIds,
@Parameter(description = "审核状态") @RequestParam String status,
@Parameter(description = "审核人ID") @RequestParam Long reviewerId,
@Parameter(description = "审核人姓名") @RequestParam String reviewerName,
@Parameter(description = "审核意见") @RequestParam(required = false) String reviewComment) {
@Parameter(description = "审核状态") @RequestParam("status") String status,
@Parameter(description = "审核人ID") @RequestParam("reviewerId") Long reviewerId,
@Parameter(description = "审核人姓名") @RequestParam("reviewerName") String reviewerName,
@Parameter(description = "审核意见") @RequestParam(value = "reviewComment", required = false) String reviewComment) {
return toAjax(applicationService.batchReviewApplications(applicationIds, status, reviewerId, reviewerName, reviewComment));
}
@@ -191,7 +191,7 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 导出奖学金申请记录列表
*/
//@SaCheckPermission("jcbt:scholarshipApplication:export")
@SaCheckPermission("jcbt:scholarshipApplication:export")
@Log(title = "奖学金申请记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@Operation(summary = "导出奖学金申请记录列表")
@@ -203,7 +203,7 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 导入奖学金申请记录
*/
//@SaCheckPermission("jcbt:scholarshipApplication:import")
@SaCheckPermission("jcbt:scholarshipApplication:import")
@Log(title = "奖学金申请记录", businessType = BusinessType.IMPORT)
@PostMapping(value = "/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Operation(summary = "导入奖学金申请记录")
@@ -222,24 +222,24 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 获取申请统计数据
*/
//@SaCheckPermission("jcbt:scholarshipApplication:statistics")
@SaCheckPermission("jcbt:scholarshipApplication:statistics")
@GetMapping("/statistics")
@Operation(summary = "获取申请统计数据")
public R<Map<String, Object>> getStatistics(@Parameter(description = "批次ID") @RequestParam(required = false) Long batchId,
@Parameter(description = "学院ID") @RequestParam(required = false) Long deptId) {
public R<Map<String, Object>> getStatistics(@Parameter(description = "批次ID") @RequestParam(value = "batchId", required = false) Long batchId,
@Parameter(description = "学院ID") @RequestParam(value = "deptId", required = false) Long deptId) {
return R.ok(applicationService.getApplicationStatistics(batchId, deptId));
}
/**
* 班主任批量申请提交
*/
//@SaCheckPermission("jcbt:scholarshipApplication:batch")
@SaCheckPermission("jcbt:scholarshipApplication:batch")
@Log(title = "班主任批量申请提交", businessType = BusinessType.INSERT)
@PostMapping("/batch")
@Operation(summary = "班主任批量申请提交")
public R<Void> batchSubmitByTeacher(@Parameter(description = "批次ID") @RequestParam Long batchId,
@Parameter(description = "奖学金类型ID") @RequestParam Long scholarshipTypeId,
@Parameter(description = "班级ID") @RequestParam Long classId,
public R<Void> batchSubmitByTeacher(@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId,
@Parameter(description = "奖学金类型ID") @RequestParam("scholarshipTypeId") Long scholarshipTypeId,
@Parameter(description = "班级ID") @RequestParam("classId") Long classId,
@Parameter(description = "学生申请列表") @RequestBody @NotEmpty List<JcbtScholarshipApplicationBo> studentApplications) {
return toAjax(applicationService.batchSubmitApplicationsByTeacher(batchId, scholarshipTypeId, classId, studentApplications));
}
@@ -247,23 +247,23 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 提交申请
*/
//@SaCheckPermission("jcbt:scholarshipApplication:submit")
@SaCheckPermission("jcbt:scholarshipApplication:submit")
@Log(title = "提交奖学金申请", businessType = BusinessType.UPDATE)
@PostMapping("/{id}/submit")
@Operation(summary = "提交申请")
public R<Void> submitApplication(@Parameter(description = "申请ID") @PathVariable @NotNull Long id) {
public R<Void> submitApplication(@Parameter(description = "申请ID") @PathVariable("id") @NotNull Long id) {
return toAjax(applicationService.submitApplication(id));
}
/**
* 撤回申请
*/
//@SaCheckPermission("jcbt:scholarshipApplication:withdraw")
@SaCheckPermission("jcbt:scholarshipApplication:withdraw")
@Log(title = "撤回奖学金申请", businessType = BusinessType.UPDATE)
@PostMapping("/{id}/withdraw")
@Operation(summary = "撤回申请")
public R<Void> withdrawApplication(@Parameter(description = "申请ID") @PathVariable @NotNull Long id,
@Parameter(description = "撤回原因") @RequestParam(required = false) String reason) {
public R<Void> withdrawApplication(@Parameter(description = "申请ID") @PathVariable("id") @NotNull Long id,
@Parameter(description = "撤回原因") @RequestParam(value = "reason", required = false) String reason) {
return toAjax(applicationService.withdrawApplication(id, reason));
}
@@ -272,11 +272,11 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 获取班级名额使用情况
*/
//@SaCheckPermission("jcbt:scholarshipApplication:quota")
@SaCheckPermission("jcbt:scholarshipApplication:quota")
@GetMapping("/quota")
@Operation(summary = "获取班级名额使用情况")
public R<Map<String, Object>> getClassQuotaUsage(@Parameter(description = "班级ID") @RequestParam Long classId,
@Parameter(description = "批次ID") @RequestParam Long batchId) {
public R<Map<String, Object>> getClassQuotaUsage(@Parameter(description = "班级ID") @RequestParam("classId") Long classId,
@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId) {
return R.ok(applicationService.getClassQuotaUsage(classId, batchId));
}
@@ -285,64 +285,64 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 获取班主任所带班级信息
*/
//@SaCheckPermission("jcbt:scholarshipApplication:classInfo")
@SaCheckPermission("jcbt:scholarshipApplication:classInfo")
@GetMapping("/classInfo")
@Operation(summary = "获取班主任所带班级信息")
public R<Map<String, Object>> getClassInfoByTeacher(@Parameter(description = "班主任ID") @RequestParam Long teacherId) {
public R<Map<String, Object>> getClassInfoByTeacher(@Parameter(description = "班主任ID") @RequestParam("teacherId") Long teacherId) {
return R.ok(applicationService.getClassInfoByTeacher(teacherId));
}
/**
* 获取班级学生列表(用于勾选)
*/
//@SaCheckPermission("jcbt:scholarshipApplication:students")
@SaCheckPermission("jcbt:scholarshipApplication:students")
@GetMapping("/students")
@Operation(summary = "获取班级学生列表")
public R<List<Map<String, Object>>> getClassStudents(@Parameter(description = "班级ID") @RequestParam Long classId) {
public R<List<Map<String, Object>>> getClassStudents(@Parameter(description = "班级ID") @RequestParam("classId") Long classId) {
return R.ok(applicationService.getClassStudents(classId));
}
/**
* 根据批次获取可申请的奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@GetMapping("/scholarshipTypes")
@Operation(summary = "根据批次获取可申请的奖学金类型")
public R<List<Map<String, Object>>> getScholarshipTypesByBatch(@Parameter(description = "批次ID") @RequestParam Long batchId) {
public R<List<Map<String, Object>>> getScholarshipTypesByBatch(@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId) {
return R.ok(applicationService.getScholarshipTypesByBatch(batchId));
}
/**
* 根据批次和班级获取带名额信息的奖学金类型(班主任专用)
*/
//@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@GetMapping("/scholarshipTypesWithQuota")
@Operation(summary = "根据批次和班级获取带名额信息的奖学金类型")
public R<List<Map<String, Object>>> getScholarshipTypesWithQuota(
@Parameter(description = "批次ID") @RequestParam Long batchId,
@Parameter(description = "班级ID") @RequestParam Long classId) {
@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId,
@Parameter(description = "班级ID") @RequestParam("classId") Long classId) {
return R.ok(applicationService.getScholarshipTypesWithQuota(batchId, classId));
}
/**
* 确认选择班级(多班级时用户选择后调用)
*/
//@SaCheckPermission("jcbt:scholarshipApplication:classInfo")
@SaCheckPermission("jcbt:scholarshipApplication:classInfo")
@PostMapping("/confirmClass")
@Operation(summary = "确认选择班级")
public R<Map<String, Object>> confirmClassSelection(@Parameter(description = "班主任ID") @RequestParam Long teacherId,
@Parameter(description = "班级ID") @RequestParam Long classId) {
public R<Map<String, Object>> confirmClassSelection(@Parameter(description = "班主任ID") @RequestParam("teacherId") Long teacherId,
@Parameter(description = "班级ID") @RequestParam("classId") Long classId) {
return R.ok(applicationService.confirmClassSelection(teacherId, classId));
}
/**
* 测试接口:获取奖学金类型数据结构
*/
//@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@GetMapping("/test/scholarshipTypesStructure")
@Operation(summary = "测试接口:获取奖学金类型数据结构")
public R<Map<String, Object>> testScholarshipTypesStructure(@Parameter(description = "批次ID") @RequestParam Long batchId,
@Parameter(description = "班级ID") @RequestParam(required = false) Long classId) {
public R<Map<String, Object>> testScholarshipTypesStructure(@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId,
@Parameter(description = "班级ID") @RequestParam(value = "classId", required = false) Long classId) {
Map<String, Object> result = new HashMap<>();
try {
if (classId != null) {
@@ -361,12 +361,12 @@ public class JcbtScholarshipApplicationController extends BaseController {
/**
* 调试接口:详细SQL日志输出测试
*/
//@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@SaCheckPermission("jcbt:scholarshipApplication:scholarshipTypes")
@GetMapping("/debug/sqlLogs")
@Operation(summary = "调试接口:详细SQL日志输出测试")
public R<Map<String, Object>> debugSqlLogs(@Parameter(description = "批次ID") @RequestParam Long batchId,
@Parameter(description = "班级ID") @RequestParam Long classId,
@Parameter(description = "奖学金类型ID(可选,测试单个类型)") @RequestParam(required = false) Long scholarshipTypeId) {
public R<Map<String, Object>> debugSqlLogs(@Parameter(description = "批次ID") @RequestParam("batchId") Long batchId,
@Parameter(description = "班级ID") @RequestParam("classId") Long classId,
@Parameter(description = "奖学金类型ID(可选,测试单个类型)") @RequestParam(value = "scholarshipTypeId", required = false) Long scholarshipTypeId) {
Map<String, Object> result = new HashMap<>();
try {
@@ -41,7 +41,7 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 查询奖学金评定批次列表
*/
//@SaCheckPermission("jcbt:scholarshipBatch:list")
@SaCheckPermission("jcbt:scholarshipBatch:list")
@GetMapping("/list")
public TableDataInfo<JcbtScholarshipBatchVo> list(JcbtScholarshipBatchBo bo, PageQuery pageQuery) {
return scholarshipBatchService.queryPageList(bo, pageQuery);
@@ -50,7 +50,7 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 导出奖学金评定批次列表
*/
//@SaCheckPermission("jcbt:scholarshipBatch:export")
@SaCheckPermission("jcbt:scholarshipBatch:export")
@Log(title = "奖学金评定批次", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(JcbtScholarshipBatchBo bo, HttpServletResponse response) {
@@ -61,17 +61,17 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 获取奖学金评定批次详细信息
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/{id}")
public R<JcbtScholarshipBatchVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(scholarshipBatchService.queryById(id));
}
/**
* 新增奖学金评定批次
*/
//@SaCheckPermission("jcbt:scholarshipBatch:add")
@SaCheckPermission("jcbt:scholarshipBatch:add")
@Log(title = "奖学金评定批次", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -82,7 +82,7 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 修改奖学金评定批次
*/
//@SaCheckPermission("jcbt:scholarshipBatch:edit")
@SaCheckPermission("jcbt:scholarshipBatch:edit")
@Log(title = "奖学金评定批次", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -93,38 +93,38 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 删除奖学金评定批次
*/
//@SaCheckPermission("jcbt:scholarshipBatch:remove")
@SaCheckPermission("jcbt:scholarshipBatch:remove")
@Log(title = "奖学金评定批次", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(scholarshipBatchService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 根据批次编码查询批次信息
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/getByCode/{batchCode}")
public R<JcbtScholarshipBatchVo> getByBatchCode(@PathVariable String batchCode) {
public R<JcbtScholarshipBatchVo> getByBatchCode(@PathVariable("batchCode") String batchCode) {
return R.ok(scholarshipBatchService.queryByBatchCode(batchCode));
}
/**
* 根据学年和学期查询批次列表
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/getByAcademicYear")
public R<List<JcbtScholarshipBatchVo>> getByAcademicYearAndSemester(
@RequestParam String academicYear,
@RequestParam(required = false) Integer semester) {
@RequestParam("academicYear") String academicYear,
@RequestParam(value = "semester", required = false) Integer semester) {
return R.ok(scholarshipBatchService.queryByAcademicYearAndSemester(academicYear, semester));
}
/**
* 查询启用状态的批次列表
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/getActiveBatches")
public R<List<JcbtScholarshipBatchVo>> getActiveBatches() {
return R.ok(scholarshipBatchService.queryActiveBatches());
@@ -133,27 +133,27 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 检查批次编码是否唯一
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/checkBatchCodeUnique")
public R<Boolean> checkBatchCodeUnique(@RequestParam String batchCode,
@RequestParam(required = false) Long id) {
public R<Boolean> checkBatchCodeUnique(@RequestParam("batchCode") String batchCode,
@RequestParam(value = "id", required = false) Long id) {
return R.ok(scholarshipBatchService.checkBatchCodeUnique(batchCode, id));
}
/**
* 更改批次状态
*/
//@SaCheckPermission("jcbt:scholarshipBatch:edit")
@SaCheckPermission("jcbt:scholarshipBatch:edit")
@Log(title = "奖学金评定批次", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestParam Long id, @RequestParam String status) {
public R<Void> changeStatus(@RequestParam("id") Long id, @RequestParam("status") String status) {
return toAjax(scholarshipBatchService.changeStatus(id, status));
}
/**
* 查询当前进行中的批次
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/getCurrentActiveBatches")
public R<List<JcbtScholarshipBatchVo>> getCurrentActiveBatches() {
return R.ok(scholarshipBatchService.queryCurrentActiveBatches());
@@ -162,16 +162,16 @@ public class JcbtScholarshipBatchController extends BaseController {
/**
* 根据状态查询批次列表
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@GetMapping("/getByStatus/{status}")
public R<List<JcbtScholarshipBatchVo>> getByStatus(@PathVariable String status) {
public R<List<JcbtScholarshipBatchVo>> getByStatus(@PathVariable("status") String status) {
return R.ok(scholarshipBatchService.queryByStatus(status));
}
/**
* 检查批次时间是否有冲突
*/
//@SaCheckPermission("jcbt:scholarshipBatch:query")
@SaCheckPermission("jcbt:scholarshipBatch:query")
@PostMapping("/checkTimeConflict")
public R<Boolean> checkTimeConflict(@RequestBody JcbtScholarshipBatchBo bo) {
return R.ok(scholarshipBatchService.checkTimeConflict(bo));
@@ -41,7 +41,7 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 查询奖学金名额分配列表
*/
//@SaCheckPermission("jcbt:scholarshipQuota:list")
@SaCheckPermission("jcbt:scholarshipQuota:list")
@GetMapping("/list")
public TableDataInfo<JcbtScholarshipQuotaVo> list(JcbtScholarshipQuotaBo bo, PageQuery pageQuery) {
return scholarshipQuotaService.queryPageList(bo, pageQuery);
@@ -50,9 +50,9 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 查询指定批次的名额分配列表
*/
//@SaCheckPermission("jcbt:scholarshipQuota:list")
@SaCheckPermission("jcbt:scholarshipQuota:list")
@GetMapping("/listByBatch/{batchId}")
public R<List<JcbtScholarshipQuotaVo>> listByBatch(@PathVariable Long batchId) {
public R<List<JcbtScholarshipQuotaVo>> listByBatch(@PathVariable("batchId") Long batchId) {
List<JcbtScholarshipQuotaVo> list = scholarshipQuotaService.queryListByBatchId(batchId);
return R.ok(list);
}
@@ -60,10 +60,10 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 查询指定批次和奖学金类型的名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:list")
@SaCheckPermission("jcbt:scholarshipQuota:list")
@GetMapping("/listByBatchAndType")
public R<List<JcbtScholarshipQuotaVo>> listByBatchAndType(@RequestParam Long batchId,
@RequestParam Long scholarshipTypeId) {
public R<List<JcbtScholarshipQuotaVo>> listByBatchAndType(@RequestParam("batchId") Long batchId,
@RequestParam("scholarshipTypeId") Long scholarshipTypeId) {
List<JcbtScholarshipQuotaVo> list = scholarshipQuotaService.queryListByBatchAndType(batchId, scholarshipTypeId);
return R.ok(list);
}
@@ -71,10 +71,10 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 查询名额分配树形结构
*/
//@SaCheckPermission("jcbt:scholarshipQuota:list")
@SaCheckPermission("jcbt:scholarshipQuota:list")
@GetMapping("/tree")
public R<List<JcbtScholarshipQuotaVo>> tree(@RequestParam Long batchId,
@RequestParam Long scholarshipTypeId) {
public R<List<JcbtScholarshipQuotaVo>> tree(@RequestParam("batchId") Long batchId,
@RequestParam("scholarshipTypeId") Long scholarshipTypeId) {
List<JcbtScholarshipQuotaVo> tree = scholarshipQuotaService.queryQuotaTree(batchId, scholarshipTypeId);
return R.ok(tree);
}
@@ -82,9 +82,9 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 查询名额使用统计
*/
//@SaCheckPermission("jcbt:scholarshipQuota:list")
@SaCheckPermission("jcbt:scholarshipQuota:list")
@GetMapping("/statistics/{batchId}")
public R<Map<String, Object>> statistics(@PathVariable Long batchId) {
public R<Map<String, Object>> statistics(@PathVariable("batchId") Long batchId) {
Map<String, Object> statistics = scholarshipQuotaService.queryQuotaUsageStatistics(batchId);
return R.ok(statistics);
}
@@ -92,7 +92,7 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 导出奖学金名额分配列表
*/
//@SaCheckPermission("jcbt:scholarshipQuota:export")
@SaCheckPermission("jcbt:scholarshipQuota:export")
@Log(title = "导出奖学金名额分配", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(JcbtScholarshipQuotaBo bo, HttpServletResponse response) {
@@ -103,16 +103,16 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 获取奖学金名额分配详细信息
*/
//@SaCheckPermission("jcbt:scholarshipQuota:query")
@SaCheckPermission("jcbt:scholarshipQuota:query")
@GetMapping("/{id}")
public R<JcbtScholarshipQuotaVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<JcbtScholarshipQuotaVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(scholarshipQuotaService.queryById(id));
}
/**
* 新增奖学金名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:add")
@SaCheckPermission("jcbt:scholarshipQuota:add")
@Log(title = "新增奖学金名额分配", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -123,7 +123,7 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 修改奖学金名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:edit")
@SaCheckPermission("jcbt:scholarshipQuota:edit")
@Log(title = "修改奖学金名额分配", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -134,17 +134,17 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 删除奖学金名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:remove")
@SaCheckPermission("jcbt:scholarshipQuota:remove")
@Log(title = "删除奖学金名额分配", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(scholarshipQuotaService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 批量删除奖学金名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:remove")
@SaCheckPermission("jcbt:scholarshipQuota:remove")
@Log(title = "批量删除奖学金名额分配", businessType = BusinessType.DELETE)
@DeleteMapping("/batch")
public R<Void> batchRemove(@RequestBody @NotEmpty(message = "主键不能为空") List<Long> ids) {
@@ -154,23 +154,23 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 清空指定批次和奖学金类型的名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:remove")
@SaCheckPermission("jcbt:scholarshipQuota:remove")
@Log(title = "清空奖学金名额分配", businessType = BusinessType.DELETE)
@DeleteMapping("/clear")
public R<Void> clearQuotaByBatchAndType(@RequestParam Long batchId,
@RequestParam(required = false) Long scholarshipTypeId) {
public R<Void> clearQuotaByBatchAndType(@RequestParam("batchId") Long batchId,
@RequestParam(value = "scholarshipTypeId", required = false) Long scholarshipTypeId) {
return toAjax(scholarshipQuotaService.clearQuotaByBatchAndType(batchId, scholarshipTypeId));
}
/**
* 批量分配名额
*/
//@SaCheckPermission("jcbt:scholarshipQuota:add")
@SaCheckPermission("jcbt:scholarshipQuota:add")
@Log(title = "批量分配奖学金名额", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/batchAllocate")
public R<Void> batchAllocate(@RequestParam Long batchId,
@RequestParam Long scholarshipTypeId,
public R<Void> batchAllocate(@RequestParam("batchId") Long batchId,
@RequestParam("scholarshipTypeId") Long scholarshipTypeId,
@RequestBody List<JcbtScholarshipQuotaBo> quotaAllocations) {
return toAjax(scholarshipQuotaService.batchAllocateQuota(batchId, scholarshipTypeId, quotaAllocations));
}
@@ -178,49 +178,49 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 调整名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:edit")
@SaCheckPermission("jcbt:scholarshipQuota:edit")
@Log(title = "调整奖学金名额分配", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/adjust")
public R<Void> adjustQuota(@RequestParam Long fromQuotaId,
@RequestParam Long toQuotaId,
@RequestParam Integer adjustAmount,
@RequestParam String reason) {
public R<Void> adjustQuota(@RequestParam("fromQuotaId") Long fromQuotaId,
@RequestParam("toQuotaId") Long toQuotaId,
@RequestParam("adjustAmount") Integer adjustAmount,
@RequestParam("reason") String reason) {
return toAjax(scholarshipQuotaService.adjustQuotaAllocation(fromQuotaId, toQuotaId, adjustAmount, reason));
}
/**
* 锁定/解锁名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:edit")
@SaCheckPermission("jcbt:scholarshipQuota:edit")
@Log(title = "锁定/解锁奖学金名额分配", businessType = BusinessType.UPDATE)
@PutMapping("/lock/{id}")
public R<Void> lockQuota(@PathVariable Long id, @RequestParam Integer isLocked) {
public R<Void> lockQuota(@PathVariable("id") Long id, @RequestParam("isLocked") Integer isLocked) {
return toAjax(scholarshipQuotaService.lockQuotaAllocation(id, isLocked));
}
/**
* 自动分配名额
*/
//@SaCheckPermission("jcbt:scholarshipQuota:edit")
@SaCheckPermission("jcbt:scholarshipQuota:edit")
@Log(title = "自动分配奖学金名额", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/autoAllocate")
public R<Void> autoAllocate(@RequestParam Long batchId,
@RequestParam Long scholarshipTypeId,
@RequestParam String allocationRule) {
public R<Void> autoAllocate(@RequestParam("batchId") Long batchId,
@RequestParam("scholarshipTypeId") Long scholarshipTypeId,
@RequestParam("allocationRule") String allocationRule) {
return toAjax(scholarshipQuotaService.autoAllocateQuota(batchId, scholarshipTypeId, allocationRule));
}
/**
* 复制名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:add")
@SaCheckPermission("jcbt:scholarshipQuota:add")
@Log(title = "复制奖学金名额分配", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/copy")
public R<Void> copyQuota(@RequestParam Long sourceBatchId,
@RequestParam Long targetBatchId,
public R<Void> copyQuota(@RequestParam("sourceBatchId") Long sourceBatchId,
@RequestParam("targetBatchId") Long targetBatchId,
@RequestBody List<Long> scholarshipTypeIds) {
return toAjax(scholarshipQuotaService.copyQuotaFromBatch(sourceBatchId, targetBatchId, scholarshipTypeIds));
}
@@ -228,17 +228,17 @@ public class JcbtScholarshipQuotaController extends BaseController {
/**
* 更新名额使用情况
*/
//@SaCheckPermission("jcbt:scholarshipQuota:edit")
@SaCheckPermission("jcbt:scholarshipQuota:edit")
@Log(title = "更新奖学金名额使用情况", businessType = BusinessType.UPDATE)
@PutMapping("/updateUsage/{id}")
public R<Void> updateUsage(@PathVariable Long id, @RequestParam Integer usedChange) {
public R<Void> updateUsage(@PathVariable("id") Long id, @RequestParam("usedChange") Integer usedChange) {
return toAjax(scholarshipQuotaService.updateQuotaUsage(id, usedChange));
}
/**
* 验证名额分配
*/
//@SaCheckPermission("jcbt:scholarshipQuota:query")
@SaCheckPermission("jcbt:scholarshipQuota:query")
@PostMapping("/validate")
public R<String> validate(@RequestBody JcbtScholarshipQuotaBo bo) {
String validationMsg = scholarshipQuotaService.validateQuotaAllocation(bo);
@@ -41,7 +41,7 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 查询奖学金审核记录列表
*/
//@SaCheckPermission("jcbt:review:list")
@SaCheckPermission("jcbt:review:list")
@GetMapping("/list")
public TableDataInfo<JcbtScholarshipReviewVo> list(JcbtScholarshipReviewBo bo, PageQuery pageQuery) {
return reviewService.queryPageList(bo, pageQuery);
@@ -50,7 +50,7 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 导出奖学金审核记录列表
*/
//@SaCheckPermission("jcbt:review:export")
@SaCheckPermission("jcbt:review:export")
@Log(title = "奖学金审核记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(JcbtScholarshipReviewBo bo, HttpServletResponse response) {
@@ -61,10 +61,10 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 获取奖学金审核记录详细信息
*/
//@SaCheckPermission("jcbt:review:query")
@SaCheckPermission("jcbt:review:query")
@GetMapping("/{id}")
public R<JcbtScholarshipReviewVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(reviewService.queryById(id));
}
@@ -75,23 +75,23 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 根据申请ID查询审核记录
*/
//@SaCheckPermission("jcbt:review:query")
@SaCheckPermission("jcbt:review:query")
@GetMapping("/application/{applicationId}")
public R<List<JcbtScholarshipReviewVo>> getReviewsByApplicationId(
@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId) {
@NotNull(message = "申请ID不能为空") @PathVariable("applicationId") Long applicationId) {
return R.ok(reviewService.queryReviewsByApplicationId(applicationId));
}
/**
* 查询当前用户待审核的记录
*/
//@SaCheckPermission("jcbt:review:pending")
@SaCheckPermission("jcbt:review:pending")
@GetMapping("/pending")
public TableDataInfo<JcbtScholarshipReviewVo> getPendingReviews(
@RequestParam(required = false) Long reviewerId,
@RequestParam(required = false) String reviewLevel,
@RequestParam(required = false) String applicationNo,
@RequestParam(required = false) String studentName,
@RequestParam(value = "reviewerId", required = false) Long reviewerId,
@RequestParam(value = "reviewLevel", required = false) String reviewLevel,
@RequestParam(value = "applicationNo", required = false) String applicationNo,
@RequestParam(value = "studentName", required = false) String studentName,
PageQuery pageQuery) {
return reviewService.queryPendingReviews(reviewerId, reviewLevel, applicationNo, studentName, pageQuery);
}
@@ -99,14 +99,14 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 查询审核历史记录
*/
//@SaCheckPermission("jcbt:review:history")
@SaCheckPermission("jcbt:review:history")
@GetMapping("/history")
public TableDataInfo<JcbtScholarshipReviewVo> getReviewHistory(
@RequestParam(required = false) Long reviewerId,
@RequestParam(required = false) String reviewResult,
@RequestParam(required = false) Long batchId,
@RequestParam(required = false) String startTime,
@RequestParam(required = false) String endTime,
@RequestParam(value = "reviewerId", required = false) Long reviewerId,
@RequestParam(value = "reviewResult", required = false) String reviewResult,
@RequestParam(value = "batchId", required = false) Long batchId,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
PageQuery pageQuery) {
return reviewService.queryReviewHistory(reviewerId, reviewResult, batchId, startTime, endTime, pageQuery);
}
@@ -114,32 +114,32 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 提交审核结果
*/
//@SaCheckPermission("jcbt:review:approve")
@SaCheckPermission("jcbt:review:approve")
@Log(title = "提交审核结果", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/submit")
public R<Void> submitReview(
@NotNull(message = "审核记录ID不能为空") @RequestParam Long reviewId,
@NotEmpty(message = "审核结果不能为空") @RequestParam String reviewResult,
@RequestParam(required = false) String reviewOpinion,
@RequestParam(required = false) Double reviewScore,
@RequestParam(required = false) Long nextReviewerId) {
@NotNull(message = "审核记录ID不能为空") @RequestParam("reviewId") Long reviewId,
@NotEmpty(message = "审核结果不能为空") @RequestParam("reviewResult") String reviewResult,
@RequestParam(value = "reviewOpinion", required = false) String reviewOpinion,
@RequestParam(value = "reviewScore", required = false) Double reviewScore,
@RequestParam(value = "nextReviewerId", required = false) Long nextReviewerId) {
return toAjax(reviewService.submitReview(reviewId, reviewResult, reviewOpinion, reviewScore, nextReviewerId));
}
/**
* 批量审核
*/
//@SaCheckPermission("jcbt:review:batchApprove")
@SaCheckPermission("jcbt:review:batchApprove")
@Log(title = "批量审核", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/batch")
public R<Void> batchReview(
@NotEmpty(message = "审核记录ID列表不能为空") @RequestParam List<Long> reviewIds,
@NotEmpty(message = "审核结果不能为空") @RequestParam String reviewResult,
@RequestParam(required = false) String reviewOpinion,
@NotNull(message = "审核人ID不能为空") @RequestParam Long reviewerId,
@NotEmpty(message = "审核人姓名不能为空") @RequestParam String reviewerName) {
@NotEmpty(message = "审核记录ID列表不能为空") @RequestParam("reviewIds") List<Long> reviewIds,
@NotEmpty(message = "审核结果不能为空") @RequestParam("reviewResult") String reviewResult,
@RequestParam(value = "reviewOpinion", required = false) String reviewOpinion,
@NotNull(message = "审核人ID不能为空") @RequestParam("reviewerId") Long reviewerId,
@NotEmpty(message = "审核人姓名不能为空") @RequestParam("reviewerName") String reviewerName) {
return toAjax(reviewService.batchReview(reviewIds, reviewResult, reviewOpinion, reviewerId, reviewerName));
}
@@ -149,113 +149,113 @@ public class JcbtScholarshipReviewController extends BaseController {
/**
* 转移审核任务
*/
//@SaCheckPermission("jcbt:review:transfer")
@SaCheckPermission("jcbt:review:transfer")
@Log(title = "转移审核任务", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/transfer")
public R<Void> transferReview(
@NotNull(message = "审核记录ID不能为空") @RequestParam Long reviewId,
@NotNull(message = "新审核人ID不能为空") @RequestParam Long newReviewerId,
@NotEmpty(message = "新审核人姓名不能为空") @RequestParam String newReviewerName,
@RequestParam(required = false) String reason) {
@NotNull(message = "审核记录ID不能为空") @RequestParam("reviewId") Long reviewId,
@NotNull(message = "新审核人ID不能为空") @RequestParam("newReviewerId") Long newReviewerId,
@NotEmpty(message = "新审核人姓名不能为空") @RequestParam("newReviewerName") String newReviewerName,
@RequestParam(value = "reason", required = false) String reason) {
return toAjax(reviewService.transferReview(reviewId, newReviewerId, newReviewerName, reason));
}
/**
* 撤回审核结果
*/
//@SaCheckPermission("jcbt:review:revoke")
@SaCheckPermission("jcbt:review:revoke")
@Log(title = "撤回审核结果", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/withdraw")
public R<Void> withdrawReview(
@NotNull(message = "审核记录ID不能为空") @RequestParam Long reviewId,
@RequestParam(required = false) String reason) {
@NotNull(message = "审核记录ID不能为空") @RequestParam("reviewId") Long reviewId,
@RequestParam(value = "reason", required = false) String reason) {
return toAjax(reviewService.withdrawReview(reviewId, reason));
}
/**
* 查询某个申请的最新审核记录
*/
//@SaCheckPermission("jcbt:review:query")
@SaCheckPermission("jcbt:review:query")
@GetMapping("/latest/{applicationId}")
public R<JcbtScholarshipReviewVo> getLatestReview(
@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId) {
@NotNull(message = "申请ID不能为空") @PathVariable("applicationId") Long applicationId) {
return R.ok(reviewService.queryLatestReviewByApplicationId(applicationId));
}
/**
* 查询某个申请的指定级别审核记录
*/
//@SaCheckPermission("jcbt:review:query")
@SaCheckPermission("jcbt:review:query")
@GetMapping("/level/{applicationId}/{reviewLevel}")
public R<JcbtScholarshipReviewVo> getReviewByLevel(
@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId,
@NotEmpty(message = "审核级别不能为空") @PathVariable String reviewLevel) {
@NotNull(message = "申请ID不能为空") @PathVariable("applicationId") Long applicationId,
@NotEmpty(message = "审核级别不能为空") @PathVariable("reviewLevel") String reviewLevel) {
return R.ok(reviewService.queryReviewByApplicationAndLevel(applicationId, reviewLevel));
}
/**
* 统计审核数量
*/
//@SaCheckPermission("jcbt:review:statistics")
@SaCheckPermission("jcbt:review:statistics")
@GetMapping("/statistics/count")
public R<Map<String, Long>> getReviewCount(
@RequestParam(required = false) Long reviewerId,
@RequestParam(required = false) String reviewLevel,
@RequestParam(required = false) String reviewResult,
@RequestParam(required = false) Long batchId) {
@RequestParam(value = "reviewerId", required = false) Long reviewerId,
@RequestParam(value = "reviewLevel", required = false) String reviewLevel,
@RequestParam(value = "reviewResult", required = false) String reviewResult,
@RequestParam(value = "batchId", required = false) Long batchId) {
return R.ok(reviewService.countReviewsByCondition(reviewerId, reviewLevel, reviewResult, batchId));
}
/**
* 获取下一级审核人员列表
*/
//@SaCheckPermission("jcbt:review:query")
@SaCheckPermission("jcbt:review:query")
@GetMapping("/next-reviewers/{applicationId}/{currentLevel}")
public R<List<Long>> getNextReviewers(
@NotNull(message = "申请ID不能为空") @PathVariable Long applicationId,
@NotEmpty(message = "当前审核级别不能为空") @PathVariable String currentLevel) {
@NotNull(message = "申请ID不能为空") @PathVariable("applicationId") Long applicationId,
@NotEmpty(message = "当前审核级别不能为空") @PathVariable("currentLevel") String currentLevel) {
return R.ok(reviewService.getNextReviewers(applicationId, currentLevel));
}
/**
* 审核流程推进
*/
//@SaCheckPermission("jcbt:review:approve")
@SaCheckPermission("jcbt:review:approve")
@Log(title = "审核流程推进", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/advance")
public R<Void> advanceReviewProcess(
@NotNull(message = "申请ID不能为空") @RequestParam Long applicationId,
@NotEmpty(message = "当前审核级别不能为空") @RequestParam String currentLevel,
@NotEmpty(message = "审核结果不能为空") @RequestParam String reviewResult,
@RequestParam(required = false) String reviewOpinion,
@RequestParam(required = false) Double reviewScore) {
@NotNull(message = "申请ID不能为空") @RequestParam("applicationId") Long applicationId,
@NotEmpty(message = "当前审核级别不能为空") @RequestParam("currentLevel") String currentLevel,
@NotEmpty(message = "审核结果不能为空") @RequestParam("reviewResult") String reviewResult,
@RequestParam(value = "reviewOpinion", required = false) String reviewOpinion,
@RequestParam(value = "reviewScore", required = false) Double reviewScore) {
return toAjax(reviewService.advanceReviewProcess(applicationId, currentLevel, reviewResult, reviewOpinion, reviewScore));
}
/**
* 检查用户审核权限
*/
//@SaCheckPermission("jcbt:review:query")
@SaCheckPermission("jcbt:review:query")
@GetMapping("/permission")
public R<Boolean> checkReviewPermission(
@NotNull(message = "审核人ID不能为空") @RequestParam Long reviewerId,
@NotEmpty(message = "审核级别不能为空") @RequestParam String reviewLevel,
@NotNull(message = "申请ID不能为空") @RequestParam Long applicationId) {
@NotNull(message = "审核人ID不能为空") @RequestParam("reviewerId") Long reviewerId,
@NotEmpty(message = "审核级别不能为空") @RequestParam("reviewLevel") String reviewLevel,
@NotNull(message = "申请ID不能为空") @RequestParam("applicationId") Long applicationId) {
return R.ok(reviewService.checkReviewPermission(reviewerId, reviewLevel, applicationId));
}
/**
* 获取审核统计信息
*/
//@SaCheckPermission("jcbt:review:statistics")
@SaCheckPermission("jcbt:review:statistics")
@GetMapping("/statistics")
public R<Map<String, Object>> getReviewStatistics(
@RequestParam(required = false) Long reviewerId,
@RequestParam(required = false) String reviewLevel,
@RequestParam(required = false) Long batchId) {
@RequestParam(value = "reviewerId", required = false) Long reviewerId,
@RequestParam(value = "reviewLevel", required = false) String reviewLevel,
@RequestParam(value = "batchId", required = false) Long batchId) {
return R.ok(reviewService.getReviewStatistics(reviewerId, reviewLevel, batchId));
}
@@ -47,7 +47,7 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 查询奖学金类型列表
*/
//@SaCheckPermission("jcbt:scholarshipType:list")
@SaCheckPermission("jcbt:scholarshipType:list")
@GetMapping("/list")
public TableDataInfo<JcbtScholarshipTypeVo> list(JcbtScholarshipTypeBo bo, PageQuery pageQuery) {
return scholarshipTypeService.queryPageList(bo, pageQuery);
@@ -56,7 +56,7 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 导出奖学金类型列表
*/
//@SaCheckPermission("jcbt:scholarshipType:export")
@SaCheckPermission("jcbt:scholarshipType:export")
@Log(title = "奖学金类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(JcbtScholarshipTypeBo bo, HttpServletResponse response) {
@@ -67,17 +67,17 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 获取奖学金类型详细信息
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/{id}")
public R<JcbtScholarshipTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(scholarshipTypeService.queryById(id));
}
/**
* 新增奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipType:add")
@SaCheckPermission("jcbt:scholarshipType:add")
@Log(title = "奖学金类型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -88,7 +88,7 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 修改奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipType:edit")
@SaCheckPermission("jcbt:scholarshipType:edit")
@Log(title = "奖学金类型", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -99,36 +99,36 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 删除奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipType:remove")
@SaCheckPermission("jcbt:scholarshipType:remove")
@Log(title = "奖学金类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(scholarshipTypeService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 根据类型名称查询奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/getByName/{typeName}")
public R<JcbtScholarshipTypeVo> getByTypeName(@PathVariable String typeName) {
public R<JcbtScholarshipTypeVo> getByTypeName(@PathVariable("typeName") String typeName) {
return R.ok(scholarshipTypeService.queryByTypeName(typeName));
}
/**
* 根据类别查询奖学金类型列表
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/getByCategory/{typeCategory}")
public R<List<JcbtScholarshipTypeVo>> getByCategory(@PathVariable String typeCategory) {
public R<List<JcbtScholarshipTypeVo>> getByCategory(@PathVariable("typeCategory") String typeCategory) {
return R.ok(scholarshipTypeService.queryByCategory(typeCategory));
}
/**
* 查询启用状态的奖学金类型列表
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/getActiveTypes")
public R<List<JcbtScholarshipTypeVo>> getActiveTypes() {
return R.ok(scholarshipTypeService.queryActiveTypes());
@@ -137,17 +137,17 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 检查奖学金名称是否重复
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/checkTypeNameUnique")
public R<Boolean> checkTypeNameUnique(@RequestParam String typeName,
@RequestParam(required = false) Long id) {
public R<Boolean> checkTypeNameUnique(@RequestParam("typeName") String typeName,
@RequestParam(value = "id", required = false) Long id) {
return R.ok(scholarshipTypeService.checkTypeNameUnique(typeName, id));
}
/**
* 批量更新排序号
*/
//@SaCheckPermission("jcbt:scholarshipType:edit")
@SaCheckPermission("jcbt:scholarshipType:edit")
@Log(title = "奖学金类型", businessType = BusinessType.UPDATE)
@PutMapping("/batchUpdateSort")
public R<Void> batchUpdateSortOrder(@RequestBody List<JcbtScholarshipTypeBo> scholarshipTypes) {
@@ -157,26 +157,26 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 根据兼得类型查询相关奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/getByCompatibilityType/{compatibilityType}")
public R<List<JcbtScholarshipTypeVo>> getByCompatibilityType(@PathVariable String compatibilityType) {
public R<List<JcbtScholarshipTypeVo>> getByCompatibilityType(@PathVariable("compatibilityType") String compatibilityType) {
return R.ok(scholarshipTypeService.queryByCompatibilityType(compatibilityType));
}
/**
* 启用/停用奖学金类型
*/
//@SaCheckPermission("jcbt:scholarshipType:edit")
@SaCheckPermission("jcbt:scholarshipType:edit")
@Log(title = "奖学金类型", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestParam Long id, @RequestParam Integer status) {
public R<Void> changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
return toAjax(scholarshipTypeService.changeStatus(id, status));
}
/**
* 获取奖学金类型选项列表
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/options")
public R<List<JcbtScholarshipTypeVo>> getOptions() {
return R.ok(scholarshipTypeService.queryOptions());
@@ -185,9 +185,9 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 获取奖学金类型的兼得关系配置
*/
//@SaCheckPermission("jcbt:scholarshipType:compatibility")
@SaCheckPermission("jcbt:scholarshipType:compatibility")
@GetMapping("/{id}/compatibility")
public R<Map<String, Object>> getCompatibilityConfig(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<Map<String, Object>> getCompatibilityConfig(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
// 获取所有启用的奖学金类型(除了当前奖学金)
List<JcbtScholarshipTypeVo> allTypes = scholarshipTypeService.queryActiveTypes()
.stream()
@@ -224,10 +224,10 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 保存奖学金类型的兼得关系配置
*/
//@SaCheckPermission("jcbt:scholarshipType:compatibility")
@SaCheckPermission("jcbt:scholarshipType:compatibility")
@Log(title = "奖学金兼得关系配置", businessType = BusinessType.UPDATE)
@PostMapping("/{id}/compatibility")
public R<Void> saveCompatibilityConfig(@NotNull(message = "主键不能为空") @PathVariable Long id,
public R<Void> saveCompatibilityConfig(@NotNull(message = "主键不能为空") @PathVariable("id") Long id,
@RequestBody Map<String, Object> config) {
// 安全地转换互斥类型ID列表,支持前端传递的字符串或数字类型
@SuppressWarnings("unchecked")
@@ -270,18 +270,18 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 检查两个奖学金类型是否兼容
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/checkCompatibility")
public R<Boolean> checkCompatibility(@RequestParam Long typeId1, @RequestParam Long typeId2) {
public R<Boolean> checkCompatibility(@RequestParam("typeId1") Long typeId1, @RequestParam("typeId2") Long typeId2) {
return R.ok(compatibilityService.checkCompatibility(typeId1, typeId2));
}
/**
* 获取可与指定奖学金兼得的奖学金类型列表
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/{id}/compatibleTypes")
public R<List<JcbtScholarshipTypeVo>> getCompatibleTypes(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<List<JcbtScholarshipTypeVo>> getCompatibleTypes(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
List<Long> compatibleTypeIds = compatibilityService.getCompatibleTypeIds(id);
List<JcbtScholarshipTypeVo> compatibleTypes = new ArrayList<>();
@@ -298,9 +298,9 @@ public class JcbtScholarshipTypeController extends BaseController {
/**
* 获取奖学金类型的互斥关系显示文本
*/
//@SaCheckPermission("jcbt:scholarshipType:query")
@SaCheckPermission("jcbt:scholarshipType:query")
@GetMapping("/{id}/exclusiveRelationDisplay")
public R<String> getExclusiveRelationDisplay(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<String> getExclusiveRelationDisplay(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(scholarshipTypeService.getExclusiveRelationDisplay(id));
}
@@ -52,7 +52,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 查询本学院待审核申请列表
*/
@Operation(summary = "查询本学院待审核申请列表")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/pendingList")
public TableDataInfo<JcbtWorkStudyApplicationVo> pendingList(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
// 获取当前用户的学院ID
@@ -75,7 +75,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 查询本学院所有申请列表(支持多状态筛选)
*/
@Operation(summary = "查询本学院所有申请列表")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/list")
public TableDataInfo<JcbtWorkStudyApplicationVo> list(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
// 获取当前用户的学院ID
@@ -108,9 +108,9 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 获取本学院申请详情
*/
@Operation(summary = "获取本学院申请详情")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/{id}")
public R<JcbtWorkStudyApplicationVo> getInfo(@PathVariable Long id) {
public R<JcbtWorkStudyApplicationVo> getInfo(@PathVariable("id") Long id) {
// 获取申请信息
JcbtWorkStudyApplicationVo vo = workStudyApplicationService.queryById(id);
if (vo == null) {
@@ -146,7 +146,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 学院审核
*/
@Operation(summary = "学院审核")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@Log(title = "勤工俭学申请学院审核", businessType = BusinessType.UPDATE)
@PostMapping("/review")
public R<Void> review(@Validated @RequestBody WorkStudyApplicationReviewBo reviewBo) {
@@ -168,13 +168,13 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 批量学院审核
*/
@Operation(summary = "批量学院审核")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@Log(title = "勤工俭学申请批量学院审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchReview")
public R<Void> batchReview(
@Parameter(description = "申请ID列表") @RequestBody @NotEmpty(message = "申请ID不能为空") Collection<Long> ids,
@Parameter(description = "审核结果") @RequestParam @NotNull(message = "审核结果不能为空") String reviewResult,
@Parameter(description = "审核意见") @RequestParam String reviewComment) {
@Parameter(description = "审核结果") @RequestParam("reviewResult") @NotNull(message = "审核结果不能为空") String reviewResult,
@Parameter(description = "审核意见") @RequestParam("reviewComment") String reviewComment) {
// 权限检查:批量审核前检查所有申请是否属于当前用户学院
Long currentUserCollegeId = getCurrentUserCollegeIdAsLong();
@@ -198,7 +198,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 获取本学院申请统计信息
*/
@Operation(summary = "获取本学院申请统计信息")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/statistics")
public R<Map<String, Object>> getStatistics() {
Long currentUserCollegeId = getCurrentUserCollegeIdAsLong();
@@ -246,7 +246,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 获取可用选项
*/
@Operation(summary = "获取可用选项")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/options")
public R<Map<String, Object>> getOptions() {
Map<String, Object> options = Map.of(
@@ -273,7 +273,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
* 调试权限信息 - 查看当前用户的学院关联情况
*/
@Operation(summary = "调试权限信息")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/debug/permission")
public R<Map<String, Object>> debugPermission() {
Map<String, Object> result = new HashMap<>();
@@ -67,9 +67,9 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 获取勤工俭学申请信息详细信息
*/
@Operation(summary = "获取勤工俭学申请信息详细信息")
// @SaCheckPermission("jcbt:workStudyApplication:query") // 暂时注释权限检查,用于测试
@SaCheckPermission("jcbt:workStudyApplication:query") // 暂时注释权限检查,用于测试
@GetMapping("/detail/{id}")
public R<JcbtWorkStudyApplicationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
public R<JcbtWorkStudyApplicationVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {
return R.ok(workStudyApplicationService.queryById(id));
}
@@ -77,7 +77,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 新增勤工俭学申请信息
*/
@Operation(summary = "新增勤工俭学申请信息")
// @SaCheckPermission("jcbt:workStudyApplication:add") // 暂时注释权限检查,用于测试
@SaCheckPermission("jcbt:workStudyApplication:add") // 暂时注释权限检查,用于测试
@Log(title = "勤工俭学申请信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -89,7 +89,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 修改勤工俭学申请信息
*/
@Operation(summary = "修改勤工俭学申请信息")
//@SaCheckPermission("jcbt:workStudyApplication:edit")
@SaCheckPermission("jcbt:workStudyApplication:edit")
@Log(title = "勤工俭学申请信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -101,10 +101,10 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 删除勤工俭学申请信息
*/
@Operation(summary = "删除勤工俭学申请信息")
//@SaCheckPermission("jcbt:workStudyApplication:remove")
@SaCheckPermission("jcbt:workStudyApplication:remove")
@Log(title = "勤工俭学申请信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) {
return toAjax(workStudyApplicationService.deleteWithValidByIds(List.of(ids), true));
}
@@ -112,7 +112,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 导出勤工俭学申请信息列表
*/
@Operation(summary = "导出勤工俭学申请信息列表")
//@SaCheckPermission("jcbt:workStudyApplication:export")
@SaCheckPermission("jcbt:workStudyApplication:export")
@Log(title = "勤工俭学申请信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(JcbtWorkStudyApplicationBo bo, HttpServletResponse response) {
@@ -124,7 +124,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 临时调试接口 - 直接查询数据库记录
*/
@GetMapping("/debug/{id}")
public R<Map<String, Object>> debugQuery(@PathVariable Long id) {
public R<Map<String, Object>> debugQuery(@PathVariable("id") Long id) {
log.info("调试查询接口,ID: {}", id);
Map<String, Object> result = new HashMap<>();
@@ -171,7 +171,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 查询我的申请列表
*/
@Operation(summary = "查询我的申请列表")
//@SaCheckPermission("jcbt:workStudyApplication:myList")
@SaCheckPermission("jcbt:workStudyApplication:myList")
@GetMapping("/myList")
public TableDataInfo<JcbtWorkStudyApplicationVo> myList(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
return workStudyApplicationService.queryMyApplications(bo, pageQuery);
@@ -181,7 +181,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 查询待学院审核列表
*/
@Operation(summary = "查询待学院审核列表")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@GetMapping("/pendingCollegeReview")
public TableDataInfo<JcbtWorkStudyApplicationVo> pendingCollegeReview(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
return workStudyApplicationService.queryPendingCollegeReview(bo, pageQuery);
@@ -191,7 +191,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 查询待学生处审核列表
*/
@Operation(summary = "查询待学生处审核列表")
//@SaCheckPermission("jcbt:workStudyApplication:finalReview")
@SaCheckPermission("jcbt:workStudyApplication:finalReview")
@GetMapping("/pendingFinalReview")
public TableDataInfo<JcbtWorkStudyApplicationVo> pendingFinalReview(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
return workStudyApplicationService.queryPendingFinalReview(bo, pageQuery);
@@ -201,9 +201,9 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 获取岗位申请统计信息
*/
@Operation(summary = "获取岗位申请统计信息")
//@SaCheckPermission("jcbt:workStudyApplication:statistics")
@SaCheckPermission("jcbt:workStudyApplication:statistics")
@GetMapping("/statistics/{positionId}")
public R<Map<String, Object>> getStatistics(@PathVariable Long positionId) {
public R<Map<String, Object>> getStatistics(@PathVariable("positionId") Long positionId) {
return R.ok(workStudyApplicationService.getPositionApplicationStatistics(positionId));
}
@@ -213,10 +213,10 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 提交申请
*/
@Operation(summary = "提交申请")
//@SaCheckPermission("jcbt:workStudyApplication:submit")
@SaCheckPermission("jcbt:workStudyApplication:submit")
@Log(title = "勤工俭学申请", businessType = BusinessType.UPDATE)
@PostMapping("/submit/{id}")
public R<Void> submitApplication(@PathVariable Long id) {
public R<Void> submitApplication(@PathVariable("id") Long id) {
return toAjax(workStudyApplicationService.submitApplication(id));
}
@@ -224,10 +224,10 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 撤销申请
*/
@Operation(summary = "撤销申请")
//@SaCheckPermission("jcbt:workStudyApplication:cancel")
@SaCheckPermission("jcbt:workStudyApplication:cancel")
@Log(title = "勤工俭学申请", businessType = BusinessType.UPDATE)
@PostMapping("/cancel/{id}")
public R<Void> cancelApplication(@PathVariable Long id) {
public R<Void> cancelApplication(@PathVariable("id") Long id) {
return toAjax(workStudyApplicationService.cancelApplication(id));
}
@@ -235,7 +235,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 学院审核
*/
@Operation(summary = "学院审核")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@Log(title = "勤工俭学申请学院审核", businessType = BusinessType.UPDATE)
@PostMapping("/collegeReview")
public R<Void> collegeReview(@Validated @RequestBody WorkStudyApplicationReviewBo reviewBo) {
@@ -246,7 +246,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 学生处审核
*/
@Operation(summary = "学生处审核")
//@SaCheckPermission("jcbt:workStudyApplication:finalReview")
@SaCheckPermission("jcbt:workStudyApplication:finalReview")
@Log(title = "勤工俭学申请学生处审核", businessType = BusinessType.UPDATE)
@PostMapping("/finalReview")
public R<Void> finalReview(@Validated @RequestBody WorkStudyApplicationReviewBo reviewBo) {
@@ -257,13 +257,13 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 批量学院审核
*/
@Operation(summary = "批量学院审核")
//@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@SaCheckPermission("jcbt:workStudyApplication:collegeReview")
@Log(title = "勤工俭学申请批量学院审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchCollegeReview")
public R<Void> batchCollegeReview(
@RequestParam @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam(required = false) String reviewComment) {
@RequestParam("ids") @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam("reviewResult") @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam(value = "reviewComment", required = false) String reviewComment) {
return toAjax(workStudyApplicationService.batchCollegeReview(ids, reviewResult, reviewComment));
}
@@ -271,13 +271,13 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 批量学生处审核
*/
@Operation(summary = "批量学生处审核")
//@SaCheckPermission("jcbt:workStudyApplication:finalReview")
@SaCheckPermission("jcbt:workStudyApplication:finalReview")
@Log(title = "勤工俭学申请批量学生处审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchFinalReview")
public R<Void> batchFinalReview(
@RequestParam @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam(required = false) String reviewComment) {
@RequestParam("ids") @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam("reviewResult") @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam(value = "reviewComment", required = false) String reviewComment) {
return toAjax(workStudyApplicationService.batchFinalReview(ids, reviewResult, reviewComment));
}
@@ -289,9 +289,9 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 检查学生是否已申请该岗位
*/
@Operation(summary = "检查学生是否已申请该岗位")
//@SaCheckPermission("jcbt:workStudyApplication:check")
@SaCheckPermission("jcbt:workStudyApplication:check")
@GetMapping("/hasApplied")
public R<Boolean> hasApplied(@RequestParam Long studentId, @RequestParam Long positionId) {
public R<Boolean> hasApplied(@RequestParam("studentId") Long studentId, @RequestParam("positionId") Long positionId) {
return R.ok(workStudyApplicationService.hasApplied(studentId, positionId));
}
@@ -299,7 +299,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
* 获取可用选项
*/
@Operation(summary = "获取可用选项")
//@SaCheckPermission("jcbt:workStudyApplication:options")
@SaCheckPermission("jcbt:workStudyApplication:options")
@GetMapping("/options")
public R<Map<String, Object>> getOptions() {
Map<String, Object> options = Map.of(
@@ -351,7 +351,7 @@ public class JcbtWorkStudyApplicationController extends BaseController {
*/
@Operation(summary = "获取学生已申请岗位列表")
@GetMapping("/student/applicationStatus")
//@SaCheckPermission("jcbt:workStudyApplication:query")
@SaCheckPermission("jcbt:workStudyApplication:query")
public R<List<Map<String, Object>>> getStudentApplicationStatus() {
List<Map<String, Object>> statusList = workStudyApplicationService.getStudentApplicationStatus();
@@ -49,7 +49,7 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 查询待学工处审核申请列表(学院审核通过的申请)
*/
@Operation(summary = "查询待学工处审核申请列表")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@GetMapping("/pendingList")
public TableDataInfo<JcbtWorkStudyApplicationVo> pendingList(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
// 只查询学院审核通过状态的申请(待学工处审核)
@@ -62,7 +62,7 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 查询学工处审核历史列表(支持多状态筛选)
*/
@Operation(summary = "查询学工处审核历史列表")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@GetMapping("/list")
public TableDataInfo<JcbtWorkStudyApplicationVo> list(JcbtWorkStudyApplicationBo bo, PageQuery pageQuery) {
// 学工处可查看所有相关状态的申请
@@ -82,9 +82,9 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 获取勤工俭学申请详情
*/
@Operation(summary = "获取勤工俭学申请详情")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@GetMapping("/{id}")
public R<JcbtWorkStudyApplicationVo> getInfo(@Parameter(description = "主键") @PathVariable Long id) {
public R<JcbtWorkStudyApplicationVo> getInfo(@Parameter(description = "主键") @PathVariable("id") Long id) {
JcbtWorkStudyApplicationVo vo = workStudyApplicationService.queryById(id);
if (vo == null) {
return R.fail("申请不存在");
@@ -106,7 +106,7 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 学工处审核申请
*/
@Operation(summary = "学工处审核申请")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@Log(title = "勤工俭学申请学工处审核", businessType = BusinessType.UPDATE)
@PutMapping("/review")
public R<Void> review(@Validated @RequestBody WorkStudyApplicationReviewBo reviewBo) {
@@ -137,13 +137,13 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 批量学工处审核
*/
@Operation(summary = "批量学工处审核")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@Log(title = "勤工俭学申请批量学工处审核", businessType = BusinessType.UPDATE)
@PutMapping("/batchReview")
public R<Void> batchReview(
@Parameter(description = "申请ID集合") @RequestParam @NotEmpty List<Long> ids,
@Parameter(description = "审核结果") @RequestParam @NotNull String reviewResult,
@Parameter(description = "审核意见") @RequestParam String reviewComment) {
@Parameter(description = "申请ID集合") @RequestParam("ids") @NotEmpty List<Long> ids,
@Parameter(description = "审核结果") @RequestParam("reviewResult") @NotNull String reviewResult,
@Parameter(description = "审核意见") @RequestParam("reviewComment") String reviewComment) {
// 验证审核结果
if (!"APPROVED".equals(reviewResult) && !"REJECTED".equals(reviewResult)) {
@@ -179,7 +179,7 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 获取学工处审核统计信息
*/
@Operation(summary = "获取学工处审核统计信息")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@GetMapping("/statistics")
public R<Map<String, Object>> getStatistics() {
// 构建查询条件
@@ -225,7 +225,7 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 获取按学院分组的统计信息
*/
@Operation(summary = "获取按学院分组的统计信息")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@GetMapping("/statisticsByCollege")
public R<Map<String, Object>> getStatisticsByCollege() {
// 构建查询条件
@@ -255,7 +255,7 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
* 获取可用选项
*/
@Operation(summary = "获取可用选项")
//@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@SaCheckPermission("jcbt:workStudyApplication:studentAffairsReview")
@GetMapping("/options")
public R<Map<String, Object>> getOptions() {
Map<String, Object> options = Map.of(
@@ -58,7 +58,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 查询勤工俭学岗位信息列表
*/
@Operation(summary = "查询勤工俭学岗位信息列表")
//@SaCheckPermission("jcbt:workStudyPosition:list")
@SaCheckPermission("jcbt:workStudyPosition:list")
@GetMapping("/list")
public TableDataInfo<JcbtWorkStudyPositionVo> list(JcbtWorkStudyPositionBo bo, PageQuery pageQuery) {
return workStudyPositionService.queryPageList(bo, pageQuery);
@@ -68,11 +68,11 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 获取勤工俭学岗位信息详细信息
*/
@Operation(summary = "获取勤工俭学岗位信息详细信息")
//@SaCheckPermission("jcbt:workStudyPosition:query")
@SaCheckPermission("jcbt:workStudyPosition:query")
@GetMapping("/{id}")
public R<JcbtWorkStudyPositionVo> getInfo(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(workStudyPositionService.queryById(id));
}
@@ -80,11 +80,11 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 获取岗位详情及当前用户申请状态
*/
@Operation(summary = "获取岗位详情及当前用户申请状态")
//@SaCheckPermission("jcbt:workStudyPosition:query")
@SaCheckPermission("jcbt:workStudyPosition:query")
@GetMapping("/{id}/withApplicationStatus")
public R<Map<String, Object>> getPositionWithApplicationStatus(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
// 获取岗位详情
JcbtWorkStudyPositionVo position = workStudyPositionService.queryById(id);
if (position == null) {
@@ -108,7 +108,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 新增勤工俭学岗位信息
*/
@Operation(summary = "新增勤工俭学岗位信息")
//@SaCheckPermission("jcbt:workStudyPosition:add")
@SaCheckPermission("jcbt:workStudyPosition:add")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -120,7 +120,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 修改勤工俭学岗位信息
*/
@Operation(summary = "修改勤工俭学岗位信息")
//@SaCheckPermission("jcbt:workStudyPosition:edit")
@SaCheckPermission("jcbt:workStudyPosition:edit")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -132,12 +132,12 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 删除勤工俭学岗位信息
*/
@Operation(summary = "删除勤工俭学岗位信息")
//@SaCheckPermission("jcbt:workStudyPosition:remove")
@SaCheckPermission("jcbt:workStudyPosition:remove")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@Parameter(description = "岗位ID列表", required = true)
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(workStudyPositionService.deleteWithValidByIds(List.of(ids), true));
}
@@ -145,7 +145,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 导出勤工俭学岗位信息列表
*/
@Operation(summary = "导出勤工俭学岗位信息列表")
//@SaCheckPermission("jcbt:workStudyPosition:export")
@SaCheckPermission("jcbt:workStudyPosition:export")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(JcbtWorkStudyPositionBo bo, HttpServletResponse response) {
@@ -159,7 +159,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 我的岗位 - 查询当前用户所在学院的岗位
*/
@Operation(summary = "我的岗位")
//@SaCheckPermission("jcbt:workStudyPosition:myList")
@SaCheckPermission("jcbt:workStudyPosition:myList")
@GetMapping("/myList")
public TableDataInfo<JcbtWorkStudyPositionVo> myList(PageQuery pageQuery) {
// TODO: 获取当前用户所在学院ID
@@ -171,12 +171,12 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 可见岗位 - 查询学院可见的岗位(本学院岗位 + 全校范围岗位)
*/
@Operation(summary = "可见岗位")
//@SaCheckPermission("jcbt:workStudyPosition:visibleList")
@SaCheckPermission("jcbt:workStudyPosition:visibleList")
@GetMapping("/visibleList")
public TableDataInfo<JcbtWorkStudyPositionVo> visibleList(
JcbtWorkStudyPositionBo bo,
PageQuery pageQuery,
@Parameter(description = "是否排除已申请岗位") @RequestParam(defaultValue = "false") Boolean excludeApplied) {
@Parameter(description = "是否排除已申请岗位") @RequestParam(value = "excludeApplied", defaultValue = "false") Boolean excludeApplied) {
// 获取当前用户所在学院ID
Long collegeId = getCurrentUserCollegeId();
@@ -208,11 +208,11 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 岗位状态检查 - 检查岗位是否可以申请
*/
@Operation(summary = "岗位状态检查")
//@SaCheckPermission("jcbt:workStudyPosition:checkAvailable")
@SaCheckPermission("jcbt:workStudyPosition:checkAvailable")
@GetMapping("/checkAvailable/{id}")
public R<Boolean> checkAvailable(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(workStudyPositionService.checkPositionAvailable(id));
}
@@ -220,9 +220,9 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 岗位统计 - 获取岗位统计信息
*/
@Operation(summary = "岗位统计")
//@SaCheckPermission("jcbt:workStudyPosition:statistics")
@SaCheckPermission("jcbt:workStudyPosition:statistics")
@GetMapping("/statistics")
public R<Map<String, Object>> statistics(@Parameter(description = "学院ID") @RequestParam(required = false) Long collegeId) {
public R<Map<String, Object>> statistics(@Parameter(description = "学院ID") @RequestParam(value = "collegeId", required = false) Long collegeId) {
return R.ok(workStudyPositionService.getPositionStatistics(collegeId));
}
@@ -232,12 +232,12 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 发布岗位
*/
@Operation(summary = "发布岗位")
//@SaCheckPermission("jcbt:workStudyPosition:publish")
@SaCheckPermission("jcbt:workStudyPosition:publish")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@PutMapping("/publish/{id}")
public R<Void> publish(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
return toAjax(workStudyPositionService.publishPosition(id));
}
@@ -245,12 +245,12 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 开启招录
*/
@Operation(summary = "开启招录")
//@SaCheckPermission("jcbt:workStudyPosition:startRecruiting")
@SaCheckPermission("jcbt:workStudyPosition:startRecruiting")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@PutMapping("/startRecruiting/{id}")
public R<Void> startRecruiting(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
return toAjax(workStudyPositionService.startRecruiting(id));
}
@@ -258,12 +258,12 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 暂停招录
*/
@Operation(summary = "暂停招录")
//@SaCheckPermission("jcbt:workStudyPosition:suspend")
@SaCheckPermission("jcbt:workStudyPosition:suspend")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@PutMapping("/suspend/{id}")
public R<Void> suspend(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
return toAjax(workStudyPositionService.suspendPosition(id));
}
@@ -271,12 +271,12 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 取消岗位
*/
@Operation(summary = "取消岗位")
//@SaCheckPermission("jcbt:workStudyPosition:cancel")
@SaCheckPermission("jcbt:workStudyPosition:cancel")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@PutMapping("/cancel/{id}")
public R<Void> cancel(@NotNull(message = "主键不能为空")
@Parameter(description = "岗位ID", required = true)
@PathVariable Long id) {
@PathVariable("id") Long id) {
return toAjax(workStudyPositionService.cancelPosition(id));
}
@@ -284,11 +284,11 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 批量更新状态
*/
@Operation(summary = "批量更新状态")
//@SaCheckPermission("jcbt:workStudyPosition:batchUpdateStatus")
@SaCheckPermission("jcbt:workStudyPosition:batchUpdateStatus")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@PutMapping("/batchUpdateStatus")
public R<Void> batchUpdateStatus(@RequestParam @NotEmpty(message = "岗位ID列表不能为空") List<Long> ids,
@RequestParam @NotNull(message = "状态不能为空") String status) {
public R<Void> batchUpdateStatus(@RequestParam("ids") @NotEmpty(message = "岗位ID列表不能为空") List<Long> ids,
@RequestParam("status") @NotNull(message = "状态不能为空") String status) {
return toAjax(workStudyPositionService.batchUpdateStatus(ids, status));
}
@@ -296,9 +296,9 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 按状态分组统计
*/
@Operation(summary = "按状态分组统计")
//@SaCheckPermission("jcbt:workStudyPosition:countByStatus")
@SaCheckPermission("jcbt:workStudyPosition:countByStatus")
@GetMapping("/countByStatus")
public R<List<Map<String, Object>>> countByStatus(@Parameter(description = "学院ID") @RequestParam(required = false) Long collegeId) {
public R<List<Map<String, Object>>> countByStatus(@Parameter(description = "学院ID") @RequestParam(value = "collegeId", required = false) Long collegeId) {
return R.ok(workStudyPositionService.countByStatus(collegeId));
}
@@ -341,9 +341,9 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 根据状态查询岗位
*/
@Operation(summary = "根据状态查询岗位")
//@SaCheckPermission("jcbt:workStudyPosition:queryByStatus")
@SaCheckPermission("jcbt:workStudyPosition:queryByStatus")
@GetMapping("/queryByStatus")
public TableDataInfo<JcbtWorkStudyPositionVo> queryByStatus(@RequestParam String status, PageQuery pageQuery) {
public TableDataInfo<JcbtWorkStudyPositionVo> queryByStatus(@RequestParam("status") String status, PageQuery pageQuery) {
return workStudyPositionService.queryByStatus(status, pageQuery);
}
@@ -351,9 +351,9 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 根据发布范围查询岗位
*/
@Operation(summary = "根据发布范围查询岗位")
//@SaCheckPermission("jcbt:workStudyPosition:queryByScope")
@SaCheckPermission("jcbt:workStudyPosition:queryByScope")
@GetMapping("/queryByScope")
public TableDataInfo<JcbtWorkStudyPositionVo> queryByScope(@RequestParam String positionScope, PageQuery pageQuery) {
public TableDataInfo<JcbtWorkStudyPositionVo> queryByScope(@RequestParam("positionScope") String positionScope, PageQuery pageQuery) {
return workStudyPositionService.queryByPositionScope(positionScope, pageQuery);
}
@@ -361,9 +361,9 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 即将过期的岗位
*/
@Operation(summary = "即将过期的岗位")
//@SaCheckPermission("jcbt:workStudyPosition:expiringPositions")
@SaCheckPermission("jcbt:workStudyPosition:expiringPositions")
@GetMapping("/expiringPositions")
public R<List<JcbtWorkStudyPositionVo>> expiringPositions(@RequestParam(defaultValue = "7") int days) {
public R<List<JcbtWorkStudyPositionVo>> expiringPositions(@RequestParam(value = "days", defaultValue = "7") int days) {
return R.ok(workStudyPositionService.getExpiringPositions(days));
}
@@ -371,9 +371,9 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 热门岗位
*/
@Operation(summary = "热门岗位")
//@SaCheckPermission("jcbt:workStudyPosition:popularPositions")
@SaCheckPermission("jcbt:workStudyPosition:popularPositions")
@GetMapping("/popularPositions")
public R<List<JcbtWorkStudyPositionVo>> popularPositions(@RequestParam(defaultValue = "10") int limit) {
public R<List<JcbtWorkStudyPositionVo>> popularPositions(@RequestParam(value = "limit", defaultValue = "10") int limit) {
return R.ok(workStudyPositionService.getPopularPositions(limit));
}
@@ -383,7 +383,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 更新过期岗位状态(定时任务调用)
*/
@Operation(summary = "更新过期岗位状态")
//@SaCheckPermission("jcbt:workStudyPosition:updateExpired")
@SaCheckPermission("jcbt:workStudyPosition:updateExpired")
@PostMapping("/updateExpired")
public R<Integer> updateExpiredPositions() {
int count = workStudyPositionService.updateExpiredPositions();
@@ -394,7 +394,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
* 更新满员岗位状态(定时任务调用)
*/
@Operation(summary = "更新满员岗位状态")
//@SaCheckPermission("jcbt:workStudyPosition:updateFull")
@SaCheckPermission("jcbt:workStudyPosition:updateFull")
@PostMapping("/updateFull")
public R<Integer> updateFullPositions() {
int count = workStudyPositionService.updateFullPositions();
-6
View File
@@ -27,12 +27,6 @@
<artifactId>ruoyi-common-job</artifactId>
</dependency>
<!-- 添加spring-jdbc依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
</dependencies>
</project>
@@ -1,44 +0,0 @@
package org.dromara.job.snailjob;
import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import com.aizuda.snailjob.common.core.util.JsonUtil;
import com.aizuda.snailjob.common.log.SnailJobLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 满意度调查问卷结束时间扫描任务
* 扫描hq_sat_survey表,检查end_time是否已小于当前时间
* 若已过期,则将状态(status)更新为2
*/
@Component
@JobExecutor(name = "surveyEndTimeJobExecutor")
public class SurveyEndTimeJobExecutor {
@Autowired
private SurveyJobService surveyJobService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
SnailJobLog.LOCAL.info("surveyEndTimeJobExecutor start. jobArgs:{}", JsonUtil.toJsonString(jobArgs));
SnailJobLog.REMOTE.info("surveyEndTimeJobExecutor start. jobArgs:{}", JsonUtil.toJsonString(jobArgs));
try {
// 执行扫描和状态更新
int updatedCount = surveyJobService.updateExpiredSurveys();
String resultMsg = "满意度调查过期状态更新完成,更新数量: " + updatedCount;
SnailJobLog.LOCAL.info(resultMsg);
SnailJobLog.REMOTE.info(resultMsg);
return ExecuteResult.success(resultMsg);
} catch (Exception e) {
String errorMsg = "满意度调查过期状态更新失败: " + e.getMessage();
SnailJobLog.LOCAL.error(errorMsg, e);
SnailJobLog.REMOTE.error(errorMsg, e);
return ExecuteResult.failure(errorMsg);
}
}
}
@@ -1,56 +0,0 @@
package org.dromara.job.snailjob;
import org.dromara.common.core.enums.FormatsType;
import org.dromara.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/**
* 满意度调查问卷结束时间扫描服务
* 提供扫描过期调查问卷并更新状态的功能
*/
@Service
public class SurveyJobService {
/**
* 满意度调查问卷表名
*/
private static final String TABLE_NAME = "hq_sat_survey";
/**
* 已结束状态值
*/
private static final int STATUS_ENDED = 2;
@Autowired
private JdbcTemplate jdbcTemplate;
/**
* 更新过期的满意度调查问卷状态
* 检查end_time小于当前时间的记录,将status更新为2
*
* @return 更新的记录数
*/
@Transactional(rollbackFor = Exception.class)
public int updateExpiredSurveys() {
Date now = DateUtils.getNowDate();
// 构建更新SQL
String updateSql = "UPDATE " + TABLE_NAME +
" SET status = ?, update_time = ? " +
" WHERE end_time < ? AND status != ? AND deleted = 0";
// 执行更新并返回更新的记录数
return jdbcTemplate.update(
updateSql,
STATUS_ENDED,
DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, now),
DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, now),
STATUS_ENDED
);
}
}
+3 -1
View File
@@ -92,11 +92,13 @@
<artifactId>ruoyi-generator</artifactId>
</dependency>
<!-- demo模块 -->
<!-- P0:demo 模块已下线,不再依赖 -->
<!--
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-demo</artifactId>
</dependency>
-->
<!-- 工作流模块 -->
<dependency>
@@ -1,35 +0,0 @@
package org.dromara.rs.config;
import org.dromara.rs.util.SqlScriptRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
/**
* 数据库初始化器,在应用启动时执行SQL脚本
*/
@Component
public class DbInitializer implements CommandLineRunner {
private static final Logger logger = LoggerFactory.getLogger(DbInitializer.class);
@Autowired
private SqlScriptRunner sqlScriptRunner;
@Override
public void run(String... args) throws Exception {
try {
// 吴自龙 注释了
// logger.info("开始执行数据库升级脚本...");
// 执行升级脚本
// sqlScriptRunner.executeScript("mapper/rs/update-rs-application-table.sql");
// logger.info("数据库升级脚本执行完成");
} catch (Exception e) {
logger.error("执行数据库升级脚本失败", e);
// 这里选择记录错误但不中断应用启动,因为可能是表结构已经更新过
// 如果需要严格控制,可以抛出异常中断应用启动
}
}
}
@@ -24,8 +24,8 @@ import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.exception.ServiceException;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaIgnore;
import jakarta.servlet.http.HttpServletResponse;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.rs.domain.RsApplication;
import org.dromara.rs.service.IRsApplicationService;
@@ -194,7 +194,7 @@ public class RsApplicationController extends BaseController {
@SaCheckPermission("rs:application:edit")
@Log(title = "上传应聘附件", businessType = BusinessType.UPDATE)
@PostMapping("/attachment/{applicationId}")
public R<Map<String, String>> uploadAttachment(@PathVariable Long applicationId, @RequestParam("file") MultipartFile file) throws IOException {
public R<Map<String, String>> uploadAttachment(@PathVariable("applicationId") Long applicationId, @RequestParam("file") MultipartFile file) throws IOException {
if (file.isEmpty()) {
return R.fail("上传失败,请选择文件");
}
@@ -292,9 +292,8 @@ public class RsApplicationController extends BaseController {
}
/**
* 提交应聘申请(公开接口)
* 提交应聘申请(须登录)
*/
@SaIgnore
@Log(title = "提交应聘申请", businessType = BusinessType.INSERT)
@PostMapping("/submit")
public R<Map<String, Object>> submitApplication(@RequestBody RsApplication application) {
@@ -307,9 +306,8 @@ public class RsApplicationController extends BaseController {
// 设置申请时间
application.setApplyTime(new java.util.Date());
// 对于匿名用户,applicant_id 设置为 null
// 如果将来需要支持已登录用户,可以从 token 中获取用户ID
application.setApplicantId(null);
// 绑定当前登录用户
application.setApplicantId(LoginHelper.getUserId());
// 根据jobId设置职位标题
if (application.getJobId() != null) {
@@ -343,7 +341,7 @@ public class RsApplicationController extends BaseController {
@SaCheckPermission("rs:application:remove")
@Log(title = "应聘申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{applicationIds}")
public R<Void> remove(@PathVariable Long[] applicationIds) {
public R<Void> remove(@PathVariable("applicationIds") Long[] applicationIds) {
return toAjax(applicationService.deleteRsApplicationByIds(applicationIds));
}
}
Loaded 100 of 508 files, more files were not shown because too many files have changed in this diff. Show more