教代会意见:查询统计字段查询有误(建议承办单位)

This commit is contained in:
2026-05-14 09:57:45 +08:00
parent 99fc264143
commit 31c47d2ebc
4 changed files with 44 additions and 5 deletions
@@ -74,8 +74,7 @@ public class OpinionSummaryController {
@Aop(TransAop.READ_COMMITTED)
public Result pageData(@Valid OpinionSearchParam pageForm,
@Param(value = "String") String sessionId) {
Sql sql = opinionSummaryService.createSql(pageForm, sessionId);
return Result.success(opinionCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql));
return Result.success(opinionSummaryService.pageData(pageForm, sessionId));
}
@At
@@ -1,5 +1,6 @@
package com.budwk.app.zhgh.democratic.opinion.service;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.ExportTableColumns;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.zhgh.democratic.opinion.models.OpinionInfo;
@@ -18,6 +19,15 @@ public interface OpinionSummaryService extends BaseService<OpinionInfo> {
*/
Sql createSql(@Valid OpinionSearchParam pageForm, String sessionId);
/**
* 分页查询汇总列表
*
* @param pageForm 查询条件
* @param sessionId 教代会ID
* @return 汇总分页结果
*/
Pagination pageData(@Valid OpinionSearchParam pageForm, String sessionId);
/**
* 导出查询统计结果
*
@@ -6,6 +6,7 @@ import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.param.ExportTableColumns;
import com.budwk.app.base.utils.CommonDownloadUtil;
import com.budwk.app.base.constant.RoleConstant;
@@ -23,6 +24,7 @@ import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.json.Json;
import org.nutz.lang.util.NutMap;
import javax.servlet.http.HttpServletResponse;
@@ -91,11 +93,20 @@ public class OpinionSummaryServiceImpl extends BaseServiceImpl<OpinionInfo> impl
return sql;
}
@Override
public Pagination pageData(OpinionSearchParam pageForm, String sessionId) {
// 分页结果在 service 层统一格式化,确保列表和导出使用同一套展示字段。
Sql sql = createSql(pageForm, sessionId);
Pagination pagination = listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
pagination.setList(formatSummaryList(pagination.getList(NutMap.class)));
return pagination;
}
@Override
public void exportData(OpinionSearchParam pageForm, String sessionId, ExportTableColumns[] tableColumns, HttpServletResponse response) {
// 导出与列表查询复用同一套SQL,确保页面筛选结果和导出结果完全一致。
Sql sql = createSql(pageForm, sessionId);
List<NutMap> dataList = listMap(sql);
List<NutMap> dataList = formatSummaryList(listMap(sql));
dataList.forEach(item -> {
Integer stateCode = Convert.toInt(item.get("instanceState"), null);
item.setv("instanceStateName", getProcessInstanceStateName(stateCode));
@@ -123,6 +134,7 @@ public class OpinionSummaryServiceImpl extends BaseServiceImpl<OpinionInfo> impl
entityList.add(new ExcelExportEntity("意见类别", "typeName", 20));
entityList.add(new ExcelExportEntity("建议人", "createUserName", 20));
entityList.add(new ExcelExportEntity("记录人", "suggestUserName", 20));
entityList.add(new ExcelExportEntity("建议承办单位", "suggestUnitsName", 25));
entityList.add(new ExcelExportEntity("主办单位", "masterUnitName", 25));
entityList.add(new ExcelExportEntity("协办单位", "slaveUnitNames", 25));
entityList.add(new ExcelExportEntity("届次", "sessionName", 25));
@@ -136,6 +148,24 @@ public class OpinionSummaryServiceImpl extends BaseServiceImpl<OpinionInfo> impl
CommonDownloadUtil.download("意见查询统计.xlsx", ExcelExportUtil.exportExcel(exportParams, entityList, dataList), response);
}
/**
* 处理汇总页列表展示字段,避免前端直接展示 JSON 原始值。
*
* @param dataList 汇总列表
* @return 格式化后的汇总列表
*/
private List<NutMap> formatSummaryList(List<NutMap> dataList) {
dataList.forEach(item -> {
String suggestUnits = item.getString("suggestUnits");
if (StrUtil.isNotBlank(suggestUnits)) {
item.setv("suggestUnitsName", String.join(",", Json.fromJson(ArrayList.class, suggestUnits)));
} else {
item.setv("suggestUnitsName", "");
}
});
return dataList;
}
/**
* 将流程状态编码转换为中文描述,便于导出表格直接查看。
*
@@ -85,10 +85,10 @@ layout("/layouts/platform.html"){
tableColumns: [
{label: "意见编号", prop: "code"},
{label: "意见和建议", prop: "name", width: "200px"},
{label: "意见类别", prop: "typeName"},
{label: "意见类别", prop: "typeName"},
{label: "建议人", prop: "createUserName"},
{label: "建议人所属代表团", prop: "delegationName"},
{label: "建议承办单位", prop: "unitName"},
{label: "建议承办单位", prop: "suggestUnitsName"},
{label: "主办单位", prop: "masterUnitName"},
{label: "协办单位", prop: "slaveUnitNames"},
{label: "记录人", prop: "suggestUserName"},