Merge remote-tracking branch 'origin/main'
This commit is contained in:
+14
-2
@@ -207,17 +207,29 @@ public class TeacherCongressDelegateManageController {
|
||||
`sys_user` t1
|
||||
LEFT JOIN sys_unit t2 ON t2.id = t1.unitId
|
||||
WHERE
|
||||
t1.id NOT IN ( SELECT userId FROM teacher_congress_delegate WHERE sessionId = @sessionId AND delegationId = @delegationId )
|
||||
-- 原逻辑只排除当前代表团已有人员:t1.id NOT IN ( SELECT userId FROM teacher_congress_delegate WHERE sessionId = @sessionId AND delegationId = @delegationId )
|
||||
t1.id NOT IN ( SELECT userId FROM teacher_congress_delegate WHERE sessionId = @sessionId )
|
||||
AND
|
||||
t1.unitId in (@unitIds)
|
||||
AND
|
||||
(t1.loginname like @keyWord or username like @keyWord)
|
||||
""");
|
||||
sql.setParam("sessionId", param.getSessionId());
|
||||
sql.setParam("delegationId", param.getDelegationId());
|
||||
sql.setParam("unitIds", unitIds);
|
||||
sql.setParam("keyWord", "%" + param.getKeyWord() + "%");
|
||||
Pagination pagination = sysUserService.listPageMap(1, 50, sql);
|
||||
if (ObjectUtil.isEmpty(pagination.getList())) {
|
||||
// 可选人员为空时,额外检查当前关键字是否命中了已存在代表,给出重复新增提示。
|
||||
List<Teacher_congress_delegate> repeatDelegates = dao.query(Teacher_congress_delegate.class,
|
||||
Cnd.where(Teacher_congress_delegate::getSessionId, "=", param.getSessionId())
|
||||
.and(Cnd.exps(Teacher_congress_delegate::getLoginName, "like", "%" + param.getKeyWord() + "%")
|
||||
.or(Teacher_congress_delegate::getUserName, "like", "%" + param.getKeyWord() + "%"))
|
||||
.limit(1, 1));
|
||||
if (ObjectUtil.isNotEmpty(repeatDelegates)) {
|
||||
Teacher_congress_delegate repeatDelegate = repeatDelegates.get(0);
|
||||
return Result.error("工号" + repeatDelegate.getLoginName() + " " + repeatDelegate.getUserName() + "已是当前届次代表,不能重复新增");
|
||||
}
|
||||
}
|
||||
return Result.success(pagination.getList());
|
||||
}
|
||||
|
||||
|
||||
+25
@@ -21,6 +21,8 @@ import com.budwk.app.flow.service.FlowCommonService;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.sys.services.SysUserService;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.TeacherCongressDelegatePush;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate;
|
||||
@@ -66,6 +68,10 @@ public class TeacherCongressDelegatePushZgAuditController {
|
||||
|
||||
@Inject
|
||||
private FlowCommonService flowCommonService;
|
||||
@Inject
|
||||
private SysUserService sysUserService;
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/democratic/teachercongress/delegate/push/zcAudit.html")
|
||||
@@ -255,6 +261,8 @@ public class TeacherCongressDelegatePushZgAuditController {
|
||||
userRole.setTcSessionId(delegatePush.getSessionId());
|
||||
baseService.dao().insert(delegate);
|
||||
// baseService.dao().insert(userRole);
|
||||
// 资格审查通过进入代表库后,同步设置教代会代表角色,保证用户立即拥有正式/列席代表权限。
|
||||
insertDelegateUserRole(userRole);
|
||||
|
||||
// 去改改用户表的手机号
|
||||
baseService.dao().update(
|
||||
@@ -337,6 +345,8 @@ public class TeacherCongressDelegatePushZgAuditController {
|
||||
userRole.setTcSessionId(delegatePush.getSessionId());
|
||||
|
||||
baseService.dao().insert(delegate);
|
||||
// 资格审查批量通过进入代表库后,同步设置教代会代表角色,保证用户立即拥有正式/列席代表权限。
|
||||
insertDelegateUserRole(userRole);
|
||||
|
||||
// 去改改用户表的手机号
|
||||
baseService.dao().update(
|
||||
@@ -358,4 +368,19 @@ public class TeacherCongressDelegatePushZgAuditController {
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步代表角色关系。
|
||||
* 资格审查通过后代表库会新增记录,这里补充 sys_user_role,避免用户已是代表但没有代表角色。
|
||||
*
|
||||
* @param userRole 待写入的代表角色关系,必须包含 userId、roleId、tcSessionId
|
||||
*/
|
||||
private void insertDelegateUserRole(Sys_user_role userRole) {
|
||||
baseService.dao().clear(Sys_user_role.class, Cnd.where(Sys_user_role::getUserId, "=", userRole.getUserId())
|
||||
.and(Sys_user_role::getRoleId, "=", userRole.getRoleId())
|
||||
.and(Sys_user_role::getTcSessionId, "=", userRole.getTcSessionId()));
|
||||
baseService.dao().insert(userRole);
|
||||
sysUserService.clearCache();
|
||||
sysRoleService.clearCache();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -190,8 +190,8 @@ public class TeacherCongressDelegateTransitionController {
|
||||
// 当前代表团
|
||||
Teacher_congress_delegation delegation = dao.fetch(Teacher_congress_delegation.class, delegationId);
|
||||
|
||||
// 当前届次代表团代表
|
||||
List<Teacher_congress_delegate> delegates = dao.query(Teacher_congress_delegate.class, Cnd.where(Teacher_congress_delegate::getSessionId, "=", sessionId).and(Teacher_congress_delegate::getDelegationId, "=", delegation.getId()));
|
||||
// 当前届次全部代表。转出人员本届已不在当前代表团,必须用全部代表与上一届代表做对比。
|
||||
List<Teacher_congress_delegate> delegates = dao.query(Teacher_congress_delegate.class, Cnd.where(Teacher_congress_delegate::getSessionId, "=", sessionId));
|
||||
dao.fetchLinks(delegates, "delegation");
|
||||
|
||||
// 上一届次代表
|
||||
@@ -240,8 +240,8 @@ public class TeacherCongressDelegateTransitionController {
|
||||
// 减少代表数据 (上一届次是代表 本届次不是代表)
|
||||
List<NutMap> reduceUser = delegateFull.stream().filter(delegate -> delegate.getString("lastDelegationCode").equals(delegation.getCode()) && StrUtil.isBlank(delegate.getString("delegationCode"))).toList();
|
||||
|
||||
// 当前代表人数
|
||||
int currentCount = delegates.size();
|
||||
// 当前代表人数只统计本届仍在当前代表团的人员。
|
||||
long currentCount = delegateFull.stream().filter(delegate -> delegate.getString("delegationCode").equals(delegation.getCode())).count();
|
||||
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("addUser", addUser);
|
||||
|
||||
Reference in New Issue
Block a user