分组
This commit is contained in:
+59
-4
@@ -1,13 +1,14 @@
|
|||||||
package com.budwk.app.module.activity.controller;
|
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.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.page.PageForm;
|
import com.budwk.app.base.page.PageForm;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.module.activity.models.ActGroup;
|
import com.budwk.app.module.activity.models.*;
|
||||||
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.service.ActGroupService;
|
import com.budwk.app.module.activity.service.ActGroupService;
|
||||||
import com.budwk.app.module.activity.service.ActUserService;
|
import com.budwk.app.module.activity.service.ActUserService;
|
||||||
import com.budwk.app.module.activity.vo.ActGroupVo;
|
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.module.activity.vo.ActUnGroupUserVo;
|
||||||
import com.budwk.app.web.commons.slog.annotation.SLog;
|
import com.budwk.app.web.commons.slog.annotation.SLog;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
import org.nutz.dao.Chain;
|
import org.nutz.dao.Chain;
|
||||||
import org.nutz.dao.Cnd;
|
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.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -299,4 +303,55 @@ public class ActGroupController {
|
|||||||
return Result.success();
|
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="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="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-row>
|
||||||
<el-table v-loading="tableLoading" show-overflow-tooltip :data="tableData">
|
<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>
|
<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){
|
openView(row){
|
||||||
this.$refs.viewInfoRef.onOpen(this.pageForm.activityId, row.id)
|
this.$refs.viewInfoRef.onOpen(this.pageForm.activityId, row.id)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
doExportGroup() {
|
||||||
|
window.open("/platform/activity/group/doExportGroup?activityId=" + this.pageForm.activityId)
|
||||||
|
},
|
||||||
|
|
||||||
// openAdjustGroup(row){
|
// openAdjustGroup(row){
|
||||||
//
|
//
|
||||||
// },
|
// },
|
||||||
|
|||||||
Reference in New Issue
Block a user