This commit is contained in:
@jyuhsin
2025-08-21 09:31:25 +08:00
parent 65eb86c0dc
commit f1e071a9bd
31 changed files with 1391 additions and 868 deletions
@@ -86,6 +86,7 @@ RoleConstant {
LOVE_ASSIST_WORK_GROUP_MEMBER("爱心扶助小组审批员"),
PSYCHOLOGY_DOCTOR("心理咨询师"),
LEGAL_DOCTOR("法律顾问"),
;
/**
* 避免和枚举类的name冲突
@@ -125,7 +125,7 @@ public class MFamilyActivityController {
String id = v.getId();
NutMap nutMap = NutMap.NEW();
List<FamilyUserCourse> familyUserCourses = collectMap.get(id);
int remainingNum = v.getCourseLimitNum();
int remainingNum = v.getCourseLimitNum() != null ? v.getCourseLimitNum() : 0;
if (Lang.isNotEmpty(familyUserCourses)) {
remainingNum = v.getCourseLimitNum() - familyUserCourses.size();
}
@@ -325,11 +325,12 @@ public class MFamilyActivityController {
@At
@ApiOperation("验证子活动是否能报名")
@SaCheckPermission("h5.family.sign")
public Object validateSourceSignUp(String activityCourseId) {
public Object validateSourceSignUp(String activityCourseId, String courseId) {
try {
lock.lock();
// 该时间段下已报名的人数
int count = dao.count(FamilyUserCourse.class, Cnd.where("activityCourseId", "=", activityCourseId));
int count = dao.count(FamilyUserCourse.class, Cnd.where("activityCourseId", "=", activityCourseId)
.and("courseId", "=", courseId));
// 获取改时间段下的活动课程限制报名人数
FamilyActivityCourse course = dao.fetch(FamilyActivityCourse.class, activityCourseId);
Integer courseLimitNum = course.getCourseLimitNum();
@@ -32,6 +32,7 @@ import org.nutz.mvc.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletionException;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors;
@@ -129,7 +130,7 @@ public class MTrainSignUpActivityController {
String id = v.getId();
NutMap nutMap = NutMap.NEW();
List<TrainSignUpUserCourse> trainSignUpUserCourses = collectMap.get(id);
int remainingNum = v.getCourseLimitNum();
int remainingNum = v.getCourseLimitNum() != null ? v.getCourseLimitNum() : 0;
if (Lang.isNotEmpty(trainSignUpUserCourses)) {
remainingNum = v.getCourseLimitNum() - trainSignUpUserCourses.size();
}
@@ -328,11 +329,12 @@ public class MTrainSignUpActivityController {
@At
@ApiOperation("验证子活动是否能报名")
@SaCheckPermission("h5.trainSignUp.sign")
public Object validateSourceSignUp(String activityCourseId) {
public Object validateSourceSignUp(String activityCourseId, String courseId) {
try {
lock.lock();
// 该时间段下已报名的人数
int count = dao.count(TrainSignUpUserCourse.class, Cnd.where("activityCourseId", "=", activityCourseId));
int count = dao.count(TrainSignUpUserCourse.class, Cnd.where("activityCourseId", "=", activityCourseId)
.and("courseId", "=", courseId));
// 获取改时间段下的活动课程限制报名人数
TrainSignUpActivityCourse course = dao.fetch(TrainSignUpActivityCourse.class, activityCourseId);
Integer courseLimitNum = course.getCourseLimitNum();
@@ -2,44 +2,42 @@ package com.budwk.app.zhgh.staffbenefit.condolence.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.flow.entity.ProcessInstance;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.dayofficework.article.models.Article;
import com.budwk.app.zhgh.staffbenefit.condolence.model.Condolence;
import com.budwk.app.zhgh.staffbenefit.condolence.model.CondolenceType;
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
import com.budwk.app.zhgh.staffbenefit.psychology.model.PsychologyDoctor;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.validation.Valid;
import java.util.List;
/**
* @ClassName CondolenceApplyController
* @Author JyuHsin
* @Date 2025/7/28 11:06
* @Date 2025/8/20 15:40
* @Version 1.0
* @Description TODO
*/
@@ -50,67 +48,46 @@ import java.util.List;
public class CondolenceApplyController {
@Inject
private CondolenceService condolenceService;
private Dao dao;
@Inject
private FlowEngine flowEngine;
@Inject
private CondolenceService condolenceService;
@At("")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/apply/index.html")
@SaCheckLogin
public void index() {}
@At("/form")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/apply/form.html")
@SaCheckLogin
public void form() {}
@At
@ApiOperation("保存申请")
@SaCheckPermission("condolence.apply")
@SLog(type = "condolence", tag = "职工慰问-慰问申请", msg = "保存职工慰问申请")
public Result save(@Param("data") Condolence condolence) {
if(StrUtil.isBlank(condolence.getId())) condolence.setCreateTime(DateUtil.now());
dao.insertOrUpdate(condolence);
return Result.success();
}
@At
@ApiOperation("分页查询")
@ApiOperation("提交申请")
@SaCheckPermission("condolence.apply")
public Result pageData(PageForm pageForm,
@Param(value = "year") Integer year,
@Param(value = "type") String type) {
Sql sql = Sqls.create("""
SELECT
info.*,
type.name as typeName,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId
FROM
condolence info
LEFT JOIN condolence_type type ON info.type = type.id
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or(Condolence::getHelpUserName, "like", "%" + pageForm.getSearchKeyword() + "%");
seg.or(Condolence::getHelpLoginName, "like", "%" + pageForm.getSearchKeyword() + "%");
cnd.and(seg);
@SLog(type = "condolence", tag = "职工慰问-慰问申请", msg = "提交职工慰问申请")
public Result submit(@Param("data") Condolence condolence) {
if(StrUtil.isBlank(condolence.getId())) condolence.setCreateTime(DateUtil.now());
dao.insertOrUpdate(condolence);
// 开启流程实例
Dict args = Dict.create();
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
args.set(FlowConst.FORM_DATA, condolence);
ProcessInstance instance = flowEngine.startProcessInstanceByKey("ZGWW", condolence.getId(), SecurityUtil.getUserId(), args);
// 自动完成第一个申请任务
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
for (ProcessTask task : doingTaskList) {
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
}
cnd.andEX("year(info.createTime)", "=", year);
cnd.andEX("info.type", "=", type);
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
cnd.desc("info.createTime");
sql.setCondition(cnd);
Pagination<NutMap> pagination = condolenceService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
return Result.success();
}
@At
@@ -153,15 +130,4 @@ public class CondolenceApplyController {
Pagination pagination = condolenceService.listPageMap(1, 50, sql);
return Result.success(pagination.getList());
}
@At
@ApiOperation("删除")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("condolence.apply")
@SLog(type = "condolence", tag = "删除职工慰问", msg = "删除职工慰问")
public Result delete(@Param("id") String id) {
condolenceService.delete(id);
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
return Result.success();
}
}
@@ -45,11 +45,6 @@ public class CondolenceBranchUnionApprovalController {
@SaCheckLogin
public void index() {}
@At("/form")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/branchUnionApproval/form.html")
@SaCheckLogin
public void form() {}
@At
@ApiOperation("分页查询")
@SaCheckPermission("condolence.branchUnionApproval")
@@ -64,7 +59,8 @@ public class CondolenceBranchUnionApprovalController {
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.variable instanceVariale,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
@@ -73,13 +69,17 @@ public class CondolenceBranchUnionApprovalController {
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable
t.variable taskVariable,
IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName,
IF(rt.id IS NOT NULL, 1, 0) AS canRevoke
FROM
wf_process_task t
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
LEFT JOIN condolence info ON info.id = ins.businessNo
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
LEFT JOIN condolence_type type ON info.type = type.id
LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10
LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10
$condition
""");
Cnd cnd = Cnd.NEW();
@@ -100,6 +100,7 @@ public class CondolenceBranchUnionApprovalController {
} else {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pageVO = condolenceService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pageVO);
@@ -0,0 +1,128 @@
package com.budwk.app.zhgh.staffbenefit.condolence.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.staffbenefit.condolence.model.Condolence;
import com.budwk.app.zhgh.staffbenefit.condolence.model.CondolenceType;
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
/**
* @ClassName CondolenceApplyController
* @Author JyuHsin
* @Date 2025/7/28 11:06
* @Version 1.0
* @Description TODO
*/
@IocBean
@At("/platform/condolence/mine")
@Api("职工慰问我的")
@Ok("json:full")
public class CondolenceMineController {
@Inject
private CondolenceService condolenceService;
@Inject
private FlowEngine flowEngine;
@At("")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/mine/index.html")
@SaCheckLogin
public void index() {}
@At
@ApiOperation("分页查询")
@SaCheckPermission("condolence.mine")
public Result pageData(PageForm pageForm,
@Param(value = "year") Integer year,
@Param(value = "type") String type) {
Sql sql = Sqls.create("""
SELECT
info.*,
type.name as typeName,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId
FROM
condolence info
LEFT JOIN condolence_type type ON info.type = type.id
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or(Condolence::getHelpUserName, "like", "%" + pageForm.getSearchKeyword() + "%");
seg.or(Condolence::getHelpLoginName, "like", "%" + pageForm.getSearchKeyword() + "%");
cnd.and(seg);
}
cnd.andEX("year(info.createTime)", "=", year);
cnd.andEX("info.type", "=", type);
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
cnd.desc("info.createTime");
sql.setCondition(cnd);
Pagination<NutMap> pagination = condolenceService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
@At
@ApiOperation("删除")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("condolence.mine")
@SLog(type = "condolence", tag = "删除职工慰问", msg = "删除职工慰问")
public Result delete(@Param("id") String id) {
condolenceService.delete(id);
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
return Result.success();
}
@At
@ApiOperation("查询单个慰问申请信息")
@SaCheckPermission("condolence.mine")
public Result info(String id) {
Condolence condolence = condolenceService.fetch(id);
CondolenceType type = condolenceService.dao().fetch(CondolenceType.class, Cnd.where(CondolenceType::getId, "=", condolence.getType()));
NutMap nutMap = Lang.obj2nutmap(condolence);
nutMap.put("typeName", type.getName());
return Result.success(nutMap);
}
}
@@ -45,11 +45,6 @@ public class CondolenceSchoolUnionApprovalController {
@SaCheckLogin
public void index() {}
@At("/form")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/schoolUnionApproval/form.html")
@SaCheckLogin
public void form() {}
@At
@ApiOperation("分页查询")
@SaCheckPermission("condolence.schoolUnionApproval")
@@ -66,7 +61,8 @@ public class CondolenceSchoolUnionApprovalController {
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.variable instanceVariale,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
@@ -75,13 +71,17 @@ public class CondolenceSchoolUnionApprovalController {
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable
t.variable taskVariable,
IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName,
IF(rt.id IS NOT NULL, 1, 0) AS canRevoke
FROM
wf_process_task t
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
LEFT JOIN condolence info ON info.id = ins.businessNo
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
LEFT JOIN condolence_type type ON info.type = type.id
LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10
LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10
$condition
""");
Cnd cnd = Cnd.NEW();
@@ -104,6 +104,7 @@ public class CondolenceSchoolUnionApprovalController {
} else {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pageVO = condolenceService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pageVO);
@@ -1,50 +0,0 @@
package com.budwk.app.zhgh.staffbenefit.condolence.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import com.budwk.app.base.result.Result;
import com.budwk.app.zhgh.democratic.suggestionBox.models.SuggestionBox;
import com.budwk.app.zhgh.staffbenefit.condolence.model.Condolence;
import com.budwk.app.zhgh.staffbenefit.condolence.model.CondolenceType;
import io.swagger.annotations.Api;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
/**
* @ClassName CondolenceViewController
* @Author JyuHsin
* @Date 2025/7/30 10:46
* @Version 1.0
* @Description TODO
*/
@IocBean
@At("/platform/condolence/view")
@Api("职工慰问查看")
@Ok("json:full")
public class CondolenceViewController {
@Inject
private Dao dao;
@At("/index")
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/view/index.html")
@SaCheckLogin
public void index() {
}
@At("/info")
@SaCheckLogin
public Result info(String id) {
Condolence condolence = dao.fetch(Condolence.class, id);
CondolenceType type = dao.fetch(CondolenceType.class, Cnd.where(CondolenceType::getId, "=", condolence.getType()));
NutMap nutMap = Lang.obj2nutmap(condolence);
nutMap.put("typeName", type.getName());
return Result.success(nutMap);
}
}
@@ -7,7 +7,9 @@ import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_role;
import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.sys.services.SysRoleService;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.zhgh.staffbenefit.legal.model.LegalDoctor;
import com.budwk.app.zhgh.staffbenefit.legal.service.LegalDoctorService;
@@ -46,6 +48,8 @@ public class LegalDoctorController {
private Dao dao;
@Inject
private LegalDoctorService doctorService;
@Inject
private SysRoleService sysRoleService;
@At("")
@SaCheckPermission("legal.doctorManage")
@@ -74,6 +78,7 @@ public class LegalDoctorController {
@SaCheckPermission("legal.doctorManage")
@SLog(type = "legal", tag = "新增/修改法律援助师", msg = "新增/修改法律援助师")
public Object onSubmit(LegalDoctor doctor) {
Sys_role role = sysRoleService.getByCode(RoleConstant.LEGAL_DOCTOR);
if(StrUtil.isBlank(doctor.getId())) {
int count = doctorService.count(Cnd.where(LegalDoctor::getUserId, "=", doctor.getUserId()));
if(count > 0) {
@@ -89,7 +94,7 @@ public class LegalDoctorController {
//插入角色
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(doctor.getUserId());
userRole.setRoleId(RoleConstant.PSYCHOLOGY_DOCTOR.name());
userRole.setRoleId(role.getId());
dao.insert(userRole);
}
doctorService.insertOrUpdate(doctor);
@@ -7,7 +7,9 @@ import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_role;
import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.sys.services.SysRoleService;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.zhgh.staffbenefit.psychology.model.PsychologyDoctor;
import com.budwk.app.zhgh.staffbenefit.psychology.service.PsychologyDoctorService;
@@ -46,6 +48,8 @@ public class PsychologyDoctorController {
private Dao dao;
@Inject
private PsychologyDoctorService doctorService;
@Inject
private SysRoleService sysRoleService;
@At("")
@SaCheckPermission("psychology.doctorManage")
@@ -74,6 +78,7 @@ public class PsychologyDoctorController {
@SaCheckPermission("psychology.doctorManage")
@SLog(type = "psychology", tag = "新增/修改心理咨询师", msg = "新增/修改心理咨询师")
public Object onSubmit(PsychologyDoctor doctor) {
Sys_role role = sysRoleService.getByCode(RoleConstant.PSYCHOLOGY_DOCTOR);
if(StrUtil.isBlank(doctor.getId())) {
int count = doctorService.count(Cnd.where(PsychologyDoctor::getUserId, "=", doctor.getUserId()));
if(count > 0) {
@@ -89,7 +94,7 @@ public class PsychologyDoctorController {
//插入角色
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(doctor.getUserId());
userRole.setRoleId(RoleConstant.PSYCHOLOGY_DOCTOR.name());
userRole.setRoleId(role.getId());
dao.insert(userRole);
}
doctorService.insertOrUpdate(doctor);
@@ -0,0 +1,48 @@
package com.budwk.app.zhgh.staffbenefit.recuperation.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.result.Result;
import com.budwk.app.zhgh.staffbenefit.recuperation.service.RecuperationAuditService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
/**
* @ClassName RecuperationBranchUnionAuditController
* @Author JyuHsin
* @Date 2025/8/20 14:37
* @Version 1.0
* @Description TODO
*/
@Slf4j
@IocBean
@At("/platform/recuperation/branchUnionAudit")
@Api("疗休养分工会审核")
@Ok("json:full")
public class RecuperationBranchUnionAuditController {
@Inject
private Dao dao;
@Inject
private RecuperationAuditService auditService;
@At("")
@Ok("beetl:/platform/zhgh/staffbenefit/recuperation/branchUnionAudit/index.html")
@SaCheckLogin
public void index() {}
@At
@ApiOperation("分页查询")
@SaCheckLogin
public Result findOne(String id) {
NutMap nutMap = auditService.findOne(id);
return Result.success(nutMap);
}
}
@@ -12,6 +12,8 @@ import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.staffbenefit.recuperation.constant.RecuperationState;
import com.budwk.app.zhgh.staffbenefit.recuperation.model.RecuperationConfig;
import com.budwk.app.zhgh.staffbenefit.recuperation.model.RecuperationEnroll;
@@ -183,7 +185,6 @@ public class RecuperationSchoolUnionUserQueryController {
return Result.success(pagination);
}
/**
* 设置出行人员
*
@@ -283,6 +284,50 @@ public class RecuperationSchoolUnionUserQueryController {
return Result.success(list);
}
@At
@Aop(TransAop.READ_COMMITTED)
@ApiOperation("修改报名信息")
@SaCheckPermission("recuperation.schoolUnionUserQuery")
@SLog(type = "recuperation", tag = "修改报名信息", msg = "修改报名信息")
public Result doEdit(RecuperationEnroll enroll) {
enroll.setNormal(true);
dao.updateIgnoreNull(enroll);
return Result.success();
}
@At
@ApiOperation("获取分工会选择的线路")
@SaCheckPermission("recuperation.schoolUnionUserQuery")
public Result getUnionSelectLine() {
Sql sql = Sqls.create("""
SELECT
rlus.id,
rlus.unionId,
rlus.lineId,
rlus.selectUserId,
DATE_FORMAT( rlus.playStartTime, '%Y-%m-%d' ) AS playStartTime,
DATE_FORMAT( rlus.playEndTime, '%Y-%m-%d' ) AS playEndTime,
rl.lineName,
rl.regionalNature,
if(rlus.signUpMode=1,'分工会','校工会') AS signUpMode,
lot.lotName
FROM
`recuperation_line_select` rlus
LEFT JOIN `recuperation_line` rl ON rlus.lineId = rl.id
LEFT JOIN `recuperation_lot` lot ON rl.lotId = lot.id
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and(Cnd.exps("rlus.isOpen","=",1).or("rlus.unionId","=", SecurityUtil.getUnionId()));
cnd.and("YEAR(rlus.selectTime)","=",DateUtil.thisYear());
// cnd.and("rlus.signUpMode","=",signUpMode);
cnd.desc("lot.lotValue");
cnd.desc("rl.lineName");
sql.setCondition(cnd);
List<NutMap> listMap = enrollService.listMap(sql);
return Result.success(listMap);
}
@At
@Ok("void")
@ApiOperation("导出")
@@ -394,18 +439,12 @@ public class RecuperationSchoolUnionUserQueryController {
}
excelEntities.add(new ExcelExportEntity("备注", "bz", 20));
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("报名人员.xlsx").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
try {
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelEntities, list);
workbook.write(response.getOutputStream());
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelEntities, list);
CommonDownloadUtil.download("报名人员.xlsx", workbook, response);
}
@At
@@ -421,8 +460,7 @@ public class RecuperationSchoolUnionUserQueryController {
u.sex,
u.mobile,
u.unitname as unitName,
u.name as unionName,
u.remark
u.unionname as unionName
from
activity_user_scope us
left join vw_user u on u.id = us.userId
@@ -448,16 +486,9 @@ public class RecuperationSchoolUnionUserQueryController {
excelEntities.add(new ExcelExportEntity("所属单位", "unitName", 20));
excelEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + new String((DateUtil.thisYear() + "未报名人员.xlsx").getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
try {
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelEntities, listMap);
workbook.write(response.getOutputStream());
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelEntities, listMap);
CommonDownloadUtil.download(DateUtil.thisYear() + "未报名人员.xlsx", workbook, response);
}
}
@@ -0,0 +1,17 @@
package com.budwk.app.zhgh.staffbenefit.recuperation.service;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.zhgh.staffbenefit.recuperation.model.RecuperationEnroll;
import org.nutz.lang.util.NutMap;
/**
* @ClassName RecuperationAuditService
* @Author JyuHsin
* @Date 2025/8/20 14:38
* @Version 1.0
* @Description TODO
*/
public interface RecuperationAuditService extends BaseService<RecuperationEnroll> {
NutMap findOne(String id);
}
@@ -0,0 +1,81 @@
package com.budwk.app.zhgh.staffbenefit.recuperation.service.impl;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.model.Audit;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.zhgh.staffbenefit.recuperation.model.RecuperationEnroll;
import com.budwk.app.zhgh.staffbenefit.recuperation.model.RecuperationEnrollBed;
import com.budwk.app.zhgh.staffbenefit.recuperation.model.RecuperationEnrollCompanion;
import com.budwk.app.zhgh.staffbenefit.recuperation.service.RecuperationAuditService;
import lombok.extern.slf4j.Slf4j;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import java.util.List;
/**
* @ClassName RecuperationAuditServiceImpl
* @Author JyuHsin
* @Date 2025/8/20 14:38
* @Version 1.0
* @Description TODO
*/
@Slf4j
@IocBean(args = {"refer:dao"})
public class RecuperationAuditServiceImpl extends BaseServiceImpl<RecuperationEnroll> implements RecuperationAuditService {
public RecuperationAuditServiceImpl(Dao dao) {
super(dao);
}
@Override
public NutMap findOne(String id) {
Sql sql = Sqls.create("""
SELECT
lxs.travelAgencyName,
enroll.*,
line.lineName,
if(enroll.takePartInUnionId!=enroll.selfUnionId,true,false) isTransferIn,
(SELECT COUNT(1) FROM recuperation_enroll_companion WHERE trreId=enroll.id and relation='亲属') isFamily
FROM
`recuperation_enroll` enroll
LEFT JOIN recuperation_line_select lineu ON lineu.id = enroll.takePartInLineId
LEFT JOIN recuperation_line line ON line.id = lineu.lineId
LEFT JOIN recuperation_travel_agency lxs ON lxs.id = line.travelAgencyId
where enroll.id=@id
""").setParam("id", id);
sql.setCallback(Sqls.callback.map());
this.dao().execute(sql);
NutMap fetch = sql.getObject(NutMap.class);
NutMap map = NutMap.NEW();
if (Strings.isNotBlank(fetch.getString("selfUnionAuditId"))) {
Audit selfUnionAudit = dao().fetch(Audit.class, fetch.getString("selfUnionAuditId"));
fetch.setv("selfUnionAudit", selfUnionAudit);
}
if (Strings.isNotBlank(fetch.getString("joinLineUnionAuditId"))) {
Audit joinLineUnionAudit = dao().fetch(Audit.class, fetch.getString("joinLineUnionAuditId"));
fetch.setv("joinLineUnionAudit", joinLineUnionAudit);
}
if (Strings.isNotBlank(fetch.getString("schoolUnionAuditId"))) {
Audit schoolUnionAudit = dao().fetch(Audit.class, fetch.getString("schoolUnionAuditId"));
fetch.setv("schoolUnionAudit", schoolUnionAudit);
}
if (Strings.isNotBlank(fetch.getString("bedInfoId"))) {
RecuperationEnrollBed bedInfo = dao().fetch(RecuperationEnrollBed.class, fetch.getString("bedInfoId"));
fetch.setv("bedInfo", bedInfo);
}
List<RecuperationEnrollCompanion> companionList = dao().query(RecuperationEnrollCompanion.class, Cnd.where("trreId", "=", id));
companionList.forEach(v -> {
if(StrUtil.isNotBlank(v.getBedInfoId())) {
v.setBedInfo(dao().fetch(RecuperationEnrollBed.class, v.getBedInfoId()));
}
});
map.addv("viewData", fetch.setv("companionList", companionList));
return map;
}
}