提案问题整改
This commit is contained in:
+3
-3
@@ -95,9 +95,9 @@ public class ProposalFeedbackEvaluationController {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("t.taskName", "=", "feedback");
|
||||
|
||||
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) {
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
}
|
||||
/* if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) {
|
||||
}*/
|
||||
cnd.and("ta.actorId", "in", List.of(SecurityUtil.getUserId()));
|
||||
|
||||
if (approval) {
|
||||
cnd.and("t.taskState", "in", List.of(ProcessTaskStateEnum.FINISHED.getCode(), ProcessTaskStateEnum.INTERRUPT.getCode()));
|
||||
|
||||
+4
-32
@@ -36,7 +36,6 @@ import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.*;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.Daos;
|
||||
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;
|
||||
@@ -201,43 +200,16 @@ public class TeacherCongressDelegateManageController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 代表调整搜索用户
|
||||
* 按姓名或工号搜索可添加到代表调整列表的人员。
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
* @param param sessionId 为必填的目标届次ID;keyWord 为必填的姓名或工号关键字,候选人员不限定为本届已有代表
|
||||
* @return Result,其 data 为最多10条人员记录;id、userId 均为用户ID,userName、loginName、sex、unionName、unitName 分别为姓名、工号、性别、工会和单位
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("tc.delegate.manage")
|
||||
@Ok("json:{ignoreNull:true}")
|
||||
public Result adjustUserList(@Valid TeacherCongressDelegateManageSearchAdjustUserParam param) {
|
||||
// Dao extDao = Daos.ext(dao, FieldFilter.create(Teacher_congress_delegate.class, "^id|userId|userName|loginName|unitName$"));
|
||||
// SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
// seg.orLike("userName", param.getKeyWord());
|
||||
// seg.orLike("loginName", param.getKeyWord());
|
||||
// List<Teacher_congress_delegate> list = extDao.query(Teacher_congress_delegate.class, Cnd.where("sessionId", "=", param.getSessionId()).and(seg).limit(1, 10));
|
||||
// return Result.success(list);
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.id AS userId,
|
||||
u.username AS userName,
|
||||
u.loginname AS loginName,
|
||||
u.sex,
|
||||
u.unionName,
|
||||
u.unitName
|
||||
FROM
|
||||
vw_user u
|
||||
LEFT JOIN teacher_congress_delegate tcd ON tcd.userId = u.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("u.username", param.getKeyWord());
|
||||
seg.orLike("u.loginname", param.getKeyWord());
|
||||
cnd.and(seg);
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = sysUserService.listPageMap(1, 10, sql);
|
||||
return Result.success(pagination.getList());
|
||||
return Result.success(teacherDelegateService.listAdjustUsers(param));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+9
@@ -5,6 +5,7 @@ import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.param.TeacherCongressDelegateManagePageParam;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.param.TeacherCongressDelegateManagePublicUserParam;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.param.TeacherCongressDelegateManageSearchAdjustUserParam;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -31,6 +32,14 @@ public interface TeacherCongressDelegateService extends BaseService<Teacher_cong
|
||||
*/
|
||||
List<NutMap> listPublicUsers(TeacherCongressDelegateManagePublicUserParam param);
|
||||
|
||||
/**
|
||||
* 按姓名或工号搜索代表调整候选人员,包含尚未成为本届代表的用户。
|
||||
*
|
||||
* @param param sessionId 为目标届次ID,不用于限制候选人员;keyWord 为姓名或工号关键字
|
||||
* @return 最多10条人员记录;id、userId 均为用户ID,userName、loginName、sex、unionName、unitName 分别为姓名、工号、性别、工会和单位
|
||||
*/
|
||||
List<NutMap> listAdjustUsers(TeacherCongressDelegateManageSearchAdjustUserParam param);
|
||||
|
||||
/**
|
||||
* 根据系统配置的单位或分工会组成关系,为尚未归团的代表自动分配代表团。
|
||||
*
|
||||
|
||||
+30
@@ -21,6 +21,7 @@ import com.budwk.app.zhgh.democratic.proposal.service.common.ProposalCommonServi
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.models.Teacher_congress_delegate;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.param.TeacherCongressDelegateManagePageParam;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.param.TeacherCongressDelegateManagePublicUserParam;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.param.TeacherCongressDelegateManageSearchAdjustUserParam;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.delegate.vo.TeacherCongressDelegateExcelVO;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.prepare.models.Teacher_congress_session;
|
||||
import com.budwk.app.zhgh.democratic.teachercongress.prepare.service.TeacherCongressSessionService;
|
||||
@@ -107,6 +108,35 @@ public class TeacherCongressDelegateServiceImpl extends BaseServiceImpl<Teacher_
|
||||
return listMap(sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 直接查询用户视图,避免同一用户的多届次代表记录将候选人员重复展开。
|
||||
*
|
||||
* @param param sessionId 为目标届次ID,保留跨届次及非代表用户的搜索范围;keyWord 为姓名或工号关键字
|
||||
* @return 最多10条 NutMap 人员记录,包含用户ID(id、userId)、姓名、工号、性别、工会和单位
|
||||
*/
|
||||
@Override
|
||||
public List<NutMap> listAdjustUsers(TeacherCongressDelegateManageSearchAdjustUserParam param) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.id AS userId,
|
||||
u.username AS userName,
|
||||
u.loginname AS loginName,
|
||||
u.sex,
|
||||
u.unionName,
|
||||
u.unitName
|
||||
FROM vw_user u
|
||||
$condition
|
||||
""");
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("u.username", param.getKeyWord());
|
||||
seg.orLike("u.loginname", param.getKeyWord());
|
||||
sql.setCondition(Cnd.NEW().and(seg));
|
||||
// 下拉候选列表沿用最多10条的限制,不依赖代表记录数量。
|
||||
sql.setPager(dao().createPager(1, 10));
|
||||
return listMap(sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 为当前届次未归团代表批量解析代表团,同时刷新其届次代表角色,避免重复生成角色关系。
|
||||
*/
|
||||
|
||||
+16
-11
@@ -16,17 +16,22 @@
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="userId" label="代表">
|
||||
<user-select v-model="formData.userId"
|
||||
ref="userSelectRef"
|
||||
v-if="dialogFormVisible"
|
||||
api="/platform/teacherCongress/delegate/manage/adjustUserList"
|
||||
:api_params="{sessionId:formData.sessionId}"
|
||||
api_input_key_name="keyWord"
|
||||
placeholder="请选择代表"
|
||||
:option_label_func="(item)=>{return item.userName + item.loginName + '(' + item.unitName + ')'}"
|
||||
></user-select>
|
||||
<el-button icon="el-icon-plus" type="primary" @click="move">添加到待调整列表</el-button>
|
||||
<el-form-item prop="userId" label="代表" style="flex: 1; min-width: 0; margin-left: 24px;">
|
||||
<!-- 选择框占用剩余空间,添加按钮保持在右侧并与输入框垂直对齐。 -->
|
||||
<div style="display: flex; align-items: center; gap: 12px;">
|
||||
<div style="flex: 1; min-width: 0;">
|
||||
<user-select v-model="formData.userId"
|
||||
ref="userSelectRef"
|
||||
v-if="dialogFormVisible"
|
||||
api="/platform/teacherCongress/delegate/manage/adjustUserList"
|
||||
:api_params="{sessionId:formData.sessionId}"
|
||||
api_input_key_name="keyWord"
|
||||
placeholder="请选择代表"
|
||||
:option_label_func="(item)=>{return item.userName + item.loginName + '(' + item.unitName + ')'}"
|
||||
></user-select>
|
||||
</div>
|
||||
<el-button icon="el-icon-plus" type="primary" style="flex-shrink: 0;" @click="move">添加到待调整列表</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user