This commit is contained in:
@jyuhsin
2025-12-20 15:47:29 +08:00
parent 48df1417e3
commit 82cfccaf72
8 changed files with 417 additions and 292 deletions
@@ -329,6 +329,7 @@ public class SysUnitController {
parentId = ""; parentId = "";
} }
unit.setCreatedBy(SecurityUtil.getUserId()); unit.setCreatedBy(SecurityUtil.getUserId());
unit.setUnitType("用户自建");
unit.setUnitTypeCode(1); unit.setUnitTypeCode(1);
sysUnitService.save(unit, parentId); sysUnitService.save(unit, parentId);
return Result.success(); return Result.success();
@@ -219,7 +219,6 @@ public class FamilyActivityApplyController {
return Result.error(99, "报名信息为空"); return Result.error(99, "报名信息为空");
} }
currentFamilyNumber = currentFamilyNumber != null ? currentFamilyNumber : 0;
FamilyCourse course = dao.fetch(FamilyCourse.class, courseId); FamilyCourse course = dao.fetch(FamilyCourse.class, courseId);
FamilyType type = dao.fetch(FamilyType.class, course.getCourseType()); FamilyType type = dao.fetch(FamilyType.class, course.getCourseType());
FamilyActivity activity = dao.fetch(FamilyActivity.class, course.getActivityId()); FamilyActivity activity = dao.fetch(FamilyActivity.class, course.getActivityId());
@@ -238,10 +237,12 @@ public class FamilyActivityApplyController {
return Result.error(99,"抱歉,您没有此次活动的权限"); return Result.error(99,"抱歉,您没有此次活动的权限");
} }
if(type.getIsBringFamily() && currentFamilyNumber == 0) { if(type.getIsBringFamily() && currentFamilyNumber != null && currentFamilyNumber == 0) {
return Result.error(99, "%s信息不能为空".formatted(activity.getKeyWord())); return Result.error(99, "%s信息不能为空".formatted(activity.getKeyWord()));
} }
currentFamilyNumber = currentFamilyNumber != null ? currentFamilyNumber : 0;
//判断是否报名 //判断是否报名
boolean courseByUser = familyActivityService.isSignCourseByUser(courseId, SecurityUtil.getUserId()); boolean courseByUser = familyActivityService.isSignCourseByUser(courseId, SecurityUtil.getUserId());
if(courseByUser) { if(courseByUser) {
@@ -1,14 +1,20 @@
package com.budwk.app.zhgh.democratic.grassrootscongress.controller.material; package com.budwk.app.zhgh.democratic.grassrootscongress.controller.material;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.json.JSONObject;
import com.budwk.app.base.page.Pagination; import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result; import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.flow.enums.ProcessInstanceStateEnum; import com.budwk.app.flow.enums.ProcessInstanceStateEnum;
import com.budwk.app.sys.models.Sys_file;
import com.budwk.app.sys.utils.SysFileMinIoUtil;
import com.budwk.app.zhgh.democratic.grassrootscongress.models.GrassrootsCongressMeetingInfo;
import com.budwk.app.zhgh.democratic.grassrootscongress.param.GrassrootsCongressPageForm; import com.budwk.app.zhgh.democratic.grassrootscongress.param.GrassrootsCongressPageForm;
import com.budwk.app.zhgh.democratic.grassrootscongress.service.GrassrootsCongressService; import com.budwk.app.zhgh.democratic.grassrootscongress.service.GrassrootsCongressService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.nutz.dao.Cnd; import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls; import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql; import org.nutz.dao.sql.Sql;
@@ -18,6 +24,13 @@ import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Ok;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@Slf4j @Slf4j
@IocBean @IocBean
@Ok("json:full") @Ok("json:full")
@@ -60,4 +73,48 @@ public class GrassrootsCongressMaterialStatisticsController {
Pagination<NutMap> pagination = grassrootsCongressService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); Pagination<NutMap> pagination = grassrootsCongressService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination); return Result.success(pagination);
} }
@At
@Ok("void")
@SaCheckPermission("grassrootsCongress.material.statistics")
public void downloadFiles(GrassrootsCongressPageForm pageForm,
HttpServletResponse response) {
Sql sql = Sqls.create("""
SELECT
info.*
FROM
grassroots_congress_materials_info info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("ins.state","=", ProcessInstanceStateEnum.FINISHED.getCode());
cnd.andEX("YEAR(info.createdTime)", "=", pageForm.getYear());
cnd.desc("info.createdTime");
sql.setCondition(cnd);
List<GrassrootsCongressMeetingInfo> list = grassrootsCongressService.listEntity(sql);
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(bos);
for (GrassrootsCongressMeetingInfo info : list) {
// 循环下载文件
List<JSONObject> files = info.getFiles();
for (JSONObject file : files) {
Sys_file sysFile = grassrootsCongressService.dao().fetch(Sys_file.class, Cnd.where(Sys_file::getDownloadPath, "=", file.get("url")));
byte[] bytes = SysFileMinIoUtil.getFileBytes(sysFile.getBucket(), sysFile.getStoragePath());
ZipEntry zipEntry = new ZipEntry(sysFile.getName());
zipOutputStream.putNextEntry(zipEntry);
zipOutputStream.write(bytes);
zipOutputStream.closeEntry();
}
}
zipOutputStream.close();
CommonDownloadUtil.download("资料汇总压缩包.zip", bos.toByteArray(), response);
} catch (Exception e) {
e.printStackTrace();
}
}
} }
@@ -50,310 +50,332 @@ import java.util.Optional;
@Api(value = "/platform/teacherCongress/delegation", tags = "教代会代表团管理") @Api(value = "/platform/teacherCongress/delegation", tags = "教代会代表团管理")
public class TeacherCongressDelegationController { public class TeacherCongressDelegationController {
@Inject @Inject
private Dao dao; private Dao dao;
@Inject @Inject
private BaseService baseService; private BaseService baseService;
@Inject @Inject
private SysUserService sysUserService; private SysUserService sysUserService;
@Inject @Inject
private SysRoleService sysRoleService; private SysRoleService sysRoleService;
@At("") @At("")
@Ok("beetl:/platform/zhgh/democratic/teachercongress/delegation/index.html") @Ok("beetl:/platform/zhgh/democratic/teachercongress/delegation/index.html")
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public void index() { public void index() {
} }
@At @At
@POST @POST
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
@ApiOperation(value = "届次信息列表", httpMethod = "POST") @ApiOperation(value = "届次信息列表", httpMethod = "POST")
public Result pageData(@Valid @ApiParam(value = "分页表单") PageForm pageForm, @Valid @ApiParam(value = "届次ID") String sessionId) { public Result pageData(@Valid @ApiParam(value = "分页表单") PageForm pageForm, @Valid @ApiParam(value = "届次ID") String sessionId) {
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD); Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
Sys_role role2 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD); Sys_role role2 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
Sys_role role3 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT); Sys_role role3 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT);
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
tcd.*, tcd.*,
tcs.fullName as sessionName, tcs.fullName as sessionName,
GROUP_CONCAT(u.username,u.loginname) as delegationHead, GROUP_CONCAT(u.username,u.loginname) as delegationHead,
GROUP_CONCAT(u2.username,u2.loginname) as viceDelegationHead, GROUP_CONCAT(u2.username,u2.loginname) as viceDelegationHead,
GROUP_CONCAT(u3.username,u3.loginname) as delegationContact GROUP_CONCAT(u3.username,u3.loginname) as delegationContact
FROM FROM
teacher_congress_delegation tcd teacher_congress_delegation tcd
LEFT JOIN teacher_congress_session tcs ON tcs.id = tcd.sessionId LEFT JOIN teacher_congress_session tcs ON tcs.id = tcd.sessionId
LEFT JOIN sys_user_role sur ON sur.tcDelegationId = tcd.id AND sur.roleId = @roleId LEFT JOIN sys_user_role sur ON sur.tcDelegationId = tcd.id AND sur.roleId = @roleId
LEFT JOIN sys_user u ON u.id = sur.userId LEFT JOIN sys_user u ON u.id = sur.userId
LEFT JOIN sys_user_role sur2 ON sur2.tcDelegationId = tcd.id AND sur2.roleId = @roleId2 LEFT JOIN sys_user_role sur2 ON sur2.tcDelegationId = tcd.id AND sur2.roleId = @roleId2
LEFT JOIN sys_user u2 ON u2.id = sur2.userId LEFT JOIN sys_user u2 ON u2.id = sur2.userId
LEFT JOIN sys_user_role sur3 ON sur3.tcDelegationId = tcd.id AND sur3.roleId = @roleId3 LEFT JOIN sys_user_role sur3 ON sur3.tcDelegationId = tcd.id AND sur3.roleId = @roleId3
LEFT JOIN sys_user u3 ON u3.id = sur3.userId LEFT JOIN sys_user u3 ON u3.id = sur3.userId
$condition"""); $condition""");
sql.setParam("roleId", role.getId()); sql.setParam("roleId", role.getId());
sql.setParam("roleId2", role2.getId()); sql.setParam("roleId2", role2.getId());
sql.setParam("roleId3", role3.getId()); sql.setParam("roleId3", role3.getId());
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("tcd.sessionId", "=", sessionId); cnd.and("tcd.sessionId", "=", sessionId);
cnd.asc("tcd.code"); cnd.asc("tcd.code");
cnd.groupBy("tcd.id"); cnd.groupBy("tcd.id");
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
cnd.where().andLike("name", pageForm.getSearchKeyword()); cnd.where().andLike("name", pageForm.getSearchKeyword());
} }
cnd.asc("tcd.code"); cnd.asc("tcd.code");
sql.setCondition(cnd); sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination); return Result.success(pagination);
} }
@At @At
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result tree(String sessionId) { public Result tree(String sessionId) {
List<TreeNode<String>> nodeList = CollUtil.newArrayList(); List<TreeNode<String>> nodeList = CollUtil.newArrayList();
nodeList.add(new TreeNode<>("教代会代表团", "0", "教代会代表团", 1000)); nodeList.add(new TreeNode<>("教代会代表团", "0", "教代会代表团", 1000));
List<Teacher_congress_delegation> delegations = dao.query(Teacher_congress_delegation.class, Cnd.where("sessionId", "=", sessionId).asc("code")); List<Teacher_congress_delegation> delegations = dao.query(Teacher_congress_delegation.class, Cnd.where("sessionId", "=", sessionId).asc("code"));
for (int i = 0; i < delegations.size(); i++) { for (int i = 0; i < delegations.size(); i++) {
nodeList.add(new TreeNode<>(delegations.get(i).getId(), "教代会代表团", delegations.get(i).getName(), i)); nodeList.add(new TreeNode<>(delegations.get(i).getId(), "教代会代表团", delegations.get(i).getName(), i));
} }
List<Tree<String>> treeList = TreeUtil.build(nodeList, "0"); List<Tree<String>> treeList = TreeUtil.build(nodeList, "0");
return Result.success(treeList); return Result.success(treeList);
} }
@At @At
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result insert(Teacher_congress_delegation delegation) { public Result insert(Teacher_congress_delegation delegation) {
dao.insert(delegation); dao.insert(delegation);
return Result.success(); return Result.success();
} }
@At @At
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result update(Teacher_congress_delegation delegation) { public Result update(Teacher_congress_delegation delegation) {
dao.updateIgnoreNull(delegation); dao.updateIgnoreNull(delegation);
return Result.success(); return Result.success();
} }
@At @At
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
@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);
return Result.success(); return Result.success();
} }
@At @At
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result findOne(@Valid String id) { public Result findOne(@Valid String id) {
Teacher_congress_delegation delegation = dao.fetch(Teacher_congress_delegation.class, id); Teacher_congress_delegation delegation = dao.fetch(Teacher_congress_delegation.class, id);
return Result.success(delegation); return Result.success(delegation);
} }
/** /**
* 组成单位数据 * 组成单位数据
* *
* @param delegationId 代表团ID * @param delegationId 代表团ID
* @return * @return
*/ */
@At @At
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result partUnitTransferData(@Valid String delegationId, @Valid String sessionId) { public Result partUnitTransferData(@Valid String delegationId, @Valid String sessionId) {
//找出本届次已经设置了代表团的所有单位 //找出本届次已经设置了代表团的所有单位
List<Teacher_congress_delegation_unit> delegationUnits = dao.query(Teacher_congress_delegation_unit.class, Cnd.where("sessionId", "=", sessionId)); List<Teacher_congress_delegation_unit> delegationUnits = dao.query(Teacher_congress_delegation_unit.class, Cnd.where("sessionId", "=", sessionId));
List<String> unitIds = delegationUnits.stream().map(Teacher_congress_delegation_unit::getUnitId).toList(); List<String> unitIds = delegationUnits.stream().map(Teacher_congress_delegation_unit::getUnitId).toList();
//找出本代表团的单位 //找出本代表团的单位
List<String> selectUnitIds = delegationUnits.stream().filter(unit -> unit.getDelegationId().equals(delegationId)).map(Teacher_congress_delegation_unit::getUnitId).toList(); List<String> selectUnitIds = delegationUnits.stream().filter(unit -> unit.getDelegationId().equals(delegationId)).map(Teacher_congress_delegation_unit::getUnitId).toList();
SqlExpressionGroup seg = new SqlExpressionGroup(); SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orEX("id", "not in", unitIds); seg.orEX("id", "not in", unitIds);
seg.orEX("id", "in", selectUnitIds); seg.orEX("id", "in", selectUnitIds);
// Cnd cnd = Cnd.where("unitLevel", "=", 2); // Cnd cnd = Cnd.where("unitLevel", "=", 2);
Cnd cnd = Cnd.where("unitTypeCode", "=", "1"); Cnd cnd = Cnd.where("unitTypeCode", "=", "1");
if (!seg.isEmpty()) { if (!seg.isEmpty()) {
cnd.and(seg); cnd.and(seg);
} }
cnd.asc("unitcode"); cnd.asc("unitcode");
List<Sys_unit> units = dao.query(Sys_unit.class, cnd); List<Sys_unit> units = dao.query(Sys_unit.class, cnd);
NutMap transferData = NutMap.NEW().addv("selectUnitIds", selectUnitIds).addv("allUnits", units); NutMap transferData = NutMap.NEW().addv("selectUnitIds", selectUnitIds).addv("allUnits", units);
return Result.success(transferData); return Result.success(transferData);
} }
@At @At
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
public Result partUnitSet(@Valid String delegationId, @Valid String sessionId, @Param("unitIds") String[] unitIds) { public Result partUnitSet(@Valid String delegationId, @Valid String sessionId, @Param("unitIds") String[] unitIds) {
dao.clear(Teacher_congress_delegation_unit.class, Cnd.where("delegationId", "=", delegationId).and("sessionId", "=", sessionId)); dao.clear(Teacher_congress_delegation_unit.class, Cnd.where("delegationId", "=", delegationId).and("sessionId", "=", sessionId));
List<Teacher_congress_delegation_unit> insertData = Arrays.stream(unitIds).map(unitId -> { List<Teacher_congress_delegation_unit> insertData = Arrays.stream(unitIds).map(unitId -> {
Teacher_congress_delegation_unit delegationUnit = new Teacher_congress_delegation_unit(); Teacher_congress_delegation_unit delegationUnit = new Teacher_congress_delegation_unit();
delegationUnit.setUnitId(unitId); delegationUnit.setUnitId(unitId);
delegationUnit.setDelegationId(delegationId); delegationUnit.setDelegationId(delegationId);
delegationUnit.setSessionId(sessionId); delegationUnit.setSessionId(sessionId);
return delegationUnit; return delegationUnit;
}).toList(); }).toList();
dao.insert(insertData); dao.insert(insertData);
return Result.success(); return Result.success();
} }
/** /**
* 查询代表团组成单位 * 查询代表团组成单位
* *
* @param pageForm 分页 * @param pageForm 分页
* @param sessionId 届次 * @param sessionId 届次
* @param delegationId 代表团id * @param delegationId 代表团id
*/ */
@At @At
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result partUnitPageData(@Valid PageForm pageForm, @Valid String sessionId, @Valid String delegationId) { public Result partUnitPageData(@Valid PageForm pageForm, @Valid String sessionId, @Valid String delegationId) {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
t2.id, t2.id,
t2.`name` t2.`name`
FROM FROM
teacher_congress_delegation_unit t1 teacher_congress_delegation_unit t1
LEFT JOIN sys_unit t2 ON t2.id = t1.unitId LEFT JOIN sys_unit t2 ON t2.id = t1.unitId
$condition $condition
"""); """);
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("t1.delegationId", "=", delegationId); cnd.and("t1.delegationId", "=", delegationId);
cnd.and("t1.sessionId", "=", sessionId); cnd.and("t1.sessionId", "=", sessionId);
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) { if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
cnd.where().andLike("t2.name", pageForm.getSearchKeyword()); cnd.where().andLike("t2.name", pageForm.getSearchKeyword());
} }
sql.setCondition(cnd); sql.setCondition(cnd);
Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination); return Result.success(pagination);
} }
/** /**
* 查询非团长用户 * 查询非团长用户
* *
* @param sessionId * @param sessionId
* @param delegationId * @param delegationId
* @return * @return
*/ */
@At @At
@SaCheckPermission("tc.delegation") @SaCheckPermission("tc.delegation")
public Result notHeadUser(@Valid String sessionId, @Valid String delegationId, String keyWord) { public Result notHeadUser(@Valid String sessionId, @Valid String delegationId, String keyWord) {
Sql sql = Sqls.create("select userId,loginName,userName,unitName from teacher_congress_delegate $condition"); Sql sql = Sqls.create("select userId,loginName,userName,unitName from teacher_congress_delegate $condition");
Cnd cnd = Cnd.NEW(); Cnd cnd = Cnd.NEW();
cnd.and("delegationId", "=", delegationId); cnd.and("delegationId", "=", delegationId);
cnd.and("sessionId", "=", sessionId); cnd.and("sessionId", "=", sessionId);
SqlExpressionGroup seg = new SqlExpressionGroup(); SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("loginName", keyWord); seg.orLike("loginName", keyWord);
seg.orLike("userName", keyWord); seg.orLike("userName", keyWord);
cnd.and(seg); cnd.and(seg);
sql.setCondition(cnd); sql.setCondition(cnd);
Pagination pagination = sysUserService.listPageMap(1, 10, sql); Pagination pagination = sysUserService.listPageMap(1, 10, sql);
return Result.success(pagination.getList()); return Result.success(pagination.getList());
} }
/** @At
* 查询团长 @SaCheckPermission("tc.delegation")
* public Result notContactUser(@Valid String sessionId, @Valid String delegationId, String keyWord) {
* @param sessionId List<Sys_user_role> userRoleList = dao.query(
* @param delegationId Sys_user_role.class,
* @return Cnd.where(Sys_user_role::getTcSessionId, "=", sessionId)
*/ .and(Sys_user_role::getTcDelegationId, "=", delegationId)
@At );
@SaCheckPermission("tc.delegation") List<String> list = userRoleList.stream().map(Sys_user_role::getUserId).distinct().toList();
public Result headUser(@Valid String sessionId, @Valid String delegationId, @Param(value = "type", df = "TEACHER_CONGRESS_DELEGATION_HEAD") String type) {
Sys_role role = null;
if (type.equals(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD.name())) {
role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
} else if (type.equals(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD.name())) {
role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
} else if (type.equals(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT.name())) {
role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT);
} else {
throw new BaseException("参数错误");
}
Record record = dao.fetch("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId())); Sql sql = Sqls.create("select id as userId,loginName,userName,unitName from vw_user $condition");
String userId = Optional.ofNullable(record).map(r -> r.getString("userId")).orElse(null); Cnd cnd = Cnd.NEW();
cnd.and("id", "not in", list);
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("loginName", keyWord);
seg.orLike("userName", keyWord);
cnd.and(seg);
sql.setCondition(cnd);
Pagination pagination = sysUserService.listPageMap(1, 10, sql);
return Result.success(pagination.getList());
}
Sql sql = Sqls.create(""" /**
SELECT * 查询团长
u.id as userId, *
u.loginname as loginName, * @param sessionId
u.username as userName, * @param delegationId
u.mobile, * @return
n.name as unitName */
FROM @At
sys_user u @SaCheckPermission("tc.delegation")
LEFT JOIN sys_unit n on n.id = u.unitId public Result headUser(@Valid String sessionId, @Valid String delegationId, @Param(value = "type", df = "TEACHER_CONGRESS_DELEGATION_HEAD") String type) {
WHERE Sys_role role = null;
u.id = @userId if (type.equals(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD.name())) {
"""); role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
sql.setParam("userId", userId); } else if (type.equals(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD.name())) {
sql.setCallback(Sqls.callback.map()); role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
dao.execute(sql); } else if (type.equals(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT.name())) {
NutMap user = (NutMap) sql.getResult(); role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT);
return Result.success().addData(user); } else {
} throw new BaseException("参数错误");
}
/** Record record = dao.fetch("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId()));
* 设置团长 String userId = Optional.ofNullable(record).map(r -> r.getString("userId")).orElse(null);
*
* @param delegationId 代表团ID
* @param sessionId 届次ID
* @param userId 团长id
* @param viceUserId 副团长id
* @param contactUserId 联络人
* @return
*/
@At
@SaCheckPermission("tc.delegation")
@Aop(TransAop.READ_COMMITTED)
public Result insertHead(@Valid String delegationId, @Valid String sessionId, @Valid String userId, @Valid String viceUserId, String contactUserId) {
// 团长
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role.getId()));
dao.insert("sys_user_role", Chain.make("userId", userId).add("roleId", role.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId));
// 副团长 Sql sql = Sqls.create("""
Sys_role role2 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD); SELECT
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role2.getId())); u.id as userId,
dao.insert("sys_user_role", Chain.make("userId", viceUserId).add("roleId", role2.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId)); u.loginname as loginName,
u.username as userName,
u.mobile,
n.name as unitName
FROM
sys_user u
LEFT JOIN sys_unit n on n.id = u.unitId
WHERE
u.id = @userId
""");
sql.setParam("userId", userId);
sql.setCallback(Sqls.callback.map());
dao.execute(sql);
NutMap user = (NutMap) sql.getResult();
return Result.success().addData(user);
}
// 联络人 /**
Sys_role role3 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT); * 设置团长
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role3.getId())); *
dao.insert("sys_user_role", Chain.make("userId", contactUserId).add("roleId", role3.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId)); * @param delegationId 代表团ID
* @param sessionId 届次ID
* @param userId 团长id
* @param viceUserId 副团长id
* @param contactUserId 联络人
* @return
*/
@At
@SaCheckPermission("tc.delegation")
@Aop(TransAop.READ_COMMITTED)
public Result insertHead(@Valid String delegationId, @Valid String sessionId, @Valid String userId, @Valid String viceUserId, String contactUserId) {
// 团长
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role.getId()));
dao.insert("sys_user_role", Chain.make("userId", userId).add("roleId", role.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId));
sysUserService.clearCache(); // 副团长
return Result.success(); Sys_role role2 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
} dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role2.getId()));
dao.insert("sys_user_role", Chain.make("userId", viceUserId).add("roleId", role2.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId));
/** // 联络人
* 删除团长角色 Sys_role role3 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT);
* dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role3.getId()));
* @param delegationId dao.insert("sys_user_role", Chain.make("userId", contactUserId).add("roleId", role3.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId));
* @param sessionId
* @param userId sysUserService.clearCache();
* @return return Result.success();
*/ }
@At
@SaCheckPermission("tc.delegation") /**
public Result deleteHead(@Valid String delegationId, @Valid String sessionId, @Valid String userId) { * 删除团长角色
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD); *
//先删除角色 * @param delegationId
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role.getId()).and(Sys_user_role::getUserId, "=", userId)); * @param sessionId
sysUserService.clearCache(); * @param userId
return Result.success(); * @return
} */
@At
@SaCheckPermission("tc.delegation")
public Result deleteHead(@Valid String delegationId, @Valid String sessionId, @Valid String userId) {
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
//先删除角色
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role.getId()).and(Sys_user_role::getUserId, "=", userId));
sysUserService.clearCache();
return Result.success();
}
} }
@@ -79,13 +79,25 @@
<el-form-item label="" label-width="0" v-for="(nr,idx) in formData.nrs" :key="idx"> <el-form-item label="" label-width="0" v-for="(nr,idx) in formData.nrs" :key="idx">
<el-row type="flex" justify="space-between"> <el-row type="flex" justify="space-between">
<el-input v-model="nr.content" v-if="!is_view" maxlength="30" style="width: 50%" placeholder="请填写考核内容"> <div style="width: 80%">
<template slot="prepend"><span>{{ idx + 1 }}</span></template> <el-input v-model="nr.content" :disabled="is_view" maxlength="30" style="width: 68%" placeholder="请填写考核内容">
</el-input> <template slot="prepend"><span>{{ idx + 1 }}</span></template>
<span style="background-color: #F6F7FA;" v-else>{{ idx + 1 }}&nbsp;&nbsp;{{ nr.content }}</span> </el-input>
<el-select v-model="nr.auditUser" :disabled="is_view" placeholder="请根据姓名或工号选择审核人" style="width: 300px"
remote reserve-keyword :remote-method="selectUser"
clearable filterable>
<el-option
v-for="item in userOptions"
:key="item.loginName"
:label="item.userName + item.loginName + '(' + item.unitName + ')'"
:value="item.loginName">
</el-option>
</el-select>
</div>
<div style="display: flex; gap: 10px;"> <div style="display: flex; gap: 10px;">
<el-button v-if="!is_view" size="small" icon="el-icon-plus" type="primary" <el-button v-if="!is_view" size="small" icon="el-icon-plus" type="primary"
@click="formData.nrs.push({bzs:[{}]})"> @click="formData.nrs.push({bzs:[{}], auditUser: ''})">
添加内容 添加内容
</el-button> </el-button>
<el-button v-if="!is_view" size="small" :disabled="formData.nrs.length<=1" type="danger" <el-button v-if="!is_view" size="small" :disabled="formData.nrs.length<=1" type="danger"
@@ -195,7 +207,7 @@
<el-table-column v-if="!is_view" label="操作" width="100px"> <el-table-column v-if="!is_view" label="操作" width="100px">
<template v-slot="{row,$index}"> <template v-slot="{row,$index}">
<el-button size="mini" :disabled="nr.bzs.length<=1 || (!row.canDelete && row.id)" type="danger" icon="el-icon-delete" <el-button size="mini" :disabled="nr.bzs.length<=1 || (!row.canDelete && row.id !== null)" type="danger" icon="el-icon-delete"
@click="nr.bzs.splice($index,1)"></el-button> @click="nr.bzs.splice($index,1)"></el-button>
</template> </template>
</el-table-column> </el-table-column>
@@ -217,7 +229,7 @@
</template> </template>
<script nonce="${cspNonce!}"> <script>
const METHOD_NAME = "change" const METHOD_NAME = "change"
@@ -232,7 +244,8 @@ module.exports = {
default: function() { default: function() {
return { return {
nrs: [{ nrs: [{
bzs: [{}] bzs: [{}],
auditUser: '',
}], }],
}; };
} }
@@ -265,10 +278,23 @@ module.exports = {
{moduleName:'二级教代会',id:'secteameet'}, {moduleName:'二级教代会',id:'secteameet'},
{moduleName:'慰问/补助',id:'ConandDif'}, {moduleName:'慰问/补助',id:'ConandDif'},
], ],
formData:{} formData:{},
userOptions: [],
} }
}, },
methods: { methods: {
async selectUser(query) {
if (query) {
this.userOptions = []
this.userOptions = await this.getUserList(query)
}
},
async getUserList(query) {
const resp = await this.$axios.post("/platform/ghkh/Xjkhzb/getUserByKeyWord", {
keyWord: query,
})
return resp.data
},
async getByZbData() { async getByZbData() {
this.$axios.post('/platform/ghkh/khzb/edit', {id: this.formData.zbId}).then(res => { this.$axios.post('/platform/ghkh/khzb/edit', {id: this.formData.zbId}).then(res => {
if (res.code === 0) { if (res.code === 0) {
@@ -328,16 +354,17 @@ module.exports = {
return sums; return sums;
} }
}, },
created() { async created() {
this.getZbList() this.getZbList()
if (!this.form_data || !Object.keys(this.form_data).length) { if (!this.form_data || !Object.keys(this.form_data).length) {
this.formData = { this.formData = {
nrs: [{ nrs: [{
bzs: [{}] bzs: [{}],
auditUser: '',
}], }],
} }
}else{ } else {
this.formData=this.form_data this.formData = this.form_data
// 初始化时间范围数据用于编辑 // 初始化时间范围数据用于编辑
if (this.formData.startDateTime && this.formData.endDateTime) { if (this.formData.startDateTime && this.formData.endDateTime) {
this.$set(this.formData, 'fillTimeRange', [this.formData.startDateTime, this.formData.endDateTime]); this.$set(this.formData, 'fillTimeRange', [this.formData.startDateTime, this.formData.endDateTime]);
@@ -345,6 +372,19 @@ module.exports = {
if (this.formData.startApplyTime && this.formData.endApplyTime) { if (this.formData.startApplyTime && this.formData.endApplyTime) {
this.$set(this.formData, 'appealTimeRange', [this.formData.startApplyTime, this.formData.endApplyTime]); this.$set(this.formData, 'appealTimeRange', [this.formData.startApplyTime, this.formData.endApplyTime]);
} }
// 回显审核人
if (this.formData.nrs.length > 0) {
const users = [...new Set(
this.formData.nrs
.map(o => o.auditUser)
.filter(o => o != null && o !== '')
)]
let array = []
for (const o of users) {
array = array.concat(await this.getUserList(o))
}
this.userOptions = array
}
} }
} }
} }
@@ -27,7 +27,7 @@
<template v-else> <template v-else>
<file-upload <file-upload
:value.sync="data.files" :value.sync="data.files"
:upload_number="20" :upload_number="50"
upload_mode="drag" upload_mode="drag"
upload_result_category="array" upload_result_category="array"
complete_result complete_result
@@ -40,7 +40,7 @@
</el-form> </el-form>
</template> </template>
<script nonce="${cspNonce!}"> <script>
const METHOD_NAME = "change" const METHOD_NAME = "change"
@@ -26,6 +26,7 @@ layout("/layouts/platform.html"){
</el-card> </el-card>
<el-card shadow="never"> <el-card shadow="never">
<table-tool label="资料列表"> <table-tool label="资料列表">
<el-button @click="downloadFiles" icon="el-icon-download" size="small" type="primary">一键下载</el-button>
</table-tool> </table-tool>
<el-table :data="tableData" @sort-change="pageOrder"> <el-table :data="tableData" @sort-change="pageOrder">
@@ -79,6 +80,9 @@ layout("/layouts/platform.html"){
} }
}, },
methods: { methods: {
downloadFiles() {
this.$downLoad('/platform/grassrootsCongress/material/statistics/downloadFiles', this.pageForm)
},
openView(row) { openView(row) {
this.$refs.guava.public(() => { this.$refs.guava.public(() => {
this.$refs.grassrootsCongressMaterialInfoRef.onOpen(row) this.$refs.grassrootsCongressMaterialInfoRef.onOpen(row)
@@ -40,7 +40,7 @@ const HEAD_FORM_TEMPLATE = {
<el-form-item prop="contactUserId" label="联络人"> <el-form-item prop="contactUserId" label="联络人">
<user-select v-model="formData.contactUserId" <user-select v-model="formData.contactUserId"
v-if="headDialogFormVisible" v-if="headDialogFormVisible"
api="/platform/teacherCongress/delegation/notHeadUser" api="/platform/teacherCongress/delegation/notContactUser"
:api_params="{sessionId:formData.sessionId,delegationId:formData.delegationId}" :api_params="{sessionId:formData.sessionId,delegationId:formData.delegationId}"
api_input_key_name="keyWord" api_input_key_name="keyWord"
:option_list="contactOptions" :option_list="contactOptions"
@@ -70,8 +70,8 @@ const HEAD_FORM_TEMPLATE = {
name: [{required: true, message: "必填", trigger: ["change", "blur"]}], name: [{required: true, message: "必填", trigger: ["change", "blur"]}],
code: [{required: true, message: "必填", trigger: ["change", "blur"]}], code: [{required: true, message: "必填", trigger: ["change", "blur"]}],
userId: [{required: true, message: "必填", trigger: ["change", "blur"]}], userId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
viceUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}], //viceUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
contactUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}] //contactUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}]
} }
} }
}, },