移植体育活动组队报名

This commit is contained in:
2024-10-29 08:54:37 +08:00
parent 17b2d9f7aa
commit 894a8b4c6e
11 changed files with 647 additions and 444 deletions
+1 -1
View File
@@ -95,7 +95,7 @@ public class MainLauncher {
groupTemplate.registerTagFactory("cms_article_list", () -> ioc.get(CmsArticleListTag.class)); groupTemplate.registerTagFactory("cms_article_list", () -> ioc.get(CmsArticleListTag.class));
groupTemplate.registerTagFactory("cms_article", () -> ioc.get(CmsArticleTag.class)); groupTemplate.registerTagFactory("cms_article", () -> ioc.get(CmsArticleTag.class));
groupTemplate.registerTagFactory("cms_link_list", () -> ioc.get(CmsLinkListTag.class)); groupTemplate.registerTagFactory("cms_link_list", () -> ioc.get(CmsLinkListTag.class));
// init_sys(); init_sys();
init_task(); init_task();
init_proposal_undertake(); init_proposal_undertake();
ioc.get(Globals.class); ioc.get(Globals.class);
@@ -1,5 +1,6 @@
package io.v.nutz.activity.controller.school; package io.v.nutz.activity.controller.school;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result; import cn.wizzer.framework.base.Result;
import io.v.nutz.activity.models.*; import io.v.nutz.activity.models.*;
import io.v.nutz.activity.services.ActivitySchoolApplyService; import io.v.nutz.activity.services.ActivitySchoolApplyService;
@@ -155,7 +156,7 @@ public class ActivityApplyController {
} }
if (!ShiroUtil.hasAnyRoles("H04,sysadmin")) { if (!ShiroUtil.hasAnyRoles("H04,gh08,sysadmin")) {
cnd.and(new Static("JSON_CONTAINS(school.applyWay,JSON_ARRAY( 1))>0")); cnd.and(new Static("JSON_CONTAINS(school.applyWay,JSON_ARRAY( 1))>0"));
cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(ShiroUtil.getUserId()))); cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(ShiroUtil.getUserId())));
} }
@@ -199,15 +200,16 @@ public class ActivityApplyController {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
u.id, u.id,
u.username, u.username,
u.unitid, u.unitid,
u.loginname, u.loginname,
u.sex, u.sex,
u.birthday, u.birthday,
u.mobile, un.`name` unitname,
un.`name` unitname uni.`id` unionId,
uni.`unionname` unionName
FROM FROM
sys_user u `user` u
LEFT JOIN activity_basic_unit un ON u.unitid = un.id LEFT JOIN activity_basic_unit un ON u.unitid = un.id
LEFT JOIN activity_basic_union uni ON un.unionid=uni.id LEFT JOIN activity_basic_union uni ON un.unionid=uni.id
$condition $condition
@@ -226,10 +228,10 @@ public class ActivityApplyController {
} }
sql.setCondition(cnd); sql.setCondition(cnd);
List<Record> userList = activitySchoolService.list(sql); List<NutMap> userList = activitySchoolService.listMap(sql);
userList.forEach(v -> { userList.forEach(v -> {
if (Strings.isNotBlank(v.getString("birthday"))) { if (Strings.isNotBlank(v.getString("birthday"))) {
v.set("age", cn.hutool.core.date.DateUtil.ageOfNow(v.getString("birthday"))); v.put("age", cn.hutool.core.date.DateUtil.ageOfNow(v.getString("birthday")));
} }
}); });
result.put("users", userList); result.put("users", userList);
@@ -251,15 +253,15 @@ public class ActivityApplyController {
asa.identity DESC, asa.identity DESC,
asa.sex asa.sex
""").setParam("eventId", eventId).setParam("unionid", union_id).setParam("activityId", activityId); """).setParam("eventId", eventId).setParam("unionid", union_id).setParam("activityId", activityId);
List<ActivitySchoolApply> list = activitySchoolApplyService.listEntity(applySql); List<NutMap> list = activitySchoolApplyService.listMap(applySql);
//团体人数 //团体人数
List<ActivitySchoolApply> awardsModeT = list.stream().filter(v -> v.getAwardsMode().equals("2")).collect(Collectors.toList()); List<NutMap> awardsModeT = list.stream().filter(v -> v.getString("awardsMode").equals("2")).collect(Collectors.toList());
//单项人数 //单项人数
List<ActivitySchoolApply> awardsModeG = list.stream().filter(v -> v.getAwardsMode().equals("1")).collect(Collectors.toList()); List<NutMap> awardsModeG = list.stream().filter(v -> v.getString("awardsMode").equals("1")).collect(Collectors.toList());
list.forEach(v -> { list.forEach(v -> {
if (Strings.isNotBlank(v.getBirthday())) { if (Strings.isNotBlank(v.getString("birthday"))) {
v.setAge(cn.hutool.core.date.DateUtil.ageOfNow(v.getBirthday())); v.setv("birthday",cn.hutool.core.date.DateUtil.ageOfNow(v.getString("birthday")));
} }
}); });
@@ -270,7 +272,9 @@ public class ActivityApplyController {
result.put("team", activitySchoolTeamService.query(Cnd.where("eventId", "=", eventId).and("activityId", "=", activityId).asc("location"))); result.put("team", activitySchoolTeamService.query(Cnd.where("eventId", "=", eventId).and("activityId", "=", activityId).asc("location")));
result.put("activity", activity); result.put("activity", activity);
result.put("getEvent", activitySchoolEventViService.fetch(schoolEventId)); List<NutMap> events = (List<NutMap>) getEvents(activityId);
NutMap eve = events.stream().filter(v -> v.getString("id").equals(schoolEventId)).findFirst().orElse(null);
result.put("getEvent", eve);
return result; return result;
} }
@@ -360,30 +364,26 @@ public class ActivityApplyController {
public Object doApply(@Param(value = "data",required = false) ActivitySchoolApply[] applies, public Object doApply(@Param(value = "data",required = false) ActivitySchoolApply[] applies,
@Param(value = "appliedData3",required = false) ActivitySchoolApply[] applies2, @Param(value = "appliedData3",required = false) ActivitySchoolApply[] applies2,
@Param(value = "eventId",required = false) String eventId, @Param(value = "eventId",required = false) String eventId,
@Param(value = "activityId") String activityId,
@Param(value = "pass",required = false)boolean pass) { @Param(value = "pass",required = false)boolean pass) {
Sys_user user = (Sys_user) ShiroUtil.getPrincipal(); Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
Sys_unit unit = user.getUnit(); Sys_unit unit = user.getUnit();
String activityId = "";
ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", unit.getId())); ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", unit.getId()));
ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid())); ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
for (ActivitySchoolApply apply : applies) { for (ActivitySchoolApply apply : applies) {
activityId = applies[0].getActivityId();
apply.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString()); apply.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
apply.setStatus(pass ? 2 : 0); apply.setStatus(pass ? 2 : 0);
apply.setAwardsMode("2"); apply.setAwardsMode("2");
apply.setApplyDate(DateUtil.getDate()); apply.setApplyDate(DateUtil.getDate());
apply.setUnionId(unit.getUnionid());
apply.setActivityUnionId(basicUnit.getUnionid()); apply.setActivityUnionId(basicUnit.getUnionid());
apply.setActivityUnionName(basicUnion.getUnionname()); apply.setActivityUnionName(basicUnion.getUnionname());
} }
for (ActivitySchoolApply apply2 : applies2) { for (ActivitySchoolApply apply2 : applies2) {
activityId = applies2[0].getActivityId();
apply2.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString()); apply2.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
apply2.setStatus(pass ? 2 : 0); apply2.setStatus(pass ? 2 : 0);
apply2.setAwardsMode("1"); apply2.setAwardsMode("1");
apply2.setApplyDate(DateUtil.getDate()); apply2.setApplyDate(DateUtil.getDate());
apply2.setUnionId(unit.getUnionid());
apply2.setActivityUnionId(basicUnit.getUnionid()); apply2.setActivityUnionId(basicUnit.getUnionid());
apply2.setActivityUnionName(basicUnion.getUnionname()); apply2.setActivityUnionName(basicUnion.getUnionname());
} }
@@ -529,17 +529,28 @@ public class ActivityApplyController {
@RequiresPermissions("activity.apply") @RequiresPermissions("activity.apply")
public Object findUserOne(String id) { public Object findUserOne(String id) {
try { try {
Sql sql = Sqls.create("SELECT\n" + Sql sql = Sqls.create("""
"\tu.id,u.username,u.unitid,\n" + SELECT
"\tu.loginname,\n" + u.id,
"\tu.sex,\n" + u.username,
"\tu.mobile,\n" + u.unitid,
"\tun.`name` unitname \n" + u.loginname,
"FROM\n" + u.sex,
"\tsys_user u\n" + u.birthday,
"\tLEFT JOIN sys_unit un ON u.unitid = un.id Where u.id = @id").setParam("id", id); un.`name` unitname,
uni.`id` unionId,
return Result.success().addData(activitySchoolService.list(sql).get(0)); uni.`unionname` unionName
FROM
`user` u
LEFT JOIN activity_basic_unit un ON u.unitid = un.id
LEFT JOIN activity_basic_union uni ON un.unionid=uni.id
Where u.id = @id
""").setParam("id", id);
NutMap nutMap = activitySchoolService.fetch(sql);
if (Strings.isNotBlank(nutMap.getString("birthday"))) {
nutMap.setv("age", cn.hutool.core.date.DateUtil.ageOfNow(nutMap.getString("birthday")));
}
return Result.success().addData(nutMap);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return Result.error(); return Result.error();
@@ -570,7 +581,6 @@ public class ActivityApplyController {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
act.*, act.*,
ev.id,
ev.competitionCategory, ev.competitionCategory,
ev.distance, ev.distance,
ev.sports, ev.sports,
@@ -628,7 +638,8 @@ public class ActivityApplyController {
(SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName, (SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName,
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2 and activityUnionId=@unionId) applyNum, (SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2 and activityUnionId=@unionId) applyNum,
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId = ase.eventId AND activityId = ase.activityId AND userId=@userId) userApply, (SELECT COUNT(1) FROM activity_school_apply WHERE eventId = ase.eventId AND activityId = ase.activityId AND userId=@userId) userApply,
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2) totalApplyNum (SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2) totalApplyNum,
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=0 and activityUnionId=@unionId) apply_num_bc
FROM FROM
activity_school_event ase activity_school_event ase
LEFT JOIN activity_school school ON ase.activityId = school.id LEFT JOIN activity_school school ON ase.activityId = school.id
@@ -647,7 +658,7 @@ public class ActivityApplyController {
//如果不是超级管理员就按男女查询,isMenWomen 1是男2是女projectType 2是团体 //如果不是超级管理员就按男女查询,isMenWomen 1是男2是女projectType 2是团体
/* if (!ShiroUtil.hasAnyRoles("sysadmin,H04,A06")) { /* if (!ShiroUtil.hasAnyRoles("sysadmin,H04,A06")) {
if (StrUtil.isNotBlank(applyType)) { if (StrUtil.isNotBlank(applyType)) {
if (!applyType.equals("1")) { if (!applyType.equals("1")) {Z
if (ShiroUtil.getPrincipalProperty("sex").equals("男")) { if (ShiroUtil.getPrincipalProperty("sex").equals("男")) {
cnd.and(new Static("(eve.isMenWomen =1 OR eve.isMenWomen IS NULL )")); cnd.and(new Static("(eve.isMenWomen =1 OR eve.isMenWomen IS NULL )"));
} else { } else {
@@ -683,12 +694,23 @@ public class ActivityApplyController {
public Object doLeaderCoachHead(@Param(value = "staffData", required = false) ActivitySchoolApply staffData, public Object doLeaderCoachHead(@Param(value = "staffData", required = false) ActivitySchoolApply staffData,
@Param(value = "LeaderData", required = false) ActivitySchoolApply LeaderData, @Param(value = "LeaderData", required = false) ActivitySchoolApply LeaderData,
@Param(value = "CoachData", required = false) ActivitySchoolApply CoachData, @Param(value = "CoachData", required = false) ActivitySchoolApply CoachData,
@Param(value = "headData", required = false) ActivitySchoolApply headData) { @Param(value = "headData", required = false) ActivitySchoolApply headData,
String activityId) {
Cnd cnd = Cnd.NEW();
SqlExpressionGroup group = new SqlExpressionGroup();
group.or("unionStaff", "=", true);
group.or("unionLeader", "=", true);
group.or("unionCoach", "=", true);
group.or("unionHead", "=", true);
cnd.and(group);
cnd.and("activityId", "=", activityId);
cnd.and("activityUnionId", "=", getUnionId());
activitySchoolApplyService.clear(cnd);
if (staffData.getUserId() != null) { if (staffData.getUserId() != null) {
ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", staffData.getUnitId())); ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", staffData.getUnitId()));
ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid())); ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
activitySchoolApplyService.clear(Cnd.where("activityId", "=", staffData.getActivityId()).and("unionStaff", "=", true).and("unionId", "=", getUnionId()));
staffData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString()); staffData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
staffData.setApplyDate(DateUtil.getDate()); staffData.setApplyDate(DateUtil.getDate());
staffData.setUnitname(basicUnit.getName()); staffData.setUnitname(basicUnit.getName());
@@ -699,7 +721,6 @@ public class ActivityApplyController {
if (LeaderData.getUserId() != null) { if (LeaderData.getUserId() != null) {
ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", LeaderData.getUnitId())); ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", LeaderData.getUnitId()));
ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid())); ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
activitySchoolApplyService.clear(Cnd.where("activityId", "=", LeaderData.getActivityId()).and("unionLeader", "=", true).and("unionId", "=", getUnionId()));
LeaderData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString()); LeaderData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
LeaderData.setApplyDate(DateUtil.getDate()); LeaderData.setApplyDate(DateUtil.getDate());
LeaderData.setUnitname(basicUnit.getName()); LeaderData.setUnitname(basicUnit.getName());
@@ -710,7 +731,6 @@ public class ActivityApplyController {
if (CoachData.getUserId() != null) { if (CoachData.getUserId() != null) {
ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", CoachData.getUnitId())); ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", CoachData.getUnitId()));
ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid())); ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
activitySchoolApplyService.clear(Cnd.where("activityId", "=", CoachData.getActivityId()).and("unionCoach", "=", true).and("unionId", "=", getUnionId()));
CoachData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString()); CoachData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
CoachData.setApplyDate(DateUtil.getDate()); CoachData.setApplyDate(DateUtil.getDate());
CoachData.setUnitname(basicUnit.getName()); CoachData.setUnitname(basicUnit.getName());
@@ -721,7 +741,6 @@ public class ActivityApplyController {
if (headData.getUserId() != null) { if (headData.getUserId() != null) {
ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", headData.getUnitId())); ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", headData.getUnitId()));
ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid())); ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
activitySchoolApplyService.clear(Cnd.where("activityId", "=", headData.getActivityId()).and("unionHead", "=", true).and("unionId", "=", getUnionId()));
headData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString()); headData.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
headData.setApplyDate(DateUtil.getDate()); headData.setApplyDate(DateUtil.getDate());
headData.setUnitname(basicUnit.getName()); headData.setUnitname(basicUnit.getName());
@@ -818,5 +837,39 @@ public class ActivityApplyController {
return Result.success(); return Result.success();
} }
@At
@ViReturn
@RequiresPermissions("activity.apply")
@Ok("json:{ignoreNull:true}")
public Object getSysUser(String queryString, String[] userId) {
Cnd cnd = Cnd.NEW();
cnd.andEX("id", "not in", userId);
if (StrUtil.isNotBlank(queryString)) {
SqlExpressionGroup group = new SqlExpressionGroup();
group.andLike("username", queryString).orLike("loginname", queryString);
cnd.and(group);
}
Sql sql = Sqls.create("""
SELECT
id,
loginname,
username,
sex,
unitid,
unionid,
unionname,
birthday
FROM
`user`
$condition
LIMIT 30
""");
sql.setCondition(cnd);
List<NutMap> list = sysUserService.listMap(sql);
return list;
}
} }
@@ -2,6 +2,9 @@ package io.v.nutz.activity.controller.school;
import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.afterturn.easypoi.excel.export.ExcelExportService;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.Configure;
@@ -19,7 +22,9 @@ import io.v.nutz.sys.models.Sys_unit;
import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.models.Sys_user;
import io.v.nutz.sys.services.SysUnionService; import io.v.nutz.sys.services.SysUnionService;
import io.v.nutz.util.ShiroUtil; import io.v.nutz.util.ShiroUtil;
import io.v.nutz.util.ViTool;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresAuthentication;
import org.nutz.dao.Cnd; import org.nutz.dao.Cnd;
import org.nutz.dao.Sqls; import org.nutz.dao.Sqls;
@@ -29,12 +34,14 @@ 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;
import org.nutz.json.Json; import org.nutz.json.Json;
import org.nutz.lang.Lang;
import org.nutz.lang.Strings; import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap; 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 org.nutz.mvc.annotation.Param; import org.nutz.mvc.annotation.Param;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@@ -269,51 +276,96 @@ public class ActivityCommonController {
@At @At
@Ok("void")
public void exportXlsx(String id, String unionId, HttpServletResponse response) throws IOException { public void exportXlsx(String id, String unionId, HttpServletResponse response) throws IOException {
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT SELECT
app.username, app.username,
app.loginname, app.loginname,
app.identity, app.identity,
app.activityUnionName unionname, app.activityUnionName,
app.sex, app.unionName,
app.mobile, app.unitname,
u.idCard, app.unionId,
u.userState, app.activityUnionId,
ev.allName, app.sex,
sc.`name` activityName, ev.allName,
app.`team` team sc.`name` activityName,
FROM app.`team` teamName
`activity_school_apply` app FROM
LEFT JOIN `user` u ON u.id = app.userId `activity_school_apply` app
LEFT JOIN activity_event ev ON ev.id = app.eventId LEFT JOIN `user` u ON u.id = app.userId
LEFT JOIN activity_school sc ON sc.id=app.activityId LEFT JOIN activity_event ev ON ev.id = app.eventId
WHERE LEFT JOIN activity_school sc ON sc.id = app.activityId
activityId = @id WHERE
$cnd activityId = @id
ORDER BY $cnd
ev.allName DESC, ORDER BY
u.unionname DESC, ev.projectCode desc,
app.`team` asc app.activityUnionName DESC,
app.`team` ASC,
CASE
WHEN JSON_SEARCH( app.identity, 'one', '7' ) IS NOT NULL THEN
1
WHEN JSON_SEARCH( app.identity, 'one', '3' ) IS NOT NULL THEN
2
WHEN JSON_SEARCH( app.identity, 'one', '2' ) IS NOT NULL THEN
3 ELSE 4 END;
""").setParam("id", id); """).setParam("id", id);
if (Strings.isNotBlank(unionId)) { if (Strings.isNotBlank(unionId)) {
sql.setVar("cnd", "and u.unionid='" + unionId + "'"); sql.setVar("cnd", "and app.activityUnionId='" + unionId + "'");
} }
List<Record> list = activitySchoolApplyService.list(sql); List<NutMap> list = activitySchoolApplyService.listMap(sql);
String activityName = list.get(0).getString("activityName");
List<ActivitySchoolApply> excels = new ArrayList<>(); List<ExcelExportEntity> entityList = new ArrayList<>();
ExcelExportEntity no = new ExcelExportEntity("序号", "no", 10);
no.setFormat("isAddIndex");
entityList.add(no);
entityList.add(new ExcelExportEntity("项目名称", "allName", 50));
entityList.add(new ExcelExportEntity("所属队", "teamName", 20));
entityList.add(new ExcelExportEntity("姓名", "username", 20));
entityList.add(new ExcelExportEntity("工号", "loginname", 20));
entityList.add(new ExcelExportEntity("所在单位", "unitname", 50));
entityList.add(new ExcelExportEntity("所在分工会", "unionName", 50));
entityList.add(new ExcelExportEntity("报名分工会", "activityUnionName", 50));
entityList.add(new ExcelExportEntity("身份", "sf", 30));
entityList.add(new ExcelExportEntity("备注", "applyUnitName", 30));
List<NutMap> applyUnitNameList = new ArrayList<>();
list.forEach(map -> {
ActivitySchoolApply schoolApply = Lang.map2Object(map, ActivitySchoolApply.class);
if (StrUtil.isAllNotBlank(schoolApply.getUnionId(), schoolApply.getActivityUnionId()) && !schoolApply.getUnionId().equals(schoolApply.getActivityUnionId())) {
List<NutMap> applyList = list.stream().filter(v -> v.getString("activityUnionId").equals(map.getString("activityUnionId"))).collect(Collectors.toList());
list.forEach(z -> { List<String> unionNameList = applyList.stream().map(a -> a.getString("unionName")).distinct().collect(Collectors.toList());
ActivitySchoolApply schoolApply = z.toPojo(ActivitySchoolApply.class); map.setv("applyUnitName", String.join(",", unionNameList));
String s = schoolApply.getIdentity().stream().map(personType::getName).collect(Collectors.toList()).toString(); applyUnitNameList.add(new NutMap().addv("allName", map.getString("allName")).addv("applyUnitNameList", unionNameList));
schoolApply.setSf(s); }
excels.add(schoolApply);
String sf = schoolApply.getIdentity().stream().map(personType::getName).collect(Collectors.toList()).toString();
map.put("sf", sf.replace("[", "").replace("]", ""));
}); });
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + new String((activityName + "报名表.xls").getBytes("utf-8"), "ISO8859-1")); Map<String, List<NutMap>> userListMap = list.stream().collect(Collectors.groupingBy(n -> n.getString("allName")));
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), ActivitySchoolApply.class, excels); Workbook workbook = new XSSFWorkbook();
workbook.write(response.getOutputStream()); userListMap.forEach((k, v) -> {
for (NutMap map : v) {
NutMap applyUnitNameMap = applyUnitNameList.stream().filter(it -> it.getList("applyUnitNameList", String.class).contains(map.getString("unitname"))
&& it.getString("allName").equals(k)).findFirst().orElse(null);
if (Lang.isNotEmpty(applyUnitNameMap)) {
map.put("applyUnitName", String.join(",", applyUnitNameMap.getList("applyUnitNameList", String.class)));
}
}
ExcelExportService service = new ExcelExportService();
ExportParams exportParams = new ExportParams();
exportParams.setSheetName(k);
exportParams.setType(ExcelType.XSSF);
service.createSheetForMap(workbook, exportParams, entityList, v);
});
ViTool.excelResponse(response, "报名汇总表.xlsx");
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.close();
} }
@@ -549,7 +601,7 @@ public class ActivityCommonController {
Cnd unionCnd = Cnd.NEW(); Cnd unionCnd = Cnd.NEW();
Sql sql = Sqls.create(""" Sql sql = Sqls.create("""
SELECT * FROM sys_union un $condition SELECT * FROM sys_union un $condition
"""); """);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06") && ShiroUtil.hasRole("H04")) { if (!ShiroUtil.hasAnyRoles("sysadmin,A06") && ShiroUtil.hasRole("H04")) {
@@ -95,7 +95,7 @@ public class ActivityInfoManageController {
school.activityCode, school.activityCode,
school.foundDate, school.foundDate,
school.applyType, school.applyType,
(SELECT COUNT(1) FROM activity_school_apply asa WHERE asa.activityId = school.id) applyNum (SELECT COUNT(1) FROM activity_school_apply asa WHERE asa.activityId = school.id and asa.status=2) applyNum
FROM FROM
activity_school school activity_school school
LEFT JOIN activity_basic_settings ba ON ba.`code` = school.activityLevel LEFT JOIN activity_basic_settings ba ON ba.`code` = school.activityLevel
@@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.hutool.core.util.StrUtil;
import cn.wizzer.framework.base.Result; import cn.wizzer.framework.base.Result;
import io.v.nutz.activity.controller.school.constant.SchoolActivityApplyExportEntity; import io.v.nutz.activity.controller.school.constant.SchoolActivityApplyExportEntity;
import io.v.nutz.activity.models.*; import io.v.nutz.activity.models.*;
@@ -130,10 +131,10 @@ public class ActivityReadingController {
"""); """);
cnd.and("app.activityId", "=", id); cnd.and("app.activityId", "=", id);
// cnd.and("YEAR(app.applyDate)", "=", year); cnd.and("app.status", "=", 2);
sql.setCondition(cnd); sql.setCondition(cnd);
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
if (ShiroUtil.hasRole("H04") && activityLevel.equals("40002")) { if (ShiroUtil.hasAnyRoles("H04,gh08") && activityLevel.equals("40002")) {
cnd.and("app.activityUnionId", "=", basicUnit.getUnionid()); cnd.and("app.activityUnionId", "=", basicUnit.getUnionid());
cnd.and("school.belongUnionId", "=", basicUnit.getUnionid()); cnd.and("school.belongUnionId", "=", basicUnit.getUnionid());
} }
@@ -148,7 +149,7 @@ public class ActivityReadingController {
Cnd unionCnd = Cnd.NEW(); Cnd unionCnd = Cnd.NEW();
if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) {
if (ShiroUtil.hasRole("H04")) { if (ShiroUtil.hasAnyRoles("H04,gh08")) {
unionCnd.and("id", "=", basicUnit.getUnionid()); unionCnd.and("id", "=", basicUnit.getUnionid());
} }
} }
@@ -165,9 +166,17 @@ public class ActivityReadingController {
String unionId = union.getId(); String unionId = union.getId();
NutMap map = new NutMap(); NutMap map = new NutMap();
List<NutMap> applyList = applies.stream().filter(v -> { List<NutMap> applyList = applies.stream().filter(v -> StrUtil.isNotBlank(v.getString("activityUnionId")) &&
return v.getString("activityUnionId").equals(unionId); v.getString("activityUnionId").equals(unionId)).collect(Collectors.toList());
}).collect(Collectors.toList());
List<String> unionNameList = applyList.stream().map(a -> a.getString("unionName")).distinct().collect(Collectors.toList());
applyList.forEach(a -> {
if (!a.getString("unionId").equals(unionId)) {
a.setv("bz", String.join(",", unionNameList));
}
});
map.setv("id", unionId); map.setv("id", unionId);
map.setv("unionname", union.getUnionname()); map.setv("unionname", union.getUnionname());
map.setv("unioncode", union.getUnioncode()); map.setv("unioncode", union.getUnioncode());
@@ -60,6 +60,11 @@ public class ActivitySchoolApply implements Serializable {
@ColDefine(type = ColType.VARCHAR, width = 32) @ColDefine(type = ColType.VARCHAR, width = 32)
private String unionId; private String unionId;
@Column
@Comment("所属工会名称")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String unionName;
@Column @Column
@Comment("所属活动工会") @Comment("所属活动工会")
@ColDefine(type = ColType.VARCHAR, width = 32) @ColDefine(type = ColType.VARCHAR, width = 32)
@@ -136,53 +141,30 @@ public class ActivitySchoolApply implements Serializable {
@ColDefine(type = ColType.VARCHAR, width = 100) @ColDefine(type = ColType.VARCHAR, width = 100)
private String unitname; private String unitname;
@Excel(name = "分工会", width = 30)
private String unionname;
@Column @Column
@Comment("小队名称") @Comment("小队名称")
@Excel(name = "小队名称", width = 20)
@ColDefine(type = ColType.VARCHAR, width = 30) @ColDefine(type = ColType.VARCHAR, width = 30)
private String team; private String team;
@Excel(name = "项目名称", width = 40)
private String allName;
@Column @Column
@Comment("工号") @Comment("工号")
@Excel(name = "工号", width = 20)
@ColDefine(type = ColType.VARCHAR, width = 50) @ColDefine(type = ColType.VARCHAR, width = 50)
private String loginname; private String loginname;
@Column @Column
@Comment("姓名") @Comment("姓名")
@Excel(name = "姓名", width = 20)
@ColDefine(type = ColType.VARCHAR, width = 50) @ColDefine(type = ColType.VARCHAR, width = 50)
private String username; private String username;
@Column @Column
@Comment("电话") @Comment("电话")
@Excel(name = "手机号码", width = 20)
@ColDefine(type = ColType.VARCHAR, width = 50) @ColDefine(type = ColType.VARCHAR, width = 50)
private String mobile; private String mobile;
@Excel(name = "身份证号", width = 20)
private String idCard;
@Column @Column
@Comment("性别") @Comment("性别")
@Excel(name = "性别", width = 20)
@ColDefine(type = ColType.VARCHAR, width = 50) @ColDefine(type = ColType.VARCHAR, width = 50)
private String sex; private String sex;
@Excel(name = "在职状态", width = 20)
private String userState;
@Excel(name = "身份", width = 40)
private String sf;
private int age;
} }
@@ -12,7 +12,7 @@ public interface ActivitySchoolApplyService extends ViService<ActivitySchoolAppl
void doApplies(List<ActivitySchoolApply> applies); void doApplies(List<ActivitySchoolApply> applies);
void doApplies(String activity, String union_id, String eventId,List<ActivitySchoolApply> applies); void doApplies(String activityId, String union_id, String eventId,List<ActivitySchoolApply> applies);
void doApply(ActivitySchoolApply apply); void doApply(ActivitySchoolApply apply);
} }
@@ -31,8 +31,10 @@ public class ActivitySchoolApplyServiceImpl extends ViServiceImpl<ActivitySchool
@Override @Override
@Aop(TransAop.READ_COMMITTED) @Aop(TransAop.READ_COMMITTED)
public void doApplies(String activity, String union_id, String eventId,List<ActivitySchoolApply> applies) { public void doApplies(String activityId, String union_id, String eventId,List<ActivitySchoolApply> applies) {
clear(Cnd.where("activityId", "=", activity).and("unionId", "=", union_id).and("eventId","=",eventId)); clear(Cnd.where("activityId", "=", activityId)
.and("activityUnionId", "=", union_id)
.and("eventId","=",eventId));
doApplies(applies); doApplies(applies);
} }
@@ -58,8 +58,8 @@
<script src="${base!}/assets/platform/plugins/echarts/westeros.js"></script><!--主题--> <script src="${base!}/assets/platform/plugins/echarts/westeros.js"></script><!--主题-->
<script src="${base!}/assets/platform/plugins/echarts/walden.js"></script><!--主题--> <script src="${base!}/assets/platform/plugins/echarts/walden.js"></script><!--主题-->
<script src="${base!}/assets/platform/plugins/echarts/macarons.js"></script><!--主题--> <script src="${base!}/assets/platform/plugins/echarts/macarons.js"></script><!--主题-->
<script src="https://cdn.staticfile.org/echarts/5.2.2/echarts.js"></script> <!-- <script src="https://cdn.staticfile.org/echarts/5.2.2/echarts.js"></script>-->
<script src="https://cdn.staticfile.org/echarts/5.2.2/i18n/langZH.js"></script> <!-- <script src="https://cdn.staticfile.org/echarts/5.2.2/i18n/langZH.js"></script>-->
<script src="${base!}/assets/platform/module/mixins/initTableMixins.js?v=1.0.3"></script> <script src="${base!}/assets/platform/module/mixins/initTableMixins.js?v=1.0.3"></script>
File diff suppressed because it is too large Load Diff
@@ -459,8 +459,8 @@ layout("/layouts/platform.html"){
<el-option <el-option
v-for="item in events" v-for="item in events"
:key="item.id" :key="item.id"
:label="item.allname" :label="item.allName"
:value="item.eventid"> :value="item.eventId">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
@@ -638,9 +638,10 @@ layout("/layouts/platform.html"){
{prop: 'sex', label: '性别'}, {prop: 'sex', label: '性别'},
/* {prop: 'divisionLevelLeadership', label: '是否处级领导', sortable: true},*/ /* {prop: 'divisionLevelLeadership', label: '是否处级领导', sortable: true},*/
{prop: 'unitname', label: '单位', sortable: true}, {prop: 'unitname', label: '单位', sortable: true},
{prop: 'mobile', label: '电话'}, // {prop: 'mobile', label: '电话'},
{prop: 'projectType', label: '项目类型', sortable: true}, {prop: 'projectType', label: '项目类型', sortable: true},
{prop: 'identity', label: '身份', sortable: true, width: '300px'}, {prop: 'identity', label: '身份', sortable: true, width: '300px'},
{prop: 'bz', label: '备注', sortable: true, width: '300px'},
], ],
projectTypeList: [ projectTypeList: [
{id: '1', name: '单项'}, {id: '1', name: '单项'},
@@ -795,7 +796,7 @@ layout("/layouts/platform.html"){
this.$set(app, "apply2", apply) this.$set(app, "apply2", apply)
} else { } else {
const arr = apply.filter(i => { const arr = apply.filter(i => {
return !i.unionLeader && !i.unionCoach && i.evid == eventId return !i.unionLeader && !i.unionCoach && i.eventId == eventId
}) })
this.$set(app, "apply2", arr) this.$set(app, "apply2", arr)
} }