From 7a62322c29bbd8415ac0b6ce11638ce1479731f8 Mon Sep 17 00:00:00 2001 From: zhaol <15900249928@163.com> Date: Thu, 23 Jan 2025 01:26:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=91=E9=80=81OAalsp|?= =?UTF-8?q?=E5=8F=91=E9=80=81kmsalap|=E5=8F=91=E9=80=81EHSQalsp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com.actionsoft.apps.coe.pal.publisher.jar | Bin 591089 -> 597347 bytes .../apps/coe/pal/publisher/Plugins.java | 10 + .../coe/pal/publisher/alsp/SendEHSQAlsp.java | 100 +++ .../coe/pal/publisher/alsp/SendKMSAlsp.java | 174 ++++++ .../coe/pal/publisher/alsp/SendOAAlsp.java | 68 ++ .../PublishExecuteListenerInterfaceImpl.java | 45 +- .../pubEvent/ProcessEndAfterEvent_new.java | 587 +++++------------- 7 files changed, 532 insertions(+), 452 deletions(-) create mode 100644 com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendEHSQAlsp.java create mode 100644 com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendKMSAlsp.java create mode 100644 com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendOAAlsp.java diff --git a/com.actionsoft.apps.coe.pal.publisher/lib/com.actionsoft.apps.coe.pal.publisher.jar b/com.actionsoft.apps.coe.pal.publisher/lib/com.actionsoft.apps.coe.pal.publisher.jar index cb93c6526fbc66a98327852c8fd79227fda463bc..ff93f755df5f6e8349d7ceb03e0ab990aa12670e 100644 GIT binary patch delta 70282 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%0AB-ul`^^%V`jb8(p3szOW~?lzB%RPs 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 delta 64276 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 map) { + String processId = String.valueOf(map.get("processId")); + String taskId = String.valueOf(map.get("taskId")); + String sid = String.valueOf(map.get("sid")); + String isSendEHSQ = String.valueOf(map.get("isSendEHSQ")); + Connection open = DBSql.open(); + + + // 流程发布的新增发布 + List bo_act_coe_publish_n = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N", true).connection(open) + .addQuery("BINDID=", processId).list(); + // 流程发布的变更发布 + List bo_act_coe_publish_c = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C", true).connection(open) + .addQuery("BINDID=",processId).list(); + // 流程发布的废止变更 + List bo_act_coe_publish_s = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S", true).connection(open) + .addQuery("BINDID=", processId).list(); + + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processId); + TaskInstance taskInstance=SDK.getTaskAPI().getInstanceById(taskId); + + + ProcessEndAfterEvent_new processEndAfterEventNew=new ProcessEndAfterEvent_new(); + + boolean sendEhqs = false; + String depId = UserContext.fromSessionId(sid).getDepartmentModel().getId(); + //获取EHSQ配置表判断是否发送 + String sql = "SELECT * FROM BO_ACT_ACT_ESQ_SEND"; + List maps = DBSql.getMaps(open,sql); + for (RowMap rowMap : maps) { + String dempet = rowMap.getString("DEMPET"); + String issend = rowMap.getString("ISSEND"); + DepartmentModel departmentById = SDK.getORGAPI().getDepartmentById(dempet); + if(departmentById!=null) { + String departemenId = departmentById.getId(); + String pathIdOfCache=departmentById.getPathIdOfCache(); + if(departemenId.equals(depId)&&"是".equals(issend)) { + sendEhqs = true; + } else { + List subDepartments = SDK.getORGAPI().getSubDepartments(departmentById.getId()); + for (DepartmentModel departmentModel : subDepartments) { + String subDeartmentId = departmentModel.getId(); + if (subDeartmentId.equals(depId) && "是".equals(issend)) { + sendEhqs = true; + } + } + + } + + } + } + if(!sendEhqs) { + System.err.println("本次发文不推送EHSQ====>"+processInstance.getTitle()); + } + if ("true".equals(isSendEHSQ)&&sendEhqs) { + try { + // 推送EHSQ + if(bo_act_coe_publish_n.size()>0) { + processEndAfterEventNew.sendEHSQ(processInstance, bo_act_coe_publish_n,taskInstance,sid); + } + // 更新EHSQ + if(bo_act_coe_publish_c.size()>0) { + processEndAfterEventNew.updateEHSQ(processInstance, bo_act_coe_publish_c,taskInstance,sid); + } + } catch (Exception e) { + // TODO: handle exception + } + } + + return null; + } +} diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendKMSAlsp.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendKMSAlsp.java new file mode 100644 index 00000000..9024bf62 --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendKMSAlsp.java @@ -0,0 +1,174 @@ +package com.actionsoft.apps.coe.pal.publisher.alsp; + +import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.dao.CoeProcessLevelDaoFacotory; +import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao; +import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.dao.DesignerShapeRelationDao; +import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.model.DesignerShapeRelationModel; +import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; +import com.actionsoft.apps.coe.pal.publisher.pubEvent.DownloadUtil; +import com.actionsoft.apps.coe.pal.publisher.pubEvent.ProcessEndAfterEvent_new; +import com.actionsoft.apps.coe.pal.publisher.utils.DeleteGptFilesUtils; +import com.actionsoft.apps.resource.interop.aslp.ASLP; +import com.actionsoft.apps.resource.interop.aslp.Meta; +import com.actionsoft.bpms.bo.engine.BO; +import com.actionsoft.bpms.bpmn.constant.ProcessRuntimeConst; +import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; +import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; +import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.commons.mvc.view.ResponseObject; +import com.actionsoft.bpms.org.model.DepartmentModel; +import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.util.DBSql; +import com.actionsoft.bpms.util.UUIDGener; +import com.actionsoft.sdk.local.SDK; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; + +import java.sql.Connection; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.*; + +public class SendKMSAlsp implements ASLP { + + + @Override + @Meta(parameter = {"name:'processId',required:true,desc:'流程实例ID'", + "name:'sid',required:true,desc:'sid'"}) + public ResponseObject call(Map map) { + ResponseObject ro = ResponseObject.newWarnResponse("结果未知"); + try { + String processId = String.valueOf(map.get("processId")); + Connection open = DBSql.open(); + + String sid = String.valueOf(map.get("sid")); + //查询发布表数据 + BO bo_act_coe_publish = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true) + .addQuery("BINDID=", processId) + .addQuery("OPTIONTYPE IS NOT NULL", null).detail(); + + // 流程发布的新增发布 + List bo_act_coe_publish_n = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N", true).connection(open) + .addQuery("BINDID=", processId).list(); + // 流程发布的变更发布 + List bo_act_coe_publish_c = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C", true).connection(open) + .addQuery("BINDID=", processId).list(); + // 流程发布的废止变更 + List bo_act_coe_publish_s = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S", true).connection(open) + .addQuery("BINDID=", processId).list(); + JSONArray filed = new JSONArray(new LinkedList<>()); + String wsId = ""; + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processId); + ProcessEndAfterEvent_new processEndAfterEvent_new = new ProcessEndAfterEvent_new(); + + + JSONObject jsonObject = new JSONObject(); + + String new_uid = ""; + ArrayList sendList = new ArrayList(); + // 发送全集团 + if ("1".equals(bo_act_coe_publish.getString("SEND_SCOP"))) { + // 系统人员 + ArrayList userList1 = new ArrayList(); + try { + userList1 = processEndAfterEvent_new.getUser(jsonObject, "5bc3a2dc-3bd2-4376-bcc3-5612e28e55fe", "0", + processId); + } catch (Exception e) { + // TODO: handle exception + } + //System.err.println("系统人员=====>" + userList1); + // 项目开发人员 + ArrayList userList2 = new ArrayList(); + try { + userList2 = processEndAfterEvent_new.getUser(jsonObject, "e79281b1-2f81-4895-b30e-9f96e9ad0e2c", "0", + processId); + } catch (Exception e) { + // TODO: handle exception + } + //System.err.println("项目开发人员=====>" + userList2); + // 离退人员 + ArrayList userList3 = new ArrayList(); + try { + userList3 = processEndAfterEvent_new.getUser(jsonObject, "65048aee-157f-49f2-a2dc-5903dd26f519", "0", + processId); + } catch (Exception e) { + // TODO: handle exception + } + //System.err.println("离退人员=====>" + userList3); + List mapsl = DBSql.getMaps(open, "SELECT * FROM ORGUSER WHERE CLOSED = '0'"); + for (RowMap rowMap : mapsl) { + String userId = rowMap.getString("USERID"); + // RowMap map = DBSql.getMap("SELECT ID FROM BO_ACT_DATAID WHERE PROCESSID = '" + // + instanceById.getId() + "' AND USER_ID = '" + userId + "'"); + if (!"10033643".equals(userId) && !userList1.contains(userId) + && !userList2.contains(userId) && !userList3.contains(userId)) { + sendList.add(userId); + } + } + } else { + // 发送组织岗位职级 + sendList = processEndAfterEvent_new.getSendList(processInstance, bo_act_coe_publish, jsonObject); + } + + + new_uid = new_uid.join(",", sendList); + + try { + // 发布到知识库 + int m = 0; + for (BO bo : bo_act_coe_publish_n) { + processEndAfterEvent_new.createKmsByNew(bo, wsId, filed, processInstance, bo_act_coe_publish, new_uid, sid); + } + // 更新知识库 + for (BO bo : bo_act_coe_publish_c) { + processEndAfterEvent_new.CreateKmsByupdate(bo, wsId, filed, processInstance, bo_act_coe_publish, + new_uid, sid); + } + + // 废止知识库文件 + for (BO bo : bo_act_coe_publish_s) { + // 将旧的知识取消发布或者移动到废止发布中 + String publishfileid_stop = bo.getString("STOPFILEID"); + filed.add(publishfileid_stop); + String sql_s = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid_stop + + "'"; + RowMap map1 = DBSql.getMap(open, sql_s); + if (StringUtils.isNotEmpty(map1.getString("EXT4"))) { + processEndAfterEvent_new.CancelPublishKnwl(processInstance, + sid, + map1.getString("EXT4")); + + DBSql.update(open, "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '' WHERE ID = '" + + publishfileid_stop + "'"); + } + } + } catch (Exception e) { + System.out.println("KMS知识库创建异常====" + bo_act_coe_publish_n); + // TODO: handle exception + e.printStackTrace(); + + } + } catch (Exception e) { + e.printStackTrace(); + ro = ResponseObject.newErrResponse(e.getMessage()); + } + + + return ro; + + + + } + + + + + + + + + +} diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendOAAlsp.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendOAAlsp.java new file mode 100644 index 00000000..21d34a10 --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/alsp/SendOAAlsp.java @@ -0,0 +1,68 @@ +package com.actionsoft.apps.coe.pal.publisher.alsp; + +import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.dao.CoeProcessLevelDaoFacotory; +import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao; +import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.dao.DesignerShapeRelationDao; +import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.model.DesignerShapeRelationModel; +import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; +import com.actionsoft.apps.coe.pal.publisher.pubEvent.DownloadUtil; +import com.actionsoft.apps.coe.pal.publisher.pubEvent.ProcessEndAfterEvent_new; +import com.actionsoft.apps.coe.pal.publisher.utils.DeleteGptFilesUtils; +import com.actionsoft.apps.resource.interop.aslp.ASLP; +import com.actionsoft.apps.resource.interop.aslp.Meta; +import com.actionsoft.bpms.bo.engine.BO; +import com.actionsoft.bpms.bpmn.constant.ProcessRuntimeConst; +import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; +import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; +import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.commons.mvc.view.ResponseObject; +import com.actionsoft.bpms.org.model.DepartmentModel; +import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.util.DBSql; +import com.actionsoft.bpms.util.UUIDGener; +import com.actionsoft.sdk.local.SDK; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; + +import java.sql.Connection; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.*; + +public class SendOAAlsp implements ASLP { + + + @Override + @Meta(parameter = {"name:'processId',required:true,desc:'流程ID'", + "name:'taskId',required:true,desc:'任务ID'"}) + public ResponseObject call(Map map) { + ResponseObject ro = ResponseObject.newWarnResponse("结果未知"); + try { + String processId = String.valueOf(map.get("processId")); + String taskId = String.valueOf(map.get("taskId")); + String sid = String.valueOf(map.get("sid")); + Connection open = DBSql.open(); + + ProcessEndAfterEvent_new processEndAfterEventNew = new ProcessEndAfterEvent_new(); + + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processId); + TaskInstance taskInstance = SDK.getTaskAPI().getInstanceById(taskId); + if (processInstance != null && processInstance.getControlState().equals(ProcessRuntimeConst.INST_STATE_END) && taskInstance != null) { + processEndAfterEventNew.ProcessData(processInstance, taskInstance, open, sid); + } + + } catch (Exception e) { + e.printStackTrace(); + ro = ResponseObject.newErrResponse(e.getMessage()); + } + return ro; + } + + + + + +} diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java index 8a2f8ee5..d98c6dba 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java @@ -38,6 +38,7 @@ import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryPropertyMod import com.actionsoft.apps.coe.pal.pal.repository.web.CoeProcessLevelWeb; import com.actionsoft.apps.coe.pal.publisher.client.util.ProcessStatusAPIManager; import com.actionsoft.apps.coe.pal.publisher.constant.PublisherConstant; +import com.actionsoft.apps.coe.pal.publisher.utils.DeleteGptFilesUtils; import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener; @@ -244,7 +245,7 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme //更新部门视图 - updateDeptView(bolistN, bolistC, bolistS); + updateDeptView(bolistN, bolistC, bolistS,param); } @@ -254,11 +255,15 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme * @param bolistC * @param bolistS */ - public void updateDeptView(List bolistN, List bolistC, List bolistS){ + public void updateDeptView(List bolistN, List bolistC, List bolistS, ProcessExecutionContext param){ if (bolistN != null) { for (BO boN : bolistN) { String fileId = boN.getString("PUBLISHFILEID"); - DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='1' WHERE ID='" + fileId + "'"); + int countEXT5=DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='1' WHERE ID='" + fileId + "'"); + if(countEXT5==0){ + System.out.println("发布新增表模型id为="+fileId); + } + /** * 更新部门视图EXT6字段 */ @@ -292,7 +297,6 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='0' WHERE ID='"+changefileId+"'"); DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='1' WHERE ID='"+changefileIdNew+"'"); - /** * 更新部门视图EXT6字段 */ @@ -322,6 +326,39 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme String fileId = boS.get("STOPFILEID").toString(); DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='0' WHERE ID='"+fileId+"'"); + + + + PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(fileId); + + DesignerShapeRelationModel designerShapeRelationModel=new DesignerShapeRelationModel(); + designerShapeRelationModel.setId(UUIDGener.getUUID()); + designerShapeRelationModel.setFileId(fileId); + designerShapeRelationModel.setAttrId("nullifier"); + designerShapeRelationModel.setRelationFileId("00000000-0000-0000-0000-000000000000"); + designerShapeRelationModel.setRelationShapeId("00000000-0000-0000-0000-000000000000"); + + JSONObject js=new JSONObject(); + js.put("name", param.getUserContext().getUserName()); + js.put("id",param.getUserContext().getUID()); + js.put("type", "user"); + + designerShapeRelationModel.setRelationShapeText(js.toString()); + + DesignerShapeRelationDao dao = new DesignerShapeRelationDao(); + dao.insert(designerShapeRelationModel); + + PALRepositoryPropertyDao propertyDao = new PALRepositoryPropertyDao(); + //作废时间 + Date date=new Date(); + SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd"); + propertyDao.updatePropertyByPropertyId(fileId, "obsolescence_time", sdfs.format(date)); + + if (plModel != null) { + PALRepositoryCache.getCache().put(fileId, plModel); + } + + } } diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/pubEvent/ProcessEndAfterEvent_new.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/pubEvent/ProcessEndAfterEvent_new.java index e3f7cb64..df108054 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/pubEvent/ProcessEndAfterEvent_new.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/pubEvent/ProcessEndAfterEvent_new.java @@ -104,7 +104,6 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute Connection open = DBSql.open(); try { - if(isConfirmRelease==true){ ProcessInstance boProcessInstance = SDK.getProcessAPI() .createBOProcessInstance("obj_7946c848674f422fbe2817ad5d047337", ext.getUserContext().getUID(), "OA任务状态记录"); @@ -114,7 +113,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute executiveTaskBO.set("TASKSTATUS",1); executiveTaskBO.set("ISTASKEND",1); SDK.getBOAPI().create("BO_ACT_EXECUTIVE_TASK",executiveTaskBO,boProcessInstance.getId(),""); - ExecutorService service = Executors.newFixedThreadPool(1); + /* ExecutorService service = Executors.newFixedThreadPool(1); service.execute(new Runnable() { @Override public void run() { @@ -125,7 +124,37 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute e.printStackTrace(); } } - }); + });*/ + + + // 调用方 + String sourceAppId = "com.actionsoft.apps.coe.pal.publisher"; + // 服务地址 + String aslp = "aslp://com.actionsoft.apps.coe.pal.publisher/SendOAAlsp"; + Map params = new HashMap(); + // 给定必填参数 + params.put("processId", ext.getProcessInstance().getId()); + params.put("taskId", ext.getTaskInstance().getId()); + + AppAPI appApi = SDK.getAppAPI(); + //统一接口中心请求调用 + appApi.asynCallASLP(appApi.getAppContext(sourceAppId), aslp, params); + + + + + // 服务地址 + String kmsaslp = "aslp://com.actionsoft.apps.coe.pal.publisher/SendKMSAlsp"; + Map kmsparams = new HashMap(); + // 给定必填参数 + kmsparams.put("processId", ext.getProcessInstance().getId()); + kmsparams.put("sid", ext.getUserContext().getSessionId()); + + AppAPI kmsappApi = SDK.getAppAPI(); + //统一接口中心请求调用 + appApi.asynCallASLP(kmsappApi.getAppContext(sourceAppId), kmsaslp, params); + + } }catch (Exception e){ e.printStackTrace(); @@ -176,13 +205,12 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } - public void ProcessData(ProcessExecutionContext processExecutionContext,Connection open) throws Exception { - System.err.println(processExecutionContext.getTaskInstance().getTitle() + "_推送文件开始========>"); + public void ProcessData(ProcessInstance processInstance,TaskInstance taskInstance,Connection open,String sid) throws Exception { // http://localhost:8089/portal/r/or?cmd=com.hy_client_bpm_form_main_page_open&oauthName=oauthLogin&processInstId=3505e654-9217-41cd-a31d-4971846b3219 /** * 当流程不等于终止的时候往下走 */ - if (!"terminate".equals(processExecutionContext.getProcessInstance().getControlState())) { + if (!"terminate".equals(processInstance.getControlState())) { DownloadUtil downloadUtil = new DownloadUtil(); String wsId = ""; JSONArray filed = new JSONArray(new LinkedList<>()); @@ -194,21 +222,23 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute */ try { + //构建PC地址 String url = portalUrl + "/r/or?cmd=com.yili_process_page&oauthName=oauthLogin&processInstId=" - + processExecutionContext.getProcessInstance().getId() + "&taskInstId=" - + processExecutionContext.getTaskInstance().getId(); + + processInstance.getId() + "&taskInstId=" + + taskInstance.getId(); + //构建移动端地址 String mobileurl = "https://bpm.yili.com:8088/portal" + "/r/or?cmd=com.yili_process_page_phone&corpid=wwb0ae23173b140618&appAgentId=1000014&oauthName=wechat&processInstId=" - + processExecutionContext.getProcessInstance().getId() + "&taskInstId=" - + processExecutionContext.getTaskInstance().getId(); + + processInstance.getId() + "&taskInstId=" + + taskInstance.getId(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //Timestamp endTime = processExecutionContext.getTaskInstance().getBeginTime(); + //Timestamp endTime = taskInstance.getBeginTime(); Timestamp endTime = new Timestamp(System.currentTimeMillis()); BO boActCoePublish = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true).connection(open) - .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()) + .addQuery("BINDID=", processInstance.getId()) .addQuery("OPTIONTYPE IS NOT NULL", null).detail(); // ProcessExecutionContext processExecutionContext,String fileCreateName,String @@ -216,49 +246,55 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute // fileCreateDate,String relationProcessinstId,String readingScope_post,String // readingScope_level,String fileid String not_url = "/w?cmd=com.yili_process_page&processInstId=" - + processExecutionContext.getProcessInstance().getId() + "&taskInstId=" - + processExecutionContext.getTaskInstance().getId(); - execute(processExecutionContext, boActCoePublish.getString("APPLYUSERNAME"), + + processInstance.getId() + "&taskInstId=" + + taskInstance.getId(); + + //创建XPage页面上的待阅文件 + execute(processInstance, boActCoePublish.getString("APPLYUSERNAME"), boActCoePublish.getString("PROCESS_TITLE"), not_url, boActCoePublish.getString("SEND_SCOPE_ORG"), boActCoePublish.getString("SEND_SCOP"), - boActCoePublish.getString("APPLYDATE"), processExecutionContext.getProcessInstance().getId(), + boActCoePublish.getString("APPLYDATE"), processInstance.getId(), boActCoePublish.getString("SEND_SCOPE_POST"), boActCoePublish.getString("SEND_SCOPE_LEVEL"), "1"); + //开始构建OA待阅请求体 JSONObject jsonObject = new JSONObject(new LinkedHashMap()); jsonObject.put("action", "read"); jsonObject.put("title", " " + "" + boActCoePublish.getString("PROCESS_TITLE") + ""); jsonObject.put("dept", SDK.getORGAPI() - .getDepartmentByUser(processExecutionContext.getTaskInstance().getTarget()).getNo());// SDK.getORGAPI().getDepartmentByUser(processExecutionContext.getProcessInstance().getCreateUser()).getNo() - String target = processExecutionContext.getTaskInstance().getTarget(); - target = processExecutionContext.getTaskInstance().getTarget(); + .getDepartmentByUser(taskInstance.getTarget()).getNo());// SDK.getORGAPI().getDepartmentByUser(processInstance.getCreateUser()).getNo() + String target = taskInstance.getTarget(); + target = taskInstance.getTarget(); jsonObject.put("user", target); - // jsonObject.put("user",);//processExecutionContext.getProcessInstance().getCreateUser() + // jsonObject.put("user",);//processInstance.getCreateUser() jsonObject.put("date", sdf.format(endTime)); jsonObject.put("remark", boActCoePublish.getString("PROCESS_TITLE")); jsonObject.put("status", "0"); - jsonObject.put("dataid", processExecutionContext.getProcessInstance().getId()); + jsonObject.put("dataid", processInstance.getId()); jsonObject.put("pcurl", url); jsonObject.put("mobileurl", mobileurl); // list.add(1,"00352394"); // list.add(2,"00352394"); BO bo_act_coe_publish1 = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true).connection(open) - .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()) + .addQuery("BINDID=", processInstance.getId()) .addQuery("OPTIONTYPE IS NOT NULL", null).detail(); String crateUserId = target; String new_uid = ""; + //查询发布表数据 BO bo_act_coe_publish = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true) - .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()) + .addQuery("BINDID=", processInstance.getId()) .addQuery("OPTIONTYPE IS NOT NULL", null).detail(); // 流程发布的新增发布 List bo_act_coe_publish_n = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N", true).connection(open) - .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()).list(); + .addQuery("BINDID=", processInstance.getId()).list(); + // 流程发布的变更发布 List bo_act_coe_publish_c = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C", true).connection(open) - .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()).list(); + .addQuery("BINDID=", processInstance.getId()).list(); + // 流程发布的废止变更 List bo_act_coe_publish_s = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S", true).connection(open) - .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()).list(); + .addQuery("BINDID=", processInstance.getId()).list(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); JSONArray jsonArray = new JSONArray(); @@ -268,7 +304,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * 推送待阅文件到OA */ if ("true".equals(isSendOA)) { - ProcessInstance instanceById = processExecutionContext.getProcessInstance(); + ProcessInstance instanceById = processInstance; if (bo_act_coe_publish1 != null && instanceById != null) { long sendUserstartTime = System.currentTimeMillis(); ArrayList sendList = new ArrayList(); @@ -329,7 +365,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute for (BO uid:bo_eu_oa_read_test) { sendLists.add(uid.getString("USER_ID")); }*/ - String sql = "SELECT ID FROM WFH_TASK WHERE PROCESSINSTID = '" + processExecutionContext.getProcessInstance().getId() + String sql = "SELECT ID FROM WFH_TASK WHERE PROCESSINSTID = '" + processInstance.getId() + "' AND ACTIVITYDEFID = 'obj_c9e5a3144b200001b68cffa01ed0153e' "; String taskInd = DBSql.getString(sql); @@ -341,7 +377,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute for (String uid: users) { BO bo = new BO(); bo.set("USER_ID",uid); - bo.set("PROCESSID",processExecutionContext.getProcessInstance().getId()); + bo.set("PROCESSID",processInstance.getId()); bo.set("USERID",ta.getTarget()); bo.set("DEPARTMENT",UserContext.fromUID(ta.getTarget()).getDepartmentModel().getId()); bo.set("PROCESS_TITLE",bo_act_coe_publish1.getString("PROCESS_TITLE")); @@ -372,7 +408,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute /** * 创建线程发送待阅数据 */ - course(list,startTime,jsonObject,processExecutionContext,sendList); + course(list,startTime,jsonObject,processInstance,sendList,sid); //System.out.println("发送人员数据>>>>>>>>>>>>>>"+list); }else { int size = users.length/length; @@ -391,371 +427,22 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute /** * 创建线程发送待阅数据 */ - course(list,startTime,jsonObject,processExecutionContext,sendList); + course(list,startTime,jsonObject,processInstance,sendList,sid); //System.out.println("发送人员数据>>>>>>>>>>>>>>"+list); } - - - - /*int toIndex = 200; - int listSize = sendList.size(); - boolean shutdown = false; - - for (int i = 0; i < sendList.size(); i += 200) { - long startTime1 = System.currentTimeMillis(); - if (i + 200 > listSize) { - toIndex = listSize - i; - } - List idList = sendList.subList(i, i + toIndex); - try { - - BO executiveTaskBO=SDK.getBOAPI().query("BO_ACT_EXECUTIVE_TASK").addQuery("TASKID=",processExecutionContext.getProcessInstance().getId()).addQuery("TASKSTATUS=",2).detail(); - if(executiveTaskBO!=null){ - List recordFailLists = new ArrayList(); - String userIds = StringUtils.join(idList, ","); - String[] userIdsArray=userIds.split(","); - for(String oneuserId:userIdsArray){ - BO bo = new BO(); - bo.set("TITLE", processExecutionContext.getProcessInstance().getTitle()); - bo.set("NAME", oneuserId); - bo.set("TYPE", "批量推送"); - bo.set("RESULT", "待处理"); - bo.set("PROCESSID", processExecutionContext.getProcessInstance().getId()); - bo.set("DEPNAME", SDK.getORGAPI().getUser(oneuserId).getDepartmentId()); - recordFailLists.add(bo); - //SDK.getBOAPI().create("BO_EU_READ_COUNT", bo, processExecutionContext.getProcessInstance().getId(), processExecutionContext.getProcessInstance().getCreateUser()); - } - SDK.getBOAPI().create("BO_EU_READ_COUNT", recordFailLists, processExecutionContext.getProcessInstance().getId(), processExecutionContext.getProcessInstance().getCreateUser()); - return; - } - - - SendOARead(jsonObject, instanceById, idList, "批量推送"); - } catch (Exception e) { - - System.out.println("OA待阅推送exception======"+e); - - - // TODO: handle exception - } - long endTimes1 = System.currentTimeMillis(); - - System.err.println(instanceById.getTitle() + "单次300条推送单条====>" + "用时:" - + (endTimes1 - startTime1) / 1000 + "秒"); - - *//* - * ExecutorService cachedThreadPool = Executors.newFixedThreadPool(3); // 开启一个线程 - * cachedThreadPool.execute(new Runnable() { - * - * @Override public void run() { try { } catch (DocumentException e) { // TODO - * Auto-generated catch block e.printStackTrace(); } - * - * } }); - *//* - // 以下是等线程池的全部线程执行结束后,会自动执行。 - *//* - * cachedThreadPool.shutdown(); while (true) { if - * (cachedThreadPool.isTerminated()) { long time = System.currentTimeMillis() - - * startTime; //System.out.println("程序结束了,总耗时:" + time + " ms(毫秒)!\n"+toIndex); - * break; } } - *//* - - }*/ - } } - /** - * 推送到知识库 - */ - if ("true".equals(isSendKMS)) { - try { - // 发布到知识库 - int m = 0; - for (BO bo : bo_act_coe_publish_n) { - createKmsByNew(bo, wsId, filed, processExecutionContext, bo_act_coe_publish, new_uid); - } - // 更新知识库 - for (BO bo : bo_act_coe_publish_c) { - CreateKmsByupdate(bo, wsId, filed, processExecutionContext, bo_act_coe_publish, - new_uid); - } - - // 废止知识库文件 - for (BO bo : bo_act_coe_publish_s) { - // 将旧的知识取消发布或者移动到废止发布中 - String publishfileid_stop = bo.getString("STOPFILEID"); - filed.add(publishfileid_stop); - String sql_s = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid_stop - + "'"; - RowMap map1 = DBSql.getMap(open,sql_s); - if (StringUtils.isNotEmpty(map1.getString("EXT4"))) { - CancelPublishKnwl(processExecutionContext, - processExecutionContext.getUserContext().getSessionId(), - map1.getString("EXT4")); - - DBSql.update(open,"UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '' WHERE ID = '" - + publishfileid_stop + "'"); - } - } - } catch (Exception e) { - // TODO: handle exception - } - } - - /** - * 同步PAL文件表文件版本标识,用于部门视图 - */ - if(bo_act_coe_publish_n.size()>0) { - for (BO bo : bo_act_coe_publish_n) { - try { - String fileId = bo.getString("PUBLISHFILEID"); - - /*RowMap rowMap = DBSql - .getMap("SELECT * FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID=" +fileId+""); - - OutputTaskModel model = new OutputTask().getTaskReportById(rowMap.getString("TASKID")); - if (model != null) { - OutputAppProfile appProfile = OutputAppManager.getProfile(model.getProfileId()); - if (appProfile == null) { - throw new AWSException("Not Find OutputAppProfile! profileId=" + model.getProfileId()); - } - DCPluginProfile dcProfile = SDK.getDCAPI().getDCProfile(appProfile.getAppContext().getId(), - OutputConst.EXT_APP_DC_OUTPUT); - if (dcProfile == null) - throw new AWSException( - "Not Find DCProfile! repositoryName=" + OutputConst.EXT_APP_DC_OUTPUT); - String sql_lever = sql_lever = "SELECT PLVER FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '" - + rowMap.getString("PUBLISHFILEID") + "'"; - String lever = DBSql.getString(sql_lever); - if (lever.length() == 5 && lever.substring(4).equals("0")) { - lever.substring(0, 3); - } else if (lever.length() == 1) { - lever = lever + ".0"; - } - String filename = rowMap.getString("PUBLISHFILENAME"); - - DCContext dcContext = new DCContext(processExecutionContext.getUserContext(), dcProfile, appProfile.getAppContext().getId(), - model.getWsId(), rowMap.getString("TASKID"), filename + "_" + lever + ".doc"); - String filepath = dcContext.getFilePath(); - String finalFilePath = filepath.replace("bin\\..\\", ""); - - - JSONObject result=JSONObject.parseObject(UploadGptFileUtils.uploadGptFile(uploadGptUrl,appkey,requestCode,dcContext.getFilePath())); - - if(result.getString("msg").equals("success")){ - String data=result.getString("data"); - //插入模型ID与DOCID对应表中 - BO gptBO=new BO(); - gptBO.set("plid",fileId); - gptBO.set("docid",data); - - ProcessInstance boProcessInstance = SDK.getProcessAPI() - .createBOProcessInstance("obj_08d91b102a514d49b5b42ed439de94c4", processExecutionContext.getUserContext().getUID(), "GPT文件"); - - SDK.getBOAPI().create("BO_EU_GPT_DOCFILE", gptBO, boProcessInstance.getId(), processExecutionContext.getProcessInstance().getCreateUser()); - } - }*/ - - - - - } catch (Exception e) { - } - } - } - if(bo_act_coe_publish_c.size()>0) { - for (BO bo : bo_act_coe_publish_c) { - try { - String changefileId = bo.getString("CHANGEFILEID"); - String changefileIdNew = bo.getString("CHANGEDFILEIDNEW"); - - //先查找旧文件 - /*BO docfile= SDK.getBOAPI().query("BO_EU_GPT_DOCFILE").addQuery("PLID=", changefileId).detail(); - if(docfile!=null){ - String docid=docfile.getString("DOCID"); - - JSONObject jsonRequest=new JSONObject(); - - jsonRequest.put("requestCode",requestCode); - jsonRequest.put("docId",docid); - - String deleteResult=DeleteGptFilesUtils.deleteGptFiles(deleteGptUrl,jsonRequest.toJSONString(),appkey); - - SDK.getBOAPI().remove("BO_EU_GPT_DOCFILE",docfile.getId()); - - - RowMap rowMap = DBSql - .getMap("SELECT * FROM BO_ACT_COE_PUBLISH_C WHERE PUBLISHFILEID=" +changefileIdNew+""); - - OutputTaskModel model = new OutputTask().getTaskReportById(rowMap.getString("TASKID")); - if (model != null) { - OutputAppProfile appProfile = OutputAppManager.getProfile(model.getProfileId()); - if (appProfile == null) { - throw new AWSException("Not Find OutputAppProfile! profileId=" + model.getProfileId()); - } - DCPluginProfile dcProfile = SDK.getDCAPI().getDCProfile(appProfile.getAppContext().getId(), - OutputConst.EXT_APP_DC_OUTPUT); - if (dcProfile == null) - throw new AWSException( - "Not Find DCProfile! repositoryName=" + OutputConst.EXT_APP_DC_OUTPUT); - String sql_lever = sql_lever = "SELECT PLVER FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '" - + rowMap.getString("CHANGEDFILEIDNEW") + "'"; - - String lever = DBSql.getString(sql_lever); - // lever = lever.substring(0,3); - if (lever.length() == 5 && lever.substring(4).equals("0")) { - lever.substring(0, 3); - } else if (lever.length() == 1) { - lever = lever + ".0"; - } - String filename = rowMap.getString("CHANGEDFILENAMENEW"); - DCContext dcContext = new DCContext(processExecutionContext.getUserContext(), dcProfile, appProfile.getAppContext().getId(), - model.getWsId(), rowMap.getString("TASKID"), filename + "_" + lever + ".doc"); - - - String filepath = dcContext.getFilePath(); - String finalFilePath = filepath.replace("bin\\..\\", ""); - - JSONObject result=JSONObject.parseObject(UploadGptFileUtils.uploadGptFile(uploadGptUrl,appkey,requestCode,dcContext.getFilePath())); - - if(result.getString("msg").equals("success")){ - String data=result.getString("data"); - //插入模型ID与DOCID对应表中 - BO gptBO=new BO(); - gptBO.set("plid",changefileIdNew); - gptBO.set("docid",data); - - ProcessInstance boProcessInstance = SDK.getProcessAPI() - .createBOProcessInstance("obj_08d91b102a514d49b5b42ed439de94c4", processExecutionContext.getUserContext().getUID(), "GPT文件"); - - - SDK.getBOAPI().create("BO_EU_GPT_DOCFILE", gptBO, boProcessInstance.getId(), processExecutionContext.getProcessInstance().getCreateUser()); - } - - } - - - }*/ - - - } catch (Exception e) { - } - } - } - - if(bo_act_coe_publish_s.size()>0) { - for (BO bo : bo_act_coe_publish_s) { - try { - String fileId = bo.getString("STOPFILEID"); - - - PALRepositoryModel plModel = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getInstance(fileId); - - DesignerShapeRelationModel designerShapeRelationModel=new DesignerShapeRelationModel(); - designerShapeRelationModel.setId(UUIDGener.getUUID()); - designerShapeRelationModel.setFileId(fileId); - designerShapeRelationModel.setAttrId("nullifier"); - designerShapeRelationModel.setRelationFileId("00000000-0000-0000-0000-000000000000"); - designerShapeRelationModel.setRelationShapeId("00000000-0000-0000-0000-000000000000"); - - JSONObject js=new JSONObject(); - js.put("name", processExecutionContext.getUserContext().getUserName()); - js.put("id",processExecutionContext.getUserContext().getUID()); - js.put("type", "user"); - - designerShapeRelationModel.setRelationShapeText(js.toString()); - - DesignerShapeRelationDao dao = new DesignerShapeRelationDao(); - dao.insert(designerShapeRelationModel); - - PALRepositoryPropertyDao propertyDao = new PALRepositoryPropertyDao(); - //作废时间 - Date date=new Date(); - SimpleDateFormat sdfs = new SimpleDateFormat("yyyy-MM-dd"); - propertyDao.updatePropertyByPropertyId(fileId, "obsolescence_time", sdfs.format(date)); - - if (plModel != null) { - PALRepositoryCache.getCache().put(fileId, plModel); - } - - - BO docfile= SDK.getBOAPI().query("BO_EU_GPT_DOCFILE").addQuery("PLID=", fileId).detail(); - if(docfile!=null) { - String docid = docfile.getString("DOCID"); - JSONObject jsonRequest=new JSONObject(); - jsonRequest.put("requestCode",requestCode); - jsonRequest.put("docId",docid); - DeleteGptFilesUtils.deleteGptFiles(deleteGptUrl,jsonRequest.toJSONString(),appkey); - - SDK.getBOAPI().remove("BO_EU_GPT_DOCFILE",docfile.getId()); - } - - - - } catch (Exception e) { - } - } - } - - - /** - * 推送到EHSQ - */ - boolean sendEhqs = false; - String depId = processExecutionContext.getUserContext().getDepartmentModel().getId(); - //获取EHSQ配置表判断是否发送 - String sql = "SELECT * FROM BO_ACT_ACT_ESQ_SEND"; - List maps = DBSql.getMaps(open,sql); - for (RowMap rowMap : maps) { - String dempet = rowMap.getString("DEMPET"); - String issend = rowMap.getString("ISSEND"); - DepartmentModel departmentById = SDK.getORGAPI().getDepartmentById(dempet); - if(departmentById!=null) { - String departemenId = departmentById.getId(); - String pathIdOfCache=departmentById.getPathIdOfCache(); - if(departemenId.equals(depId)&&"是".equals(issend)) { - sendEhqs = true; - } else { - List subDepartments = SDK.getORGAPI().getSubDepartments(departmentById.getId()); - for (DepartmentModel departmentModel : subDepartments) { - String subDeartmentId = departmentModel.getId(); - if (subDeartmentId.equals(depId) && "是".equals(issend)) { - sendEhqs = true; - } - } - - } - - } - } - if(!sendEhqs) { - System.err.println("本次发文不推送EHSQ====>"+processExecutionContext.getProcessInstance().getTitle()); - } - if ("true".equals(isSendEHSQ)&&sendEhqs) { - try { - // 推送EHSQ - if(bo_act_coe_publish_n.size()>0) { - sendEHSQ(processExecutionContext, bo_act_coe_publish_n); - } - // 更新EHSQ - if(bo_act_coe_publish_c.size()>0) { - updateEHSQ(processExecutionContext, bo_act_coe_publish_c); - } - } catch (Exception e) { - // TODO: handle exception - } - } /** * 更新数据看板底表 */ try { - AttrSynAslp(processExecutionContext, wsId, filed); + AttrSynAslp(processInstance, wsId, filed); } catch (Exception e) { } @@ -776,9 +463,9 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @return */ - public boolean createIndexesByContent(ProcessExecutionContext processExecutionContext,JSONArray contents) { + public boolean createIndexesByContent(ProcessInstance processInstance,JSONArray contents) { // 调用App - String sourceAppId =processExecutionContext.getProcessInstance().getAppId() ; + String sourceAppId =processInstance.getAppId() ; // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.addons.es/createIndexesByContent"; // 参数定义列表 @@ -803,9 +490,9 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param jsonObject * @param processExecutionContext */ - public void course(List list,long startTime,JSONObject jsonObject,ProcessExecutionContext processExecutionContext,ArrayList sendList) throws InterruptedException { + public void course(List list,long startTime,JSONObject jsonObject,ProcessInstance processInstance,ArrayList sendList,String sid) throws InterruptedException { // 创建线程来实现为每100人为一个的线程跑待阅 - ProcessInstance instanceById = processExecutionContext.getProcessInstance(); + ProcessInstance instanceById = processInstance; CountDownLatch countDownLatch = new CountDownLatch(list.size()); ExecutorService service = Executors.newFixedThreadPool(4); int m = 0; @@ -819,7 +506,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String userIds = ""; userIds = StringUtils.join(resrt, ","); try { - SendOARead( processExecutionContext.getProcessInstance(), userIds,"批量推送"); + SendOARead(processInstance, userIds,"批量推送"); countDownLatch.countDown(); } catch (DocumentException e) { e.printStackTrace(); @@ -842,24 +529,24 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute ArrayList secondUserList = new ArrayList(); secondUserList.add(rowMap.getString("NAME")); - BO executiveTaskBO=SDK.getBOAPI().query("BO_ACT_EXECUTIVE_TASK").addQuery("TASKID=",processExecutionContext.getProcessInstance().getId()).addQuery("TASKSTATUS=",2).detail(); + BO executiveTaskBO=SDK.getBOAPI().query("BO_ACT_EXECUTIVE_TASK").addQuery("TASKID=",processInstance.getId()).addQuery("TASKSTATUS=",2).detail(); if(executiveTaskBO!=null){ List recordFailLists = new ArrayList(); for(RowMap oneuserId:List){ BO bo = new BO(); - bo.set("TITLE", processExecutionContext.getProcessInstance().getTitle()); + bo.set("TITLE", processInstance.getTitle()); bo.set("NAME", oneuserId.getString("NAME")); bo.set("TYPE", "批量推送"); bo.set("RESULT", "待处理"); - bo.set("PROCESSID", processExecutionContext.getProcessInstance().getId()); + bo.set("PROCESSID", processInstance.getId()); bo.set("DEPNAME", SDK.getORGAPI().getUser(oneuserId.getString("NAME")).getDepartmentId()); recordFailLists.add(bo); } - SDK.getBOAPI().create("BO_EU_READ_COUNT", recordFailLists, processExecutionContext.getProcessInstance().getId(), processExecutionContext.getProcessInstance().getCreateUser()); + SDK.getBOAPI().create("BO_EU_READ_COUNT", recordFailLists, processInstance.getId(), processInstance.getCreateUser()); return; } - secondSendOARead(processExecutionContext.getProcessInstance(), secondUserList, "单个账号推送"); + secondSendOARead(processInstance, secondUserList, "单个账号推送"); } catch (Exception e) { // TODO: handle exception } } @@ -868,7 +555,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute long endTimes = System.currentTimeMillis(); // 存入日志 - createReadLog(processExecutionContext, jsonObject, sendList, startTime, endTimes); + createReadLog(processInstance, jsonObject, sendList, startTime, endTimes,sid); System.err.println(instanceById.getTitle() + "推送OA待阅执行完毕====>" + "用时:" + (endTimes - startTime) / 1000 / 60 + "分钟"); @@ -893,12 +580,12 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param cardId * @param fileid */ - public void creadteFile(ProcessExecutionContext processExecutionContext, String bo_name, UserContext userContext, + public void creadteFile(ProcessInstance processInstance, String bo_name, UserContext userContext, String cardId, String fileid) { /** * 这个主要是负责对流程手册进行相关的文件的生成 */ - String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); + String sourceAppId =processInstance.getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/CreateFile"; @@ -968,7 +655,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute jsonObject.put("abstract", dcContext);//信息摘要 jsonObject.put("title", dcContext.getFileName().substring(0,dcContext.getFileName().indexOf(".")));//信息标题 coontest.add(jsonObject); - createIndexesByContent(processExecutionContext,coontest); + createIndexesByContent(processInstance,coontest); } } @@ -1016,14 +703,14 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute jsonObject.put("abstract", dcContexts);//信息摘要 jsonObject.put("title", dcContexts.getFileName().substring(0,dcContexts.getFileName().indexOf(".")));//信息标题 coontest.add(jsonObject); - createIndexesByContent(processExecutionContext,coontest); + createIndexesByContent(processInstance,coontest); } } } try { - PublishKnow(processExecutionContext, userContext, cardId); + PublishKnow(processInstance, userContext, cardId); } catch (Exception e) { e.printStackTrace(); } @@ -1037,7 +724,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param userContext * @param id */ - public void PublishKnow(ProcessExecutionContext processExecutionContext, UserContext userContext, String id) { + public void PublishKnow(ProcessInstance processInstance, UserContext userContext, String id) { String sql = "select EXT4 from APP_ACT_COE_PAL_REPOSITORY where id in (select PLPARENTID from APP_ACT_COE_PAL_REPOSITORY where EXT4 = '" + id + "')"; @@ -1064,7 +751,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute if (!jsonArray_das.isEmpty() && !jsonArray.isEmpty()) { // 调用App - String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); + String sourceAppId = processInstance.getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/PublishKnwl"; // 参数定义列表 @@ -1094,9 +781,9 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param knwlId * @return */ - public boolean CancelPublishKnwl(ProcessExecutionContext processExecutionContext, String sid, String knwlId) { + public boolean CancelPublishKnwl(ProcessInstance processInstance, String sid, String knwlId) { // 调用App - String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); + String sourceAppId = processInstance.getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/CancelPublishKnwl"; // 参数定义列表 @@ -1127,11 +814,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param fileid * @return */ - public boolean execute(ProcessExecutionContext processExecutionContext, String fileCreateName, String fileName, + public boolean execute(ProcessInstance processInstance, String fileCreateName, String fileName, String fileurl, String readingScope_org, String isFullCompany, String fileCreateDate, String relationProcessinstId, String readingScope_post, String readingScope_level, String fileid) { // 调用App - String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); + String sourceAppId = processInstance.getAppId(); // aslp服务地址 String aslp = "aslp://com.awspaas.user.apps.docview/PushFileToXpage"; // 参数定义列表 @@ -1171,11 +858,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param knwlId * @return */ - public boolean AddKnwlAC(ProcessExecutionContext processExecutionContext, JSONArray jsonArray, String sid, + public boolean AddKnwlAC(ProcessInstance processInstance, JSONArray jsonArray, String sid, String knwlId) { // 调用App - String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); + String sourceAppId =processInstance.getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/AddKnwlAC"; // 参数定义列表 @@ -1200,10 +887,10 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param fileId * @return */ - public boolean AttrSynAslp(ProcessExecutionContext processExecutionContext, String wsId, JSONArray fileId) { + public boolean AttrSynAslp(ProcessInstance processInstance, String wsId, JSONArray fileId) { System.out.println(""); // 调用App - String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); + String sourceAppId = processInstance.getAppId(); // aslp服务地址 String aslp = "aslp://com.awspaas.user.apps.yili.reportform/AttrSynAslp"; // 参数定义列表 @@ -1259,7 +946,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + taskInd; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //Timestamp endTime = processExecutionContext.getTaskInstance().getBeginTime(); + //Timestamp endTime = taskInstance.getBeginTime(); Timestamp endTime = new Timestamp(System.currentTimeMillis()); JSONObject jsonObjects = new JSONObject(new LinkedHashMap()); @@ -1464,7 +1151,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + taskInd; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //Timestamp endTime = processExecutionContext.getTaskInstance().getBeginTime(); + //Timestamp endTime = taskInstance.getBeginTime(); Timestamp endTime = new Timestamp(System.currentTimeMillis()); JSONObject jsonObjects = new JSONObject(new LinkedHashMap()); @@ -1906,13 +1593,14 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param startTime */ - public void createReadLog(ProcessExecutionContext processExecutionContext, JSONObject jsonObject, - ArrayList arr, long startTime, long endTimes) { + public void createReadLog(ProcessInstance processInstance, JSONObject jsonObject, + ArrayList arr, long startTime, long endTimes,String sid) { + UserContext uc=UserContext.fromSessionId(sid); BO bo_Read_log = new BO(); - String processInstId = processExecutionContext.getProcessInstance().getId(); - bo_Read_log.set("USREID", processExecutionContext.getUserContext().getUID()); - bo_Read_log.set("DEPID", processExecutionContext.getUserContext().getDepartmentModel().getId()); - bo_Read_log.set("BUNAME", processExecutionContext.getUserContext().getUserModel().getExt4()); + String processInstId =processInstance.getId(); + bo_Read_log.set("USREID", uc.getUID()); + bo_Read_log.set("DEPID", uc.getDepartmentModel().getId()); + bo_Read_log.set("BUNAME", uc.getUserModel().getExt4()); bo_Read_log.set("TITLE", jsonObject.get("title")); bo_Read_log.set("PROCESSID", processInstId); bo_Read_log.set("SENDNUM", arr.size()); @@ -1990,8 +1678,8 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param bo_act_coe_publish 发布表 * @param uid 账户合计 */ - public void createKmsByNew(BO bo, String wsId, JSONArray filed, ProcessExecutionContext processExecutionContext, - BO bo_act_coe_publish, String uid) { + public void createKmsByNew(BO bo, String wsId, JSONArray filed, ProcessInstance processInstance, + BO bo_act_coe_publish, String uid,String sid) { { OutputTaskModel model = new OutputTask().getTaskReportById(bo.getString("TASKID")); wsId = model.getWsId(); @@ -2036,11 +1724,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute //知识内容,非必填 params_create.put("cardContext", ""); //sid,必填 - params_create.put("sid", processExecutionContext.getUserContext().getSessionId()); + params_create.put("sid", sid); AppAPI appAPI_create = SDK.getAppAPI(); //创建知识 ResponseObject ro_create = appAPI_create.callASLP( - appAPI_create.getAppContext(processExecutionContext.getProcessInstance().getAppId()), + appAPI_create.getAppContext(processInstance.getAppId()), aslps_create, params_create); String cardId = ((LinkedHashMap) ro_create.getData()).get("cardId").toString(); JSONArray jsonArray1 = new JSONArray(); @@ -2081,7 +1769,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } - AddKnwlAC(processExecutionContext, jsonArray1, processExecutionContext.getUserContext().getSessionId(), + AddKnwlAC(processInstance, jsonArray1, sid, cardId); String update_sql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '" + cardId + "' WHERE " @@ -2095,8 +1783,9 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + " '79cb4c35-d2f7-4c43-a7db-44038b557eac','7ad79a73-a497-417a-a5ec-d4c9fd45061c'," + " '42c09260-c1d3-44b7-ac3d-f8280e04c294') and ID = '" + publishfileid + "'"; int update = DBSql.update(update_sql); + System.out.println("更新id为:" + publishfileid + "版本为:的知识对应的资产库的EXT4的影响行数为" + update); - creadteFile(processExecutionContext, "BO_ACT_COE_PUBLISH_N", processExecutionContext.getUserContext(), + creadteFile(processInstance, "BO_ACT_COE_PUBLISH_N",UserContext.fromSessionId(sid), cardId, "PUBLISHFILEID = "); } } @@ -2112,8 +1801,8 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param bo_act_coe_publish 发布表 * @param uid 账户集合 */ - public void CreateKmsByupdate(BO bo, String wsId, JSONArray filed, ProcessExecutionContext processExecutionContext, - BO bo_act_coe_publish, String uid) { + public void CreateKmsByupdate(BO bo, String wsId, JSONArray filed, ProcessInstance processInstance, + BO bo_act_coe_publish, String uid,String sid) { { OutputTaskModel model = new OutputTask().getTaskReportById(bo.getString("TASKID")); wsId = model.getWsId(); @@ -2159,11 +1848,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute //知识内容,非必填 params_create.put("cardContext", ""); //sid,必填 - params_create.put("sid", processExecutionContext.getUserContext().getSessionId()); + params_create.put("sid", sid); AppAPI appAPI_create = SDK.getAppAPI(); //创建知识 ResponseObject ro_create = appAPI_create.callASLP( - appAPI_create.getAppContext(processExecutionContext.getProcessInstance().getAppId()), + appAPI_create.getAppContext(processInstance.getAppId()), aslps_create, params_create); // System.out.println("ro_create================" + ro_create); String cardId = ((LinkedHashMap) ro_create.getData()).get("cardId").toString(); @@ -2205,7 +1894,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } - AddKnwlAC(processExecutionContext, jsonArray1, processExecutionContext.getUserContext().getSessionId(), + AddKnwlAC(processInstance, jsonArray1, sid, cardId); String update_sql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '" + cardId + "' WHERE " @@ -2220,7 +1909,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + " '42c09260-c1d3-44b7-ac3d-f8280e04c294') and ID = '" + publishfileid + "'"; int update = DBSql.update(update_sql); System.out.println("更新id为:" + publishfileid + "版本为:的知识对应的资产库的EXT4的影响行数为" + update); - creadteFile(processExecutionContext, "BO_ACT_COE_PUBLISH_C", processExecutionContext.getUserContext(), + creadteFile(processInstance, "BO_ACT_COE_PUBLISH_C", UserContext.fromSessionId(sid), cardId, " CHANGEDFILEIDNEW="); } // 将旧的知识取消发布或者移动到废止发布中 @@ -2228,7 +1917,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String sql_c = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid_old + "'"; RowMap map1 = DBSql.getMap(sql_c); if (StringUtils.isNotEmpty(map1.getString("EXT4"))) { - CancelPublishKnwl(processExecutionContext, processExecutionContext.getUserContext().getSessionId(), + CancelPublishKnwl(processInstance, sid, map1.getString("EXT4")); DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '' WHERE ID = '" + publishfileid_old + "'"); } @@ -2249,7 +1938,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute SDK.getBOAPI().createDataBO("BO_EU_PAL_SEND_LOG", bo, UserContext.fromUID("admin")); } - public void sendEHSQ(ProcessExecutionContext processExecutionContext, List bo_act_coe_publish_n) { + public void sendEHSQ(ProcessInstance processInstance, List bo_act_coe_publish_n,TaskInstance taskInstance,String sid) { for (BO bo : bo_act_coe_publish_n) { DownloadUtil downloadUtil = new DownloadUtil(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); @@ -2259,7 +1948,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String wsId = model.getWsId(); String publishfileid = bo.getString("PUBLISHFILEID"); LinkedHashMap downloadurl = downloadUtil.outputReportDownload( - UserContext.fromUID(processExecutionContext.getProcessInstance().getCreateUser()), + UserContext.fromUID(processInstance.getCreateUser()), bo.getString("TASKID"), publishfileid); jsonObject_ehsq.put("fileid", bo.getString("TASKID")); String plName = bo.getString("PUBLISHFILENAME"); @@ -2271,7 +1960,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute RowMap map = DBSql.getMap(sql_n); PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(publishfileid); jsonObject_ehsq.put("version", "V"+palRepositoryModel.getVersion()+""); - BO byProcess = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", processExecutionContext.getProcessInstance().getId()); + BO byProcess = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", processInstance.getId()); String cdeDate = byProcess.getString("CHOICEEFFECTIVEDATE"); if("1".equals(cdeDate)) { jsonObject_ehsq.put("releasedate", byProcess.getString("EFFECTIVEDATE")); @@ -2280,15 +1969,15 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute jsonObject_ehsq.put("releasedate", simpleDateFormat.format(new Date())); jsonObject_ehsq.put("effectivedate", simpleDateFormat.format(new Date())); } - jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); // jsonObject_ehsq.put("authorcode","00116465"); + jsonObject_ehsq.put("authorcode", taskInstance.getTarget()); // jsonObject_ehsq.put("authorcode","00116465"); jsonObject_ehsq.put("authorname", - UserContext.fromUID(processExecutionContext.getTaskInstance().getTarget()).getUserName()); + UserContext.fromUID(taskInstance.getTarget()).getUserName()); // jsonObject_ehsq.put("authorname","毛鹏程"); jsonObject_ehsq.put("companycode", UserContext - .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getNo()); + .fromUID(taskInstance.getTarget()).getDepartmentModel().getNo()); // jsonObject_ehsq.put("companycode","00000013"); jsonObject_ehsq.put("authorcompany", UserContext - .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getName()); // jsonObject_ehsq.put("authorcompany","总部质量管理部"); + .fromUID(taskInstance.getTarget()).getDepartmentModel().getName()); // jsonObject_ehsq.put("authorcompany","总部质量管理部"); // // BO bo1 = SDK.getBOAPI().query("BO_ACT_PUBLISH_PERM_SCOPE", true) .addQuery("PALNAME=", bo.getString("PUBLISHFILENAME")).detail(); @@ -2323,7 +2012,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute //System.out.println("任务办理者>>>>>>>>>>>" + processExecutionContext.getTaskInstance().getTarget()); String sessionId = new SSOUtil().registerClientSessionNoPassword( - processExecutionContext.getTaskInstance().getTarget(), LoginConst.DEFAULT_LANG, "localhost", + taskInstance.getTarget(), LoginConst.DEFAULT_LANG, "localhost", LoginConst.DEVICE_PC); //System.out.println("办理者的sessionid>>>>>>>>>>>" + sessionId); @@ -2365,13 +2054,13 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute Date date = new Date(); SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - UserContext uc = processExecutionContext.getUserContext(); + UserContext uc = UserContext.fromSessionId(sid); String userName = uc.getUserName(); try { String sql = "SELECT ID FROM BO_EU_PAL_SEND_EHSQ_JOB WHERE PLID = '"+publishfileid+"' AND USERNAMES = '"+userName+"'"; String id = DBSql.getString(sql); String sendEHSQFile = SendEHSQFile(plName,jsonArray_EHSQ); - System.err.println("EHSQ流程发布推送结果====>"+processExecutionContext.getProcessInstance().getTitle()+"=========>"+sendEHSQFile); + System.err.println("EHSQ流程发布推送结果====>"+processInstance.getTitle()+"=========>"+sendEHSQFile); if(UtilString.isNotEmpty(id)) { BO bos = SDK.getBOAPI().get("BO_EU_PAL_SEND_EHSQ_JOB", id); updateSendLog(bos,userName, uc.getDepartmentModel().getName(), publishfileid, plName, plNumer, dateFormat.format(date), "流程发布推送", sendEHSQFile); @@ -2410,7 +2099,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute bo.set("SENDRESULT", sendResult); SDK.getBOAPI().update("BO_EU_PAL_SEND_EHSQ_JOB", bo); } - public void updateEHSQ(ProcessExecutionContext processExecutionContext, List bo_act_coe_publish_c) { + public void updateEHSQ(ProcessInstance processInstance, List bo_act_coe_publish_c,TaskInstance taskInstance,String sid) { DownloadUtil downloadUtil = new DownloadUtil(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); for (BO bo : bo_act_coe_publish_c) { @@ -2420,7 +2109,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String wsId = model.getWsId(); String publishfileid = bo.getString("CHANGEDFILEIDNEW"); LinkedHashMap downloadurl = downloadUtil.outputReportDownload( - UserContext.fromUID(processExecutionContext.getTaskInstance().getTarget()), bo.getString("TASKID"), + UserContext.fromUID(taskInstance.getTarget()), bo.getString("TASKID"), publishfileid); jsonObject_ehsq.put("fileid", bo.getString("TASKID")); String plName = bo.getString("CHANGEDFILENAMENEW"); @@ -2432,7 +2121,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute RowMap map = DBSql.getMap(sql_n); PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(publishfileid); jsonObject_ehsq.put("version", "V"+palRepositoryModel.getVersion()+""); - BO byProcess = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", processExecutionContext.getProcessInstance().getId()); + BO byProcess = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", processInstance.getId()); String cdeDate = byProcess.getString("CHOICEEFFECTIVEDATE"); if("1".equals(cdeDate)) { jsonObject_ehsq.put("releasedate", byProcess.getString("EFFECTIVEDATE")); @@ -2441,13 +2130,13 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute jsonObject_ehsq.put("releasedate", simpleDateFormat.format(new Date())); jsonObject_ehsq.put("effectivedate", simpleDateFormat.format(new Date())); } - jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); + jsonObject_ehsq.put("authorcode", taskInstance.getTarget()); jsonObject_ehsq.put("authorname", - UserContext.fromUID(processExecutionContext.getTaskInstance().getTarget()).getUserName()); + UserContext.fromUID(taskInstance.getTarget()).getUserName()); jsonObject_ehsq.put("companycode", UserContext - .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getNo()); + .fromUID(taskInstance.getTarget()).getDepartmentModel().getNo()); jsonObject_ehsq.put("authorcompany", UserContext - .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getName()); + .fromUID(taskInstance.getTarget()).getDepartmentModel().getName()); BO bo1 = SDK.getBOAPI().query("BO_ACT_PUBLISH_PERM_SCOPE", true) .addQuery("PALNAME=", bo.getString("CHANGEDFILENAMENEW")).detail(); if (bo1 != null) { @@ -2479,7 +2168,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } String sessionId = new SSOUtil().registerClientSessionNoPassword( - processExecutionContext.getTaskInstance().getTarget(), LoginConst.DEFAULT_LANG, "localhost", + taskInstance.getTarget(), LoginConst.DEFAULT_LANG, "localhost", LoginConst.DEVICE_PC); String downurl = downloadUtil.getzipURL(sessionId, bo.getString("TASKID"), @@ -2519,13 +2208,13 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute jsonArray_EHSQ.add(jsonObject_ehsq); Date date = new Date(); SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - UserContext uc = processExecutionContext.getUserContext(); + UserContext uc = UserContext.fromSessionId(sid); String userName = uc.getUserName(); try { String sql = "SELECT ID FROM BO_EU_PAL_SEND_EHSQ_JOB WHERE PLID = '"+publishfileid+"' AND USERNAMES = '"+userName+"'"; String id = DBSql.getString(sql); String sendEHSQFile = SendEHSQFile(plName,jsonArray_EHSQ); - System.err.println("EHSQ流程发布更新===>"+processExecutionContext.getProcessInstance().getTitle()+"==========>"+sendEHSQFile); + System.err.println("EHSQ流程发布更新===>"+processInstance.getTitle()+"==========>"+sendEHSQFile); if(UtilString.isNotEmpty(id)) { BO bos = SDK.getBOAPI().get("BO_EU_PAL_SEND_EHSQ_JOB", id); updateSendLog(bos,userName, uc.getDepartmentModel().getName(), publishfileid, plName, plNumer, dateFormat.format(date), "流程发布更新", sendEHSQFile); @@ -2749,4 +2438,6 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } + + }