This commit is contained in:
Paidax
2025-11-06 20:41:19 +08:00
parent bdfaf01e10
commit c1589e4792
2 changed files with 65 additions and 4 deletions
@@ -1,13 +1,14 @@
package com.budwk.app.module.activity.controller;
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.util.StrUtil;
import com.budwk.app.base.page.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.module.activity.models.ActGroup;
import com.budwk.app.module.activity.models.ActGroupUser;
import com.budwk.app.module.activity.models.ActItemGroupScore;
import com.budwk.app.module.activity.models.ActivityItem;
import com.budwk.app.module.activity.models.*;
import com.budwk.app.module.activity.service.ActGroupService;
import com.budwk.app.module.activity.service.ActUserService;
import com.budwk.app.module.activity.vo.ActGroupVo;
@@ -15,6 +16,7 @@ import com.budwk.app.module.activity.vo.ActManualGroupVo;
import com.budwk.app.module.activity.vo.ActUnGroupUserVo;
import com.budwk.app.web.commons.slog.annotation.SLog;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
@@ -30,8 +32,10 @@ import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -299,4 +303,55 @@ public class ActGroupController {
return Result.success();
}
@At
@Ok("void")
@SaCheckPermission("activity.group")
public void doExportGroup(String activityId, HttpServletResponse response){
try {
Activity activity = dao.fetch(Activity.class, Cnd.NEW().and("id", "=", activityId));
Sql sql = Sqls.create("""
SELECT
u.userName,
u.sex,
u.position,
u.mobile,
u.unitName,
g.groupName
FROM
`act_group_user` agu
LEFT JOIN act_user u ON u.userId = agu.userId
LEFT JOIN act_group g ON g.id = agu.groupId
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("u.activityId", "=", activityId);
cnd.and("u.isSignIn", "=", true);
cnd.orderBy("g.id", "asc");
sql.setCondition(cnd);
List<NutMap> list = actUserService.listMap(sql);
List<ExcelExportEntity> entityList = new ArrayList<>() {{
add(new ExcelExportEntity("姓名", "userName", 20));
add(new ExcelExportEntity("性别", "sex", 20));
add(new ExcelExportEntity("职务", "position", 20));
add(new ExcelExportEntity("联系方式", "mobile", 20));
add(new ExcelExportEntity("参加单位名称", "unitName", 20));
add(new ExcelExportEntity("队伍名称", "groupName", 20));
}};
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + new String((activity.getTitle() + "分组结果表.xlsx").getBytes(StandardCharsets.UTF_8), "ISO8859-1"));
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entityList, list);
workbook.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
}
@@ -76,6 +76,7 @@ layout("/layouts/platform_1.html"){
<el-button type="primary" size="small" @click="releaseGroupResult" style="margin-left: 10px">发布分组结果</el-button>
<el-button type="warning" size="small" @click="unReleaseGroupResult" style="margin-left: 10px">取消分组结果</el-button>
<el-button type="primary" size="small" @click="doExportGroup" style="margin-left: 10px">导出分组结果</el-button>
</el-row>
<el-table v-loading="tableLoading" show-overflow-tooltip :data="tableData">
<el-table-column label="序号" type="index" header-align="center" align="center" width="50"></el-table-column>
@@ -145,6 +146,11 @@ layout("/layouts/platform_1.html"){
openView(row){
this.$refs.viewInfoRef.onOpen(this.pageForm.activityId, row.id)
},
doExportGroup() {
window.open("/platform/activity/group/doExportGroup?activityId=" + this.pageForm.activityId)
},
// openAdjustGroup(row){
//
// },