commit
This commit is contained in:
@@ -45,6 +45,8 @@ RoleConstant {
|
||||
BRANCH_UNION_SHENGGHUO_WY("分工会生活委员"),
|
||||
BRANCH_UNION_TIAOJIE_WY("分工会调解委员"),
|
||||
|
||||
UNIT_PARTY_SECRETARY("单位党委书记"),
|
||||
|
||||
TEACHER_CONGRESS_DELEGATE_FORMAL("教代会正式代表"),
|
||||
TEACHER_CONGRESS_DELEGATE_ATTENDANCE("教代会列席代表"),
|
||||
TEACHER_CONGRESS_DELEGATE_SPECIALLY_INVITE("教代会特邀代表"),
|
||||
@@ -58,7 +60,6 @@ RoleConstant {
|
||||
PROPOSAL_UNIT_LEADER("提案承办单位领导"),
|
||||
PROPOSAL_UNIT_PROXY("提案承办单位代理答复人"),
|
||||
|
||||
|
||||
WORKER_CONGRESS_DELEGATE_FORMAL("工代会正式代表"),
|
||||
WORKER_CONGRESS_DELEGATE_ATTENDANCE("工代会列席代表"),
|
||||
WORKER_CONGRESS_DELEGATE_SPECIALLY_INVITE("工代会特邀代表"),
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.lang.ClassScanner;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
@@ -21,6 +22,7 @@ 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;
|
||||
@@ -220,9 +222,16 @@ public class FlowDesignController {
|
||||
@At
|
||||
@SaCheckLogin
|
||||
@ApiOperation("获取流程设计任务参与者分页数据")
|
||||
public Result assigneePage(Integer pageNumber, Integer pageSize, String keyword, @Param("userIds") String[] userIds) {
|
||||
public Result assigneePage(Integer pageNumber, Integer pageSize, String searchKeyword, @Param("userIds") String[] userIds) {
|
||||
Sql sql = Sqls.create("select id,loginname,username,unitName from vw_user $condition");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if(StrUtil.isNotBlank(searchKeyword)) {
|
||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||
group.orLike("username", searchKeyword);
|
||||
group.orLike("loginname", searchKeyword);
|
||||
cnd.and(group);
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
// cnd.andEX("id", "in", userIds);
|
||||
Pagination pagination = sysUserService.listPageMap(pageNumber, pageSize, sql);
|
||||
return Result.success(pagination);
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.budwk.app.flow.handler;
|
||||
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.flow.engine.AssignmentHandler;
|
||||
import com.budwk.app.flow.engine.core.Execution;
|
||||
import com.budwk.app.flow.engine.core.ServiceContext;
|
||||
import com.budwk.app.flow.engine.model.TaskModel;
|
||||
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.web.commons.auth.utils.SecurityUtil;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.lang.Lang;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName FlowUnitPartySecretaryHandler
|
||||
* @Author JyuHsin
|
||||
* @Date 2025/10/15 10:55
|
||||
* @Version 1.0
|
||||
* @Description TODO
|
||||
*/
|
||||
public class FlowUnitPartySecretaryHandler implements AssignmentHandler {
|
||||
|
||||
@Override
|
||||
public List<String> assign(TaskModel model, Execution execution) {
|
||||
String unitId = SecurityUtil.getUnitId();
|
||||
|
||||
SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class);
|
||||
Sys_role role = sysRoleService.getByCode(RoleConstant.UNIT_PARTY_SECRETARY);
|
||||
|
||||
List<Sys_user_role> roles = ServiceContext.find(Dao.class).query(
|
||||
Sys_user_role.class,
|
||||
Cnd.where(Sys_user_role::getRoleId, "=", role.getId())
|
||||
.and(Sys_user_role::getUnitId, "=", unitId)
|
||||
);
|
||||
|
||||
if (Lang.isEmpty(roles)) {
|
||||
throw new RuntimeException("当前登录用户所在单位未设置单位党委书记,请联系校工会进行设置。");
|
||||
}
|
||||
return roles.stream().map(Sys_user_role::getUserId).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "获取当前登录用户所在单位党委书记";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return AssignmentHandler.super.getOrder();
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -107,7 +107,7 @@ public class MeetingDelegationApproval {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("mi.name", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mi.address", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("info.periodName", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mtp.periodName", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
if(year != null) {
|
||||
@@ -116,7 +116,7 @@ public class MeetingDelegationApproval {
|
||||
cnd.and("ins.createdAt", ">=", startTime);
|
||||
cnd.and("ins.createdAt", "<=", endTime);
|
||||
}
|
||||
cnd.andEX("mi.type", "=", type);
|
||||
cnd.andEX("mi.typeId", "=", type);
|
||||
|
||||
cnd.and("t.taskName", "=", "e0ef2404-7468-480a-97b6-b918e0a9232f");
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
|
||||
+2
-2
@@ -111,12 +111,12 @@ public class MeetingLeaveController {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("mi.name", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mi.address", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("info.periodName", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mtp.periodName", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.and("info.userId", "=", SecurityUtil.getUserId());
|
||||
cnd.and("ins.id", "is not", null);
|
||||
cnd.andEX("mi.type", "=", type);
|
||||
cnd.andEX("mi.typeId", "=", type);
|
||||
if(year != null) {
|
||||
long startTime = DateUtil.parse(year + "-01-01").getTime();
|
||||
long endTime = DateUtil.parse(year + "-12-31").getTime();
|
||||
|
||||
+3
-3
@@ -38,7 +38,7 @@ import java.util.List;
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@Api(tags = "会议请假团长审核")
|
||||
@Api(tags = "会议请假校工会审核")
|
||||
@At("/platform/meeting/schoolUnionApproval")
|
||||
public class MeetingSchoolUnionApproval {
|
||||
|
||||
@@ -106,7 +106,7 @@ public class MeetingSchoolUnionApproval {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("mi.name", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mi.address", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("info.periodName", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mtp.periodName", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
if(year != null) {
|
||||
@@ -115,7 +115,7 @@ public class MeetingSchoolUnionApproval {
|
||||
cnd.and("ins.createdAt", ">=", startTime);
|
||||
cnd.and("ins.createdAt", "<=", endTime);
|
||||
}
|
||||
cnd.andEX("mi.type", "=", type);
|
||||
cnd.andEX("mi.typeId", "=", type);
|
||||
|
||||
cnd.and("t.taskName", "=", "e28e9ab0-5546-4d97-9939-47df088f38ab");
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
|
||||
+2
@@ -119,6 +119,8 @@ public class MeetingInfoServiceImpl extends BaseServiceImpl<MeetingInfo> impleme
|
||||
if (!newRelations.isEmpty()) {
|
||||
dao().insert(newRelations);
|
||||
}
|
||||
|
||||
dao().updateIgnoreNull(info);
|
||||
}
|
||||
|
||||
private MeetingTimePeriodUser buildRelation(String meetingId, String periodId, MeetingTimePeriodUser user) {
|
||||
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
package com.budwk.app.zhgh.staffbenefit.contribution.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;
|
||||
@@ -88,7 +89,7 @@ public class ContributionTypeController {
|
||||
|
||||
@At
|
||||
@ApiOperation("查询慈善捐助专题")
|
||||
@SaCheckPermission("contribution")
|
||||
@SaCheckLogin
|
||||
public Result queryContributionType() {
|
||||
List<ContributionType> list = typeService.query(Cnd.NEW().desc(ContributionType::getTypeCode));
|
||||
return Result.success(list);
|
||||
@@ -96,7 +97,7 @@ public class ContributionTypeController {
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个慈善捐助专题")
|
||||
@SaCheckPermission("contribution")
|
||||
@SaCheckLogin
|
||||
public Result fetchOne(String id) {
|
||||
ContributionType type = typeService.fetch(id);
|
||||
List<ContributionProject> list = dao.query(ContributionProject.class, Cnd.where(ContributionProject::getContributionTypeCode, "=", type.getTypeCode()).and(ContributionProject::getIsContributionEnable, "=", true));
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
package com.budwk.app.zhgh.staffbenefit.contribution.h5Controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -95,7 +96,7 @@ public class H5ContributionListController {
|
||||
|
||||
@At
|
||||
@ApiOperation("查询单个慈善捐助专题")
|
||||
@SaCheckPermission("contribution")
|
||||
@SaCheckLogin
|
||||
public Result fetchOne(String id) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
|
||||
@@ -48,12 +48,12 @@ var assigneeForm = {
|
||||
</div>
|
||||
|
||||
<!-- 用户选择弹窗 -->
|
||||
<el-dialog title="选择参与者" :visible.sync="dialogVisible" width="80%" append-to-body>
|
||||
<el-dialog title="选择参与者" :visible.sync="dialogVisible" width="80%" append-to-body top="20px">
|
||||
<div style="display: flex;">
|
||||
<!-- 左侧表格 -->
|
||||
<div style="flex: 3; margin-right: 10px; overflow: auto;">
|
||||
<div style="margin-bottom: 10px;">
|
||||
<el-input v-model="pageForm.searchKeyword" placeholder="请输入关键字搜索" style="width: 200px; margin-right: 10px;"></el-input>
|
||||
<el-input v-model="pageForm.searchKeyword" placeholder="请输入姓名或工号搜索" style="width: 200px; margin-right: 10px;"></el-input>
|
||||
<el-button type="primary" @click="searchUsers">搜索</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
|
||||
@@ -19,7 +19,7 @@ const signForm = {
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="所在单位" prop="unitName">
|
||||
<el-form-item label="所属单位" prop="unitName">
|
||||
<el-input readonly v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -322,9 +322,9 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
||||
<el-input maxlength="30" placeholder="请填写身份证号" type="text"
|
||||
v-model="formData.idcard"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所在单位" prop="unitId"
|
||||
:rules="{required: true, message: '请选择所在单位', trigger: 'blur'}">
|
||||
<el-select clearable filterable placeholder="请选择所在单位" style="width: 100%"
|
||||
<el-form-item label="所属单位" prop="unitId"
|
||||
:rules="{required: true, message: '请选择所属单位', trigger: 'blur'}">
|
||||
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%"
|
||||
v-model="formData.unitId">
|
||||
<el-option
|
||||
:key="item.id"
|
||||
|
||||
@@ -279,8 +279,8 @@ layout("/layouts/platform.html"){
|
||||
v-model="leaderData.userId"
|
||||
></user-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所在单位" prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择所在单位" style="width: 100%"
|
||||
<el-form-item label="所属单位" prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%"
|
||||
v-model="leaderData.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unitOptions"></el-option>
|
||||
@@ -304,8 +304,8 @@ layout("/layouts/platform.html"){
|
||||
v-model="coachData.userId"
|
||||
></user-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所在单位" prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择所在单位" style="width: 100%"
|
||||
<el-form-item label="所属单位" prop="unitId">
|
||||
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%"
|
||||
v-model="coachData.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unitOptions"></el-option>
|
||||
|
||||
@@ -17,7 +17,7 @@ const applyForm = {
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="所在单位" prop="unitName">
|
||||
<el-form-item label="所属单位" prop="unitName">
|
||||
<el-input readonly v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -241,7 +241,10 @@ const contentForm = {
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$message.success('删除成功');
|
||||
this.$axios.post('/platform/edu/chapters/delete', {id}).then(res => {
|
||||
this.$message.success('删除成功')
|
||||
this.listChapter()
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ const applyForm = {
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="所在单位" prop="unitName">
|
||||
<el-form-item label="所属单位" prop="unitName">
|
||||
<el-input readonly v-model="formData.unitName"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@@ -13,7 +13,7 @@ const applyForm = {
|
||||
<van-cell-group title="基础信息" class="form-section">
|
||||
<van-field label="姓名" readonly v-model="formData.username"></van-field>
|
||||
<van-field label="工号" readonly v-model="formData.loginname"></van-field>
|
||||
<van-field label="所在单位" readonly v-model="formData.unitName"></van-field>
|
||||
<van-field label="所属单位" readonly v-model="formData.unitName"></van-field>
|
||||
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
||||
<van-field label="性别" readonly v-model="formData.sex"></van-field>
|
||||
<template v-if="row.courseIsLimitApply">
|
||||
@@ -65,7 +65,7 @@ const applyForm = {
|
||||
</van-cell-group>
|
||||
|
||||
<div class="button">
|
||||
<van-button @click="onSubmit" round type="info">提交</van-button>
|
||||
<van-button @click="onSubmit" round type="info" block>提交</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
</van-action-sheet>
|
||||
|
||||
@@ -13,7 +13,7 @@ const applyForm = {
|
||||
<van-cell-group title="基础信息" class="form-section">
|
||||
<van-field label="姓名" readonly v-model="formData.username"></van-field>
|
||||
<van-field label="工号" readonly v-model="formData.loginname"></van-field>
|
||||
<van-field label="所在单位" readonly v-model="formData.unitName"></van-field>
|
||||
<van-field label="所属单位" readonly v-model="formData.unitName"></van-field>
|
||||
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
||||
<van-field label="性别" readonly v-model="formData.sex"></van-field>
|
||||
<template v-if="row.courseIsLimitApply">
|
||||
@@ -39,7 +39,7 @@ const applyForm = {
|
||||
</van-cell-group>
|
||||
|
||||
<div class="button">
|
||||
<van-button @click="onSubmit" round type="info">提交</van-button>
|
||||
<van-button @click="onSubmit" round type="info" block>提交</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
</van-action-sheet>
|
||||
|
||||
@@ -108,10 +108,11 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-sticky offset-top="46px">
|
||||
<van-tabs v-model="pageForm.category" @change="doSearch">
|
||||
<van-tab name="" title="全部"></van-tab>
|
||||
<van-tab name="理论学习" title="理论学习"></van-tab>
|
||||
<van-tab name="技能培训" title="技能培训"></van-tab>
|
||||
<van-tab name="安全教育" title="安全教育"></van-tab>
|
||||
<van-tab name="职业发展" title="职业发展"></van-tab>
|
||||
<van-tab v-for="item in dict.type.TRAIN_EDU_COURSE_TYPE"
|
||||
:name="item.code"
|
||||
:title="item.name"
|
||||
:key="item.id"
|
||||
></van-tab>
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ const applyForm = {
|
||||
<van-cell-group title="基础信息" class="form-section">
|
||||
<van-field label="姓名" readonly v-model="formData.username"></van-field>
|
||||
<van-field label="工号" readonly v-model="formData.loginname"></van-field>
|
||||
<van-field label="所在单位" readonly v-model="formData.unitName"></van-field>
|
||||
<van-field label="所属单位" readonly v-model="formData.unitName"></van-field>
|
||||
<van-field label="所属工会" readonly v-model="formData.unionName"></van-field>
|
||||
<van-field label="性别" readonly v-model="formData.sex"></van-field>
|
||||
<template v-if="row.courseIsLimitApply">
|
||||
@@ -39,7 +39,7 @@ const applyForm = {
|
||||
</van-cell-group>
|
||||
|
||||
<div class="button">
|
||||
<van-button @click="onSubmit" round type="info">提交</van-button>
|
||||
<van-button @click="onSubmit" round type="info" block>提交</van-button>
|
||||
</div>
|
||||
</van-form>
|
||||
</van-action-sheet>
|
||||
|
||||
Reference in New Issue
Block a user