diff --git a/src/main/java/com/budwk/app/sys/controller/SysLoginController.java b/src/main/java/com/budwk/app/sys/controller/SysLoginController.java index 2488095..bbd8881 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysLoginController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysLoginController.java @@ -1,5 +1,6 @@ package com.budwk.app.sys.controller; +import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; @@ -77,9 +78,7 @@ public class SysLoginController { @At("/noPermission") @Ok("beetl:/platform/sys/noPermission.html") @Filters - public void noPermission() { - - } + public void noPermission() {} @At("/doLogin") @Ok("json") @@ -142,43 +141,22 @@ public class SysLoginController { @At - @Ok("json") - @ApiOperation("小程序账号密码登录") - public Result weAppLogin(@Param("username") String username, @Param("password") String password, HttpServletRequest req) { - if (StrUtil.isBlank(username)) { - return Result.error("用户名不能为空"); - } - if (StrUtil.isBlank(password)) { - return Result.error("密码不能为空"); - } - - String lockKey = RedisConstant.USER_LOGIN_LOCK_PREFIX + username; - int errCount = Convert.toInt(StrUtil.blankToDefault(redisService.get(lockKey), "0")); - log.info("用户名:" + username + "登录失败次数:" + errCount); - - if (errCount > 5) { - redisService.setex(lockKey, 5 * 60, String.valueOf(errCount + 1)); - return Result.error("登录失败次数过多,请5分钟后再试"); - } - - try { - Sys_user user = sysUserService.loginByIdCardLastNum(username, password); - if (user == null) { - throw new BaseException("用户登录失败"); - } - - sysUserService.loginPlus(user, LoginType.WE_APP, req); -// redisService.del(lockKey); - return Result.success("login.success").addData(StpUtil.getTokenInfo()); - } catch (Exception e) { - log.error(e.getMessage(), e); - redisService.set(lockKey, Convert.toStr(errCount + 1)); - return Result.error(e.getMessage()); - } - + @Ok("re") + @SaCheckLogin + @ApiOperation("小程序桥接界面") + public String weAppLogin() { + return "beetl:/platform/zhghh5/sys/weappcheck/index.html"; } + @At + @Ok("json") + @ApiOperation("登录信息") + @SaCheckLogin + public Result getWeAppToken(){ + return Result.success("login.success").addData(StpUtil.getTokenInfo()); + } + @At(value = "/platform/wxwork/oauth2/callback", top = true) @Ok("re") diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java index 0fabc87..2cd9515 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysUserServiceImpl.java @@ -305,7 +305,7 @@ public class SysUserServiceImpl extends BaseServiceImpl implements Sys String decodePwd = Base64Decoder.decodeStr(passowrd); String hashedPassword = PwdUtil.getPassword(decodePwd, user.getSalt()); if (!Strings.sNull(hashedPassword).equalsIgnoreCase(user.getPassword())) { -// throw new BaseException("用户名或者密码不正确"); + throw new BaseException("用户名或者密码不正确"); } user = this.fetchLinks(user, "unit"); if (Lang.isNotEmpty(user.getUnit()) && StrUtil.isNotBlank(user.getUnit().getUnionId())) { diff --git a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java index 149b8e4..0aa0ee6 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/basic/controller/ActivityBasicScopeController.java @@ -320,7 +320,9 @@ public class ActivityBasicScopeController { if (activityUserScopePageParam.getActivityGroupId() != null) { Sql sqlx = Sqls.createf("SELECT userId FROM activity_user_scope where groupId = '%s'", activityUserScopePageParam.getActivityGroupId()); - cnd.and("u.id", activityUserScopePageParam.getReverseSelection() ? "IN" : "NOT IN", sqlx); + List userList = baseService.listMap(sqlx); + List userIds = userList.stream().map(v -> v.getString("userId")).toList(); + cnd.and("u.id", activityUserScopePageParam.getReverseSelection() ? "IN" : "NOT IN", userIds); } cnd.andEX("u.id", IN_OR_NIN_OP, activityUserScopePageParam.getUserId()); diff --git a/src/main/java/com/budwk/app/zhgh/activity/qsv/service/impl/QsvSurveyServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/qsv/service/impl/QsvSurveyServiceImpl.java index 5907819..23429d0 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/qsv/service/impl/QsvSurveyServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/qsv/service/impl/QsvSurveyServiceImpl.java @@ -49,7 +49,7 @@ public class QsvSurveyServiceImpl extends BaseServiceImpl i try { // 查询用户答题记录 - List answerRecords = dao().query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId)); + List answerRecords = dao().query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId).and("isFinish","=",1)); // 将答题记录的扩展JSON转换为JSONObject列表 List answerExtList = answerRecords.stream().map(QsvUserAnswerRecord::getExtJson).toList(); diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolEvent.java b/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolEvent.java index 94c00c6..985ac94 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolEvent.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/models/ActivitySchoolEvent.java @@ -88,11 +88,23 @@ public class ActivitySchoolEvent extends BaseModel implements Serializable { @ColDefine(type = ColType.INT, width = 8) private Integer leanderNum; + @Column + @Comment("领队是否必须是运动员") + @ColDefine(type = ColType.BOOLEAN) + @Default("0") + private Boolean leanderIsAthlete; + @Column @Comment("组合方式2:教练人数") @ColDefine(type = ColType.INT, width = 8) private Integer coachNum; + @Column + @Comment("教练是否必须是运动员") + @ColDefine(type = ColType.BOOLEAN) + @Default("0") + private Boolean coachIsAthlete; + @Column @Comment("组合方式2:女队人数") @ColDefine(type = ColType.INT, width = 8) diff --git a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java index dc39e8c..55be705 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/activity/sports/service/impl/ActivitySportsApplyUserServiceImpl.java @@ -104,7 +104,7 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl0".formatted(SecurityUtil.getUserId()))); @@ -166,7 +166,7 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImplapplyStartTime and now() < applyEndTime")); + cnd.and(new Static("(now() >applyStartTime and now() < applyEndTime) or now() school.applyEndTime")); @@ -182,7 +182,7 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl0")); cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(SecurityUtil.getUserId()))); } diff --git a/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/mobile/MTrainSignUpActivityController.java b/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/mobile/MTrainSignUpActivityController.java index 30e0868..e5261ae 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/mobile/MTrainSignUpActivityController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/mobile/MTrainSignUpActivityController.java @@ -233,7 +233,7 @@ public class MTrainSignUpActivityController { .and("state", "!=", 2)); int hasRegisterNum = signUpUsers.size() + 1;//+1是算自己 if(hasRegisterNum > course.getCoursePeopleNumber()) { - return Result.error(3, "您当前的报名为候补报名状态"); + return Result.error(99, "您当前的报名为候补报名状态"); } } return Result.success(); diff --git a/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java b/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java index 782a5c9..25c498c 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java @@ -5,6 +5,7 @@ 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.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; @@ -139,6 +140,7 @@ public class TrainSignUpActivityStatisticsController { u.unitName, u.unionName, u.sex, + u.personType, if(ts.mobile is null, u.mobile, ts.mobile) as mobile, u.birthday, tsc.courseName, @@ -150,7 +152,7 @@ public class TrainSignUpActivityStatisticsController { left join train_sign_up_course tsc on tsc.id = ts.courseId WHERE ts.activityId = @activityId - ORDER BY FIELD( ts.state, 1, 3, 2, 4 ),u.unionid desc, u.unitid desc + ORDER BY FIELD( ts.state, 1, 3, 2, 4 ),u.unionid desc, u.unitid desc,ts.signUpTime asc """).setParam("activityId", activityId); List userList = trainSignUpActivityManageService.listMap(sql); userList.forEach(item -> { @@ -163,6 +165,8 @@ public class TrainSignUpActivityStatisticsController { } else if (item.getInt("state") == 4) { item.setv("stateName", "无效报名(缺席)"); } + item.setv("birthday", DateUtil.format(item.getTime("birthday"),"yyyy-MM-dd")); + item.setv("signUpTime", DateUtil.format(item.getTime("signUpTime"),"yyyy-MM-dd HH:mm:ss")); }); List excelCommonExportEntity = new ArrayList<>(); @@ -172,8 +176,9 @@ public class TrainSignUpActivityStatisticsController { excelCommonExportEntity.add(new ExcelExportEntity("分工会", "unionName", 20)); excelCommonExportEntity.add(new ExcelExportEntity("性别", "sex", 20)); excelCommonExportEntity.add(new ExcelExportEntity("手机号", "mobile", 20)); - excelCommonExportEntity.add(new ExcelExportEntity("生日", "birthday", 20)); + excelCommonExportEntity.add(new ExcelExportEntity("教职工类别", "personType", 20)); excelCommonExportEntity.add(new ExcelExportEntity("报名状态", "stateName", 20)); + excelCommonExportEntity.add(new ExcelExportEntity("报名时间", "signUpTime", 30)); List courseList = dao.query(TrainSignUpCourse.class, Cnd.where("activityId", "=", activityId)); Map courseMap = courseList.stream().collect(Collectors.toMap(o -> o.getId(), o -> o)); diff --git a/src/main/java/com/budwk/app/zhgh/club/model/SysClub.java b/src/main/java/com/budwk/app/zhgh/club/model/SysClub.java index 767c9f6..19b362e 100644 --- a/src/main/java/com/budwk/app/zhgh/club/model/SysClub.java +++ b/src/main/java/com/budwk/app/zhgh/club/model/SysClub.java @@ -105,7 +105,7 @@ public class SysClub extends BaseModel { private List establishReport; @Column - @Comment("章程草案") + @Comment("章程") @ColDefine(type = ColType.MYSQL_JSON) private List rulesFile; diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java index 78a579b..225cfab 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberSummaryController.java @@ -1,8 +1,16 @@ package com.budwk.app.zhgh.staffmanage.member.controller.statistics; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +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.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateUtil; import com.budwk.app.base.result.Result; +import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService; +import com.budwk.app.zhgh.user.singleTeacher.param.SingleTeacherPageForm; +import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -80,4 +88,44 @@ public class MemberSummaryController { e.printStackTrace(); } } + @At + @Ok("void") + @SaCheckPermission("member.statistics.summary") + @ApiOperation("导出Excel") + public void exportExcel(@Param("queryId") String queryId, @Param("queryType") String queryType, + @Param("currentYear") Integer currentYear, HttpServletResponse response) { + if (currentYear == null) { + currentYear = DateUtil.thisYear(); + } + List list = new ArrayList<>(); + if ("fgh".equals(queryType)) { + list = memberStatisticsService.getUnionStatisticsData(queryId, currentYear); + } else { + list = memberStatisticsService.getUnitStatisticsData(queryId, currentYear); + } + + NutMap totalMap = NutMap.NEW(); + totalMap.put("单位名称", "合计"); + totalMap.put("总人数", list.stream().mapToInt(v -> v.getInt("totalNumber", 0)).sum()); + list.add(totalMap); + + List entities = new ArrayList<>(); + if ("fgh".equals(queryType)) { + entities.add(new ExcelExportEntity("分工会", "unionName", 20)); + } else { + entities.add(new ExcelExportEntity("单位", "unitName", 20)); + entities.add(new ExcelExportEntity("分工会", "unionName", 20)); + } + entities.add(new ExcelExportEntity("总人数", "totalNumber", 15)); + + try { + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, list); + CommonDownloadUtil.download("会员人数统计.xlsx", workbook, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java index 0dcdb78..33fbd5a 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java @@ -362,6 +362,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl imple un.id, un.unitcode AS unitCode, un.`name` AS unitName, + uni.`name`AS unionName, SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 40 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallForty, SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 41 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 50 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFifty, SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 51 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 55 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFiftyFive, @@ -371,6 +372,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl imple SUM(CASE WHEN sex = '女' $personCnd $yearCnd THEN 1 ELSE 0 END) AS femaleMember FROM sys_unit un + LEFT JOIN sys_union uni ON uni.id = un.unionId JOIN $table u ON u.unitId = un.id AND u.member = 1 $condition """); diff --git a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java index a6d1c14..7ece19a 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareListController.java @@ -107,11 +107,19 @@ public class WelfareListController { return Result.success(); } + @At + @SaCheckPermission("welfare.list.mange") + @ApiOperation("导出收货地址") + @Ok("void") + public void exportAddress(WelfareListPageForm pageForm, HttpServletResponse response) { + welfareListService.exportAddress(pageForm, response); + } + @At @SaCheckPermission("welfare.list.mange") @ApiOperation("导出") @Ok("void") - public void exportXlsx(@Param("pageForm") WelfareListPageForm pageForm, HttpServletResponse response) { + public void exportXlsx(WelfareListPageForm pageForm, HttpServletResponse response) { welfareListService.exportXlsx(pageForm, response); } diff --git a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareMineController.java b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareMineController.java index d082fef..c7ba11c 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareMineController.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareMineController.java @@ -83,6 +83,7 @@ public class WelfareMineController { cnd.and("wp.isDisabled", "=", 0); cnd.andEX("YEAR(wp.choiceTimeStart)", "=", year); cnd.andEX("wl.userId", "=", SecurityUtil.getUserId()); + cnd.andEX("wp.isUnseal", "=", true); cnd.desc("wp.choiceTimeStart"); cnd.groupBy("wl.id"); sql.setCondition(cnd); diff --git a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareProjectMangeController.java b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareProjectMangeController.java index 6fad271..a81d3c0 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareProjectMangeController.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareProjectMangeController.java @@ -1,6 +1,7 @@ package com.budwk.app.zhgh.welfare.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.annotation.SLog; import com.budwk.app.base.page.Pagination; @@ -80,6 +81,7 @@ public class WelfareProjectMangeController { if (StrUtil.isNotBlank(project.getId())) { projectService.updateProject(project); } else { + project.setIsUnseal(false); projectService.saveProject(project); } return Result.success(); @@ -146,4 +148,14 @@ public class WelfareProjectMangeController { return Result.success(); } + @At + @SaCheckPermission("welfare.project.mange") + public Result welfareStatusChange(@Valid String id, @Valid Boolean isUnseal) { + projectService.update(Chain.make("isUnseal", isUnseal), Cnd.where("id", "=", id)); + projectService.dao().update(WelfareProject.class, + Chain.make("isUnseal", isUnseal), + Cnd.where("id", "=", id)); + return Result.success(); + } + } diff --git a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareUserSelectController.java b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareUserSelectController.java index ba28055..68e92b7 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareUserSelectController.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/controller/WelfareUserSelectController.java @@ -70,6 +70,7 @@ public class WelfareUserSelectController { cnd.andEX("YEAR(wp.choiceTimeStart)", "in", year); cnd.and("wp.isDisabled", "=", 0); cnd.groupBy("wp.id"); + cnd.andEX("wp.isUnseal", "=", true); cnd.desc("YEAR(wp.choiceTimeStart)"); sql.setCondition(cnd); Pagination pagination = welfareProjectService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); diff --git a/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareProject.java b/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareProject.java index ccb9427..19eef53 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareProject.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareProject.java @@ -74,6 +74,11 @@ public class WelfareProject extends BaseModel implements SysHomeConvert { @ColDefine(type = ColType.DATETIME) private Date choiceTimeEnd; + @Column + @Comment("是否开启") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isUnseal; + @Column @Comment("逾期补发结束时间") @ColDefine(type = ColType.DATETIME) diff --git a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java index f16777e..dc00d58 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.util.Date; +import java.util.Map; +import java.util.List; @EqualsAndHashCode(callSuper = true) @Data @@ -55,4 +57,7 @@ public class WelfareListPageForm extends PageForm { @ApiModelProperty("在职状态") private String[] userStates; + @ApiModelProperty("导出的数据") + private List> columns; + } diff --git a/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java b/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java index 6b231b3..efa8c9e 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/service/WelfareListService.java @@ -46,6 +46,13 @@ public interface WelfareListService extends BaseService { */ void addWelfareUser(WelfareFilterUserPageForm pageForm); + /** + * 导出收货地址 + * @param pageForm + * @param response + */ + void exportAddress(WelfareListPageForm pageForm, HttpServletResponse response); + /** * 导出 * @param pageForm diff --git a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java index 4296672..b6ad1d7 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java @@ -553,6 +553,82 @@ public class WelfareListServiceImpl extends BaseServiceImpl impleme dao().insert(welfareList); } + @Override + public void exportAddress(WelfareListPageForm pageForm, HttpServletResponse response) { + Sql sql = Sqls.create(""" + SELECT + t1.*, + t2.loginname, + t2.username, + t2.sex, + DATE_FORMAT(t2.birthday, '%Y-%m-%d') AS birthday, + CONCAT('收货人:',t3.userName,' 电话:',t3.tel,' 详细地址:',t3.province, t3.city, t3.county, t3.addressDetail) AS address + FROM + `welfare_list` t1 + LEFT JOIN sys_user t2 ON t2.id = t1.userId + LEFT JOIN ( + SELECT + userId, + userName, + tel, + province, + city, + county, + addressDetail, + ROW_NUMBER() OVER (PARTITION BY userId ORDER BY isDefault DESC, id) as rn + FROM welfare_member_address + ) t3 ON t3.userId = t1.userId AND t3.rn = 1 + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("t1.projectId", "=", pageForm.getProjectId()); + if (StrUtil.isNotBlank(pageForm.getUserName())) { + cnd.where().andLike("t2.username", pageForm.getUserName()); + } + if (StrUtil.isNotBlank(pageForm.getLoginName())) { + cnd.where().andLike("t2.loginname", pageForm.getLoginName()); + } + cnd.andEX("t2.sex", "=", pageForm.getSex()); + cnd.andEX("t2.birthday", "=", pageForm.getBirthday()); + if (pageForm.getBirthMonths() != null && pageForm.getBirthMonths().length > 0) { + cnd.andEX("MONTH(t2.birthday)", "in", pageForm.getBirthMonths()); + } + cnd.andEX("t1.welfareUnitId", "in", pageForm.getUnitIds()); + cnd.andEX("t1.welfareUnionId", "=", pageForm.getUnionId()); + cnd.andEX("t1.personType", "in", pageForm.getPersonTypes()); + cnd.andEX("t1.preparedBy", "in", pageForm.getPreparedBys()); + cnd.andEX("t1.userState", "in", pageForm.getUserStates()); + + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.asc("t1.welfareUnionName"); + cnd.asc("t1.welfareUnitName"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + sql.setCondition(cnd); + List list = listMap(sql); + + try { + Workbook workbook = null; + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("收货地址", "address", 70)); + exportEntities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 30)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + + + CommonDownloadUtil.download("收货地址汇总.xlsx", workbook, response); + } catch (Exception e) { + e.printStackTrace(); + } + } + @Override public void exportXlsx(WelfareListPageForm pageForm, HttpServletResponse response) { Sql sql = Sqls.create(""" @@ -596,26 +672,46 @@ public class WelfareListServiceImpl extends BaseServiceImpl impleme sql.setCondition(cnd); List list = listMap(sql); - List entities = new ArrayList<>(); - entities.add(new ExcelExportEntity("工号", "loginname", 20)); - entities.add(new ExcelExportEntity("姓名", "username", 20)); - entities.add(new ExcelExportEntity("性别", "sex", 20)); - entities.add(new ExcelExportEntity("出生日期", "birthday", 20)); - entities.add(new ExcelExportEntity("人员类型", "personType", 20)); - entities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); - entities.add(new ExcelExportEntity("在职状态", "userState", 20)); - entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20)); - entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20)); - entities.add(new ExcelExportEntity("备注", "remark", 20)); + try { + Workbook workbook = null; + if (Lang.isNotEmpty(pageForm.getColumns())) { + List exportEntities = new ArrayList<>(); + + pageForm.getColumns().forEach(column -> { + exportEntities.add(new ExcelExportEntity(column.get("label"), column.get("prop"), 20)); + }); + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + + workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + } else { + workbook = setHistoryExcelData(list); + } - // 设置导出参数 - ExportParams exportParams = new ExportParams(); - exportParams.setType(ExcelType.XSSF); - // 导出Excel并下载 - try (Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entities, list)) { CommonDownloadUtil.download("福利名单.xlsx", workbook, response); } catch (Exception e) { - log.error("导出Excel失败", e); + e.printStackTrace(); } } + + public Workbook setHistoryExcelData(List list) { + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); + exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); + exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30)); + exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); + exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20)); + exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30)); +// exportEntities.add(new ExcelExportEntity("来校年月", "comeSchoolDate", 30)); +// exportEntities.add(new ExcelExportEntity("所在科室", "threeUnitName", 20)); +// exportEntities.add(new ExcelExportEntity("工会小组", "unionGroupName", 30)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + return ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + } } diff --git a/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js b/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js index 55552eb..05fe2cd 100644 --- a/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js +++ b/src/main/resources/views/platform/zhgh/activity/sports/applyUser/applyUser.js @@ -77,9 +77,11 @@ var ACTIVITY_SPORTS_APPLY_USER = {