From c52f43315301ca489c5bb53c73807980d1102b7e Mon Sep 17 00:00:00 2001 From: Mr-wang Date: Fri, 7 Jul 2023 11:34:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=89=8B=E5=86=8C-=E6=A8=AA?= =?UTF-8?q?=E8=A1=A8=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../coe/pal/output/or/ReportORController.java | 66 + .../pal/output/or/report1/Report1Gener.java | 603 +- .../pal/output/or/util/OrReportComment.java | 60 +- .../横表-岗位手册.doc | Bin 56832 -> 49664 bytes .../横表-岗位手册.xml | 6365 +++++++++-------- .../coe/pal/pal/output/OutputAPIManager.java | 4 +- 6 files changed, 3976 insertions(+), 3122 deletions(-) diff --git a/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/ReportORController.java b/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/ReportORController.java index 69155223..8c5173d7 100644 --- a/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/ReportORController.java +++ b/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/ReportORController.java @@ -1,9 +1,18 @@ package com.actionsoft.apps.coe.pal.output.or; +import com.actionsoft.apps.coe.pal.constant.CoEConstant; +import com.actionsoft.apps.coe.pal.log.CoEOpLogAPI; +import com.actionsoft.apps.coe.pal.log.CoEOpLogConst; import com.actionsoft.apps.coe.pal.pal.output.OutPutReportWeb; import com.actionsoft.apps.coe.pal.pal.output.OutputAPIManager; import com.actionsoft.apps.coe.pal.pal.output.dao.OutputTask; import com.actionsoft.apps.coe.pal.pal.output.model.OutputTaskModel; +import com.actionsoft.bpms.server.fs.DCContext; +import com.actionsoft.bpms.server.fs.dc.DCProfileManager; +import com.actionsoft.bpms.server.fs.dc.DCUtil; +import com.actionsoft.bpms.util.UtilFile; +import com.actionsoft.sdk.local.SDK; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.actionsoft.apps.coe.pal.output.or.dc.OutputDCFileProcessor; @@ -12,6 +21,8 @@ import com.actionsoft.bpms.server.UserContext; import com.actionsoft.bpms.server.bind.annotation.Controller; import com.actionsoft.bpms.server.bind.annotation.Mapping; +import java.io.File; + /** * @Description 岗位手册Controller类 @@ -46,6 +57,61 @@ public class ReportORController { return ro.toString(); } + @Mapping("com.actionsoft.apps.coe.pal.output.downLoad_or_Name") + public ResponseObject downLoad_or_Name(String sid,String taskName) throws Exception { + ResponseObject ro = ResponseObject.newOkResponse(); + UserContext userContext = UserContext.fromSessionId(sid); + OutPutReportWeb outPutReport = new OutPutReportWeb(userContext); + String lang = "cn"; + String userId = userContext.getUID(); + String wsId = "7d3ca852-a0bd-42e6-80b1-3dcea6f55083"; + String teamId =""; + String profileId ="_fe696a872a52a5f9860bb65a2f9c3354"; + String isExecute = "N"; + String config = "{'isItReport':true,'orderNuberFirst':true,'orderNametwo':false,'reportNameIsItName':'%shapeName%'}"; + String targetFileId = ",5b372c57-cda8-41c1-a1f0-07d94af6fb3f"; + String targetShape = "obj_c9eac6bfaaf000018e3014a212701106,"; + String relationFileId =",e15d106a-74b8-47e5-8513-2bb13d054e50"; + String isModify = "false"; + String taskId = ""; + String s = outPutReport.reportSave(lang, taskName, userId, teamId, profileId, wsId, isExecute, config, targetFileId, targetShape, relationFileId, isModify, taskId); + JSONObject jsonObject = JSON.parseObject(s); + JSONObject data = jsonObject.getJSONObject("data"); + String id = data.getString("taskId"); + String s1 = outPutReport.reportExecute(id, wsId, profileId); + OutputTaskModel model = new OutputTask().getTaskReportById(id); + + DCContext dcContext = new DCContext(userContext, + DCProfileManager.getDCProfile("com.actionsoft.apps.coe.pal.output.or", "output"), "com.actionsoft.apps.coe.pal.output.or", + "7d3ca852-a0bd-42e6-80b1-3dcea6f55083", id, userContext.getUserModel().getPositionName()+".doc"); + //String reportDownloadURL = getReportDownloadURL(model.getWsId(), id, model.getProfileId(), userContext, model.getTaskName()); + ro.put("url",dcContext.getDownloadURL()); + return ro; + } + + + public static String getReportDownloadURL(String wsId, String id, String profileId, UserContext _uc, String taskName) throws Exception { + UtilFile file = OutputAPIManager.getInstance().getFilePath(wsId, id, profileId); + if (file.exists()) { + //String josnStr = OutputAPIManager.getInstance().getWizardJsonData(wsId, id, profileId); + // JSONObject jsonObj = JSONObject.fromObject(josnStr); + DCContext dcContext = null; + DCUtil.getInstance(); + dcContext = DCUtil.createTempFileContext("com.actionsoft.apps.coe.pal.output.or", "output", id, "zip"); + dcContext.setFileName(taskName+ ".zip"); + File ff = new File(dcContext.getFilePath()); + UtilFile.zipCompress(file.getPath(), ff, "doc"); + dcContext.setSession(_uc); + // 操作行为日志记录 + + /*if (SDK.getAppAPI().getPropertyBooleanValue(CoEConstant.APP_ID, "IS_RECORD_OP_LOG", false)) { + CoEOpLogAPI.auditOkOp(_uc, CoEOpLogConst.MODULE_CATEGORY_APPCENTER, CoEOpLogConst.OP_DOWNLOAD, CoEOpLogConst.INFO_OUTPUT_DOWNLOAD); + }*/ + return dcContext.getDownloadURL(); + } + return ""; + } + @Mapping("com.actionsoft.apps.coe.pal.output.or_downloadlog") /**日志下载 * diff --git a/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/report1/Report1Gener.java b/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/report1/Report1Gener.java index e6a9fee1..e9f52276 100644 --- a/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/report1/Report1Gener.java +++ b/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/report1/Report1Gener.java @@ -11,11 +11,15 @@ import com.actionsoft.apps.coe.pal.pal.output.extend.OutputAppProfile; import com.actionsoft.apps.coe.pal.pal.output.model.OutputTaskModel; import com.actionsoft.apps.coe.pal.pal.output.util.OutputExcelUtil; import com.actionsoft.apps.coe.pal.pal.output.util.OutputWordUtil; +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.designer.relation.dao.DesignerShapeRelationDao; import com.actionsoft.apps.coe.pal.pal.repository.designer.relation.model.DesignerShapeRelationModel; import com.actionsoft.apps.coe.pal.pal.repository.designer.util.CoeDesignerUtil; import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.util.DBSql; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -26,10 +30,15 @@ import com.actionsoft.bpms.server.fs.DCContext; import com.actionsoft.bpms.util.UtilString; import com.actionsoft.sdk.local.SDK; import com.actionsoft.sdk.local.api.internal.PlatformAPIImpl; +import com.awspaas.user.apps.yili.reportform.util.RepositoryAttribute; + +import static com.actionsoft.apps.coe.pal.pal.repository.util.CoeProcessLevelUtil.getLastPublishTaskIdByModelId; +import static java.util.stream.Collectors.collectingAndThen; +import static java.util.stream.Collectors.toCollection; /** * 生成岗位手册-横表的入口 - * + * * @author zhangming */ public class Report1Gener { @@ -42,21 +51,26 @@ public class Report1Gener { /** * 生成文件 - * + * * @param model OutputTaskModel对象 * @param wizardJsonData 向导收集的Json参数(targetFiles、relationFiles、options...) * @param dcContext 要生成报告的DC目录对象,已准备好 * @return 将文件生成到output目录下,返回状态 - * + * * @see PlatformAPIImpl#getDefaultLanguage() * @see PlatformAPIImpl#getlanguages() */ public ResponseObject execute(OutputTaskModel model, String wizardJsonData, DCContext dcContext) { try { synchronized (_lock) { + System.out.println("outPuttaskModel>>>>>>>>"+model); + System.out.println("wizardJsonData>>>>>>>>"+wizardJsonData); + System.out.println("dcContext>>>>>>>>"+dcContext); isRunning = true; String teamId = model.getTeamId(); String wsId = model.getWsId(); + String userId = model.getUserId(); + System.out.println("这个的id是什么>>>>>>>>>"+userId); log.info("execute ready..."); log.info("-------------------"); log.info("TeamId=" + teamId); @@ -74,10 +88,10 @@ public class Report1Gener { if (!UtilString.isEmpty(targetFileIds)) { if (isJsonArray(targetFileIds)) { JSONArray array = JSONArray.parseArray(targetFileIds); - genarateWord(tempPath, tempName, dcContext.getPath(), jsonObj, array); + genarateWord(tempPath, tempName, dcContext.getPath(), jsonObj, array,userId); } else { - genarateWord(tempPath, tempName, dcContext.getPath(), jsonObj); - } + genarateWord(tempPath, tempName, dcContext.getPath(), jsonObj,userId); + } } log.info("end"); } @@ -95,16 +109,16 @@ public class Report1Gener { return false; } } - + /** * 循环生成多份报告 - * + * * @param tempPath * @param tempName * @param docPath * @param wizardJsonData */ - private void genarateWord(String tempPath, String tempName, String docPath, JSONObject wizardJsonData) { + private void genarateWord(String tempPath, String tempName, String docPath, JSONObject wizardJsonData,String userId) { String[] targetShapes = wizardJsonData.getString("targetShape").split(","); String[] repositoryIds = wizardJsonData.getString("targetFileId").split(","); String repositoryId = null; @@ -153,30 +167,32 @@ public class Report1Gener { indexMap.put(shapeName, index); } else { log.info("得到word名称为:" + shapeName); - docName = docPath + shapeName + ".doc"; + UserContext userContext = UserContext.fromUID(userId); + String positionName = userContext.getUserModel().getPositionName(); + docName = docPath + positionName + ".doc"; indexMap.put(shapeName, 1); } - - JSONObject dataMap = getData(targetShapeId, shapesMap, linkerList, wizardJsonData); + + JSONObject dataMap = getData(targetShapeId, shapesMap, linkerList, wizardJsonData,userId); OutputWordUtil.createDoc(dataMap, tempPath, tempName, docName); } } /** * 获取报告中所需数据 - * + * * @param shapeId * @param shapesMap * @param linkerList * @param wizardJsonData * @return */ - private JSONObject getData(String shapeId, Map> shapesMap, List> linkerList, JSONObject wizardJsonData) { + private JSONObject getData(String shapeId, Map> shapesMap, List> linkerList, JSONObject wizardJsonData,String userId) { JSONObject dataMap = new JSONObject(); OrReportComment orReportComment = new OrReportComment(); - orReportComment.getCommentContent(dataMap, shapesMap, shapeId); // 获取一些公共的数据(手册首页的手册岗位名称、部门、时间等) + orReportComment.getCommentContent(dataMap, shapesMap, shapeId,userId); // 获取一些公共的数据(手册首页的手册岗位名称、部门、时间等) // 流程表格 JSONArray _table = new JSONArray(); @@ -184,6 +200,7 @@ public class Report1Gener { DesignerShapeRelationDao dao = new DesignerShapeRelationDao(); // 循环关联文件 int index = 1; + /*int index = 1; for (String relationFileId : relationFileIds) { if (relationFileId.equals("")) { continue; @@ -213,6 +230,8 @@ public class Report1Gener { _tr.put(OutputWordUtil.SERIAL_NUMBER, index); // 序号 _tr.put(OutputWordUtil.REPOSITORY_NAME, relationModel.getName().toString().replace("\n", "")); // 流程名称 _tr.put(OutputWordUtil.SHAPE_NAME, shapeMap.get("text").toString().replace("\n", OutputWordUtil.WRAPSTRING)); // 步骤名称 + //JSONObject jsonObject = personalView_right(UserContext.fromUID(userId)); + JSONArray dataAttributes = (JSONArray) shapeMap.get("attributes"); if (!dataAttributes.isEmpty()) { @@ -221,14 +240,71 @@ public class Report1Gener { String attrId = obj.getString("key"); String attrValue = obj.getString("value"); _tr.put("shape_" + attrId, attrValue.replace("\n", OutputWordUtil.WRAPSTRING)); + _tr.put("shape_role", "123456"); // 步骤名称 } } _table.add(_tr); index++; } } + }*/ + + + JSONObject jsonObject = personalView_right(UserContext.fromUID(userId)); + JSONArray typeB = jsonObject.getJSONArray("typeB"); + if (typeB.size()>0){ + for (int i=0;i>>>>>>>>>"+jsonObject1.getString("ROLENAME")); + _tr.put("shape_role", jsonObject1.getString("ROLENAME")); // 角色名称 + + Map queryRepositoryAttributeById = new RepositoryAttribute().queryRepositoryAttributeById(jsonObject1.getString("PLID")); + String kpi = ""; + String institution = ""; + if (null != queryRepositoryAttributeById && !queryRepositoryAttributeById.isEmpty()) { + // 获取流程绩效 + JSONObject Issuing_department = queryRepositoryAttributeById.get("Process_performance_metrics"); + if (null != Issuing_department && !Issuing_department.equals("")) { + JSONArray PUBDEPTJA = Issuing_department.getJSONArray("value"); + if (null != PUBDEPTJA && !PUBDEPTJA.isEmpty()) { + for (Object PUBDEPTO : PUBDEPTJA) { + JSONObject PUBDEPTJO = JSONObject.parseObject(String.valueOf(PUBDEPTO)); + String dempId = PUBDEPTJO.getString("id"); + System.out.println("第一这个是什么呢>>>>>"+dempId); + kpi+=dempId+","; + } + } + } + + // 获取相关文件 + JSONObject relevant_flies = queryRepositoryAttributeById.get("R_relevant_flies"); + if (null != relevant_flies && !relevant_flies.equals("")) { + JSONArray PUBDEPTJA = relevant_flies.getJSONArray("value"); + if (null != PUBDEPTJA && !PUBDEPTJA.isEmpty()) { + for (Object PUBDEPTO : PUBDEPTJA) { + JSONObject PUBDEPTJO = JSONObject.parseObject(String.valueOf(PUBDEPTO)); + String dempId = PUBDEPTJO.getString("id"); + System.out.println("第二这个是什么呢>>>>>"+dempId); + institution+=dempId+","; + } + } + } + } + _tr.put(OutputWordUtil.SHAPE_KPI,kpi); + _tr.put(OutputWordUtil.SHAPE_INSTITUTION,institution); + //获取相关知识 + _table.add(_tr); + index++; + } } + if (_table.size() == 0) { _table = getEmptyTable("process.bpmn2"); } @@ -246,6 +322,7 @@ public class Report1Gener { _tr.put(OutputWordUtil.REPOSITORY_NAME, ""); // 流程名称 _tr.put(OutputWordUtil.SERIAL_NUMBER, ""); _tr.put(OutputWordUtil.SHAPE_DESC, ""); // 工作详细描述 + _tr.put("shape_role", ""); // 工作详细描述 List attributes = palMethodModel.getAttributes(); if (attributes != null) { for (PALMethodAttributeModel attribute : attributes) { @@ -259,16 +336,490 @@ public class Report1Gener { return table; } + + + public JSONObject personalView_right(UserContext uc) { + System.out.println("uc>>>>>>>>"+uc.getUID()); + JSONObject ro = new JSONObject(new LinkedHashMap<>()); + String positionKeys = null; + String positionVals = null; + Integer i = -1; + String uid = uc.getUID(); + String sid = uc.getSessionId(); + // 定义用户/岗位流程list,用户/岗位流程map + ArrayList UoPProcessMaps = new ArrayList<>(); + HashMap UoPProcessMap = new HashMap<>(); + ArrayList nodeMaps = new ArrayList<>(); + ArrayList nodeAMaps = new ArrayList<>(); + ArrayList nodeBMaps = new ArrayList<>(); + HashMap nodeMap = new HashMap<>(); + Map nodeTempMap = new HashMap<>(); + ArrayList reRegulationMaps = new ArrayList<>(); + ArrayList reFormMaps = new ArrayList<>(); + ArrayList reIO_L4Maps = new ArrayList<>(); + ArrayList reYSMaps = new ArrayList<>(); + ArrayList tempMaps = new ArrayList<>(); + LinkedList linksMaps = new LinkedList<>(); + HashMap linksMap = new HashMap<>(); + String path = ""; + PALRepositoryModel model = null; + String taskId = ""; + String fileType = ""; + Integer totalNum = 0; + Integer aNum = 0; + Integer bNum = 0; + Object[] sqlParams = new Object[] {}; + // List fileRowMaps = DBSql.getMaps("SELECT + // FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,RELEVANTFILE,SUPPORTFILE,PROCESSKPI + // FROM BO_EU_PAL_FILE1 WHERE PLMETHODID='process.epc' AND FILESTATE='1' ORDER + // BY TO_NUMBER(PLLEVEL) ASC, TO_NUMBER(PLORDERINDEX) ASC"); + // List fileRowMaps1 = DBSql.getMaps("SELECT + // FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,RELEVANTFILE,SUPPORTFILE,PROCESSKPI + // FROM BO_EU_PAL_FILE1 WHERE PLMETHODID='process.epc' AND FILESTATE='1' ORDER + // BY PLLEVEL ASC, PLORDERINDEX ASC"); + // AND FILESTATE='1' ORDER BY TO_NUMBER(PLLEVEL) ASC, TO_NUMBER(PLORDERINDEX) + // ASC + + UoPProcessMaps = new ArrayList(); + nodeMaps = new ArrayList(); + linksMaps = new LinkedList(); + UoPProcessMap = new HashMap(); + String rootuuId = SDK.getRuleAPI().executeAtScript("@uuid()"); + UoPProcessMap.put("id", rootuuId); + UoPProcessMap.put("text", "岗位流程"); + UoPProcessMap.put("fileType", "UoPProcess"); + UoPProcessMaps.add(UoPProcessMap); + long start = System.currentTimeMillis(); + ArrayList positionNameList = new ArrayList<>(); + // if (nodeRowMap.getString("ROLE").equals(positionID) || + // nodeRowMap.getString("POST").equals(positionID)) { + String positionName = UserContext.fromUID(uid).getUserModel().getPositionName(); + String departName = UserContext.fromUID(uid).getDepartmentModel().getName(); + + List nodeRowMaps = DBSql.getMaps( + "SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME,ITSYSVAL FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%" + + positionName + "%' OR POST LIKE '%内蒙古伊利实业集团股份有限公司%' "); + List DepartnodeRowMaps = DBSql.getMaps( + "SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME,ITSYSVAL FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%" + + departName + "%' OR POST LIKE '%内蒙古伊利实业集团股份有限公司%' "); + System.out.println("=========nodeRowMaps========>"+nodeRowMaps); + System.out.println("=========DepartnodeRowMaps========>"+DepartnodeRowMaps); + for (RowMap nodeRowMap : nodeRowMaps) { + String plId = nodeRowMap.getString("PLID"); + RowMap fileRowMap = DBSql.getMap( + "SELECT FILESTATE,FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,RELEVANTFILE,SUPPORTFILE,PROCESSKPI FROM BO_EU_PAL_FILE1 WHERE FILEID = '" + + plId + "'"); + if (fileRowMap != null) { + if ("0".equals(fileRowMap.getString("FILESTATE"))) { + continue; + } + nodeMap = new HashMap(); + taskId = getLastPublishTaskIdByModelId(plId); + /* + * model = PALRepositoryCache.getCache().get(plId); if (null != model) { if + * (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 } } + */ + path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + plId + "&" + "sid=" + sid + "&" + "taskId=" + + taskId; + nodeMap.put("NODENAME", nodeRowMap.getString("NODENAME")); + nodeMap.put("PLID", plId); + nodeMap.put("PLNAME", nodeRowMap.getString("PLNAME")); + nodeMap.put("NODETYPE", nodeRowMap.getString("NODETYPE")); + nodeMap.put("path", path); + nodeMap.put("ACTIVITYNUMBER", nodeRowMap.getString("ACTIVITYNUMBER")); + nodeMap.put("ACTIVITYDESC", nodeRowMap.getString("ACTIVITYDESC")); + nodeMap.put("ROLENAME", nodeRowMap.getString("ROLE")); + nodeMap.put("POSTNAME", nodeRowMap.getString("POST")); + nodeMap.put("ITSYSVAL", nodeRowMap.getString("ITSYSVAL")); + nodeMaps.add(nodeMap); + + UoPProcessMap = new HashMap(); + fileType = "process"; + /* + * model = PALRepositoryCache.getCache().get(fileRowMap.getString("FILEID")); if + * (null != model) { if (model.isPublish() || model.isStop()) {// + * 停用或已发布状态查询最新流程手册 taskId = getLastPublishTaskIdByModelId(model.getId()); } } + */ + path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + fileRowMap.getString("FILEID") + "&" + "sid=" + sid + "&" + "taskId=" + + taskId; + UoPProcessMap.put("id", fileRowMap.getString("FILEID")); + UoPProcessMap.put("text", fileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("RELEVANTFILE", fileRowMap.getString("RELEVANTFILE")); + UoPProcessMap.put("SUPPORTFILE", fileRowMap.getString("SUPPORTFILE")); + UoPProcessMap.put("PROCESSKPI", fileRowMap.getString("PROCESSKPI")); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", rootuuId); + UoPProcessMaps.add(UoPProcessMap); + } + + } + + for (RowMap nodeRowMap : DepartnodeRowMaps) { + String plId = nodeRowMap.getString("PLID"); + RowMap fileRowMap = DBSql.getMap( + "SELECT FILESTATE,FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,RELEVANTFILE,SUPPORTFILE,PROCESSKPI FROM BO_EU_PAL_FILE1 WHERE FILEID = '" + + plId + "'"); + if (fileRowMap != null) { + if ("0".equals(fileRowMap.getString("FILESTATE"))) { + continue; + } + nodeMap = new HashMap(); + taskId = getLastPublishTaskIdByModelId(plId); + /* + * model = PALRepositoryCache.getCache().get(plId); if (null != model) { if + * (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 } } + */ + path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + plId + "&" + "sid=" + sid + "&" + "taskId=" + + taskId; + nodeMap.put("PLID", plId); + nodeMap.put("NODENAME", nodeRowMap.getString("NODENAME")); + nodeMap.put("PLNAME", nodeRowMap.getString("PLNAME")); + nodeMap.put("NODETYPE", nodeRowMap.getString("NODETYPE")); + nodeMap.put("path", path); + nodeMap.put("ACTIVITYNUMBER", nodeRowMap.getString("ACTIVITYNUMBER")); + nodeMap.put("ACTIVITYDESC", nodeRowMap.getString("ACTIVITYDESC")); + nodeMap.put("ROLENAME", nodeRowMap.getString("ROLE")); + nodeMap.put("POSTNAME", nodeRowMap.getString("POST")); + nodeMap.put("ITSYSVAL", nodeRowMap.getString("ITSYSVAL")); + nodeMaps.add(nodeMap); + + UoPProcessMap = new HashMap(); + fileType = "process"; + /* + * model = PALRepositoryCache.getCache().get(fileRowMap.getString("FILEID")); if + * (null != model) { if (model.isPublish() || model.isStop()) {// + * 停用或已发布状态查询最新流程手册 taskId = getLastPublishTaskIdByModelId(model.getId()); } } + */ + path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + fileRowMap.getString("FILEID") + "&" + "sid=" + sid + "&" + "taskId=" + + taskId; + UoPProcessMap.put("id", fileRowMap.getString("FILEID")); + UoPProcessMap.put("text", fileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("RELEVANTFILE", fileRowMap.getString("RELEVANTFILE")); + UoPProcessMap.put("SUPPORTFILE", fileRowMap.getString("SUPPORTFILE")); + UoPProcessMap.put("PROCESSKPI", fileRowMap.getString("PROCESSKPI")); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", rootuuId); + UoPProcessMaps.add(UoPProcessMap); + } + + } + + long end = System.currentTimeMillis(); + System.err.println("个人视图(有权限的流程)查询用时=========>" + (end - start) / 1000 + "秒"); + UoPProcessMaps = UoPProcessMaps.stream() + .collect(collectingAndThen( + toCollection(() -> new TreeSet<>(Comparator.comparing(o -> String.valueOf(o.get("id"))))), + ArrayList::new)); + tempMaps = new ArrayList(); + if (nodeMaps.size() == 0) { + ro.put("rootId", ""); + UoPProcessMaps = new ArrayList(); + ro.put("nodes", UoPProcessMaps); + linksMaps = new LinkedList(); + ro.put("links", linksMaps); + + } else { + for (Map uoPProcessMap : UoPProcessMaps) { + reRegulationMaps = new ArrayList<>(); + reFormMaps = new ArrayList<>(); + reIO_L4Maps = new ArrayList<>(); + reYSMaps = new ArrayList<>(); + String FILEID = String.valueOf(uoPProcessMap.get("id")); + fileType = String.valueOf(uoPProcessMap.get("fileType")); + if (fileType.equals("process")) { + String RELEVANTFILE = String.valueOf(uoPProcessMap.get("RELEVANTFILE")); + String SUPPORTFILE = String.valueOf(uoPProcessMap.get("SUPPORTFILE")); + String PROCESSKPI = String.valueOf(uoPProcessMap.get("PROCESSKPI")); + if (null != RELEVANTFILE && !RELEVANTFILE.equals("")) { + String[] reFileIDs = RELEVANTFILE.split(" "); + for (String reFileID : reFileIDs) { + sqlParams = new Object[] { reFileID }; + RowMap refileRowMap = DBSql.getMap( + "SELECT FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,POLICYTYPE FROM BO_EU_PAL_FILE1 WHERE FILEID=?", + sqlParams); + if (null != refileRowMap && !refileRowMap.isEmpty()) { + if (refileRowMap.getString("PLMETHODID").equals("control.policy") + && (refileRowMap.getString("POLICYTYPE").equals("regulation") + || null == refileRowMap.getString("POLICYTYPE") + || refileRowMap.getString("POLICYTYPE").equals(""))) { + // && refileRowMap.getString("POLICYTYPE").equals("regulation") + UoPProcessMap = new HashMap(); + fileType = "reRegulationFile"; + model = PALRepositoryCache.getCache().get(reFileID); + if (null != model) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + reFileID + "&" + "sid=" + sid + "&" + "taskId=" + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reRegulation"); + reRegulationMaps.add(UoPProcessMap); + } else if (refileRowMap.getString("PLMETHODID").equals("data.form")) { + UoPProcessMap = new HashMap(); + fileType = "reFormFile"; + model = PALRepositoryCache.getCache().get(reFileID); + if (model != null) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + reFileID + "&" + "sid=" + sid + "&" + "taskId=" + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reForm"); + reFormMaps.add(UoPProcessMap); + } else if (refileRowMap.getString("PLMETHODID").equals("control.policy") + && refileRowMap.getString("POLICYTYPE").equals("I/O_L4")) { + UoPProcessMap = new HashMap(); + fileType = "reI/O_L4File"; + model = PALRepositoryCache.getCache().get(reFileID); + if (null != model) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + reFileID + "&" + "sid=" + sid + "&" + "taskId=" + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reI/O_L4"); + reIO_L4Maps.add(UoPProcessMap); + } + } + } + } + if (null != SUPPORTFILE && !SUPPORTFILE.equals("")) { + String[] reFileIDs = SUPPORTFILE.split(" "); + for (String reFileID : reFileIDs) { + sqlParams = new Object[] { reFileID }; + RowMap refileRowMap = DBSql.getMap( + "SELECT FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,POLICYTYPE FROM BO_EU_PAL_FILE1 WHERE FILEID=?", + sqlParams); + if (null != refileRowMap && !refileRowMap.isEmpty()) { + if (refileRowMap.getString("PLMETHODID").equals("control.policy") + && (refileRowMap.getString("POLICYTYPE").equals("regulation") + || null == refileRowMap.getString("POLICYTYPE") + || refileRowMap.getString("POLICYTYPE").equals(""))) { + // && refileRowMap.getString("POLICYTYPE").equals("regulation") + UoPProcessMap = new HashMap(); + fileType = "reRegulationFile"; + model = PALRepositoryCache.getCache().get(reFileID); + if (null != model) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + reFileID + "&" + "sid=" + sid + "&" + "taskId=" + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reRegulation"); + reRegulationMaps.add(UoPProcessMap); + } else if (refileRowMap.getString("PLMETHODID").equals("data.form")) { + UoPProcessMap = new HashMap(); + fileType = "reFormFile"; + model = PALRepositoryCache.getCache().get(reFileID); + if (null != model) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + reFileID + "&" + "sid=" + sid + "&" + "taskId=" + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reForm"); + reFormMaps.add(UoPProcessMap); + } else if (refileRowMap.getString("PLMETHODID").equals("control.policy") + && refileRowMap.getString("POLICYTYPE").equals("I/O_L4")) { + UoPProcessMap = new HashMap(); + fileType = "reI/O_L4File"; + model = PALRepositoryCache.getCache().get(reFileID); + if (null != model) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + "&" + + "uuid=" + reFileID + "&" + "sid=" + sid + "&" + "taskId=" + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reI/O_L4"); + reIO_L4Maps.add(UoPProcessMap); + } + } + } + } + if (null != PROCESSKPI && !PROCESSKPI.equals("")) { + String[] PROCESSKPIIDS = PROCESSKPI.split(" "); + for (String PROCESSKPIID : PROCESSKPIIDS) { + sqlParams = new Object[] { PROCESSKPIID }; + RowMap refileRowMap = DBSql.getMap( + "SELECT FILEID,PLNAME,PLMETHODID,PLLEVEL,PLORDERINDEX,POLICYTYPE FROM BO_EU_PAL_FILE1 WHERE FILEID=?", + sqlParams); + if (null != refileRowMap && !refileRowMap.isEmpty()) { + UoPProcessMap = new HashMap(); + fileType = "processKPIFile"; + model = PALRepositoryCache.getCache().get(PROCESSKPIID); + if (null != model) { + if (model.isPublish() || model.isStop()) {// 停用或已发布状态查询最新流程手册 + taskId = getLastPublishTaskIdByModelId(model.getId()); + } + } + path = "./w" + "?" + "cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open" + + "&" + "uuid=" + PROCESSKPIID + "&" + "sid=" + sid + "&" + "taskId=" + + taskId; + UoPProcessMap.put("id", FILEID + refileRowMap.getString("FILEID")); + UoPProcessMap.put("text", refileRowMap.getString("PLNAME")); + UoPProcessMap.put("path", path); + UoPProcessMap.put("fileType", fileType); + UoPProcessMap.put("PARENTID", FILEID + "reProcessKPI"); + reYSMaps.add(UoPProcessMap); + } + } + } + if (null != reRegulationMaps && !reRegulationMaps.isEmpty()) { + UoPProcessMap = new HashMap(); + UoPProcessMap.put("id", FILEID + "reRegulation"); + UoPProcessMap.put("text", "相关制度"); + UoPProcessMap.put("fileType", "reRegulation"); + UoPProcessMap.put("PARENTID", FILEID); + reRegulationMaps.add(UoPProcessMap); + } + if (null != reFormMaps && !reFormMaps.isEmpty()) { + UoPProcessMap = new HashMap(); + UoPProcessMap.put("id", FILEID + "reForm"); + UoPProcessMap.put("text", "相关表单"); + UoPProcessMap.put("fileType", "reForm"); + UoPProcessMap.put("PARENTID", FILEID); + reFormMaps.add(UoPProcessMap); + } + if (null != reIO_L4Maps && !reIO_L4Maps.isEmpty()) { + UoPProcessMap = new HashMap(); + UoPProcessMap.put("id", FILEID + "reI/O_L4"); + UoPProcessMap.put("text", "相关操作指导"); + UoPProcessMap.put("fileType", "reI/O_L4"); + UoPProcessMap.put("PARENTID", FILEID); + reIO_L4Maps.add(UoPProcessMap); + } + if (null != reYSMaps && !reYSMaps.isEmpty()) { + UoPProcessMap = new HashMap(); + UoPProcessMap.put("id", FILEID + "reYS"); + UoPProcessMap.put("text", "相关要素"); + UoPProcessMap.put("fileType", "reYS"); + UoPProcessMap.put("PARENTID", FILEID); + reYSMaps.add(UoPProcessMap); + UoPProcessMap = new HashMap(); + UoPProcessMap.put("id", FILEID + "reProcessKPI"); + UoPProcessMap.put("text", "绩效"); + UoPProcessMap.put("fileType", "reProcessKPI"); + UoPProcessMap.put("PARENTID", FILEID + "reYS"); + reYSMaps.add(UoPProcessMap); + } + tempMaps.addAll(reRegulationMaps); + tempMaps.addAll(reFormMaps); + tempMaps.addAll(reIO_L4Maps); + tempMaps.addAll(reYSMaps); + } + } + UoPProcessMaps.addAll(tempMaps); + if (UoPProcessMaps.size() > 1) { + for (Map uoPProcessMap : UoPProcessMaps) { + if (String.valueOf(uoPProcessMap.get("fileType")).equals("UoPProcess")) { + ro.put("rootId", String.valueOf(uoPProcessMap.get("id"))); + } + } + ro.put("nodes", UoPProcessMaps); + for (Map uoPProcessMap : UoPProcessMaps) { + String id = String.valueOf(uoPProcessMap.get("id")); + for (Map pProcessMap : UoPProcessMaps) { + String PARENTID = String.valueOf(pProcessMap.get("PARENTID")); + if (id.equals(PARENTID)) { + String childID = String.valueOf(pProcessMap.get("id")); + linksMap = new LinkedHashMap(); + linksMap.put("from", id); + linksMap.put("to", childID); + linksMaps.add(linksMap); + } + } + } + ro.put("links", linksMaps); + } else { + ro.put("rootId", ""); + UoPProcessMaps = new ArrayList(); + ro.put("nodes", UoPProcessMaps); + linksMaps = new LinkedList(); + ro.put("links", linksMaps); + + } + } + nodeAMaps = new ArrayList<>(); + nodeBMaps = new ArrayList<>(); + if (null != nodeMaps && !nodeMaps.isEmpty()) { + for (Map nodeReturnMap : nodeMaps) { + nodeTempMap = new HashMap(); + String NODETYPE = String.valueOf(nodeReturnMap.get("NODETYPE")); + if (NODETYPE.equals("method_approval_node") || NODETYPE.equals("method_service_node")) { + nodeTempMap = nodeReturnMap; + nodeAMaps.add(nodeTempMap); + } else if (NODETYPE.equals("method_approval_node3") || NODETYPE.equals("method_service_node4")) { + nodeTempMap = nodeReturnMap; + nodeBMaps.add(nodeTempMap); + } + } + } + totalNum = nodeMaps.size(); + aNum = nodeAMaps.size(); + bNum = nodeBMaps.size(); + ro.put("totalNodeNum", totalNum); + ro.put("totalNode", nodeMaps); + ro.put("typeANum", aNum); + ro.put("typeA", nodeAMaps); + ro.put("typeBNum", bNum); + ro.put("typeB", nodeBMaps); + + // 岗位流程/我的流程 + return ro; + } + /**********************关联AWS组织的excel处理***************************/ /** * 循环生成多份报告 - * + * * @param tempPath * @param tempName * @param docPath * @param wizardJsonData */ - private void genarateWord(String tempPath, String tempName, String docPath, JSONObject wizardJsonData, JSONArray targetFileIds) { + private void genarateWord(String tempPath, String tempName, String docPath, JSONObject wizardJsonData, JSONArray targetFileIds,String userId) { // 按照名称排序 List roleList = new ArrayList<>(); for (int i = 0; i < targetFileIds.size(); i++) { @@ -285,7 +836,7 @@ public class Report1Gener { } }); } - + Map indexMap = new HashMap(); String reportName = wizardJsonData.getString("reportNameIsItName"); for (RoleModel role : roleList) { @@ -308,8 +859,8 @@ public class Report1Gener { docName = docPath + shapeName + ".doc"; indexMap.put(shapeName, 1); } - - JSONObject dataMap = getData(role, wizardJsonData); + + JSONObject dataMap = getData(role, wizardJsonData,userId); OutputWordUtil.createDoc2(dataMap, tempPath, tempName, docName); } } @@ -320,12 +871,12 @@ public class Report1Gener { * @param wizardJsonData * @return */ - private JSONObject getData(RoleModel role, JSONObject wizardJsonData) { + private JSONObject getData(RoleModel role, JSONObject wizardJsonData,String userId) { JSONObject dataMap = new JSONObject(); OrReportComment orReportComment = new OrReportComment(); - orReportComment.getAwsOrgCommentContent(dataMap, role); // 获取一些公共的数据(手册首页的手册岗位名称、部门、时间等) + orReportComment.getAwsOrgCommentContent(dataMap, role,userId); // 获取一些公共的数据 (手册首页的手册岗位名称、部门、时间等) // 流程表格 JSONArray _table = new JSONArray(); @@ -333,6 +884,10 @@ public class Report1Gener { DesignerShapeRelationDao dao = new DesignerShapeRelationDao(); // 循环关联文件 int index = 1; + + + + for (String relationFileId : relationFileIds) { if (relationFileId.equals("")) { continue; @@ -367,6 +922,7 @@ public class Report1Gener { _tr.put(OutputWordUtil.REPOSITORY_NAME, relationModel.getName().toString().replace("\n", "")); // 流程名称 _tr.put(OutputWordUtil.SHAPE_NAME, shapeMap.get("text").toString().replace("\n", OutputWordUtil.WRAPSTRING)); // 步骤名称 + JSONArray dataAttributes = (JSONArray) shapeMap.get("attributes"); if (!dataAttributes.isEmpty()) { for (int i = 0; i < dataAttributes.size(); i++) { @@ -374,6 +930,7 @@ public class Report1Gener { String attrId = obj.getString("key"); String attrValue = obj.getString("value"); _tr.put("shape_" + attrId, attrValue.replace("\n", OutputWordUtil.WRAPSTRING)); + _tr.put("shape_role", "1231231231243"); // 步骤名称 } } _table.add(_tr); @@ -390,5 +947,5 @@ public class Report1Gener { return dataMap; } /**********************关联AWS组织的excel处理***************************/ - + } diff --git a/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/util/OrReportComment.java b/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/util/OrReportComment.java index 1df51db2..d6f78b04 100644 --- a/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/util/OrReportComment.java +++ b/com.actionsoft.apps.coe.pal.output.or/src/com/actionsoft/apps/coe/pal/output/or/util/OrReportComment.java @@ -12,6 +12,9 @@ import java.util.Set; import com.actionsoft.apps.coe.pal.pal.output.util.OutputWordUtil; import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager; import com.actionsoft.apps.coe.pal.pal.repository.designer.util.ShapeUtil; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.util.DBSql; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.actionsoft.bpms.org.cache.UserCache; @@ -27,9 +30,9 @@ import org.apache.commons.lang.StringUtils; public class OrReportComment { - public void getCommentContent(JSONObject dataMap, Map> shapesMap, String shapeId) { + public void getCommentContent(JSONObject dataMap, Map> shapesMap, String shapeId,String userId) { Map shapeMap = shapesMap.get(shapeId); - dataMap.put(OutputWordUtil.POSITION, shapeMap.get("name").toString().replace("\n", "")); //岗位名称 + dataMap.put(OutputWordUtil.POSITION, UserContext.fromUID(userId).getUserModel().getPositionName()); //岗位名称 //TODO 所属部门/公司 String messageJson = PALRepositoryQueryAPIManager.getInstance().getProcessDefinition(null, shapeMap.get("pid").toString()); JSONObject definition = JSONObject.parseObject(messageJson); @@ -49,8 +52,29 @@ public class OrReportComment { if (deptNames.size() > 0) { deptName = Joiner.on(",").join(deptNames); } - dataMap.put(OutputWordUtil.DEPARTMENT, deptName); //所属部门 - dataMap.put("role_department", deptName);// 所属部门 + dataMap.put(OutputWordUtil.DEPARTMENT, deptName); + //所属部门 + UserContext userContext =UserContext.fromUID(userId); + String pathNameOfCache = userContext.getDepartmentModel().getPathNameOfCache(); + dataMap.put("role_department", pathNameOfCache);// 所属部门 + //这个是获取岗位流程数 + String positionName = userContext.getUserModel().getPositionName(); + List nodeRowMaps = DBSql.getMaps( + "SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%" + + positionName+ "%'"); + List nodeRowMap_process = DBSql.getMaps( + "SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%" + + positionName+ "%'"); + List list = new ArrayList<>(); + for (RowMap rowMap: + nodeRowMap_process) { + String plid = rowMap.getString("PLID"); + if (!list.contains(plid)){ + list.add(plid); + } + } + dataMap.put("activity_nums", nodeRowMaps.size());// 参数的活动数 + dataMap.put("process_nums", list.size());// 参与的流程数 dataMap.put(OutputWordUtil.COMPANY, "公司"); //所属公司 //创建日期 Timestamp nowTime = new Timestamp(System.currentTimeMillis()); @@ -87,8 +111,8 @@ public class OrReportComment { } } - public void getAwsOrgCommentContent(JSONObject dataMap, RoleModel role) { - dataMap.put(OutputWordUtil.POSITION, role.getName().replace("\n", "")); //岗位名称// 岗位名称 + public void getAwsOrgCommentContent(JSONObject dataMap, RoleModel role,String userId) { + dataMap.put(OutputWordUtil.POSITION, UserContext.fromUID(userId).getUserModel().getPositionName()); //岗位名称// 岗位名称 //TODO 所属部门/公司 dataMap.put(OutputWordUtil.COMPANY, "公司"); // 所属公司 dataMap.put(OutputWordUtil.DEPARTMENT, "部门"); //所属部门 @@ -121,8 +145,28 @@ public class OrReportComment { if (sb.length() > 0) { departments = sb.substring(0, sb.length() - 1); } - dataMap.put("role_department", departments);// 所属部门 - + UserContext userContext = UserContext.fromUID(userId); + DepartmentModel departmentById = SDK.getORGAPI().getDepartmentById(userContext.getDepartmentModel().getId()); + String pathNameOfCache = departmentById.getPathNameOfCache(); + dataMap.put("role_department", pathNameOfCache);// 所属部门 + //这个是获取岗位流程数 + String positionName = userContext.getUserModel().getPositionName(); + List nodeRowMaps = DBSql.getMaps( + "SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%" + + positionName+ "%'"); + List nodeRowMap_process = DBSql.getMaps( + "SELECT NODEID,NODENAME,NODETYPE,PLID,PLNAME,ACTIVITYNUMBER,ACTIVITYDESC,ROLE,ROLENAME,POST,POSTNAME FROM BO_EU_PAL_FILENODE6 WHERE POST LIKE '%" + + positionName+ "%'"); + List list_new = new ArrayList<>(); + for (RowMap rowMap: + nodeRowMap_process) { + String plid = rowMap.getString("PLID"); + if (!list_new.contains(plid)){ + list_new.add(plid); + } + } + dataMap.put("activity_nums", nodeRowMaps.size());// 参数的活动数 + dataMap.put("process_nums", list.size());// 参与的流程数 //创建日期 Timestamp nowTime = new Timestamp(System.currentTimeMillis()); DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/com.actionsoft.apps.coe.pal.output.or/横表-岗位手册.doc b/com.actionsoft.apps.coe.pal.output.or/横表-岗位手册.doc index 06fa21cbc871f4ee532c91f39662dc35802fd93e..6fef29bd0741e0071f2a01f58fd15c898be795d9 100644 GIT binary patch literal 49664 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 literal 56832 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 R%MUxZ`pbU{{QrNs{|5!j+u8sC diff --git a/com.actionsoft.apps.coe.pal.output.or/横表-岗位手册.xml b/com.actionsoft.apps.coe.pal.output.or/横表-岗位手册.xml index 7653be57..a8b52fd5 100644 --- a/com.actionsoft.apps.coe.pal.output.or/横表-岗位手册.xml +++ b/com.actionsoft.apps.coe.pal.output.or/横表-岗位手册.xml @@ -1,3166 +1,3351 @@ - + - - - - - 某部门某岗位手册 - yaona - DADI - 2 - 0 - 2014-12-03T02:05:00Z - 2014-12-03T02:05:00Z - 2 - 56 - 321 - MS - 2 - 1 - 376 - 12 - - - 2052-9.1.0.4866 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${position}岗位手册 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${company} - - - - - - - - - - - - \ - - - - - - - - - - - - ${department} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${generate_date} - - - - - - - - - - - - - - - - - + + + + Administrator + 成烨 王 + 2 + 0 + 2023-07-05T07:44:00Z + 2023-07-05T07:44:00Z + 2 + 66 + 378 + 3 + 1 + 443 + 16 + + + 2052-11.1.0.14309 + 3EB8AE5EB8A84A81906B9EFAD6F7A36D_13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + - - - - - - - + + + + + + + + + + + + - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + - - + + - - - - ${position} - - - - - - - - - - 岗位手册 - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - - + + - - + + + - - - 岗位名称 - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + + - - + + - + + - - - ${position} - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + - - - + + - - + + - - - 所属部门 - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + - - - - - - - - ${role_department} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + - - - - - 岗位职责 - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - ${org_dutie} - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - 序号 - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - + + + - - - - 流程名称 - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + - - - + + - - - - - - - - 步骤名称 - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - - 工作详细描述 - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + + + + + + + + + - - - - - - - - 制度要求 - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + - - - - - - - 风险点 - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - 指标 - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - 作业单据 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 处理时间 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 信息系统 - - - - - <#list repository_table as table1> - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${table1.serial_number} - - - - - - - - - - - - - - - - - - - - - - - - - - - ${table1.repository_name} - - - - - - - - - - - - - - - - - - - - - - - - - - - ${table1.shape_name} - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${table1.shape_desc} - - - - - - - - - - - - - - - - - - - - - - - - ${table1.shape_institution} - - - - - - - - - - - - - - - + + - + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - ${table1.shape_danger} - - - - - - - - - + + + + + - - - - - + + + - - - - - ${table1.shape_kpi} - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - ${table1.shape_form} - - - - - - - - - - - - - - - - - - - - - ${table1.shape_handle_time} - - - - - - - - - - - - - - - - - - - - - - - - ${table1.shape_itsystem} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - ${position} + + + + + + + + 内蒙古伊利实业集团股份有限公司 - - - - - - - - - 岗位 - - - - - - - - - - 手册 - - - - - - - - - - - - - - - - - - - - + + - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + 岗位流程职责说明书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ────────────────────────────────────────────────── + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${position} + + + + + + + + + + + + + 岗位流程职责说明书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 内蒙古伊利实业集团股份有限公司 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 +y7fdOgAAAABJRU5ErkJggk== + + + + + + + + + + + + + + + + + ─────────────────────────────────────────────────── + + + + + + + + + + ─────────────────────────────────────────────────── + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 以上信息为伊利公司所有,未经允许不得外传 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PAGE + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - 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 - ──────────────────────────────────────────────── - - - - - - - - - - - - - - - - - - - - - - - - ──────────────────────────────────────────────── - - - - - - - - - - - - - - - - - - 页码 - - - - - - - - - - - - - - - - - - - - - - - - page - - - - - - - - - - - - - - - - - 2 - - - - - - - - - - - - - - - - - - + + + + + ${position} + + + + + + + + + + + 岗位流程职责说明书 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 岗位名称 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${position} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 所属部门 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${role_department} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 参与流程数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${process_nums} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 参与活动数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${activity_nums} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${position} + + + + + + + + + + + 岗位参与执行的活动清单 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 序号 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 流程名称 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 活动名称 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 活动描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 相关角色 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 信息系统 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 相关流程绩效 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 相关制度/相关表单模板 + + + + <#list repository_table as table1> + + + + + + + + + + + + + + + + + + + + + + + + ${table1.serial_number} + + + + + + + + + + + + + + + + + + + + + + + + ${table1.repository_name} + + + + + + + + + + + + + + + + + + + + + + + ${table1.shape_name} + + + + + + + + + + + + + + + + + + + + + + + + ${table1.shape_desc} + + + + + + + + + + + + + + + + + + + + + + + + ${table1.shape_role} + + + + + + + + + + + + + + + + + + + + + + + ${table1.shape_itsystem} + + + + + + + + + + + + + + + + + + + + + + + ${table1.shape_kpi} + + + + + + + + + + + + + + + + + + + + + + + + ${table1.shape_institution} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 内蒙古伊利实业集团股份有限公司 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ────────────────────────────────────────────────────────────────────────────────────── + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 以上信息为伊利公司所有,未经允许不得外传 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PAGE + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/output/OutputAPIManager.java b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/output/OutputAPIManager.java index a71033a3..5f6a1b97 100755 --- a/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/output/OutputAPIManager.java +++ b/com.actionsoft.apps.coe.pal/src/com/actionsoft/apps/coe/pal/pal/output/OutputAPIManager.java @@ -66,9 +66,11 @@ public class OutputAPIManager { throw new AWSException("Not Find OutputAppProfile! profileId=" + profileId); // --------dc context----------- DCPluginProfile dcProfile = SDK.getDCAPI().getDCProfile(appProfile.getAppContext().getId(), OutputConst.EXT_APP_DC_OUTPUT); + System.out.println("这是一个什么东西>>>>>>"+dcProfile); if (dcProfile == null) throw new AWSException("Not Find DCProfile! repositoryName=" + OutputConst.EXT_APP_DC_OUTPUT); DCContext dcContext = new DCContext(null, dcProfile, appProfile.getAppContext().getId(), wsId, id, OutputConst.FILE_WIZARD_CONFIG); + System.out.println("dc里边的是什么东西>>>>>>>>>>>>"+dcContext); InputStream in = null; try { in = new ByteArrayInputStream(jsonData.getBytes("UTF-8")); @@ -155,7 +157,7 @@ public class OutputAPIManager { * @param id 任务Id * @param profileId 报告生成器扩展App的配置Id */ - public String getWizardJsonData(String wsId, String id, String profileId) throws AWSException { + public String getWizardJsonData(String wsId, String id, String profileId) throws AWSException { // --------app appProfile---------- OutputAppProfile appProfile = OutputAppManager.getProfile(profileId); if (appProfile == null)