From c8f7c0611d6c81396f13f34bb12d7aa0011f83b4 Mon Sep 17 00:00:00 2001 From: zhaol <15900249928@163.com> Date: Mon, 24 Feb 2025 21:20:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E7=BB=93=E6=9D=9F=E5=90=8E?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pubEvent/ProcessEndAfterEvent_new.java | 892 +++++++++++++----- 1 file changed, 681 insertions(+), 211 deletions(-) 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 de1404a5..c4dd04ac 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 @@ -12,11 +12,11 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import com.actionsoft.apps.coe.pal.pal.repository.dao.CoeProcessLevelDaoFacotory; -import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepository; import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao; import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.cache.DesignerShapeRelationCache; 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.impl.PALRepositoryModelImpl; import com.actionsoft.apps.coe.pal.publisher.utils.DeleteGptFilesUtils; import com.actionsoft.apps.coe.pal.publisher.utils.UploadGptFileUtils; import com.actionsoft.apps.coe.pal.system.util.StringUtil; @@ -105,6 +105,7 @@ 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 +115,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,38 +126,7 @@ 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()); - params.put("sid", ext.getUserContext().getSessionId()); - - AppAPI appApi = SDK.getAppAPI(); - //发送OA待阅接口 - 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(); - //创建KMS知识 - appApi.asynCallASLP(kmsappApi.getAppContext(sourceAppId), kmsaslp, params); - - + }); } }catch (Exception e){ e.printStackTrace(); @@ -165,10 +135,10 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute //发送消息通知 - /* List readCountBO=SDK.getBOAPI().query("BO_EU_READ_COUNT").addQuery("PROCESSID=",ext.getProcessInstance().getId()).addQuery("RESULT=","待处理").list(); + List readCountBO=SDK.getBOAPI().query("BO_EU_READ_COUNT").addQuery("PROCESSID=",ext.getProcessInstance().getId()).addQuery("RESULT=","待处理").list(); if(readCountBO.size()>0){ SDK.getNotificationAPI().sendMessage("admin", "admin", "文件名称:"+ext.getProcessInstance().getTitle()+"文件有失败记录,请及时处理!!!"); - }*/ + } //更新任务状态 @@ -192,7 +162,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute //发送OA待办 TaskInstance taskInstance= SDK.getTaskAPI().getInstanceById(processInstance.getStartTaskInstId()); - //sendOaPending(taskInstance,processInstance,ext); + sendOaPending(taskInstance,processInstance,ext); String url="https://bpm.yili.com:8088/portal/r/w?sid="+ext.getUserContext().getSessionId()+"&cmd=CLIENT_BPM_FORM_MAIN_PAGE_OPEN&processInstId="+processInstance.getId()+"&openState=1&taskInstId="+processInstance.getStartTaskInstId()+"&displayToolbar=true"; @@ -207,85 +177,89 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } - public void ProcessData(ProcessInstance processInstance,TaskInstance taskInstance,Connection open,String sid) throws Exception { + public void ProcessData(ProcessExecutionContext processExecutionContext,Connection open) throws Exception { + System.err.println(processExecutionContext.getTaskInstance().getTitle() + "_推送文件开始========>"); + // 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(processInstance.getControlState())) { + if (!"terminate".equals(processExecutionContext.getProcessInstance().getControlState())) { DownloadUtil downloadUtil = new DownloadUtil(); String wsId = ""; JSONArray filed = new JSONArray(new LinkedList<>()); String portalUrl = SDK.getPortalAPI().getPortalUrl(); - + // System.out.println("portal======>>>>" + portalUrl); + /* + * if (portalUrl.equals("http://10.114.11.135:8088/portal")){ portalUrl = + * "http://bpm.yili.com:8088/portal/"; } + */ try { - //构建PC地址 String url = portalUrl + "/r/or?cmd=com.yili_process_page&oauthName=oauthLogin&processInstId=" - + processInstance.getId() + "&taskInstId=" - + taskInstance.getId(); - //构建移动端地址 + + processExecutionContext.getProcessInstance().getId() + "&taskInstId=" + + processExecutionContext.getTaskInstance().getId(); String mobileurl = "https://bpm.yili.com:8088/portal" + "/r/or?cmd=com.yili_process_page_phone&corpid=wwb0ae23173b140618&appAgentId=1000014&oauthName=wechat&processInstId=" - + processInstance.getId() + "&taskInstId=" - + taskInstance.getId(); + + processExecutionContext.getProcessInstance().getId() + "&taskInstId=" + + processExecutionContext.getTaskInstance().getId(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //Timestamp endTime = taskInstance.getBeginTime(); + //Timestamp endTime = processExecutionContext.getTaskInstance().getBeginTime(); Timestamp endTime = new Timestamp(System.currentTimeMillis()); BO boActCoePublish = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true).connection(open) - .addQuery("BINDID=", processInstance.getId()) + .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()) .addQuery("OPTIONTYPE IS NOT NULL", null).detail(); + // ProcessExecutionContext processExecutionContext,String fileCreateName,String + // fileName,String fileurl,String readingScope_org,String isFullCompany,String + // fileCreateDate,String relationProcessinstId,String readingScope_post,String + // readingScope_level,String fileid String not_url = "/w?cmd=com.yili_process_page&processInstId=" - + processInstance.getId() + "&taskInstId=" - + taskInstance.getId(); - - //创建XPage页面上的待阅文件 - execute(processInstance, boActCoePublish.getString("APPLYUSERNAME"), + + processExecutionContext.getProcessInstance().getId() + "&taskInstId=" + + processExecutionContext.getTaskInstance().getId(); + execute(processExecutionContext, boActCoePublish.getString("APPLYUSERNAME"), boActCoePublish.getString("PROCESS_TITLE"), not_url, boActCoePublish.getString("SEND_SCOPE_ORG"), boActCoePublish.getString("SEND_SCOP"), - boActCoePublish.getString("APPLYDATE"), processInstance.getId(), + boActCoePublish.getString("APPLYDATE"), processExecutionContext.getProcessInstance().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(taskInstance.getTarget()).getNo());// SDK.getORGAPI().getDepartmentByUser(processInstance.getCreateUser()).getNo() - String target = taskInstance.getTarget(); - target = taskInstance.getTarget(); + .getDepartmentByUser(processExecutionContext.getTaskInstance().getTarget()).getNo());// SDK.getORGAPI().getDepartmentByUser(processExecutionContext.getProcessInstance().getCreateUser()).getNo() + String target = processExecutionContext.getTaskInstance().getTarget(); + target = processExecutionContext.getTaskInstance().getTarget(); jsonObject.put("user", target); - // jsonObject.put("user",);//processInstance.getCreateUser() + // jsonObject.put("user",);//processExecutionContext.getProcessInstance().getCreateUser() jsonObject.put("date", sdf.format(endTime)); jsonObject.put("remark", boActCoePublish.getString("PROCESS_TITLE")); jsonObject.put("status", "0"); - jsonObject.put("dataid", processInstance.getId()); + jsonObject.put("dataid", processExecutionContext.getProcessInstance().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=", processInstance.getId()) + .addQuery("BINDID=", processExecutionContext.getProcessInstance().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=", processInstance.getId()) + .addQuery("BINDID=", processExecutionContext.getProcessInstance().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=", processInstance.getId()).list(); - // 流程发布的变更发布 + .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()).list(); List bo_act_coe_publish_c = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C", true).connection(open) - .addQuery("BINDID=", processInstance.getId()).list(); - // 流程发布的废止变更 + .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()).list(); List bo_act_coe_publish_s = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S", true).connection(open) - .addQuery("BINDID=", processInstance.getId()).list(); + .addQuery("BINDID=", processExecutionContext.getProcessInstance().getId()).list(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); JSONArray jsonArray = new JSONArray(); @@ -295,7 +269,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * 推送待阅文件到OA */ if ("true".equals(isSendOA)) { - ProcessInstance instanceById = processInstance; + ProcessInstance instanceById = processExecutionContext.getProcessInstance(); if (bo_act_coe_publish1 != null && instanceById != null) { long sendUserstartTime = System.currentTimeMillis(); ArrayList sendList = new ArrayList(); @@ -309,6 +283,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } catch (Exception e) { // TODO: handle exception } + //System.err.println("系统人员=====>" + userList1); // 项目开发人员 ArrayList userList2 = new ArrayList(); try { @@ -317,6 +292,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } catch (Exception e) { // TODO: handle exception } + //System.err.println("项目开发人员=====>" + userList2); // 离退人员 ArrayList userList3 = new ArrayList(); try { @@ -325,9 +301,12 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } 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); @@ -337,11 +316,21 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute // 发送组织岗位职级 sendList = getSendList(instanceById, bo_act_coe_publish1, jsonObject); } + + long countTime = System.currentTimeMillis(); System.err.println(instanceById.getTitle() + "待发送人员数量====>" + sendList.size() + " 计算用时===>" + (countTime - sendUserstartTime) + "毫秒"); - - String sql = "SELECT ID FROM WFH_TASK WHERE PROCESSINSTID = '" + processInstance.getId() + /* + * for (String user : sendList) { try { SendOARead(jsonObject, instanceById, + * user, "批量推送"); } catch (Exception e) { // TODO: handle exception } } + */ + /*List bo_eu_oa_read_test = SDK.getBOAPI().query("BO_EU_OA_READ_TEST").connection(open).list(); + ArrayList sendLists = new ArrayList(); + 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() + "' AND ACTIVITYDEFID = 'obj_c9e5a3144b200001b68cffa01ed0153e' "; String taskInd = DBSql.getString(sql); @@ -353,7 +342,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",processInstance.getId()); + bo.set("PROCESSID",processExecutionContext.getProcessInstance().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")); @@ -384,7 +373,8 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute /** * 创建线程发送待阅数据 */ - course(list,startTime,jsonObject,processInstance,sendList,sid); + course(list,startTime,jsonObject,processExecutionContext,sendList); + //System.out.println("发送人员数据>>>>>>>>>>>>>>"+list); }else { int size = users.length/length; int flag = 0; @@ -398,21 +388,464 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String[] redata; redata = Arrays.copyOfRange(users, flag, flag+ys); list.add(redata); - // 创建线程来实现为每300人为一个的线程跑待阅 + // 创建线程来实现为每300人为一个的线程跑待阅 /** * 创建线程发送待阅数据 */ - course(list,startTime,jsonObject,processInstance,sendList,sid); + course(list,startTime,jsonObject,processExecutionContext,sendList); + //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"); + + PALRepositoryModelImpl newplModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(fileId); + int newplmodel=DBSql.update(open, "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='1' WHERE ID='" + fileId + "'"); + if(newplmodel>0){ + if (newplModel != null) { + PALRepositoryCache.getCache().put(fileId, newplModel); + } + } + + + /** + * 更新部门视图EXT6字段 + */ + List rlatRowMap = DBSql.getMaps("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT where FILEID = '" + fileId + "' and ATTRID='Issuing_department'"); + if (rlatRowMap.size() > 0) { + // 发布部门 + String dempId = ""; + for (RowMap oneRowMap : rlatRowMap) { + String relationshapetext = oneRowMap.getString("RELATIONSHAPETEXT"); + JSONObject js = JSONObject.parseObject(relationshapetext); + dempId += js.getString("id") + ","; + } + dempId = dempId.substring(0, dempId.length() - 1); + + PALRepositoryModelImpl deplModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(fileId); + + int count = DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT6=TO_CLOB('" + dempId + "') WHERE ID='" + fileId + "'"); + + if(count>0){ + if (deplModel != null) { + PALRepositoryCache.getCache().put(fileId, deplModel); + } + } + + } + + 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); + // 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("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"); + + PALRepositoryModelImpl changeplModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(changefileId); + + int changeCount=DBSql.update(open,"UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5 = '0' WHERE ID = '"+changefileId+"'"); + if(changeCount>0){ + if (changeplModel != null) { + PALRepositoryCache.getCache().put(changefileId, changeplModel); + } + } + + PALRepositoryModelImpl newplModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(changefileIdNew); + int newCount=DBSql.update(open,"UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5 = '1' WHERE ID = '"+changefileIdNew+"'"); + if(newCount>0){ + if (newplModel != null) { + PALRepositoryCache.getCache().put(changefileIdNew, newplModel); + } + } + + + + + /** + * 更新部门视图EXT6字段 + */ + List rlatRowMap=DBSql.getMaps("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT where FILEID = '"+changefileIdNew+"' and ATTRID='Issuing_department'"); + if(rlatRowMap.size()>0){ + // 发布部门 + String dempId = ""; + for(RowMap oneRowMap:rlatRowMap){ + String relationshapetext=oneRowMap.getString("RELATIONSHAPETEXT"); + JSONObject js=JSONObject.parseObject(relationshapetext); + dempId += js.getString("id") + ","; + } + dempId = dempId.substring(0, dempId.length() - 1); + + PALRepositoryModelImpl depplModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(changefileIdNew); + int count = DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT6 = TO_CLOB('" + dempId + "') WHERE ID = '" + changefileIdNew + "'"); + + + if(count>0){ + if (depplModel != null) { + PALRepositoryCache.getCache().put(changefileIdNew, depplModel); + } + } + + } + + + + + //先查找旧文件 + /*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"); + PALRepositoryModelImpl plModel = (PALRepositoryModelImpl) PALRepositoryCache.getCache().get(fileId); + int count=DBSql.update(open,"UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT5='0' WHERE ID = '"+fileId+"'"); + if(count>0){ + if (plModel != null) { + PALRepositoryCache.getCache().put(fileId, plModel); + } + } + + 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)); + + + + + /*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(processInstance, wsId, filed); + try { + AttrSynAslp(processExecutionContext, wsId, filed); } catch (Exception e) { - }*/ + } } catch (Exception e) { @@ -431,21 +864,21 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @return */ - public boolean createIndexesByContent(ProcessInstance processInstance,JSONArray contents) { - // 调用App - String sourceAppId =processInstance.getAppId() ; - // aslp服务地址 + public boolean createIndexesByContent(ProcessExecutionContext processExecutionContext,JSONArray contents) { +// 调用App + String sourceAppId =processExecutionContext.getProcessInstance().getAppId() ; +// aslp服务地址 String aslp = "aslp://com.actionsoft.apps.addons.es/createIndexesByContent"; - // 参数定义列表 +// 参数定义列表 Map params = new HashMap(); - //索引内容(JSONArray格式, JSONArray中包含JSONObject, JSONObject的内容同创建单个索引),必填 +//索引内容(JSONArray格式, JSONArray中包含JSONObject, JSONObject的内容同创建单个索引),必填 params.put("contents", contents); - //索引名称(文档在哪存放),必填 +//索引名称(文档在哪存放),必填 params.put("index", "com.actionsoft.apps.kms_kmsdoc_card"); - //类型(索引中对数据进行逻辑分区。不同 type的文档可能有不同的字段,但最好能够非常相似,比如:存储所有产品到索引products中,但是你有许多不同的产品类别,这些产品共享一种相同的(或非常相似)的模式:他们有一个标题、描述、产品代码和价格。他们只是正好属于“产品”下的一些子类。用type表示不同的类别),必填 +//类型(索引中对数据进行逻辑分区。不同 type的文档可能有不同的字段,但最好能够非常相似,比如:存储所有产品到索引products中,但是你有许多不同的产品类别,这些产品共享一种相同的(或非常相似)的模式:他们有一个标题、描述、产品代码和价格。他们只是正好属于“产品”下的一些子类。用type表示不同的类别),必填 params.put("type", "kmsdoc_card"); AppAPI appAPI = SDK.getAppAPI(); - //入库操作,创建内容索引(多个) +//入库操作,创建内容索引(多个) ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params); return ro.isOk(); @@ -458,29 +891,33 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param jsonObject * @param processExecutionContext */ - public void course(List list,long startTime,JSONObject jsonObject,ProcessInstance processInstance,ArrayList sendList,String sid) throws InterruptedException { + public void course(List list,long startTime,JSONObject jsonObject,ProcessExecutionContext processExecutionContext,ArrayList sendList) throws InterruptedException { // 创建线程来实现为每100人为一个的线程跑待阅 - ProcessInstance instanceById = processInstance; - //CountDownLatch countDownLatch = new CountDownLatch(list.size()); - //ExecutorService service = Executors.newFixedThreadPool(4); + ProcessInstance instanceById = processExecutionContext.getProcessInstance(); + CountDownLatch countDownLatch = new CountDownLatch(list.size()); + ExecutorService service = Executors.newFixedThreadPool(4); int m = 0; - //200个循环 - for (String[] resrt:list) { - System.out.println("开始进入循环调用OA"); - //每次循环 - String sourceAppId = "com.actionsoft.apps.coe.pal.publisher"; - String aslp = "aslp://com.actionsoft.apps.coe.pal.publisher/SendOAReadAlsp"; - Map params = new HashMap(); - String userIds = ""; - userIds = StringUtils.join(resrt, ","); - params.put("processId", processInstance.getId()); - params.put("userIds",userIds); - params.put("type","批量推送"); - AppAPI appApi = SDK.getAppAPI(); - appApi.asynCallASLP(appApi.getAppContext(sourceAppId), aslp, params); + for (String[] resrt:list + ) { + int finalM = m; + service.execute(new Runnable() { + @Override + + public void run() { + String userIds = ""; + userIds = StringUtils.join(resrt, ","); + try { + SendOARead( processExecutionContext.getProcessInstance(), userIds,"批量推送"); + countDownLatch.countDown(); + } catch (DocumentException e) { + e.printStackTrace(); + } + + } + }); + m++; } - System.out.println("执行结束"); - /*countDownLatch.await(); + countDownLatch.await(); if (countDownLatch.getCount()==0){ try { @@ -493,24 +930,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=",processInstance.getId()).addQuery("TASKSTATUS=",2).detail(); + 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(); for(RowMap oneuserId:List){ BO bo = new BO(); - bo.set("TITLE", processInstance.getTitle()); + bo.set("TITLE", processExecutionContext.getProcessInstance().getTitle()); bo.set("NAME", oneuserId.getString("NAME")); bo.set("TYPE", "批量推送"); bo.set("RESULT", "待处理"); - bo.set("PROCESSID", processInstance.getId()); + bo.set("PROCESSID", processExecutionContext.getProcessInstance().getId()); bo.set("DEPNAME", SDK.getORGAPI().getUser(oneuserId.getString("NAME")).getDepartmentId()); recordFailLists.add(bo); } - SDK.getBOAPI().create("BO_EU_READ_COUNT", recordFailLists, processInstance.getId(), processInstance.getCreateUser()); + SDK.getBOAPI().create("BO_EU_READ_COUNT", recordFailLists, processExecutionContext.getProcessInstance().getId(), processExecutionContext.getProcessInstance().getCreateUser()); return; } - secondSendOARead(processInstance, secondUserList, "单个账号推送"); + secondSendOARead(processExecutionContext.getProcessInstance(), secondUserList, "单个账号推送"); } catch (Exception e) { // TODO: handle exception } } @@ -519,7 +956,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute long endTimes = System.currentTimeMillis(); // 存入日志 - createReadLog(processInstance, jsonObject, sendList, startTime, endTimes,sid); + createReadLog(processExecutionContext, jsonObject, sendList, startTime, endTimes); System.err.println(instanceById.getTitle() + "推送OA待阅执行完毕====>" + "用时:" + (endTimes - startTime) / 1000 / 60 + "分钟"); @@ -531,7 +968,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } else { System.out.println("超过等待时间,部分任务未执行完毕"); - }*/ + } } @@ -544,23 +981,22 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param cardId * @param fileid */ - public void creadteFile(ProcessInstance processInstance, String bo_name, UserContext userContext, + public void creadteFile(ProcessExecutionContext processExecutionContext, String bo_name, UserContext userContext, String cardId, String fileid) { /** * 这个主要是负责对流程手册进行相关的文件的生成 */ - String sourceAppId =processInstance.getAppId(); - // aslp服务地址 + String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); +// aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/CreateFile"; if (StringUtils.isNotEmpty(cardId)) { - - String sql_ext4 = "select * from APP_ACT_COE_PAL_REPOSITORY where EXT4 = '" + cardId + "'"; RowMap map = DBSql.getMap(sql_ext4); RowMap rowMap = DBSql .getMap("SELECT * FROM " + bo_name + " where " + fileid + " '" + map.getString("ID") + "'"); - + // BO bos = + // SDK.getBOAPI().query(bo_name,true).addQuery(fileid,"17e7d198-1656-4a2c-8912-a81850170be9").detail(); if (rowMap != null) { if (StringUtils.isNotEmpty(rowMap.getString("TASKID"))) { @@ -600,6 +1036,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } DCContext dcContext = new DCContext(userContext, dcProfile, appProfile.getAppContext().getId(), model.getWsId(), rowMap.getString("TASKID"), filename + "_" + lever + ".doc"); + // UtilFile file = new UtilFile(dcContext.getPath()); Map params = new HashMap(); //知识ID,必填 @@ -609,7 +1046,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute params.put("dc", dcContext); AppAPI appAPI = SDK.getAppAPI(); - //创建文件 +//创建文件 ResponseObject ro = appAPI.callASLP(appAPI.getAppContext(sourceAppId), aslp, params); JSONArray coontest = new JSONArray(new LinkedList<>()); @@ -619,7 +1056,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(processInstance,coontest); + createIndexesByContent(processExecutionContext,coontest); } } @@ -636,7 +1073,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute */ // 调用App - // 参数定义列表 + // 参数定义列表 Map paramss = new HashMap(); //知识ID,必填 paramss.put("cardId", cardId); @@ -667,14 +1104,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(processInstance,coontest); + createIndexesByContent(processExecutionContext,coontest); } } } try { - PublishKnow(processInstance, userContext, cardId); + PublishKnow(processExecutionContext, userContext, cardId); } catch (Exception e) { e.printStackTrace(); } @@ -688,7 +1125,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param userContext * @param id */ - public void PublishKnow(ProcessInstance processInstance, UserContext userContext, String id) { + public void PublishKnow(ProcessExecutionContext processExecutionContext, 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 + "')"; @@ -703,16 +1140,19 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute for (String id_names : deptSplit_id) { jsonArray.add(id_names); } + // jsonObject.put(deptSplit_id); id += ","; String[] deptSplit_das = id.split(","); JSONArray jsonArray_das = new JSONArray(); for (String das : deptSplit_das) { jsonArray_das.add(das); } + // jsonObject.put(deptSplit_id); if (!jsonArray_das.isEmpty() && !jsonArray.isEmpty()) { + // 调用App - String sourceAppId = processInstance.getAppId(); + String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/PublishKnwl"; // 参数定义列表 @@ -742,9 +1182,9 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param knwlId * @return */ - public boolean CancelPublishKnwl(ProcessInstance processInstance, String sid, String knwlId) { + public boolean CancelPublishKnwl(ProcessExecutionContext processExecutionContext, String sid, String knwlId) { // 调用App - String sourceAppId = processInstance.getAppId(); + String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/CancelPublishKnwl"; // 参数定义列表 @@ -775,11 +1215,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param fileid * @return */ - public boolean execute(ProcessInstance processInstance, String fileCreateName, String fileName, + public boolean execute(ProcessExecutionContext processExecutionContext, 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 = processInstance.getAppId(); + String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); // aslp服务地址 String aslp = "aslp://com.awspaas.user.apps.docview/PushFileToXpage"; // 参数定义列表 @@ -819,11 +1259,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param knwlId * @return */ - public boolean AddKnwlAC(ProcessInstance processInstance, JSONArray jsonArray, String sid, + public boolean AddKnwlAC(ProcessExecutionContext processExecutionContext, JSONArray jsonArray, String sid, String knwlId) { // 调用App - String sourceAppId =processInstance.getAppId(); + String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); // aslp服务地址 String aslp = "aslp://com.actionsoft.apps.kms/AddKnwlAC"; // 参数定义列表 @@ -848,9 +1288,10 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param fileId * @return */ - public boolean AttrSynAslp(ProcessInstance processInstance, String wsId, JSONArray fileId) { + public boolean AttrSynAslp(ProcessExecutionContext processExecutionContext, String wsId, JSONArray fileId) { + System.out.println(""); // 调用App - String sourceAppId = processInstance.getAppId(); + String sourceAppId = processExecutionContext.getProcessInstance().getAppId(); // aslp服务地址 String aslp = "aslp://com.awspaas.user.apps.yili.reportform/AttrSynAslp"; // 参数定义列表 @@ -876,7 +1317,15 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute public void SendOARead( ProcessInstance processInstance, String userIds,String type) throws DocumentException { + + String processInstId = processInstance.getId(); + // System.err.println(processInstance.getTitle() + "开始发送:" + userId); + + /* + * if ("".equals(userId) || UtilString.isEmpty(userId)) { return; } + */ + BO bo_act_coe_publish1 = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true) .addQuery("BINDID=", processInstance.getId()) @@ -898,7 +1347,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + taskInd; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //Timestamp endTime = taskInstance.getBeginTime(); + //Timestamp endTime = processExecutionContext.getTaskInstance().getBeginTime(); Timestamp endTime = new Timestamp(System.currentTimeMillis()); JSONObject jsonObjects = new JSONObject(new LinkedHashMap()); @@ -927,6 +1376,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + " " + " " + " " + " " + "" + " " + " " + " " + ""; + // System.out.println("xmlStr>>>>>>>>" + xmlStr); String readurl = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "readurl"); UtilUrl uc=new UtilUrl(); String postSoap =uc.doPostSoap(readurl, xmlStr, ""); @@ -1066,11 +1516,22 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String processInstId = processInstance.getId(); + // System.err.println(processInstance.getTitle() + "开始发送:" + userId); + /* + * if ("".equals(userId) || UtilString.isEmpty(userId)) { return; } + */ if (idList.size() == 0) { return; } + // System.err.println(processInstance.getTitle() + "开始发送:" + userId); + + /* + * if ("".equals(userId) || UtilString.isEmpty(userId)) { return; } + */ + + BO bo_act_coe_publish1 = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH", true) .addQuery("BINDID=", processInstance.getId()) .addQuery("OPTIONTYPE IS NOT NULL", null).detail(); @@ -1091,7 +1552,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + taskInd; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - //Timestamp endTime = taskInstance.getBeginTime(); + //Timestamp endTime = processExecutionContext.getTaskInstance().getBeginTime(); Timestamp endTime = new Timestamp(System.currentTimeMillis()); JSONObject jsonObjects = new JSONObject(new LinkedHashMap()); @@ -1116,6 +1577,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + " " + " " + " " + " " + "" + " " + " " + " " + ""; + // System.out.println("xmlStr>>>>>>>>" + xmlStr); String readurl = SDK.getAppAPI().getProperty("com.awspaas.user.apps.yili.integration", "readurl"); UtilUrl uc=new UtilUrl(); String postSoap = uc.doPostSoap(readurl, xmlStr, ""); @@ -1424,6 +1886,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } } + + // System.err.println(SDK.getProcessAPI().getInstanceById(processid) + + // "_得到的总人数为:" + arr_test.size()); + // System.err.println(SDK.getProcessAPI().getInstanceById(processid) + + // "_得到的过滤后的人数为:" + arr.size()); return arr; } @@ -1436,8 +1903,15 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String uid = userModel.getUID(); if (!arr.contains(uid)) { if (!"10033643".equals(uid)) { + // System.err.println("发送人员======>" + uid); } arr.add(uid); + } + /* + * RowMap map = DBSql.getMap("SELECT ID FROM BO_ACT_DATAID WHERE PROCESSID = '" + * + processid + "' AND USER_ID = '" + uid + "'"); if (map == null) { + * //System.err.println("发送人员======>" + uid); } + */ } } } @@ -1463,8 +1937,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String uid = userModel.getUID(); if (!arr.contains(uid)) { if (!"10033643".equals(uid)) { + // System.err.println("发送人员======>" + uid); } arr.add(uid); } + // System.err.println(SDK.getProcessAPI().getInstanceById(processid) + + // "_发送人员======>" + uid); } } @@ -1517,14 +1994,13 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param startTime */ - public void createReadLog(ProcessInstance processInstance, JSONObject jsonObject, - ArrayList arr, long startTime, long endTimes,String sid) { - UserContext uc=UserContext.fromSessionId(sid); + public void createReadLog(ProcessExecutionContext processExecutionContext, JSONObject jsonObject, + ArrayList arr, long startTime, long endTimes) { BO bo_Read_log = new BO(); - 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()); + 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()); bo_Read_log.set("TITLE", jsonObject.get("title")); bo_Read_log.set("PROCESSID", processInstId); bo_Read_log.set("SENDNUM", arr.size()); @@ -1602,28 +2078,27 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute * @param bo_act_coe_publish 发布表 * @param uid 账户合计 */ - public void createKmsByNew(BO bo, String wsId, JSONArray filed, ProcessInstance processInstance, - BO bo_act_coe_publish, String uid,String sid) { + public void createKmsByNew(BO bo, String wsId, JSONArray filed, ProcessExecutionContext processExecutionContext, + BO bo_act_coe_publish, String uid) { { OutputTaskModel model = new OutputTask().getTaskReportById(bo.getString("TASKID")); wsId = model.getWsId(); String publishfileid = bo.getString("PUBLISHFILEID"); filed.add(publishfileid); - - PALRepositoryModel plmodel = PALRepositoryCache.getCache().get(publishfileid); - - if (StringUtils.isEmpty(plmodel.getExt4())) { - // aslp服务地址 + String sql_n = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid + "'"; + RowMap map = DBSql.getMap(sql_n); + if (StringUtils.isEmpty(map.getString("EXT4"))) { + // aslp服务地址 String aslps_create = "aslp://com.actionsoft.apps.kms/CreateKnwl"; - // 参数定义列表 + // 参数定义列表 Map params_create = new HashMap(); - //保密级别, 0: 普通 1:秘密 2:机密,必填 + //保密级别, 0: 普通 1:秘密 2:机密,必填 params_create.put("securityLevel", 0); //知识名称,必填 String level = ""; - if (plmodel != null) { - String pver = String.valueOf(plmodel.getLevel()); + if (map != null) { + String pver = map.getString("PLVER"); if (UtilString.isNotEmpty(pver)) { if (pver.contains(".00")) { String levels = pver; @@ -1635,25 +2110,25 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } } - params_create.put("knwlName",plmodel.getName() + "V" + level); - //是否可以评论,必填 + params_create.put("knwlName", map.getString("PLNAME") + "V" + level); +//是否可以评论,必填 params_create.put("isComment", true); - //是否可以评分,必填 +//是否可以评分,必填 params_create.put("isRate", true); - //有效期:yyyy-MM-dd,非必填 +//有效期:yyyy-MM-dd,非必填 params_create.put("validDate", "2099-12-31"); - //只读控制,1:在线阅读和下载 0:在线阅读,必填 +//只读控制,1:在线阅读和下载 0:在线阅读,必填 params_create.put("onlineLevel", 1); - //知识创建人,某些特殊场景下,sid和createUser代表的用户并不一样,如果此参数为null,则使用sid代表的用户,非必填 +//知识创建人,某些特殊场景下,sid和createUser代表的用户并不一样,如果此参数为null,则使用sid代表的用户,非必填 params_create.put("createUser", "admin"); - //知识内容,非必填 +//知识内容,非必填 params_create.put("cardContext", ""); - //sid,必填 - params_create.put("sid", sid); +//sid,必填 + params_create.put("sid", processExecutionContext.getUserContext().getSessionId()); AppAPI appAPI_create = SDK.getAppAPI(); - //创建知识 +//创建知识 ResponseObject ro_create = appAPI_create.callASLP( - appAPI_create.getAppContext(processInstance.getAppId()), + appAPI_create.getAppContext(processExecutionContext.getProcessInstance().getAppId()), aslps_create, params_create); String cardId = ((LinkedHashMap) ro_create.getData()).get("cardId").toString(); JSONArray jsonArray1 = new JSONArray(); @@ -1694,13 +2169,10 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } - AddKnwlAC(processInstance, jsonArray1, sid, + AddKnwlAC(processExecutionContext, jsonArray1, processExecutionContext.getUserContext().getSessionId(), cardId); - PALRepository palRepository=new PALRepository(); - int count=palRepository.updateRepositoryExtAll(publishfileid,"","","",cardId,"",""); - - /* String update_sql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4='" + cardId + "' WHERE " + String update_sql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '" + cardId + "' WHERE " + " PLCATEGORY = 'process'and PLMETHODID !='process.framework' " + " and PLNAME not in ('流程架构图','测试用','GMY-截图用','sx批量测试'" + " ,'8.2培训使用','用户练习使用','YX测试分部','yx测试人员','yx测试部','流程架构测试')" @@ -1709,12 +2181,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute + " '36ac7cdd-a361-4bd3-9511-c03c1b3627a4','84e534b4-e51a-4874-9ff1-8a0206d9e0c5'," + " '98bd5917-7563-4b29-b775-815e91d9864c','f07da63c-3423-4c1e-ae75-b323c6a69093'," + " '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的影响行数为" + count); - creadteFile(processInstance, "BO_ACT_COE_PUBLISH_N",UserContext.fromSessionId(sid), - cardId, "PUBLISHFILEID="); + + " '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(), + cardId, "PUBLISHFILEID = "); } } } @@ -1729,8 +2200,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, ProcessInstance processInstance, - BO bo_act_coe_publish, String uid,String sid) { + public void CreateKmsByupdate(BO bo, String wsId, JSONArray filed, ProcessExecutionContext processExecutionContext, + BO bo_act_coe_publish, String uid) { { OutputTaskModel model = new OutputTask().getTaskReportById(bo.getString("TASKID")); wsId = model.getWsId(); @@ -1742,11 +2213,11 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute if (StringUtils.isEmpty(map.getString("EXT4"))) { // aslp服务地址 String aslps_create = "aslp://com.actionsoft.apps.kms/CreateKnwl"; - // 参数定义列表 + // 参数定义列表 Map params_create = new HashMap(); - //保密级别, 0: 普通 1:秘密 2:机密,必填 + //保密级别, 0: 普通 1:秘密 2:机密,必填 params_create.put("securityLevel", 0); - //知识名称,必填 + //知识名称,必填 String level = ""; if (map != null) { String pver = map.getString("PLVER"); @@ -1767,20 +2238,20 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute params_create.put("isComment", true); //是否可以评分,必填 params_create.put("isRate", true); - //有效期:yyyy-MM-dd,非必填 + //有效期:yyyy-MM-dd,非必填 params_create.put("validDate", "2099-12-31"); - //只读控制,1:在线阅读和下载 0:在线阅读,必填 + //只读控制,1:在线阅读和下载 0:在线阅读,必填 params_create.put("onlineLevel", 1); //知识创建人,某些特殊场景下,sid和createUser代表的用户并不一样,如果此参数为null,则使用sid代表的用户,非必填 params_create.put("createUser", "admin"); //知识内容,非必填 params_create.put("cardContext", ""); //sid,必填 - params_create.put("sid", sid); + params_create.put("sid", processExecutionContext.getUserContext().getSessionId()); AppAPI appAPI_create = SDK.getAppAPI(); //创建知识 ResponseObject ro_create = appAPI_create.callASLP( - appAPI_create.getAppContext(processInstance.getAppId()), + appAPI_create.getAppContext(processExecutionContext.getProcessInstance().getAppId()), aslps_create, params_create); // System.out.println("ro_create================" + ro_create); String cardId = ((LinkedHashMap) ro_create.getData()).get("cardId").toString(); @@ -1822,7 +2293,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } - AddKnwlAC(processInstance, jsonArray1, sid, + AddKnwlAC(processExecutionContext, jsonArray1, processExecutionContext.getUserContext().getSessionId(), cardId); String update_sql = "UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '" + cardId + "' WHERE " @@ -1837,7 +2308,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(processInstance, "BO_ACT_COE_PUBLISH_C", UserContext.fromSessionId(sid), + creadteFile(processExecutionContext, "BO_ACT_COE_PUBLISH_C", processExecutionContext.getUserContext(), cardId, " CHANGEDFILEIDNEW="); } // 将旧的知识取消发布或者移动到废止发布中 @@ -1845,7 +2316,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(processInstance, sid, + CancelPublishKnwl(processExecutionContext, processExecutionContext.getUserContext().getSessionId(), map1.getString("EXT4")); DBSql.update("UPDATE APP_ACT_COE_PAL_REPOSITORY SET EXT4 = '' WHERE ID = '" + publishfileid_old + "'"); } @@ -1866,7 +2337,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute SDK.getBOAPI().createDataBO("BO_EU_PAL_SEND_LOG", bo, UserContext.fromUID("admin")); } - public void sendEHSQ(ProcessInstance processInstance, List bo_act_coe_publish_n,TaskInstance taskInstance,String sid) { + public void sendEHSQ(ProcessExecutionContext processExecutionContext, List bo_act_coe_publish_n) { for (BO bo : bo_act_coe_publish_n) { DownloadUtil downloadUtil = new DownloadUtil(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); @@ -1876,7 +2347,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String wsId = model.getWsId(); String publishfileid = bo.getString("PUBLISHFILEID"); LinkedHashMap downloadurl = downloadUtil.outputReportDownload( - UserContext.fromUID(processInstance.getCreateUser()), + UserContext.fromUID(processExecutionContext.getProcessInstance().getCreateUser()), bo.getString("TASKID"), publishfileid); jsonObject_ehsq.put("fileid", bo.getString("TASKID")); String plName = bo.getString("PUBLISHFILENAME"); @@ -1888,7 +2359,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", processInstance.getId()); + BO byProcess = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", processExecutionContext.getProcessInstance().getId()); String cdeDate = byProcess.getString("CHOICEEFFECTIVEDATE"); if("1".equals(cdeDate)) { jsonObject_ehsq.put("releasedate", byProcess.getString("EFFECTIVEDATE")); @@ -1897,15 +2368,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", taskInstance.getTarget()); // jsonObject_ehsq.put("authorcode","00116465"); + jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); // jsonObject_ehsq.put("authorcode","00116465"); jsonObject_ehsq.put("authorname", - UserContext.fromUID(taskInstance.getTarget()).getUserName()); + UserContext.fromUID(processExecutionContext.getTaskInstance().getTarget()).getUserName()); // jsonObject_ehsq.put("authorname","毛鹏程"); jsonObject_ehsq.put("companycode", UserContext - .fromUID(taskInstance.getTarget()).getDepartmentModel().getNo()); + .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getNo()); // jsonObject_ehsq.put("companycode","00000013"); jsonObject_ehsq.put("authorcompany", UserContext - .fromUID(taskInstance.getTarget()).getDepartmentModel().getName()); // jsonObject_ehsq.put("authorcompany","总部质量管理部"); + .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getName()); // jsonObject_ehsq.put("authorcompany","总部质量管理部"); // // BO bo1 = SDK.getBOAPI().query("BO_ACT_PUBLISH_PERM_SCOPE", true) .addQuery("PALNAME=", bo.getString("PUBLISHFILENAME")).detail(); @@ -1940,7 +2411,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute //System.out.println("任务办理者>>>>>>>>>>>" + processExecutionContext.getTaskInstance().getTarget()); String sessionId = new SSOUtil().registerClientSessionNoPassword( - taskInstance.getTarget(), LoginConst.DEFAULT_LANG, "localhost", + processExecutionContext.getTaskInstance().getTarget(), LoginConst.DEFAULT_LANG, "localhost", LoginConst.DEVICE_PC); //System.out.println("办理者的sessionid>>>>>>>>>>>" + sessionId); @@ -1982,13 +2453,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 = UserContext.fromSessionId(sid); + UserContext uc = processExecutionContext.getUserContext(); 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流程发布推送结果====>"+processInstance.getTitle()+"=========>"+sendEHSQFile); + System.err.println("EHSQ流程发布推送结果====>"+processExecutionContext.getProcessInstance().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); @@ -2027,7 +2498,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(ProcessInstance processInstance, List bo_act_coe_publish_c,TaskInstance taskInstance,String sid) { + public void updateEHSQ(ProcessExecutionContext processExecutionContext, List bo_act_coe_publish_c) { DownloadUtil downloadUtil = new DownloadUtil(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); for (BO bo : bo_act_coe_publish_c) { @@ -2037,7 +2508,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute String wsId = model.getWsId(); String publishfileid = bo.getString("CHANGEDFILEIDNEW"); LinkedHashMap downloadurl = downloadUtil.outputReportDownload( - UserContext.fromUID(taskInstance.getTarget()), bo.getString("TASKID"), + UserContext.fromUID(processExecutionContext.getTaskInstance().getTarget()), bo.getString("TASKID"), publishfileid); jsonObject_ehsq.put("fileid", bo.getString("TASKID")); String plName = bo.getString("CHANGEDFILENAMENEW"); @@ -2049,7 +2520,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", processInstance.getId()); + BO byProcess = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", processExecutionContext.getProcessInstance().getId()); String cdeDate = byProcess.getString("CHOICEEFFECTIVEDATE"); if("1".equals(cdeDate)) { jsonObject_ehsq.put("releasedate", byProcess.getString("EFFECTIVEDATE")); @@ -2058,13 +2529,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", taskInstance.getTarget()); + jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); jsonObject_ehsq.put("authorname", - UserContext.fromUID(taskInstance.getTarget()).getUserName()); + UserContext.fromUID(processExecutionContext.getTaskInstance().getTarget()).getUserName()); jsonObject_ehsq.put("companycode", UserContext - .fromUID(taskInstance.getTarget()).getDepartmentModel().getNo()); + .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getNo()); jsonObject_ehsq.put("authorcompany", UserContext - .fromUID(taskInstance.getTarget()).getDepartmentModel().getName()); + .fromUID(processExecutionContext.getTaskInstance().getTarget()).getDepartmentModel().getName()); BO bo1 = SDK.getBOAPI().query("BO_ACT_PUBLISH_PERM_SCOPE", true) .addQuery("PALNAME=", bo.getString("CHANGEDFILENAMENEW")).detail(); if (bo1 != null) { @@ -2096,7 +2567,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } String sessionId = new SSOUtil().registerClientSessionNoPassword( - taskInstance.getTarget(), LoginConst.DEFAULT_LANG, "localhost", + processExecutionContext.getTaskInstance().getTarget(), LoginConst.DEFAULT_LANG, "localhost", LoginConst.DEVICE_PC); String downurl = downloadUtil.getzipURL(sessionId, bo.getString("TASKID"), @@ -2136,13 +2607,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 = UserContext.fromSessionId(sid); + UserContext uc = processExecutionContext.getUserContext(); 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流程发布更新===>"+processInstance.getTitle()+"==========>"+sendEHSQFile); + System.err.println("EHSQ流程发布更新===>"+processExecutionContext.getProcessInstance().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); @@ -2203,6 +2674,7 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute xmlDatasUtil.setMobileurl(portalUrl+"/r/or?cmd=com.yili_form_page_open&corpid=wwb0ae23173b140618&appAgentId=1000014&oauthName=wechat&casaccount="+taskInstance.getTarget()+"&processInstId="+processInstance.getId()+"&taskInstId="+taskInstance.getId()+"&openState="+taskInstance.getState()); String target = taskInstance.getTarget(); + //System.out.println("当前账户======》》》》"+target); BO bo_eu_oa_reson = SDK.getBOAPI().query("BO_EU_OA_RESON", true).addQuery("WORKCODE=" , target).detail(); //System.out.println("bo>>>>>>>>>>"+bo_eu_oa_reson); if (bo_eu_oa_reson!=null){ @@ -2365,6 +2837,4 @@ public class ProcessEndAfterEvent_new extends ExecuteListener implements Execute } } - - }