diff --git a/main/java/shkd/wfs/wf/plugin/form/ApprovalPagePluginNewDemo.java b/main/java/shkd/wfs/wf/plugin/form/ApprovalPagePluginNewDemo.java index a8c9350..f81d440 100644 --- a/main/java/shkd/wfs/wf/plugin/form/ApprovalPagePluginNewDemo.java +++ b/main/java/shkd/wfs/wf/plugin/form/ApprovalPagePluginNewDemo.java @@ -1,12 +1,70 @@ package shkd.wfs.wf.plugin.form; -import kd.bos.workflow.taskcenter.plugin.ApprovalPagePluginNew; +import kd.bos.dataentity.serialization.SerializationUtils; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.workflow.component.ApprovalRecord; +import kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup; +import kd.bos.workflow.engine.TaskService; +import kd.bos.workflow.engine.WfUtils; +import kd.bos.workflow.service.WorkflowService; +import kd.bos.workflow.service.impl.ServiceFactory; +import kd.bos.workflow.taskcenter.plugin.util.ApprovalPluginUtil; import kd.sdk.plugin.Plugin; import java.util.EventObject; +import java.util.HashMap; +import java.util.List; +import java.util.Map; -public class ApprovalPagePluginNewDemo extends ApprovalPagePluginNew implements Plugin{ + +public class ApprovalPagePluginNewDemo extends AbstractFormPlugin implements Plugin{ @Override public void afterCreateNewData(EventObject evt) { - super.showApprovalRecord(this.ISPCSHOWVALUE,Boolean.FALSE,super.isHideYzj(),Boolean.FALSE); + showApprovalRecord(true, Boolean.FALSE, false, Boolean.FALSE); + } + + + protected void showApprovalRecord(Boolean isPCShow, Boolean approvalIsNew, Boolean hideChat, Boolean isNewApprovalRecord) { + boolean isTaskExist = Boolean.parseBoolean(super.getPageCache().get("isTaskExist")); + if (isTaskExist) { + Long processInstanceId = WfUtils.normalizeId(super.getPageCache().get("processInstanceId")); + String businesskey = super.getPageCache().get("businesskey"); + String curTaskId = this.getPageCache().get("taskid"); + + + WorkflowService wfService = (WorkflowService) ServiceFactory.getService(WorkflowService.class); + TaskService taskService = wfService.getTaskService(); + + List approvalRecordItems = ApprovalPluginUtil.getApprovalRecordItems(taskService, processInstanceId, businesskey, curTaskId, isNewApprovalRecord); + ApprovalRecord approvalRecord = (ApprovalRecord)this.getControl("approvalrecordap"); + approvalRecord.setYzjParameter(businesskey, String.valueOf(processInstanceId), "wf_taskCenter"); + Map parameters = new HashMap(); + parameters.put("hideMoreChat", isPCShow && !hideChat ? "" : "true"); + parameters.put("hideChat", hideChat ? "true" : ""); + parameters.put("isPC", isPCShow.toString()); + parameters.put("approvalIsNew", approvalIsNew); + String billPageId = this.getPageCache().get("billPageId"); + parameters.put("pageId", billPageId); + boolean isDDOrQYWX = this.isNotFromYZJ(); + parameters.put("isDDOrQYWX", isDDOrQYWX); + parameters.put("procInstId", processInstanceId); + approvalRecord.setParameters(parameters); + approvalRecord.setArData(approvalRecordItems); + List openIds = ApprovalPluginUtil.getOpenIdsForApprovalRecord(approvalRecordItems); + if (WfUtils.isNotEmptyForCollection(openIds)) { + this.getPageCache().put("approvalRecordItems", SerializationUtils.toJsonString(openIds)); + } + + } + } + + public boolean isNotFromYZJ() { + Map customParams = this.getView().getFormShowParameter().getCustomParams(); + if (WfUtils.isNotEmptyForMap(customParams)) { + Object fromyzj = customParams.get("fromyzj"); + if (WfUtils.isNotEmptyString(fromyzj) && Boolean.parseBoolean(fromyzj.toString())) { + return false; + } + } + return true; } }