diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/common/ProposalCommonServiceImpl.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/common/ProposalCommonServiceImpl.java index 3d6e745..8ef8d8b 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/common/ProposalCommonServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/common/ProposalCommonServiceImpl.java @@ -209,12 +209,15 @@ public class ProposalCommonServiceImpl extends BaseServiceImpl imp ProcessInstance processInstance = dao().fetch(ProcessInstance.class, Cnd.where(ProcessInstance::getBusinessNo, "=", id)); List doneTaskVos = new ArrayList<>(); - List 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 doneTaskList = flowEngine.processTaskService().getDoneTaskList(processInstance.getId(), null); + for (ProcessTask doneTask : doneTaskList) { + ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId()); + doneTaskVos.add(taskVO); + } } + // 按任务节点分组 Map> taskGroups = doneTaskVos.stream().collect(Collectors.groupingBy(ProcessTaskVO::getDisplayName)); taskGroups.forEach((taskKey, taskVOS) -> { diff --git a/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java b/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java index 2ca5de6..b44898e 100644 --- a/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/democratic/proposal/service/impl/ProposalExportServiceImpl.java @@ -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 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 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(" ", ""))); + list.get(i).put("measures", HtmlUtil.cleanHtmlTag(list.get(i).getString("measures").replaceAll(" ", ""))); + List 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 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 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 exportEntities = new ArrayList<>(); @@ -228,7 +234,7 @@ public class ProposalExportServiceImpl extends BaseServiceImpl 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());