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));
List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(processInstance.getId(), null);
for (ProcessTask doneTask : doneTaskList) {
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
doneTaskVos.add(taskVO);
if (processInstance != null) {
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(processInstance.getId(), null);
for (ProcessTask doneTask : doneTaskList) {
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
doneTaskVos.add(taskVO);
}
}
// 按任务节点分组
Map<String, List<ProcessTaskVO>> taskGroups = doneTaskVos.stream().collect(Collectors.groupingBy(ProcessTaskVO::getDisplayName));
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.json.Json;
import org.nutz.lang.Lang;
import org.nutz.lang.Strings;
import org.nutz.lang.util.NutMap;
import javax.servlet.http.HttpServletResponse;
@@ -170,6 +171,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
info.brief,
info.measures,
info.createUserName,
info.suggestUnits,
tcde.unitName,
tcde.mobile,
type.name AS typeName,
@@ -194,27 +196,31 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
// 添加序号,去除富文本,获取附议人
for (int i = 0; i < list.size(); i++) {
list.get(i).put("index", i + 1);
list.get(i).put("brief", HtmlUtil.cleanHtmlTag(list.get(i).getString("brief")));
list.get(i).put("measures", HtmlUtil.cleanHtmlTag(list.get(i).getString("measures")));
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").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")));
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));
// 查询附议人信息
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) {
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(",")));
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<>();
@@ -228,7 +234,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl<ProposalInfo> imp
exportEntities.add(new ExcelExportEntity("提案人电话", "mobile", 20));
exportEntities.add(new ExcelExportEntity("附议人(两名)", "secondedUserNames", 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());
String title = StrUtil.format("{}第{}{}教代会提案征集汇总表", Globals.AppName, session.getJ(), session.getC());