This commit is contained in:
=
2026-05-14 10:27:25 +08:00
parent 6a2407e84c
commit 6ff5f64770
2 changed files with 29 additions and 20 deletions
@@ -209,12 +209,15 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl<ProposalInfo> imp
ProcessInstance processInstance = dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id)); ProcessInstance processInstance = dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id));
List<ProcessTaskVO> doneTaskVos = new ArrayList<>(); List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(processInstance.getId(), null); if (processInstance != null) {
for (ProcessTask doneTask : doneTaskList) { List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(processInstance.getId(), null);
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); for (ProcessTask doneTask : doneTaskList) {
doneTaskVos.add(taskVO); ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
doneTaskVos.add(taskVO);
}
} }
// 按任务节点分组 // 按任务节点分组
Map<String, List<ProcessTaskVO>> taskGroups = doneTaskVos.stream().collect(Collectors.groupingBy(ProcessTaskVO::getDisplayName)); Map<String, List<ProcessTaskVO>> taskGroups = doneTaskVos.stream().collect(Collectors.groupingBy(ProcessTaskVO::getDisplayName));
taskGroups.forEach((taskKey, taskVOS) -> { taskGroups.forEach((taskKey, taskVOS) -> {
@@ -37,6 +37,7 @@ 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.Lang;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap; import org.nutz.lang.util.NutMap;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -170,6 +171,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
info.brief, info.brief,
info.measures, info.measures,
info.createUserName, info.createUserName,
info.suggestUnits,
tcde.unitName, tcde.unitName,
tcde.mobile, tcde.mobile,
type.name AS typeName, type.name AS typeName,
@@ -194,27 +196,31 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
// 添加序号,去除富文本,获取附议人 // 添加序号,去除富文本,获取附议人
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
list.get(i).put("index", i + 1); list.get(i).put("index", i + 1);
list.get(i).put("brief", HtmlUtil.cleanHtmlTag(list.get(i).getString("brief"))); list.get(i).put("brief", HtmlUtil.cleanHtmlTag(list.get(i).getString("brief").replaceAll("&nbsp;", "")));
list.get(i).put("measures", HtmlUtil.cleanHtmlTag(list.get(i).getString("measures"))); list.get(i).put("measures", HtmlUtil.cleanHtmlTag(list.get(i).getString("measures").replaceAll("&nbsp;", "")));
List<String> suggestUnits = Json.fromJsonAsList(String.class, list.get(i).getString("suggestUnits"));
list.get(i).put("suggestUnits", Strings.join(",", suggestUnits));
// 流程实例 // 流程实例
ProcessInstance instance = dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", list.get(i).getString("id"))); ProcessInstance instance = dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", list.get(i).getString("id")));
if (instance != null) {
// 查询附议人信息
ProcessTask inviteTask = dao().fetch(ProcessTask.class,
Cnd.where(ProcessTask::getProcessInstanceId, "=", instance.getId())
.and(ProcessTask::getTaskName, "=", "invite")
.and(ProcessTask::getTaskState, "in",
List.of(ProcessTaskStateEnum.DOING.getCode(), ProcessTaskStateEnum.FINISHED.getCode()))
.desc(ProcessTask::getCreatedAt));
// 查询附议人信息 if (inviteTask != null) {
ProcessTask inviteTask = dao().fetch(ProcessTask.class, NutMap variable = Json.fromJson(NutMap.class, inviteTask.getVariable());
Cnd.where(ProcessTask::getProcessInstanceId, "=", instance.getId()) List<NutMap> seconders = variable.getAsList(FlowConst.TASK_FORM_DATA_PREFIX + "seconder", NutMap.class);
.and(ProcessTask::getTaskName, "=", "invite") if (Lang.isNotEmpty(seconders)) {
.and(ProcessTask::getTaskState, "in", list.get(i).put("secondedUserNames", seconders.stream().map(v -> v.getString("userName")).collect(Collectors.joining(",")));
List.of(ProcessTaskStateEnum.DOING.getCode(), ProcessTaskStateEnum.FINISHED.getCode())) }
.desc(ProcessTask::getCreatedAt));
if (inviteTask != null) {
NutMap variable = Json.fromJson(NutMap.class, inviteTask.getVariable());
List<NutMap> seconders = variable.getAsList(FlowConst.TASK_FORM_DATA_PREFIX + "seconder", NutMap.class);
if (Lang.isNotEmpty(seconders)) {
list.get(i).put("secondedUserNames", seconders.stream().map(v -> v.getString("userName")).collect(Collectors.joining(",")));
} }
} }
} }
List<ExcelExportEntity> exportEntities = new ArrayList<>(); List<ExcelExportEntity> exportEntities = new ArrayList<>();
@@ -228,7 +234,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
exportEntities.add(new ExcelExportEntity("提案人电话", "mobile", 20)); exportEntities.add(new ExcelExportEntity("提案人电话", "mobile", 20));
exportEntities.add(new ExcelExportEntity("附议人(两名)", "secondedUserNames", 20)); exportEntities.add(new ExcelExportEntity("附议人(两名)", "secondedUserNames", 20));
exportEntities.add(new ExcelExportEntity("提案单位", "unitName", 20)); exportEntities.add(new ExcelExportEntity("提案单位", "unitName", 20));
exportEntities.add(new ExcelExportEntity("拟交办单位", "", 20)); exportEntities.add(new ExcelExportEntity("拟交办单位", "suggestUnits", 20));
Teacher_congress_session session = dao().fetch(Teacher_congress_session.class, pageForm.getSessionId()); Teacher_congress_session session = dao().fetch(Teacher_congress_session.class, pageForm.getSessionId());
String title = StrUtil.format("{}第{}{}教代会提案征集汇总表", Globals.AppName, session.getJ(), session.getC()); String title = StrUtil.format("{}第{}{}教代会提案征集汇总表", Globals.AppName, session.getJ(), session.getC());