This commit is contained in:
2025-12-30 18:53:33 +08:00
parent 9c84ac6a6d
commit da65274cbb
13 changed files with 56 additions and 11 deletions
@@ -14,6 +14,7 @@ import com.budwk.app.sys.services.SysRoleService;
import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import org.nutz.dao.Cnd; import org.nutz.dao.Cnd;
import org.nutz.dao.Dao; import org.nutz.dao.Dao;
import org.nutz.lang.Lang;
import java.util.List; import java.util.List;
@@ -27,11 +28,11 @@ public class FlowFghzxAssignmentHandler implements AssignmentHandler {
SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class); SysRoleService sysRoleService = ServiceContext.find(SysRoleService.class);
Sys_role sysRole = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_CHAIRMAN); Sys_role sysRole = sysRoleService.getByCode(RoleConstant.BRANCH_UNION_CHAIRMAN);
String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId()); String unionId = StrUtil.blankToDefault(execution.getArgs().getStr(FlowConst.INITIATOR_UNIT_UNION_ID), SecurityUtil.getUnionId());
Sys_user_role user_role = dao.fetch(Sys_user_role.class, Cnd.where(Sys_user_role::getRoleId, "=", sysRole.getId()).and(Sys_user_role::getUnionId, "=", unionId)); List<Sys_user_role> user_roles = dao.query(Sys_user_role.class, Cnd.where(Sys_user_role::getRoleId, "=", sysRole.getId()).and(Sys_user_role::getUnionId, "=", unionId));
if (user_role == null) { if (Lang.isNotEmpty(user_roles)) {
throw new BaseException("分工会主席没有设置,请联系校工会!", sysRole.getCode()); throw new BaseException("分工会主席没有设置,请联系校工会!", sysRole.getCode());
} }
return List.of(user_role.getUserId()); return user_roles.stream().map(Sys_user_role::getUserId).distinct().toList();
} }
@Override @Override
@@ -92,7 +92,7 @@ public class ActivityBasicScopeController {
* @return {@link Result} * @return {@link Result}
*/ */
@At @At
@SaCheckPermission("activity.basic.scope") @SaCheckPermission("activity.basic")
public Result pageData(@Param("data") ActivityUserScopePageParam pageForm) { public Result pageData(@Param("data") ActivityUserScopePageParam pageForm) {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
@@ -236,7 +236,7 @@ public class TrainSignUpActivityStatisticsController {
for (TrainSignUpCourse c : courseList) { for (TrainSignUpCourse c : courseList) {
String k = c.getCourseName(); String k = c.getCourseName();
List<NutMap> v = userList.stream().filter(x -> x.getString("courseName").equals(k)).collect(Collectors.toList()); List<NutMap> v = userList.stream().filter(x -> StrUtil.isNotBlank(x.getString("courseName")) && x.getString("courseName").equals(k)).collect(Collectors.toList());
ExportParams userExportParams = new ExportParams(); ExportParams userExportParams = new ExportParams();
userExportParams.setSheetName(k); userExportParams.setSheetName(k);
userExportParams.setType(ExcelType.HSSF); userExportParams.setType(ExcelType.HSSF);
@@ -91,6 +91,24 @@ public class TrainSignUpActivityServiceImpl extends BaseServiceImpl<TrainSignUpA
if (Lang.isEmpty(courseList)) { if (Lang.isEmpty(courseList)) {
return; return;
} }
Set<String> newIds = courseList.stream()
.map(TrainSignUpCourse::getId)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
List<TrainSignUpCourse> oldCourses = dao().query(TrainSignUpCourse.class, Cnd.where("activityId", "=", activity.getId()));
Set<String> oldIds = oldCourses.stream()
.map(TrainSignUpCourse::getId)
.filter(StrUtil::isNotBlank)
.collect(Collectors.toSet());
Set<String> deletedIds = Sets.difference(oldIds, newIds).immutableCopy();
if(Lang.isNotEmpty(deletedIds)) {
dao().clear(TrainSignUpCourse.class, Cnd.where("id", "in", deletedIds));
}
for (TrainSignUpCourse course : courseList) { for (TrainSignUpCourse course : courseList) {
course.setActivityId(activity.getId()); course.setActivityId(activity.getId());
dao().insertOrUpdate(course); dao().insertOrUpdate(course);
@@ -8,11 +8,13 @@ import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.base.utils.SysOfficeTemplateUtil; import com.budwk.app.base.utils.SysOfficeTemplateUtil;
import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum; import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum;
import com.budwk.app.flow.enums.ProcessInstanceStateEnum; import com.budwk.app.flow.enums.ProcessInstanceStateEnum;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.sys.models.Sys_user_role; import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.web.commons.base.Globals; import com.budwk.app.web.commons.base.Globals;
import com.budwk.app.web.controllers.open.commons.service.CommonService; import com.budwk.app.web.controllers.open.commons.service.CommonService;
import com.budwk.app.zhgh.club.model.ClubUser;
import com.budwk.app.zhgh.club.param.ClubUserPageForm; import com.budwk.app.zhgh.club.param.ClubUserPageForm;
import com.budwk.app.zhgh.club.service.SysClubInfoManageService; import com.budwk.app.zhgh.club.service.SysClubInfoManageService;
import com.budwk.app.zhgh.club.service.SysClubService; import com.budwk.app.zhgh.club.service.SysClubService;
@@ -26,6 +28,7 @@ import org.nutz.dao.Cnd;
import org.nutz.dao.Dao; import org.nutz.dao.Dao;
import org.nutz.dao.Sqls; import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql; import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.dao.util.cri.Static; import org.nutz.dao.util.cri.Static;
import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.ioc.loader.annotation.IocBean;
@@ -95,6 +98,18 @@ public class SysClubInfoManageServiceImpl extends BaseServiceImpl<ClubCommonPage
cnd.and("c.clubName", "LIKE", "%" + pageForm.getClubName() + "%"); cnd.and("c.clubName", "LIKE", "%" + pageForm.getClubName() + "%");
} }
if(StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
Cnd c = Cnd.NEW();
SqlExpressionGroup group = new SqlExpressionGroup();
group.orLike("userName", pageForm.getSearchKeyword());
group.orLike("loginName", pageForm.getSearchKeyword());
c.and(group);
c.limit(50);
List<Sys_user> userList = dao().query(Sys_user.class, c);
List<ClubUser> list = dao().query(ClubUser.class, Cnd.where("userId", "in", userList.stream().map(Sys_user::getId).toList()));
cnd.and("c.id", "in", list.stream().map(ClubUser::getClubId).toList());
}
cnd.andEX("year(c.createTime)", "=", pageForm.getYear()); cnd.andEX("year(c.createTime)", "=", pageForm.getYear());
cnd.and("c.dismiss", "=", false); cnd.and("c.dismiss", "=", false);
cnd.and("ins.state", "=", ProcessInstanceStateEnum.FINISHED.getCode()); cnd.and("ins.state", "=", ProcessInstanceStateEnum.FINISHED.getCode());
@@ -18,6 +18,7 @@ import com.budwk.app.sys.models.Sys_user_role;
import com.budwk.app.sys.services.SysRoleService; import com.budwk.app.sys.services.SysRoleService;
import com.budwk.app.sys.services.SysUserService; import com.budwk.app.sys.services.SysUserService;
import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation; import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation;
import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_union;
import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_unit; import com.budwk.app.zhgh.democratic.teachercongress.delegation.models.Teacher_congress_delegation_unit;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -147,6 +148,8 @@ public class TeacherCongressDelegationController {
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result delete(@Valid String id) { public Result delete(@Valid String id) {
dao.delete(Teacher_congress_delegation.class, id); dao.delete(Teacher_congress_delegation.class, id);
dao.clear(Teacher_congress_delegation_union.class, Cnd.where(Teacher_congress_delegation_union::getDelegationId, "=", id));
dao.clear(Teacher_congress_delegation_unit.class, Cnd.where(Teacher_congress_delegation_unit::getDelegationId, "=", id));
return Result.success(); return Result.success();
} }
@@ -100,7 +100,7 @@ public class SingleTeacherServiceImpl extends BaseServiceImpl<SingleTeacher> imp
cnd.andEX("u.personType", "=", pageForm.getPersonType()); cnd.andEX("u.personType", "=", pageForm.getPersonType());
cnd.andEX("u.userState", "=", pageForm.getUserState()); cnd.andEX("u.userState", "=", pageForm.getUserState());
cnd.andEX("st.education", "=", pageForm.getEducation()); cnd.andEX("st.education", "=", pageForm.getEducation());
cnd.andEX("u.marriage", "=", pageForm.getMarriage()); cnd.andEX("st.maritalStatus", "=", pageForm.getMarriage());
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
@@ -194,7 +194,7 @@ public class ThirtyTeachController {
break; break;
} }
List<Sys_user> matchUsers = users.stream().filter(u -> u.getLoginname().equals(temp.getLoginName())).map(u -> { List<Sys_user> matchUsers = users.stream().filter(u -> StrUtil.isNotBlank(u.getLoginname()) && u.getLoginname().equals(temp.getLoginName())).map(u -> {
Sys_user user = new Sys_user(); Sys_user user = new Sys_user();
user.setId(u.getId()); user.setId(u.getId());
user.setLoginname(temp.getLoginName()); user.setLoginname(temp.getLoginName());
@@ -13,6 +13,10 @@ const SCHOOL_CLUB_MANAGE_TEMPLATE = {
v-model="pageForm.clubName" v-model="pageForm.clubName"
></el-input> ></el-input>
</search-item> </search-item>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请输入姓名或工号"
clearable></el-input>
</search-item>
</search> </search>
</el-card> </el-card>
<el-card shadow="never" class="mt10"> <el-card shadow="never" class="mt10">
@@ -58,6 +58,8 @@ const CLUB_MANAGER_TEMPLATE = {
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
:disabled="scope.row.roleCode === 'CLUB_PRESIDENT'
|| scope.row.roleCode === 'CLUB_SECRETARY'""
@click="deleteRow(scope.row, scope.$index)" @click="deleteRow(scope.row, scope.$index)"
size="mini" type="danger">删除 size="mini" type="danger">删除
</el-button> </el-button>
@@ -76,7 +76,7 @@ layout("/layouts/platform.html"){
<el-row type="flex" justify="end"> <el-row type="flex" justify="end">
<el-button @click="$refs.guava.index()" size="small">取消</el-button> <el-button @click="$refs.guava.index()" size="small">取消</el-button>
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button> <el-button @click="handleTaskAction(6)" size="small" type="info">退回到发起人</el-button>
<el-button @click="handleTaskAction(20)" size="small" type="danger">不同意</el-button> <el-button @click="handleTaskAction(2)" size="small" type="danger">不同意</el-button>
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意</el-button> <el-button @click="handleTaskAction(1)" size="small" type="primary">同意</el-button>
</el-row> </el-row>
</div> </div>
@@ -163,7 +163,9 @@ layout("/layouts/platform.html"){
this.importDialog = true this.importDialog = true
}, },
successImport() { successImport() {
this.importDialog = false if(this.$refs.viewImport.$data.errorInfoData.errorCount === 0) {
this.importDialog = false
}
this.pageData() this.pageData()
}, },
exportMember() { exportMember() {
@@ -18,7 +18,7 @@ layout("/layouts/platform.html"){
placeholder="请选择年度" placeholder="请选择年度"
></el-date-picker> ></el-date-picker>
</search-item> </search-item>
<template v-if="pageForm.queryType == 'union'"> <template v-if="pageForm.queryType == 'fgh'">
<search-item label="工会"> <search-item label="工会">
<el-select placeholder="分工会" v-model="pageForm.queryId" style="width: 100%" @change="doSearch" clearable filterable> <el-select placeholder="分工会" v-model="pageForm.queryId" style="width: 100%" @change="doSearch" clearable filterable>
<el-option v-for="item in unions" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in unions" :label="item.name" :value="item.id"></el-option>
@@ -45,7 +45,7 @@ layout("/layouts/platform.html"){
<table-tool label="会员分析"></table-tool> <table-tool label="会员分析"></table-tool>
<el-table :data="tableData" show-summary> <el-table :data="tableData" show-summary>
<el-table-column align="center" header-align="center" type="index" label="序号" width="80px"></el-table-column> <el-table-column align="center" header-align="center" type="index" label="序号" width="80px"></el-table-column>
<el-table-column v-if="pageForm.queryType=='union'" align="center" header-align="center" label="分工会" width="220px"> <el-table-column v-if="pageForm.queryType=='fgh'" align="center" header-align="center" label="分工会" width="220px">
<template scope="{row}">{{row.unionCode ? ''+row.unionCode+'' : null }}{{row.unionName}}</template> <template scope="{row}">{{row.unionCode ? ''+row.unionCode+'' : null }}{{row.unionName}}</template>
</el-table-column> </el-table-column>
<el-table-column v-if="pageForm.queryType=='unit'" align="center" header-align="center" label="单位" width="220px"> <el-table-column v-if="pageForm.queryType=='unit'" align="center" header-align="center" label="单位" width="220px">