From f00580d1453647c94d1ec8753d17ab33835612e4 Mon Sep 17 00:00:00 2001 From: zhal <15900249928@163.com> Date: Tue, 6 Sep 2022 16:59:05 +0800 Subject: [PATCH] =?UTF-8?q?MA=E7=BB=A9=E6=95=88=E5=8F=91=E5=B8=83=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=BC=96=E5=8F=B7/=E6=8F=92=E5=85=A5=E6=96=B0?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=88=B0=E6=8C=87=E6=A0=87=E7=BB=A9=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com.actionsoft.apps.coe.pal.publisher.jar | Bin 219106 -> 220330 bytes .../pal/publisher/PublisherController.java | 16 + .../client/web/ProcessPublishWeb.java | 266 +- .../PublishExecuteListenerInterfaceImpl.java | 9 + .../PublishProcessAfterCompleteEvent.java | 248 ++ .../form/发布流程-批量流程制度发布MA申请.htm | 816 ++++++ .../发布流程-批量流程制度发布MA申请_m.htm | 193 ++ .../js/coe.pal.process.publish.ma.js | 2332 +++++++++++++++++ .../js/coe.pal.process.publish.multiple.js | 9 + 9 files changed, 3888 insertions(+), 1 deletion(-) create mode 100644 com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishProcessAfterCompleteEvent.java create mode 100644 com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请.htm create mode 100644 com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请_m.htm create mode 100644 com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.ma.js diff --git a/com.actionsoft.apps.coe.pal.publisher/lib/com.actionsoft.apps.coe.pal.publisher.jar b/com.actionsoft.apps.coe.pal.publisher/lib/com.actionsoft.apps.coe.pal.publisher.jar index 9e7fbedbdd113f4c2d4a57d620edadccaddcdf7b..1b03f195dc9a46bc08e4cd7fd7e89bed4cc5f83f 100644 GIT binary patch delta 70695 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μ~rdSy5 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 z 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 diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/PublisherController.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/PublisherController.java index a29e52ac..b2ac09ef 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/PublisherController.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/PublisherController.java @@ -456,6 +456,22 @@ public class PublisherController { return web.queryPublishTreeData(type, wsId, teamId, flag, pid); } + + + /** + * 查询发布数据的ma类型树结构 + * @param me + * @param type new change stop 三种类型查询不同的树结构 + * @param wsId + * @param teamId + * @return + */ + @Mapping("com.actionsoft.apps.coe.pal.publisher_publish_tree_ma_data_query") + public String queryMaPublishTreeData(UserContext me, String type, String wsId, String teamId, boolean flag, String pid) { + ProcessPublishWeb web = new ProcessPublishWeb(me); + return web.queryMaPublishTreeData(type, wsId, teamId, flag, pid); + } + /** * 快速查询定位到需要的发布流程 * diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/web/ProcessPublishWeb.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/web/ProcessPublishWeb.java index edd97b39..5a9ceda9 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/web/ProcessPublishWeb.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/web/ProcessPublishWeb.java @@ -1053,6 +1053,63 @@ public class ProcessPublishWeb extends ActionWeb { return jsonArray; } + + + + + /** + * 获取有权限的流程树(多个资产库) + * + * @param wsId + * @param multiWs + * @return + */ + public JSONArray getMaRepositoryTree(List repositoryList, String wsId, boolean multiWs, boolean checkbox, String checkboxIds, boolean flag) { + return getMARepositoryTree(repositoryList, wsId, multiWs, true, checkbox, checkboxIds, flag); + } + + public JSONArray getMARepositoryTree(List repositoryList, String wsId, boolean multiWs, boolean profitionIcon, boolean checkbox, String checkboxIds, boolean flag) { + JSONArray jsonArray = new JSONArray(); + // method排序 + List methodList = PALMethodCache.getPALMethodList(true); + for (String method : methodList) { + //过滤流程制度/组织/数据/it数据 + if(method.equals("process") || method.equals("org") || method.equals("data") || method.equals("itsystem")){ + continue; + } + JSONArray array = getPublishRepositoryJSONArray(repositoryList, method, wsId, profitionIcon, checkbox, checkboxIds); + if (array.size() > 0) { + JSONObject object = new JSONObject(); + if (flag) { + object.put("id", method); + } else { + object.put("id", method + "_" + wsId); + } + object.put("name", I18nRes.findValue(CoEConstant.APP_ID, method)); + if (multiWs) { + object.put("pid", wsId); + } + object.put("open", false); + if (profitionIcon) { + object.put("icon", "../apps/" + CoEConstant.APP_ID + "/img/method/" + method + ".png"); + } else { + if (PublisherConf.PUBLISH_PORTAL_VERSION.equals("v1")) { + object.put("icon", PublisherConf.PORTAL_TREE_ICON_FOLDER); + } else { + object.put("icon", PublisherConf.PORTAL_TREE_ICON_FOLDER1); + } + } + object.put("nocheck", true); + jsonArray.add(object); + jsonArray.addAll(array); + } + } + return jsonArray; + } + + + + private JSONArray getPublishRepositoryJSONArray(List repositoryList, String method, String wsId) { return RepositoryTreeUtil.list2tree(repositoryList, wsId, method); } @@ -1834,6 +1891,55 @@ public class ProcessPublishWeb extends ActionWeb { } } + + /** + * 查询树结构(MA) + * + * @param type + * @param wsId + * @param teamId + * @return + */ + public String queryMaPublishTreeData(String type, String wsId, String teamId, boolean flag, String pid) { + + ResponseObject ro = ResponseObject.newOkResponse(); + String checkType = SDK.getAppAPI().getProperty(PublisherConf.APPID, "selectionmode"); + boolean checkbox = false; + boolean checkInherit = false; + if ("radio".equals(checkType)) { + checkbox = false; + checkInherit = false; + } + if ("check".equals(checkType)) { + checkbox = true; + checkInherit = false; + } + if ("checkInherit".equals(checkType)) { + checkbox = true; + checkInherit = true; + } + ro.put("checkbox", checkbox); + ro.put("checkInherit", checkInherit); + JSONArray array; + if ("new".equals(type)) {// new + array = getNotMaPublishedRepositoryTreeData(wsId, teamId, flag, pid); + } else if ("change".equals(type)) {// change + array = getMaPublishedRepositoryTreeData2(wsId, teamId); + } else {// stop + array = getMaPublishedRepositoryTreeData(wsId, teamId); + } + if (array == null || array.isEmpty()) { + array = new JSONArray(); + } + ro.put("data", array); + if (flag) { + return ro.toString(); + } else { + return array.toString(); + } + } + + /** * 快速查询定位树节点 * @@ -1893,7 +1999,7 @@ public class ProcessPublishWeb extends ActionWeb { List methodList = PALMethodCache.getPalMehtodList(teamId, _uc.getUID(), true); for (String method : methodList) { //新建发布过滤掉控制/组织/数据/it类数据 - if(method.equals("control") || method.equals("org") || method.equals("data") || method.equals("itsystem")){ + if(method.equals("process") || method.equals("org") || method.equals("data") || method.equals("itsystem")){ continue; } JSONObject object = new JSONObject(); @@ -1937,6 +2043,82 @@ public class ProcessPublishWeb extends ActionWeb { } } + + /** + * 单个文件发布查询未发布流程树结构(MA) + * + * @param wsId + * @param teamId + * @return + */ + private JSONArray getNotMaPublishedRepositoryTreeData(String wsId, String teamId, boolean flag, String pid) { + if (UtilString.isNotEmpty(teamId)) { + // 小组Id不为空,则需要查询小组授权后的流程库 + CoeCooperationTeamModel team = CoeCooperationAPIManager.getInstance().queryCooperationTeamById(teamId, true); + if (team != null) { + wsId = team.getWsId(); + } + } + + if (flag) {// 根节点 + JSONArray rootArray = new JSONArray(); + List methodList = PALMethodCache.getPalMehtodList(teamId, _uc.getUID(), true); + for (String method : methodList) { + //新建发布过滤掉控制/组织/数据/it类数据 + if(method.equals("process") || method.equals("org") || method.equals("data") || method.equals("itsystem")){ + continue; + } + JSONObject object = new JSONObject(); + object.put("id", method); + object.put("name", I18nRes.findValue(CoEConstant.APP_ID, method)); + object.put("open", false); + object.put("icon", "../apps/" + CoEConstant.APP_ID + "/img/method/" + method + ".png"); + object.put("nocheck", true); + rootArray.add(object); + } + return rootArray; + } else {// 根节点之下的子节点 + List subModels = PALRepositoryQueryAPIManager.getInstance().getUsedPalRepositoryModelsByPidNew(_uc, wsId, teamId, pid); + StringBuilder checkboxIds = new StringBuilder(); + for (PALRepositoryModel model : subModels) { + if(model.getName().equals("末级流程绩效")){ + continue; + } + List verList = PALRepositoryCache.getByVersionId(model.getVersionId()); + boolean checkbox = true; + for (PALRepositoryModel verModel : verList) { + if (verModel.isPublish()) { + checkbox = false; + continue; + } + } + if (checkbox) { + checkboxIds.append(model.getId()).append(","); + } + } + //过滤掉末级绩效数据 + if(subModels.size()>1){ + subModels.remove(1); + } + + JSONArray array = RepositoryTreeUtil.list2tree(subModels, wsId, true, true, checkboxIds.toString()); + for (int i = 0; i < array.size(); i++) { + array.getJSONObject(i).put("pid", pid); + List childModels = PALRepositoryQueryAPIManager.getInstance().getUsedPalRepositoryModelsByPidNew(_uc, wsId, teamId, array.getJSONObject(i).getString("id")); + if (childModels == null || childModels.size() == 0) { + array.getJSONObject(i).remove("open"); + array.getJSONObject(i).put("isParent", false); + } else { + array.getJSONObject(i).put("open", false); + array.getJSONObject(i).put("isParent", true); + } + } + return array; + } + } + + + /** * 单个文件发布查询当前已发布文件 * @@ -1971,6 +2153,43 @@ public class ProcessPublishWeb extends ActionWeb { return treeData; } + + + + /** + * 单个文件发布查询当前已发布文件(MA) + * + * @param wsId + * @param teamId + * @return + */ + private JSONArray getMaPublishedRepositoryTreeData(String wsId, String teamId) { + PALRepository dao = new PALRepository(); + if (UtilString.isNotEmpty(teamId)) { + // 小组Id不为空,则需要查询小组授权后的流程库 + CoeCooperationTeamModel team = CoeCooperationAPIManager.getInstance().queryCooperationTeamById(teamId, true); + if (team != null) { + wsId = team.getWsId(); + } + } + List list = dao.getPublishedRepositoryList(wsId); +// List versionIds = CoeCooperationAPIManager.getInstance().queryCooperationRoleDataPermByTeamUser(teamId, _uc.getUID()); + Set versionIds = CooperationCache.getUserDataVisitablePermission(teamId, _uc.getUID(), false); + if (UtilString.isNotEmpty(teamId)) { + if (list != null) { + List removeList = new ArrayList(); + for (PALRepositoryModel model : list) { + if (!versionIds.contains(model.getVersionId())) { + removeList.add(model); + } + } + list.removeAll(removeList); + } + } + JSONArray treeData = getMaRepositoryTree(list, wsId, false, true, "-", false); + return treeData; + } + /** * 单个文件发布查询当前已发布文件且所有已发布文件都有未发布的其它版本 * @@ -2013,6 +2232,51 @@ public class ProcessPublishWeb extends ActionWeb { return treeData; } + + + /** + * 单个文件发布查询当前已发布文件且所有已发布文件都有未发布的其它版本 + * + * @param wsId + * @param teamId + * @return + */ + private JSONArray getMaPublishedRepositoryTreeData2(String wsId, String teamId) { + PALRepository dao = new PALRepository(); + if (UtilString.isNotEmpty(teamId)) { + // 小组Id不为空,则需要查询小组授权后的流程库 + CoeCooperationTeamModel team = CoeCooperationAPIManager.getInstance().queryCooperationTeamById(teamId, true); + if (team != null) { + wsId = team.getWsId(); + } + } + List list = dao.getPublishedRepositoryList(wsId); +// List versionIds = CoeCooperationAPIManager.getInstance().queryCooperationRoleDataPermByTeamUser(teamId, _uc.getUID()); + Set versionIds = CooperationCache.getUserDataVisitablePermission(teamId, _uc.getUID(), false); + if (UtilString.isNotEmpty(teamId)) { + if (list != null) { + List removeList = new ArrayList(); + for (PALRepositoryModel model : list) { + if (!versionIds.contains(model.getVersionId())) { + removeList.add(model); + } + } + list.removeAll(removeList); + } + } + // 只获取有未发布版本的已发布流程文件 + List list2 = new ArrayList<>(); + for (PALRepositoryModel model : list) { + List temp = PALRepositoryCache.getByVersionId(model.getWsId(), model.getVersionId()); + if (temp != null && temp.size() > 1) { + list2.add(model); + } + } + JSONArray treeData = getMaRepositoryTree(list2, wsId, false, true, "-", false); + return treeData; + } + + /** * 创建流程手册 * diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java index a4057ab4..bbe7be08 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java @@ -666,6 +666,15 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme recordBO.set("OA_PROCESS", value); } + if (getid.equals("The_upstream_indicators")) {//上游指标 + recordBO.set("THE_UPSTREAM_INDICATORS", value); + } + if (getid.equals("Downstream_target")) {//下游指标 + recordBO.set("DOWNSTREAM_TARGET", value); + } + + recordBO.set("PERFORMANCE_TYPE", "末级流程绩效"); + if (getid.equals("element")) {//元素 JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); if (getvalue != null) { diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishProcessAfterCompleteEvent.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishProcessAfterCompleteEvent.java new file mode 100644 index 00000000..5a6e10e4 --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishProcessAfterCompleteEvent.java @@ -0,0 +1,248 @@ +package com.actionsoft.apps.coe.pal.publisher.event; + +import com.actionsoft.apps.coe.pal.pal.manage.publish.model.PublishListHistoryModel; +import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; +import com.actionsoft.apps.coe.pal.pal.repository.designer.manage.CoeDesignerAPIManager; +import com.actionsoft.apps.coe.pal.pal.repository.designer.model.BaseModel; +import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; +import com.actionsoft.apps.coe.pal.pal.repository.web.CoeProcessLevelWeb; +import com.actionsoft.apps.coe.pal.publisher.constant.PublisherConstant; +import com.actionsoft.bpms.bo.engine.BO; +import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; +import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener; +import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListenerInterface; +import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; +import com.actionsoft.bpms.commons.database.RowMap; +import com.actionsoft.bpms.server.UserContext; +import com.actionsoft.bpms.util.DBSql; +import com.actionsoft.bpms.util.UUIDGener; +import com.actionsoft.bpms.util.UtilString; +import com.actionsoft.exception.AWSDataAccessException; +import com.actionsoft.sdk.local.SDK; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PublishProcessAfterCompleteEvent extends ExecuteListener implements ExecuteListenerInterface { + + @Override + public String getDescription() { + return "L1L3绩效流程结束后插入绩效指标库"; + } + + @Override + public void execute(ProcessExecutionContext param) throws Exception { + String processInstId = param.getProcessInstance().getId(); + BO bo = SDK.getBOAPI().query(PublisherConstant.BOTABLENAME).detailByBindId(processInstId); + List bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list(); + List bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list(); + List bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list(); + Timestamp nowTime = new Timestamp(System.currentTimeMillis()); + if (bolistN != null) { + for (BO boN : bolistN) { + //绩效模型中数据模型回填流程编号 + updateMAProcessNumber(boN.get("PUBLISHFILEID").toString(), param.getUserContext(), bo.get("WSID").toString(), boN.getString("PUBLISH_NUMBER"), nowTime); + } + } + } + + + /** + * 1、发布结束后获取关联绩效模型填充流程编号 + * 2、获取信息插入绩效指标库 + * + * @param publishFileId + * @param publishDate + */ + public void updateMAProcessNumber(String publishFileId, UserContext uc, String wsId, String publishNumber, Timestamp publishDate) { + try { + //获取关联绩效模型数据 + List performanceList = new ArrayList(); + performanceList.add(0, "control.ma"); + performanceList.add(1, publishFileId); + + RowMap performrowMap = DBSql.getMap("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE EXT2=?", performanceList.toString()); + + ProcessInstance processInst = SDK.getProcessAPI().createBOProcessInstance("obj_1ffbc1e73b99427ca64469e466f97dbe", uc.getUID(), "指标绩效数据插入"); + + + ProcessInstance performNumberProcess = SDK.getProcessAPI().createBOProcessInstance("obj_b92c1343b4914e969ead13db62f360f2", uc.getUID(), "绩效编号插入"); + + if (performrowMap != null) { + + PALRepositoryModel parentModel = PALRepositoryCache.getCache().get(performrowMap.getString("ID")); + + String id = performrowMap.getString("ID"); + + + Map> methodAttrsMap = new HashMap<>();// 属性存储 + + Map methodValueAttrsMap = new HashMap<>();// 属性存储 + + //查询对应绩效模型中数据模型进行填充数据 + BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(id, 0); + + CoeProcessLevelWeb coeProcessLevelWeb = new CoeProcessLevelWeb(uc); + + String define = defineModel.getDefinition(); + JSONObject definition = JSONObject.parseObject(define); + JSONObject elements = definition.getJSONObject("elements"); + + coeProcessLevelWeb.handleShapeDefaultAttr(wsId, parentModel, elements, methodAttrsMap); + + int currentnumber = 0; + //拿去流程数据填充绩效模型中数据属性 + for (String key : elements.keySet()) { + //获取当前MP绩效最新排序数值 + BO performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.kpi").addQuery("PROCESS_NUMBER=", "xxxxx").detail(); + + JSONObject shape1 = elements.getJSONObject(key); + if ("linker".equals(shape1.getString("name"))) { + continue; + } + String shapeText = shape1.getString("text"); + JSONArray dataAttributes = shape1.getJSONArray("dataAttributes"); + if (!dataAttributes.isEmpty() && dataAttributes.size() > 0) { + + if (performanceNumberBO != null) { + currentnumber = Integer.valueOf(performanceNumberBO.getString("CURRENTNUMBER")); + } else { + BO performanceBo = new BO(); + performanceBo.set("PROCESS_NUMBER", ""); + performanceBo.set("CURRENTNUMBER", 1); + performanceBo.set("PERFORMANCE_TYPE", "control.ma"); + SDK.getBOAPI().create("BO_EU_PERFORMANCE_NUMBER", performanceBo, performNumberProcess.getId(), ""); + currentnumber = 0; + } + currentnumber++; + + for (Object attribute : dataAttributes) { + JSONObject obj = (JSONObject) attribute; + if (obj.containsKey("attributesJsonArray")) { + JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray"); + BO recordBO = new BO(); + if (attributesJsonArray.size() > 0) { + for (int i = 0; i < attributesJsonArray.size(); i++) { + if (attributesJsonArray.getJSONObject(i).containsKey("id")) { + String getid = attributesJsonArray.getJSONObject(i).getString("id"); + String value = attributesJsonArray.getJSONObject(i).getString("value"); + + + //插入绩效指标库操作 + if (getid.equals("Process_Architecture_L1")) {//L1 + recordBO.set("PROCESS_ARCHITECTURE_L1", value); + } + if (getid.equals("Process_Architecture_L2")) {//L2 + recordBO.set("PROCESS_ARCHITECTURE_L2", value); + } + if (getid.equals("Process_Architecture_L3")) {//L3 + recordBO.set("PROCESS_ARCHITECTURE_L3", value); + } + if (getid.equals("Number_of_the_associated_flow_file")) {//关联流程文件编号 + recordBO.set("NUMBER_OF_THE_ASSO_FLOW_FILE", value); + } + if (getid.equals("Associated_process_name")) {//关联流程名称 + recordBO.set("ASSOCIATED_PROCESS_NAME", value); + } + if (getid.equals("Associated_process_name")) {//流程绩效指标名称 + recordBO.set("PERFORMANCE_INDICATOR_NAME", value); + } + + if (getid.equals("Index_properties")) {//指标性质 + recordBO.set("INDEX_PROPERTIES", value); + } + if (getid.equals("ndicator_User_defined_label")) {//指标自定义标签 + recordBO.set("NDICATOR_USER_DEFINED_LABEL", value); + } + if (getid.equals("Index_definition")) {//指标定义 + recordBO.set("INDEX_DEFINITION", value); + } + if (getid.equals("unit_measurement")) {//计量单位 + recordBO.set("UNIT_MEASUREMENT", value); + } + if (getid.equals("statistical_period")) {//统计周期 + recordBO.set("STATISTICAL_PERIOD", value); + } + + if (getid.equals("computational_formula")) {//计算公式 + recordBO.set("COMPUTATIONAL_FORMULA", value); + } + if (getid.equals("Data_fetch_logic")) {//数据取数逻辑 + recordBO.set("DATA_FETCH_LOGIC", value); + } + if (getid.equals("Take_the_number_aperture")) {//取数口径 + recordBO.set("TAKE_THE_NUMBER_APERTURE", value); + } + if (getid.equals("remark")) {//备注 + recordBO.set("REMARK", value); + } + if (getid.equals("oa_process")) {//OA流程 + recordBO.set("OA_PROCESS", value); + } + + if (getid.equals("The_upstream_indicators")) {//上游指标 + recordBO.set("THE_UPSTREAM_INDICATORS", value); + } + if (getid.equals("Downstream_target")) {//下游指标 + recordBO.set("DOWNSTREAM_TARGET", value); + } + + recordBO.set("PERFORMANCE_TYPE", "L1L3流程绩效"); + + if (getid.equals("element")) {//元素 + JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); + if (getvalue != null) { + JSONArray elejsonArray = attributesJsonArray.getJSONObject(i).getJSONObject("value").getJSONArray("table"); + for (int k = 1; k < elejsonArray.size(); k++) { + String name = elejsonArray.getJSONObject(k).get("name").toString(); + String desc = elejsonArray.getJSONObject(k).get("desc").toString(); + BO eleBO = new BO(); + eleBO.set("ELEMENT", name); + eleBO.set("DATASOURCES", desc); + SDK.getBOAPI().create("BO_EU_ELEMENT", eleBO, processInst.getId(), ""); + } + } + } + //发布时间 + recordBO.set("PUBDATE", publishDate); + //回填绩效编号操作 + if (getid.equals("Process_performance_indicator_Number")) { + + if (UtilString.isNotEmpty(value)) { + attributesJsonArray.getJSONObject(i).put("value", value + "." + currentnumber); + } + + } + } + } + SDK.getBOAPI().create("BO_EU_PER_IND_LIB", recordBO, processInst.getId(), ""); + } + } + } + } + if (performanceNumberBO != null) { + performanceNumberBO.set("CURRENTNUMBER", currentnumber); + } else { + performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.ma").addQuery("PROCESS_NUMBER=", "").detail(); + } + SDK.getBOAPI().update("BO_EU_PERFORMANCE_NUMBER", performanceNumberBO); + } + + + defineModel.setDefinition(definition.toString()); + // 保存文件 + CoeDesignerAPIManager.getInstance().storeDefinition(defineModel);// dao操作 + + + } + } catch (AWSDataAccessException e) { + e.printStackTrace(); + } finally { + } + } +} \ No newline at end of file diff --git a/com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请.htm b/com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请.htm new file mode 100644 index 00000000..f7d9fe8c --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请.htm @@ -0,0 +1,816 @@ + + + + + + + + + + 流程文件发布申请 + + + + + [#AWSImport] [#AWSUIImport] + + + + + + + +

+
+ + + + + + + + + + + + +
流程制度发布申请
+ + + + + + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + +
发布类型[#OPTIONTYPE]
+
+ + + + + + + + + + + + + + + + + + +
+
+
+
基本信息
+
+ + + + + + + + + + + + + + + +
[#APPLYUSERNAME][#APPLYDATE]
[#CONTACT_WAY][#IS_THE_UNIT]
+
+
+
+
+ + +
+
+
+
+
[#Actionsoft] + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请_m.htm b/com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请_m.htm new file mode 100644 index 00000000..6819d177 --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/template/form/发布流程-批量流程制度发布MA申请_m.htm @@ -0,0 +1,193 @@ + + + + + + + + + 批量流程制度发布MA申请 + + + + + [#AWSImport] + [#AWSUIImport] + + + + + + + +
+
+ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
[#PROCESS_TITLE]
[#APPLYUSERID]
[#APPLYUSERNAME]
[#IS_THE_UNIT]
[#APPLYDATE]
[#APPLYSTATUS]
+
+
流程制度发布通知
+
+
[#RELEASE_INSTRUCTIONS]
发布类型
[#OPTIONTYPE]
+
[#Grid1]
+
[#ADAPT_REGION_NAME]
[#ADAPT_NAME_THE_COMPANY]
[#APPLICABLE_PRODUCT]
[#LEVEL_1_PROCESS_NAME]
[#LEVEL_2_PROCESS_NAME]
[#LEVEL_3_PROCESS_NAME]
[#ACCESSORY]
[#DEPARTMENT_PROOFREADER]
[#PROCESS_MANAGER]
[#JOINT_REVIEWER]
[#INTERNAL_AUDITOR]
[#PROFESSIONAL_REVIEWER]
总裁审批[#CEO_APPROVE]
[#PERSON_THREE_LEVEL_PROCESS_NO]
[#LEVEL_AUDIT_REQUIRED]
[#PROCESS_RESPONSIBLE_PERSON_NO]
[#SECONDARY_AUDIT_REQUIRED]
[#RESPONSIBLE_PERSON1_NO]
[#LEVEL_1_AUDIT_REQUIRED]
[#SEND_SCOP]
[#SEND_SCOPE_ORG]
+
[#Actionsoft] + +
+
+
+ + + + \ No newline at end of file diff --git a/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.ma.js b/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.ma.js new file mode 100644 index 00000000..9b9a1721 --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.ma.js @@ -0,0 +1,2332 @@ +var sid; +var teamId; +var wsId; +var processInstId; +var initTree; +var editPerm = false; +var closeFormPage = false; +var searchType; +var pageLimit = 10; +// 数据记录 +var newTemp; +var changeTemp; +var stopTemp; +// 树结构选择数据记录 +var treeCheckedNewArr = []; +var treeCheckedChangeArr = []; +var treeCheckedStopArr = []; +// 统一中文变量 +var varDutyDept = "责任部门"; +var varDutyUser = "责任人"; +// 页码记录 +var newPageSetting = { + pageNum:1, + start:1 +} +var changePageSetting = { + pageNum:1, + start:1 +} +var stopPageSetting = { + pageNum:1, + start:1 +} +var isHighSecurity; +$(document).ready(function(){ + $('td,th').css('padding-top','0px'); + $('td,th').css('padding-bottom','0px'); + // $('#alertMsg').css('background', '#fff'); + $('#OPTIONTYPE_0').closest('td').width('10%'); + $('#OPTIONTYPE_1').closest('td').width('10%'); + initParam();// 初始化公共参数 + initHtml();// 初始化页面 + initCheckAll();// 初始化表头多选框 + initContentData();// 初始化内容数据 + + // 初始化表格宽度 + initTableWidth(); + + initPagination();// 初始化页码 + initOptButton(); + // listenCloseEvent();// 关闭窗口执行,关闭窗口/刷新都会造成流程实例被删除,注释掉 +}) + +var paginationSetting = { + pageLimit: pageLimit, + showItem: 10, + currentPage: 0, + ellipseCount: 1, + linkTo: "#", + prevText: "上一页", + nextText: "下一页", + ellipseText: "...", + prevShowAlways: true, + nextShowAlways: true, + showIfSinglePage: true, + loadFirstPage: false, + showDisplay: true, + display: "显示 {0} 到 {1} 条, 共 {2} 条" +}; + +// 初始化全选 +function initCheckAll() { + $("input[name=checkAll]").on("ifChanged",function(){ + var checkId = $(this).attr("id"); + if($(this).prop("checked")){ + // 设置当前页被选中 + if (checkId == 'new_check_all') { + $('#publish_new_tbody').find('input[name="check"]').check("option", "checked", true); + } + if (checkId == 'change_check_all') { + $('#publish_change_tbody').find('input[name="check"]').check("option", "checked", true); + } + if (checkId == 'stop_check_all') { + $('#publish_stop_tbody').find('input[name="check"]').check("option", "checked", true); + } + } else { + // 设置当前页取消选中 + if (checkId == 'new_check_all') { + $('#publish_new_tbody').find('input[name="check"]').check("option", "checked", false); + } + if (checkId == 'change_check_all') { + $('#publish_change_tbody').find('input[name="check"]').check("option", "checked", false); + } + if (checkId == 'stop_check_all') { + $('#publish_stop_tbody').find('input[name="check"]').check("option", "checked", false); + } + } + }); +} + +// 初始化表格宽度 +function initTableWidth() { + $(".data-table [class*=width_]").each(function(){ + var className = $(this).attr("class"); + var percent = parseInt(className.substr(6, 2)); + $(this).css({"width" : percent + '%'}); + }); +} + +// 初始化页数 +function initPagination() { + initNewPagination(0); + initChangePagination(0); + initStopPagination(0); +} + +function initNewPagination(currentPage) { + var copy1 = $.extend(true, {}, paginationSetting); + copy1.currentPage = currentPage; + copy1.callback = function (pageNum, start, dom) { + newPageSetting.pageNum = pageNum; + newPageSetting.start = start; + initPublishData(newTemp, 'new', pageNum, start); + return false; + } + $("#new_pagination").pagination(newTemp.length, copy1); +} + +function initChangePagination(currentPage) { + var copy2 = $.extend(true, {}, paginationSetting); + copy2.currentPage = currentPage; + copy2.callback = function (pageNum, start, dom) { + changePageSetting.pageNum = pageNum; + changePageSetting.start = start; + initPublishData(changeTemp, 'change', pageNum, start); + return false; + } + $("#change_pagination").pagination(changeTemp.length, copy2); +} + +function initStopPagination(currentPage) { + var copy3 = $.extend(true, {}, paginationSetting); + copy3.currentPage = currentPage; + copy3.callback = function (pageNum, start, dom) { + stopPageSetting.pageNum = pageNum; + stopPageSetting.start = start; + initPublishData(stopTemp, 'stop', pageNum, start); + return false; + } + $("#stop_pagination").pagination(stopTemp.length, copy3); +} + +function initOptButton() { + if (!editPerm) { + $('#publish_new_button, #publish_change_button, #publish_stop_button').remove(); + $('#new_check_all, #change_check_all, #change_stop_all').check("disable"); + } +} + +// 初始化自定义内容,不能写到html 文件中,表单会被平台自动调整的不成样子 +function initHtml() { + var dialogHtml = ''; + dialogHtml += ''; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
文件名
'; + dialogHtml += '
'; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
说明
'; + dialogHtml += '
'; + dialogHtml += ''; + dialogHtml += '
'; + dialogHtml += '
'; + + //非三员管理显示创建 + if (!isHighSecurity){ + dialogHtml += '
'; + dialogHtml += '
创建手册
'; + dialogHtml += '
'; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += ''; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '立即:点击确定后需等待创建流程手册完成后才可以进行下一步操作,一次性选择的流程数量较多时耗费时间长;
提交(办理)时:表单进行提交时进行流程手册的创建,若一次性选择流程数量较多,建议选择此项'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + } + + dialogHtml += ''; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += ''; + dialogHtml += ''; + $('body').append(dialogHtml); + $('input[name=radiox1]').check({radioClass:'iradio_minimal-grey'}); + + $('#publisher_new_td').html('
'); + $('#publisher_change_td').html('
'); + $('#publisher_stop_td').html('
'); + var newHtml = ''; + newHtml += ''; + newHtml += '
'; + newHtml += ''; + newHtml += '
'; + newHtml += ''; + // newHtml += ''; + newHtml += ''; + //newHtml += ''; + // newHtml += ''; + //newHtml += ''; + newHtml += '
'; + newHtml += '
'; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += ''; + newHtml += '
序号流程制度文件文本文件编号
'; + newHtml += ''; + newHtml += '
'; + newHtml += '
'; + + var changeHtml = ''; + changeHtml += ''; + changeHtml += '
'; + changeHtml += ''; + changeHtml += '
'; + changeHtml += ''; + // changeHtml += ''; + changeHtml += ''; + //changeHtml += ''; + // changeHtml += ''; + //changeHtml += ''; + changeHtml += '
'; + changeHtml += '
'; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += '
序号流程制度变更后流程制度文件文本文件编号
'; + changeHtml += ''; + changeHtml += '
'; + changeHtml += '
'; + + var stopHtml = ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += '
'; + stopHtml += ''; + stopHtml += '
'; + stopHtml += ''; + // stopHtml += ''; + stopHtml += ''; + //stopHtml += ''; + // stopHtml += ''; + //stopHtml += ''; + stopHtml += '
'; + stopHtml += '
'; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += '
序号流程制度文件文本文件编号
'; + stopHtml += ''; + stopHtml += '
'; + stopHtml += '
'; + + $('#contentDiv1').append(newHtml); + $('#contentDiv2').append(changeHtml); + $('#contentDiv3').append(stopHtml); + $("#contentDiv1 .awsui-checkbox,#contentDiv2 .awsui-checkbox,#contentDiv3 .awsui-checkbox").check(); +} + +// 初始化参数 +function initParam() { + teamId = $("#TEAMID").val(); + sid = $("#sid").val(); + wsId = $("#WSID").val(); + processInstId = $("#processInstId").val(); + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_high_security_mode_query" + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + async: false, + success : function(r) { + if (r.result == 'ok') { + isHighSecurity = r.data.isHighSecurity; + } + } + }); + +} + +// 初始化内容数据 +function initContentData() { + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_batch_data_query', + processInstId: processInstId, + wsId : wsId, + sid: sid + }; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + data : param, + success : function(r) { + var isEnd = r.data.isEnd; + var proNumber = r.data.proNumber; + if (proNumber) { + editPerm = proNumber; + } + closeFormPage = r.data.closeFormPage; + var newData = r.data.newData; + newTemp = newData; + var changeData = r.data.changeData; + changeTemp = changeData; + var stopData = r.data.stopData; + stopTemp = stopData; + var checkImg = '../apps/_bpm.portal/img/icheck_checkbox_check.png'; + var uncheckImg = '../apps/_bpm.portal/img/icheck_checkbox_uncheck.png'; + if (!$.isEmptyObject(newData)) { + $('#OPTIONTYPE_0').prev('img').attr('src', checkImg); + dealPublishCheck(true, 'new');// 显示 + // 更新数据 + $("#OPTIONTYPE_0").check("option","checked", true); + initPublishData(newData, 'new', 1, 1); + } else { + $("#OPTIONTYPE_0").check("option","checked", false); + $('#OPTIONTYPE_0').prev('img').attr('src', uncheckImg); + } + if (!$.isEmptyObject(changeData)) { + $('#OPTIONTYPE_1').prev('img').attr('src', checkImg); + dealPublishCheck(true, 'change'); + $("#OPTIONTYPE_1").check("option","checked", true); + initPublishData(changeData, 'change', 1, 1); + } else { + $("#OPTIONTYPE_1").check("option","checked", false); + $('#OPTIONTYPE_1').prev('img').attr('src', uncheckImg); + } + if (!$.isEmptyObject(stopData)) { + $('#OPTIONTYPE_2').prev('img').attr('src', checkImg); + dealPublishCheck(true, 'stop'); + $("#OPTIONTYPE_2").check("option","checked", true); + initPublishData(stopData, 'stop', 1, 1); + } else { + $("#OPTIONTYPE_2").check("option","checked", false); + $('#OPTIONTYPE_2').prev('img').attr('src', uncheckImg); + } + } + }); +} + +var changedId = ''; + +function initPublishData(data, type, pageNumber, start){ + showlist(data, type, pageNumber, start); +} + +// 初始化数据 +function selectPublishData(data, type, pageNumber, start) { + + + //渲染到前台的流程架构L1,L2,L3 + + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId : wsId, + sid: sid, + datas:JSON.stringify(data) + }; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : true, + data : param, + success : function(r) { + var info = r.data.info; + var L1 = r.data.data.Process_Architecture_L1; + var L2 = r.data.data.Process_Architecture_L2; + var L3 = r.data.data.Process_Architecture_L3; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old)){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + } + //不属于同一L3 所以直接提示 + if(info == true){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + }else{ + if(ui("LEVEL_1_PROCESS_NAME").length > 0){ + return; + } + ui("LEVEL_1_PROCESS_NAME",L1); + ui("LEVEL_2_PROCESS_NAME",L2); + ui("LEVEL_3_PROCESS_NAME",L3); + showlist(data, type, pageNumber, start); + //发起请求把审批人查询出来~ + queryapprove(); + ui("ADAPT_NAME_THE_COMPANY",""), + ui("ADAPT_REGION_NAME",""), + ui("APPLICABLE_PRODUCT",""), + $("#publisher_dialog").dialog("close"); + } + //展示未发布过的流程 + //data = r.data.is_not_publish_data; + } + }); +} + +//by bzp +function queryapprove(){ + var level1 =ui("LEVEL_1_PROCESS_NAME"); + var level2 = ui("LEVEL_2_PROCESS_NAME"); + var level3 = ui("LEVEL_3_PROCESS_NAME"); + var company = ui("ADAPT_NAME_THE_COMPANY"); + var region = ui("ADAPT_REGION_NAME"); + var product = ui("APPLICABLE_PRODUCT"); + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getApproveInfos', + sid: sid, + level1 :ui("LEVEL_1_PROCESS_NAME"), + level2 :ui("LEVEL_2_PROCESS_NAME"), + level3 :ui("LEVEL_3_PROCESS_NAME"), + company :ui("ADAPT_NAME_THE_COMPANY"), + region :ui("ADAPT_REGION_NAME"), + product :ui("APPLICABLE_PRODUCT"), + bindid : processInstId + }; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : true, + data : param, + success : function(r) { + var info = r.data.data; + if(info != ''){ + ui("PERSON_THREE_LEVEL_PROCESS_NO",info.AUDITOR_NO_3); + ui("PROCESS_RESPONSIBLE_PERSON_NO",info.AUDITOR_NO_2); + ui("RESPONSIBLE_PERSON1_NO",info.AUDITOR_NO_1); + ui("PERSON_THREE_LEVEL_PROCESS",info.AUDITOR3); + ui("PROCESS_RESPONSIBLE_PERSON",info.AUDITOR2); + ui("RESPONSIBLE_PERSON1",info.AUDITOR1); + ui("LEVEL_AUDIT_REQUIRED",info.L3_SP); + ui("SECONDARY_AUDIT_REQUIRED",info.L2_SP); + ui("LEVEL_1_AUDIT_REQUIRED",info.L1_SP); + } + } + }); +} +//by bzp +function showlist(data, type, pageNumber, start){ + var tableTdCss = 'style="padding-top: 0;padding-bottom: 0;"'; + if (type == 'new') { + $('#new_check_all').check("option", "checked", false); + if (data.length > pageLimit) {// 显示分页 + $('#new_pagination').show(); + } + // 加载数据 + var html = ''; + for (var i = 0, s = start; i < pageLimit; i++, s++) { + var curr; + if ((curr = data[s - 1]) != undefined) { + var fileName = curr.publishFileName + ' V' + curr.fileVersion; + var outputName = getOutputName(curr.category, curr.methodId); + var reportName = '
' + fileName + "-" + outputName + ''; + var quickCreate = "立即创建"; + var processNumber = ''; + if(curr.processNumber != undefined){ + processNumber = curr.processNumber; + } + reportName = (curr.taskId == undefined || curr.taskId == '') ? '无' : curr.taskId == 'submit_create' ? quickCreate : reportName; + // 三员管理,taskId为new标识未创建手册 + if (isHighSecurity){ + reportName = curr.taskId == 'new' ? quickCreate : reportName; + } + var checkboxPerm = editPerm ? '' : 'disabled="disabled"'; + var textareaPerm = editPerm ? '' : 'readonly'; + html += ''; + html += ''; + html += '' + s + ''; + html += '' + fileName + ''; + html += '' + reportName + ''; + //html += ''; + html += ''+ processNumber +''; + html += ''; + } + } + $('#publish_new_tbody').empty().html(html); + $("#publish_new_tbody .awsui-checkbox").check(); + } + if (type == 'change') { + var createButtonObj = {}; + $('#change_check_all').check("option", "checked", false); + if (data.length > pageLimit) {// 显示分页 + $('#change_pagination').show(); + } + // 加载数据 + var html = ''; + var tempSelect = []; + for (var i = 0, s = start; i < pageLimit; i++, s++) { + var curr; + if ((curr = data[s - 1]) != undefined) { + var sourceFileName = curr.changeFileName + ' V' + curr.fileVersion; + // 变更目标文件处理 + var targetFileName = ""; + if (curr.changedFileNameNew != undefined && curr.changedFileNameNew != '') { + targetFileName = curr.changedFileNameNew + ' V' + curr.targetFileVersion; + } + var targetId = ""; + if (curr.changedFileIdNew != undefined && curr.changedFileIdNew != '') { + targetId = curr.changedFileIdNew; + } + var outputName = getOutputName(curr.category, curr.methodId); + var reportName = '' + targetFileName + "-" + outputName + ''; + var quickCreate = "立即创建"; + createButtonObj[curr.changeFileId] = quickCreate; + reportName = (curr.taskId == undefined || curr.taskId == '') ? '无' : curr.taskId == 'submit_create' ? quickCreate : reportName; + + // 三员管理,taskId为change标识未创建手册 + if (isHighSecurity){ + reportName = curr.taskId == 'change' ? quickCreate : reportName; + } + var checkboxPerm = editPerm ? '' : 'disabled="disabled"'; + var textareaPerm = editPerm ? '' : 'readonly'; + html += ''; + html += ''; + html += '' + s + ''; + html += '' + sourceFileName + ''; + var selectPerm = editPerm ? '' : '' + targetFileName + ''; + html += '' + selectPerm + ''; + html += '' + reportName + ''; + html += ''; + html += ''; + // select2下拉框处理 + var opt1 = { + data : [] + }; + var flag = false; + var targetFiles = $.extend(true, [], curr.targetFiles); + for (var j = 0; j < targetFiles.length; j++) { + var temp = targetFiles[j]; + var name = temp.text + ' V' + temp.version; + var obj = {id:temp.id, text:name, name:temp.text, version:temp.version}; + opt1.data.push(obj); + if (targetId == temp.id) { + flag = true; + } + } + var tempObj = {}; + tempObj.opt = opt1; + tempObj.flag = flag; + tempObj.targetId = targetId; + tempObj.selectId = 'change_' + curr.changeFileId; + tempObj.taskId = curr.taskId; + tempObj.id = curr.changeFileId; + tempObj.category = curr.category; + tempObj.methodId = curr.methodId; + tempSelect.push(tempObj); + } + } + $('#publish_change_tbody').empty().html(html); + // 初始化select2 + for(var k = 0; k < tempSelect.length; k++) { + var tempObj = tempSelect[k]; + $("#" + tempObj.selectId).select2(tempObj.opt); + $('.select2').width('100%'); + if (tempObj.flag) {// 已选择版本 + $("#" + tempObj.selectId).val(tempObj.targetId).trigger("change");// 变更 + // 流程手册界面更新 + if (tempObj.taskId != undefined && tempObj.taskId != '') { + // 三员管理,taskId为change标识未创建手册 + if (tempObj.taskId == 'submit_create' || tempObj.taskId == 'change') { + // $('#report_' + tempObj.id).html(quickCreate); + $('#report_' + tempObj.id).html(createButtonObj[tempObj.id]); + } else { + for (var m = 0; m < tempObj.opt.data.length; m++) { + if (tempObj.opt.data[m].id == tempObj.targetId) { + var outputName = getOutputName(tempObj.category, tempObj.methodId); + var targetFileName2 = tempObj.opt.data[m].name + ' V' + tempObj.opt.data[m].version + '-' + outputName + ''; + $('#report_' + tempObj.id).html('' + targetFileName2 + ''); + break; + } + } + } + } else { + $('#report_' + tempObj.id).html('无'); + } + } else {// 默认第一个版本 + if (tempObj.opt.data.length > 0) { + // 获取选中的版本,获取流程手册,更新数据 + initChangedData(tempObj.id); + } + } + // select改变事件 + $("#" + tempObj.selectId).on("change", function (e) { + initChangedData($(this).attr('id').slice(7)); + }); + } + $("#publish_change_tbody .awsui-checkbox").check(); + } + if (type == 'stop') { + $('#stop_check_all').check("option", "checked", false); + if (data.length > pageLimit) {// 显示分页 + $('#stop_pagination').show(); + } + // 加载数据 + var html = ''; + for (var i = 0, s = start; i < pageLimit; i++, s++) { + var curr; + if ((curr = data[s - 1]) != undefined) { + var fileName = curr.stopFileName + ' V' + curr.fileVersion; + var outputName = getOutputName(curr.category, curr.methodId); + var reportName = '' + fileName + "-" + outputName + ''; + reportName = (curr.taskId == undefined || curr.taskId == '') ? '无' : reportName; + var checkboxPerm = editPerm ? '' : 'disabled="disabled"'; + var textareaPerm = editPerm ? '' : 'readonly'; + html += ''; + html += ''; + html += '' + s + ''; + html += '' + fileName + ''; + html += '' + reportName + ''; + html += ''; + html += ''; + } + } + $('#publish_stop_tbody').empty().html(html); + $("#publish_stop_tbody .awsui-checkbox").check(); + } +} + +function disabledButton() { + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', 'disabled'); +} + +function checkCreateReportTime() { + var isRadio1 = $('#radio1').closest('div').hasClass('checked'); + var isRadio2 = $('#radio2').closest('div').hasClass('checked'); + if (!isRadio1 && !isRadio2) { + return false; + } else { + return true; + } +} + +// 获取报告生成时机 +function getReportCreateTime() { + var createTime = 'now_create'; + var isRadio1 = $('#radio1').closest('div').hasClass('checked'); + if (isRadio1) {// 立即 + + } else { + createTime = 'submit_create'; + } + return createTime; +} + +// 新增 +function addProcess(type) { + treeCheckedNewArr = []; + treeCheckedChangeArr = []; + treeCheckedStopArr = []; + $('#publisher_dialog_name').val(''); + $('#publisher_dialog_desc').val(''); + var title = type == 'new' ? '发布流程' : type == 'change' ? '变更流程' : '停用流程'; + var height = 380; + $("#radio1").check("uncheck"); + $("#radio2").check("uncheck"); + if (type == 'stop') { + $('#reportType').hide(); + $('#reportTypeAlert').hide(); + } else { + $('#reportType').show(); + $('#reportTypeAlert').show(); + height = 600; + } + searchType = type; + $("#publisher_dialog").dialog({ + width:650, + title: title, + height:height, + buttons:[ + {text:'确定',cls:"blue",handler:function(){ + window.$.simpleAlert("请稍等...", "loading"); + debugger; + if (type == 'new') { + if (treeCheckedNewArr.length == 0) { + $.simpleAlert('发布流程不能为空'); + return; + } else { + //三员管理隐藏手册创建时间 + if (!checkCreateReportTime() && !isHighSecurity) { + $.simpleAlert('请选择创建流程手册的时间', 'info'); + return; + } + disabledButton(); + setTimeout(function() { + // 获取说明内容 + var desc = $('#publisher_dialog_desc').val(); + // 赋值到数据列表,更新页码 + var temps = []; + for (var i = 0; i < treeCheckedNewArr.length; i++) { + var flag = true; + for (var j = 0; j < newTemp.length; j++) { + if (treeCheckedNewArr[i].id == newTemp[j].publishFileId) { + flag = false; + break; + } + } + if (flag) { + temps.push(treeCheckedNewArr[i]); + } + } + // 生成流程手册taskId + if (temps.length > 0) { + temps = createBatchReport(temps, getReportCreateTime()); + // 更新到最新数据中 + for (var i = 0; i < temps.length; i++) { + temps[i].publishDesc = desc; + newTemp.push(temps[i]); + } + publishFlowCheck(newTemp); + // 初始化页数及当前页 + initNewPagination(newPageSetting.pageNum - 1); + // 初始化当前页的数据 + //initPublishData(newTemp, type, newPageSetting.pageNumber, newPageSetting.start); + selectPublishData(newTemp, type, newPageSetting.pageNumber, newPageSetting.start); + } + //$("#publisher_dialog").dialog("close"); + $.simpleAlert('close'); + }, 200); + } + } + if (type == 'change') { + if (treeCheckedChangeArr.length == 0) { + $.simpleAlert('变更流程不能为空'); + return; + } else { + //三员管理隐藏手册创建时间 + if (!checkCreateReportTime() && !isHighSecurity) { + $.simpleAlert('请选择创建流程手册的时间', 'info'); + return; + } + disabledButton(); + setTimeout(function() { + // 获取说明内容 + var desc = $('#publisher_dialog_desc').val(); + // 赋值到数据列表,更新页码 + var temps = []; + for (var i = 0; i < treeCheckedChangeArr.length; i++) { + var flag = true; + for (var j = 0; j < changeTemp.length; j++) { + if (treeCheckedChangeArr[i].id == changeTemp[j].changeFileId) { + flag = false; + break; + } + } + if (flag) { + temps.push(treeCheckedChangeArr[i]); + } + } + // 查询其他版本并生成流程手册taskId + if (temps.length > 0) { + temps = getVersionsAndCreateReport(temps, getReportCreateTime()); + // 更新到最新数据中 + for (var i = 0; i < temps.length; i++) { + temps[i].changedDesc = desc; + changeTemp.push(temps[i]); + } + // 初始化页数及当前页 + initChangePagination(changePageSetting.pageNum - 1); + // 初始化当前页的数据 + //initPublishData(changeTemp, type, changePageSetting.pageNumber, changePageSetting.start); + selectPublishData(changeTemp, type, changePageSetting.pageNumber, changePageSetting.start); + } + $("#publisher_dialog").dialog("close"); + $.simpleAlert('close'); + }, 200); + } + } + if (type == 'stop' ) { + if (treeCheckedStopArr.length == 0) { + $.simpleAlert('停用流程不能为空'); + return; + } else { + disabledButton(); + setTimeout(function() { + // 获取说明内容 + var desc = $('#publisher_dialog_desc').val(); + // 赋值到数据列表,更新页码 + var temps = []; + for (var i = 0; i < treeCheckedStopArr.length; i++) { + var flag = true; + for (var j = 0; j < stopTemp.length; j++) { + if (treeCheckedStopArr[i].id == stopTemp[j].stopFileId) { + flag = false; + break; + } + } + if (flag) { + temps.push(treeCheckedStopArr[i]); + } + } + // 查询流程手册taskId + if (temps.length > 0) { + temps = queryBatchReport(temps); + // 更新到最新数据中 + for (var i = 0; i < temps.length; i++) { + temps[i].stopDesc = desc; + stopTemp.push(temps[i]); + } + // 初始化页数及当前页 + initStopPagination(stopPageSetting.pageNum - 1); + // 初始化当前页的数据 + //initPublishData(stopTemp, type, stopPageSetting.pageNumber, stopPageSetting.start); + selectPublishData(stopTemp, type, stopPageSetting.pageNumber, stopPageSetting.start); + } + $("#publisher_dialog").dialog("close"); + $.simpleAlert('close'); + }, 200); + } + } + }}, + {text:'关闭',handler:function(){$("#publisher_dialog").dialog("close");}} + ], + onClose:function() { + if ($("#treeDialog").css('display') != 'none') { + $("#treeDialog").dialog("close"); + } + } + }); +} + +// 打开流程树选择窗口 +function queryTree() { + if ($("#treeDialog").css('display') == 'none') {// 防止多次打开 + openQueryDataDialog(searchType); + } +} + + +//校验模型中支持文件附件是否上传 +function publishFlowCheck(data) { + var ids = []; + for (var i = 0; i < data.length; i++) { + var temp = data[i]; + if ((temp.methodId == 'control.policy' || temp.methodId == 'data.form' || temp.methodId.indexOf('process.') > -1) && temp.methodId != 'default') { + ids.push(temp.publishFileId); + } + } + + + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_get_publishFlow_files", + wsId: wsId, + uuids: JSON.stringify(ids) + } + $.ajax({ + url : "./jd", + type : "POST", + data : param, + success : function(r) { + if (r.result == 'ok') { + if(r.data.result=='error'){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert(r.data.sb,"error",3000); + return; + } + + } + } + }); + + + +} + + +// select2改变事件 +function initChangedData(changeFileId) { + var selectedId = $("#change_" + changeFileId).val();// 切换后的版本id + for(var i = 0; i < changeTemp.length; i++) { + if (changeTemp[i].changeFileId == changeFileId) { + for(var j = 0; j < changeTemp[i].targetFiles.length; j++) { + if (changeTemp[i].targetFiles[j].id == selectedId) {// 当前选中 + // 获取流程手册 + var selectedTaskId = ""; + selectedTaskId = createReport(changeTemp[i].category, changeTemp[i].methodId, selectedId, selectedTaskId); + + // 更新数据 + changeTemp[i].changedFileIdNew = selectedId; + changeTemp[i].changedFileNameNew = changeTemp[i].targetFiles[j].text; + changeTemp[i].taskId = selectedTaskId; + changeTemp[i].targetFileVersion = changeTemp[i].targetFiles[j].version; + changeTemp[i].targetMethodId = changeTemp[i].methodId; + changeTemp[i].targetCategory = changeTemp[i].category; + + // 更新界面手册 + if (selectedTaskId != '') { + + var outputName = getOutputName(changeTemp[i].category, changeTemp[i].methodId); + + var targetFileName2 = changeTemp[i].targetFiles[j].text + ' V' + changeTemp[i].targetFiles[j].version + '-' + outputName + ''; + $('#report_' + changeFileId).html('' + targetFileName2 + ''); + } else { + $('#report_' + changeFileId).html('无'); + } + + break; + } + } + break; + } + } +} + + + +// 打开流程文件查看页面 +function openPortalPage(uuid, taskId) { + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_publish_repository_method_check", + uuid : uuid + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + success : function(r) { + if (r.result == 'ok') { + window.open("./w?cmd=com.actionsoft.apps.coe.pal.publisher_publish_file_open&uuid=" + uuid + "&sid=" + sid + "&taskId=" + taskId);// open Windows + } else { + $.simpleAlert(r.msg); + } + } + }); +} + +// 打开流程选择dialog +function openQueryDataDialog(type) { + debugger; + $('#treeDataDiv').html('
'); + $('#searchData').html(''); + $("#loadImg").loading({ + description:"加载中", + size:'large', + color:'#000' + }); + $('.awsui-loading').css('position', 'relative'); + $('.awsui-loading').css('top', '60px'); + $("#loading-demo-basic").loading(); + $("#treeDialog").dialog({ + buttons:[ + {text:'确定',cls:"blue",handler:function(){ + if (type == 'new') { + getNewPublishBatchResult(type); + // 数据写入主dialog + var names = ''; + for (var i = 0; i < treeCheckedNewArr.length; i++) { + names += treeCheckedNewArr[i].publishFileName; + if (i < treeCheckedNewArr.length - 1) { + names += ',' + } + } + $('#publisher_dialog_name').val(names); + closeDialog();// 关闭窗口 + } else if( type == 'change'){ + getChangeBatchResult(type); + // 数据写入主dialog + var names = ''; + for (var i = 0; i < treeCheckedChangeArr.length; i++) { + names += treeCheckedChangeArr[i].changeFileName; + if (i < treeCheckedChangeArr.length - 1) { + names += ',' + } + } + $('#publisher_dialog_name').val(names); + closeDialog();// 关闭窗口 + } else {// stop + getStopBatchResult(type); + // 数据写入主dialog + var names = ''; + for (var i = 0; i < treeCheckedStopArr.length; i++) { + names += treeCheckedStopArr[i].stopFileName; + if (i < treeCheckedStopArr.length - 1) { + names += ',' + } + } + $('#publisher_dialog_name').val(names); + closeDialog();// 关闭窗口 + } + }}, + {text:'关闭',handler:function(){ + closeDialog();// 关闭窗口 + }} + ], + onClose:function(){ + $('#autoSearchProcessDiv').empty(); + $('#autoSearchProcessDiv').hide(); + $('#treeDataDiv').empty(); + $('#searchData').empty(); + } + }); + if (type == 'new') { + initPublishSearch(type);// 绑定搜索事件 + getNotPublishTreeData(type); + } else {// stop + initPublishSearch(type);// 绑定搜索事件 + getPublishedTreeData(type); + } +} + +// 获取未发布文件数据结构 +function getNotPublishTreeData(type) { + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_publish_tree_ma_data_query", + teamId: teamId, + wsId: '0285ff6a-e418-4d8b-a5b1-22240296f769', + type: type, + flag: true + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + success : function(r) { + var data = r.data.data; + var setting = { + checkbox: true, + checkInherit: r.data.checkInherit, + event : { + beforeExpand : loadNewData + }, + dataModel : { + data: data + } + }; + $("#treeDataDiv").empty(); + $('#treeDataDiv').html('
    '); + initTree = awsui.tree.init($("#tree"), setting); + } + }); +} +//加载type为new的树节点 +function loadNewData(treeNode) { + // 如果是父节点并且存在子节点执行加载 + if (treeNode) { + var pid; + if (typeof(treeNode) == "string") { + pid = treeNode + } else { + pid = treeNode.id; + } + var dataModel = { + url : "./w?sid=" + jQuery("#sid").val() + + "&cmd=com.actionsoft.apps.coe.pal.publisher_publish_tree_ma_data_query&flag=" + false + "&pid=" + pid + + "&wsId=" + '0285ff6a-e418-4d8b-a5b1-22240296f769' + "&type=" + "new" + "&teamId=" + teamId, + method : "POST", + dataType : "json" + } + initTree.refreshNode({ + id : pid, + dataModel : dataModel + }); + var data = initTree.getChildrenByPid(pid); + var newData = []; + for (var i=0;i'; + } else if (hasDutyDept) { + var tempText = '[' + varDutyDept + ':' + data[i].dutyDeptName + ']'; + data[i].name += '   ' + tempText + ''; + } else if (hasDutyUser) { + var tempText = '[' + varDutyUser + ':' + data[i].dutyUserName + ']'; + data[i].name += '   ' + tempText + ''; + } + newData.push(data[i]); + //initTree.refreshNodeById(data[i]); + } + initTree.refreshNode({ + id : pid, + data : newData + }); + } +} + +// 发布类型批量结果数据回填主dialog +function getNewPublishBatchResult(type) { + var nodes = initTree.getCheckedNodes(); + treeCheckedNewArr = []; + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (node.id.length > 36) continue; + //by bzp + if(node.method == "process.framework"){ + continue; + } + var obj = {}; + obj.fileVersion = node.version; + obj.publishFileId = node.id; + obj.id = node.id; + // obj.publishFileName = node.name; + obj.publishFileName = node.tempName; + obj.methodId = node.method; + obj.category = node.category; + obj.taskId = "";// 后续生成流程手册 + treeCheckedNewArr.push(obj); + } +} + +//获取已发布文件数据结构 +function getPublishedTreeData(type) { + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_publish_tree_ma_data_query", + teamId: teamId, + wsId: '0285ff6a-e418-4d8b-a5b1-22240296f769', + type: type, + flag: true + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + success : function(r) { + var data = r.data.data; + var setting = { + checkbox: true, + checkInherit: r.data.checkInherit, + dataModel : { + data: data + } + }; + for (var i=0;i'; + } else if (hasDutyDept) { + var tempText = '[' + varDutyDept + ':' + data[i].dutyDeptName + ']'; + data[i].name += '   ' + tempText + ''; + } else if (hasDutyUser) { + var tempText = '[' + varDutyUser + ':' + data[i].dutyUserName + ']'; + data[i].name += '   ' + tempText + ''; + } + } + $("#treeDataDiv").empty(); + $('#treeDataDiv').html('
      '); + initTree = awsui.tree.init($("#tree"), setting); + } + }); +} + +//变更类型批量结果数据回填主dialog +function getChangeBatchResult(type) { + var nodes = initTree.getCheckedNodes(); + treeCheckedChangeArr = []; + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (node.id.length > 36) continue; + var obj = {}; + // obj.changeFileName = node.name; + obj.changeFileName = node.tempName; + obj.changeFileId = node.id; + obj.fileVersion = node.version; + obj.methodId = node.method; + obj.category = node.category; + obj.id = node.id; + obj.targetFiles = [];// 后续生成 + obj.changedFileIdNew = "";// 后续生成 + obj.changedFileNameNew = "";// 后续生成 + obj.taskId = "";// 后续生成 + obj.targetFileVersion = "";// 后续生成 + obj.targetMethodId = node.method + obj.targetCategory = node.category + treeCheckedChangeArr.push(obj); + } +} + +// 停用类型批量结果数据回填主dialog +function getStopBatchResult(type) { + var nodes = initTree.getCheckedNodes(); + treeCheckedStopArr = []; + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (node.id.length > 36) continue; + var obj = {}; + // obj.stopFileName = node.name; + obj.stopFileName = node.tempName; + obj.stopFileId = node.id; + obj.fileVersion = node.version; + obj.id = node.id; + obj.methodId = node.method; + obj.category = node.category; + obj.taskId = "";// 后续查询已经存在的流程手册 + treeCheckedStopArr.push(obj); + } +} + +// 获取已有的流程手册 +function queryBatchReport(data) { + debugger; + var ids = []; + for (var i = 0; i < data.length; i++) { + var temp = data[i]; + if ((temp.methodId == 'control.policy' || temp.methodId == 'data.form' || temp.methodId.indexOf('process.') > -1) && temp.methodId != 'default') { + ids.push(temp.stopFileId); + } + } + if (ids.length == 0) return data; + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_batch_output_pr_report_query", + teamId: teamId, + wsId: wsId, + uuids: JSON.stringify(ids) + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + data : param, + success : function(r) { + var result = r.data.data; + for (var i = 0; i < data.length; i++) { + if (result[data[i].id] != undefined) { + data[i].taskId = result[data[i].id]; + } + } + } + }); + return data; +} + +// 创建流程手册 +function createReport(category, method, uuid, taskId) { + if ((method == 'control.policy' || method == 'data.form' || method.indexOf('process.') > -1) && method != 'default') { + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_output_pr_report_create", + teamId: teamId, + wsId: wsId, + uuid: uuid + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + data : param, + success : function(r) { + if (r.result == 'ok') { + taskId = r.data.taskId; + } + } + }); + } else { + $.simpleAlert('不支持创建手册'); + } + return taskId; +} + +// 批量创建流程手册 +function createBatchReport(data, createTime) { + var ids = []; + for (var i = 0; i < data.length; i++) { + var temp = data[i]; + if ((temp.methodId == 'control.policy' || temp.methodId == 'data.form' || temp.methodId.indexOf('process.') > -1) && temp.methodId != 'default') { + ids.push(temp.publishFileId); + } + } + if (ids.length == 0) return data; + if (createTime == 'submit_create') {// 提交时创建手册 + for (var i = 0; i < data.length; i++) { + if(jQuery.inArray(data[i].publishFileId, ids) != -1) { + data[i].taskId = 'submit_create'; + }; + } + return data; + } + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_output_pr_reports_create", + teamId: teamId, + wsId: wsId, + uuids: JSON.stringify(ids) + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + data : param, + success : function(r) { + if (r.result == 'ok') { + var result = r.data.data; + for (var i = 0; i < data.length; i++) { + if (result[data[i].id] != undefined) { + data[i].taskId = result[data[i].id]; + } + } + } + } + }); + return data; +} + +// 查询流程的其他版本并生成流程手册 +function getVersionsAndCreateReport(data, createTime) { + if (data.length == 0) return data; + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_versions_query_output_pr_reports_create", + teamId: teamId, + wsId: wsId, + data: JSON.stringify(data), + createTime : createTime + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + data : param, + success : function(r) { + data = r.data.data; + } + }); + return data; +} + +// 获取手册专属名称 +function getOutputName(category, method) { + if (method == 'control.policy') { + return '制度手册'; + } + if (method == 'data.form') { + return '表单手册' + } + if (method.indexOf('process.') > -1) { + return '流程手册'; + } + return '手册'; +} + +//单个流程立即创建流程手册 +function quickCreateReport(obj, object, type) { + var taskId; + var category = obj.category; + var method = obj.methodId; + var uuid = ''; + if (type == 'new') { + uuid = obj.publishFileId; + } else if (type == 'change') { + uuid = obj.changedFileIdNew; + } + $.simpleAlert("正在创建", "loading"); + taskId = createReport(category, method, uuid, taskId); + $.simpleAlert("close"); + //打开流程手册 + $(object).attr('onclick', "openReportFile(\'" + taskId + "\')"); + + //三员管理下,立即创建 + if(isHighSecurity){ + //更新数据记录 + if (type == 'new') { + var fileName = obj.publishFileName + ' V' + obj.fileVersion + '-' + getOutputName(category, method); + $(object).text(fileName); + } else if (type == 'change') { + var targetFileName = obj.changedFileNameNew + ' V' + obj.targetFileVersion + '-' + getOutputName(category, method); + $(object).text(targetFileName); + } + }else{ + //更新数据记录 + if (type == 'new') { + var fileName = obj.publishFileName + ' V' + obj.fileVersion + '-' + getOutputName(category, method); + $(object).text(fileName); + for (var i = 0; i < newTemp.length; i++) { + if (newTemp[i].publishFileId == uuid) { + newTemp[i].taskId = taskId; + } + } + } else if (type == 'change') { + var targetFileName = obj.changedFileNameNew + ' V' + obj.targetFileVersion + '-' + getOutputName(category, method); + $(object).text(targetFileName); + for (var i = 0; i < changeTemp.length; i++) { + if (changeTemp[i].changedFileIdNew == uuid) { + changeTemp[i].taskId = taskId; + } + } + } + } + $(object).parent().append(''); +} + +// 清空树结构 +function clearTreeData() { + initTree = {}; +} + +// 禁用按钮 +function disabledAll() { + $('#treeDialog').find("div.dialog-button-wrap").find('button:first').attr({"disabled":"disabled"}); +} + +// 关闭模态窗 +function closeDialog() { + $("#treeDialog").dialog("close"); +} + +// 打开流程手册 +function openReportFile(taskId) { + $.simpleAlert("文件正在处理", "loading"); + awsui.ajax.request({ + type: "POST", + url: "./jd?sid=" + sid + "&cmd=com.actionsoft.apps.coe.pal.publisher_publish_output_file_open", + data: {taskId: taskId}, + ok: function(msg) { + $.simpleAlert("close"); + var url = msg.data.url; + if (msg.data.noSupport) { + window.location.href = url; + } else { + window.open(url); + } + }, + err: function(msg) { + $.simpleAlert("close"); + } + }); +} + +// 删除 +function deleteFile(type) { + if ($('#publish_' + type + '_tbody').find('tr').length > 0) { + var flag = true; + $('#publish_' + type + '_tbody').find('input[name="check"]').each(function() { + if ($(this).closest('div').hasClass('checked')) { + flag = false; + } + }); + if (flag) { + $.simpleAlert('请选择列表中数据'); + return; + } else { + var options = { + title : "提示", + content:"确定删除?", + onConfirm: function(){ + // 删除并重载数据刷新页码 + if (type == 'new') { + // 获取所有选中的数据 + var tempIds = []; + $('#publish_' + type + '_tbody').find('input[name="check"]').each(function() { + if ($(this).closest('div').hasClass('checked')) { + tempIds.push($(this).attr('data-id')); + } + }); + // var param = { + // cmd: 'com.actionsoft.apps.coe.pal.publisher_update_isApproval_status', + // repositoryIds: JSON.stringify(tempIds), + // wsId : wsId, + // sid: sid, + // isApproval: 0 + // }; + // $.ajax({ + // url : "./jd", + // type : "POST", + // dataType : "JSON", + // async : true, + // data : param, + // success : function(r) {}, + // error : function(XMLHttpRequest, textStatus, errorThrown) { + // $.simpleAlert("", 'error'); + // } + // }); + for (var j = 0; j < tempIds.length; j++) { + for (var m = 0; m < newTemp.length; m++) { + if (tempIds[j] == newTemp[m].publishFileId) { + // 删除 + newTemp.splice(m,1); + break; + } + } + } + if (newTemp.length == 0) { + // 无数据 + $('#publish_' + type + '_tbody').empty(); + } else if (newTemp.length > newPageSetting.start - 1) { + // 初始化页数及当前页 + initNewPagination(newPageSetting.pageNum - 1); + // 初始化当前页的数据 + initPublishData(newTemp, type, newPageSetting.pageNumber, newPageSetting.start); + } else { + // 刷新到最后一页 + var curr = 1; + if(newTemp.length % pageLimit == 0) { + curr = parseInt(newTemp.length / pageLimit); + } else { + curr = parseInt(newTemp.length / pageLimit) + 1; + } + newPageSetting = { + pageNum:curr, + start:(curr - 1) * pageLimit + 1 + } + // 初始化页数及当前页 + initNewPagination(newPageSetting.pageNum - 1); + // 初始化当前页的数据 + initPublishData(newTemp, type, newPageSetting.pageNumber, newPageSetting.start); + } + if (newTemp.length <= pageLimit) { + $('#new_pagination').hide(); + } + $('#publish_' + type + '_content').find('input[name=checkAll]').check("option","checked", false); + } + if (type == 'change') { + // 获取所有选中的数据 + var tempIds = []; + $('#publish_' + type + '_tbody').find('input[name="check"]').each(function() { + if ($(this).closest('div').hasClass('checked')) { + tempIds.push($(this).attr('data-id')); + } + }); + // var param = { + // cmd: 'com.actionsoft.apps.coe.pal.publisher_update_isApproval_status', + // repositoryIds: JSON.stringify(tempIds), + // wsId : wsId, + // sid: sid, + // isApproval: 0 + // }; + // $.ajax({ + // url : "./jd", + // type : "POST", + // dataType : "JSON", + // async : true, + // data : param, + // success : function(r) {}, + // error : function(XMLHttpRequest, textStatus, errorThrown) { + // $.simpleAlert("", 'error'); + // } + // }); + for (var j = 0; j < tempIds.length; j++) { + for (var m = 0; m < changeTemp.length; m++) { + if (tempIds[j] == changeTemp[m].changeFileId) { + // 删除 + changeTemp.splice(m,1); + break; + } + } + } + if (changeTemp.length == 0) { + // 无数据 + $('#publish_' + type + '_tbody').empty(); + } else if (changeTemp.length > changePageSetting.start - 1) { + // 初始化页数及当前页 + initChangePagination(changePageSetting.pageNum - 1); + // 初始化当前页的数据 + initPublishData(changeTemp, type, changePageSetting.pageNumber, changePageSetting.start); + } else { + // 刷新到最后一页 + var curr = 1; + if(changeTemp.length % pageLimit == 0) { + curr = parseInt(changeTemp.length / pageLimit); + } else { + curr = parseInt(changeTemp.length / pageLimit) + 1; + } + changePageSetting = { + pageNum:curr, + start:(curr - 1) * pageLimit + 1 + } + // 初始化页数及当前页 + initChangePagination(changePageSetting.pageNum - 1); + // 初始化当前页的数据 + initPublishData(changeTemp, type, changePageSetting.pageNumber, changePageSetting.start); + } + if (changeTemp.length <= pageLimit) { + $('#change_pagination').hide(); + } + $('#publish_' + type + '_content').find('input[name=checkAll]').check("option","checked", false); + } + if (type == 'stop') { + // 获取所有选中的数据 + var tempIds = []; + $('#publish_' + type + '_tbody').find('input[name="check"]').each(function() { + if ($(this).closest('div').hasClass('checked')) { + tempIds.push($(this).attr('data-id')); + } + }); + // var param = { + // cmd: 'com.actionsoft.apps.coe.pal.publisher_update_isApproval_status', + // repositoryIds: JSON.stringify(tempIds), + // wsId : wsId, + // sid: sid, + // isApproval: 0 + // }; + // $.ajax({ + // url : "./jd", + // type : "POST", + // dataType : "JSON", + // async : true, + // data : param, + // success : function(r) {}, + // error : function(XMLHttpRequest, textStatus, errorThrown) { + // $.simpleAlert("", 'error'); + // } + // }); + for (var j = 0; j < tempIds.length; j++) { + for (var m = 0; m < stopTemp.length; m++) { + if (tempIds[j] == stopTemp[m].stopFileId) { + // 删除 + stopTemp.splice(m,1); + break; + } + } + } + if (stopTemp.length == 0) { + // 无数据 + $('#publish_' + type + '_tbody').empty(); + } else if (stopTemp.length > stopPageSetting.start - 1) { + // 初始化页数及当前页 + initStopPagination(stopPageSetting.pageNum - 1); + // 初始化当前页的数据 + initPublishData(stopTemp, type, stopPageSetting.pageNumber, stopPageSetting.start); + } else { + // 刷新到最后一页 + var curr = 1; + if(stopTemp.length % pageLimit == 0) { + curr = parseInt(stopTemp.length / pageLimit); + } else { + curr = parseInt(stopTemp.length / pageLimit) + 1; + } + stopPageSetting = { + pageNum:curr, + start:(curr - 1) * pageLimit + 1 + } + // 初始化页数及当前页 + initStopPagination(stopPageSetting.pageNum - 1); + // 初始化当前页的数据 + initPublishData(stopTemp, type, stopPageSetting.pageNumber, stopPageSetting.start); + } + if (stopTemp.length <= pageLimit) { + $('#stop_pagination').hide(); + } + $('#publish_' + type + '_content').find('input[name=checkAll]').check("option","checked", false); + } + //by bzp 清空 流程级别信息 和审批人信息 + if(stopTemp.length == 0 && changeTemp.length == 0 && newTemp.length == 0){ + clearLevelAndApproveInfo(); + } + }, + onClose : function(){ + } + }; + $.confirm(options); + } + } else { + $.simpleAlert('列表中无数据'); + } +} + +//by bzp 清空流程级别信息和审批人信息 +function clearLevelAndApproveInfo(){ + //审批人信息 + ui("PERSON_THREE_LEVEL_PROCESS",''); + ui("PROCESS_RESPONSIBLE_PERSON",''); + ui("RESPONSIBLE_PERSON1",''); + ui("LEVEL_AUDIT_REQUIRED",'0'); + ui("SECONDARY_AUDIT_REQUIRED",'0'); + ui("LEVEL_1_AUDIT_REQUIRED",'0'); + //流程级别信息 + ui("LEVEL_1_PROCESS_NAME",''); + ui("LEVEL_2_PROCESS_NAME",''); + ui("LEVEL_3_PROCESS_NAME",''); + //看是否需要清空后台数据~~ + queryapprove(); +} + +// 变更说明内容时处理 +function changeDesc(type, id, obj) { + var desc = $(obj).val(); + if (type == 'new') { + for (var i = 0; i < newTemp.length; i++ ) { + if (newTemp[i].publishFileId == id) { + newTemp[i].publishDesc = desc; + break; + } + } + } + if (type == 'change') { + for (var i = 0; i < changeTemp.length; i++ ) { + if (changeTemp[i].changeFileId == id) { + changeTemp[i].changedDesc = desc; + break; + } + } + } + if (type == 'stop') { + for (var i = 0; i < stopTemp.length; i++ ) { + if (stopTemp[i].stopFileId == id) { + stopTemp[i].stopDesc = desc; + break; + } + } + } +} + +// 点击checkbox +function onCheckboxClickEvent(boItemName, $checkbox, val) { + var isCheck = !$checkbox.closest('div').hasClass('checked'); + if (val == '流程制度发布') { + dealPublishCheck(isCheck, 'new'); + } else if (val == '流程制度版本更新') { + dealPublishCheck(isCheck, 'change'); + } else if (val == '流程制度废止') { + dealPublishCheck(isCheck, 'stop'); + } +} + +// 主体内容显示与隐藏 +function dealPublishCheck(isCheck, type) { + if (type == 'new') { + isCheck ? $('#publisher_new_tr').show() : $('#publisher_new_tr').hide(); + } else if (type == 'change') { + isCheck ? $('#publisher_change_tr').show() : $('#publisher_change_tr').hide(); + } else if (type == 'stop') { + isCheck ? $('#publisher_stop_tr').show() : $('#publisher_stop_tr').hide(); + } +} + +// 单独保存子表操作 +function saveFormData(type) { + $.simpleAlert('正在保存', 'loading'); + var saveData = []; + if (type == 'new') { + saveData = newTemp; + } + if (type == 'change') { + saveData = changeTemp; + } + if (type == 'stop') { + saveData = stopTemp; + } + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_batch_save", + teamId: teamId, + wsId: wsId, + processInstId : processInstId, + type : type, + data: JSON.stringify(saveData) + } + var flag = false; + var tempData; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + data : param, + success : function(r) { + if (r.result == 'error') { + flag = true; + tempData = r.data.data; + } + }, + error : function(XMLHttpRequest, textStatus, errorThrown) { + $.simpleAlert("表单信息错误,请联系管理员!", 'error'); + } + }); + $.simpleAlert('close'); + if (flag) { + var msg = '以下文件已经在其他未办理完成的表单中,不允许保存/办理'; + if (tempData.length > 0) { + for (var i = 0; i < tempData.length; i++) { + msg += '
      ' + tempData[i].name + ' V' + tempData[i].version; + } + } + var options = { + title : "提示", + content:msg, + type:"alert", + onConfirm: function(){ + } + }; + $.confirm(options); + } else { + $.simpleAlert('保存成功', 'ok'); + } +} + +// 点击办理时的校验+保存字表 +function formSave(isTransact){ + if (!editPerm) {// 只读状态不处理 + return true; + } + $.simpleAlert('正在保存', 'loading'); + if(isTransact) {// 点击办理进行校验 + // 判断页面是否有数据 + if ($("#publisher_new_tr").css('display') == 'none' && $("#publisher_change_tr").css('display') == 'none' && $("#publisher_stop_tr").css('display') == 'none'){ + $.simpleAlert('close'); + $.simpleAlert('发布内容不能为空', 'info'); + return false; + } + debugger; + var index = 0; + if (!($("#publisher_new_tr").css('display') == 'none') && newTemp.length > 0) { + index++; + } + if (!($("#publisher_change_tr").css('display') == 'none') && changeTemp.length > 0) { + index++; + } + if (!($("#publisher_stop_tr").css('display') == 'none') && stopTemp.length > 0) { + index++; + } + if (index == 0) { + $.simpleAlert('close'); + $.simpleAlert('发布内容不能为空', 'info'); + return false; + } + + // 校验变更文件是否全部都有变更后文件 + if (!($("#publisher_change_tr").css('display') == 'none') && changeTemp.length > 0) { + var flag = false; + var msg = '以下文件没有选择变更后的文件,不允许办理'; + for (var i = 0; i < changeTemp.length; i++) { + if (changeTemp[i].changedFileIdNew == "") { + flag = true; + msg += '
      ' + changeTemp[i].changeFileName + ' V' + changeTemp[i].fileVersion; + } + } + if (flag) { + var options = { + title : "提示", + content:msg, + type:"alert", + onConfirm: function(){ + } + }; + $.simpleAlert('close'); + $.confirm(options); + return false; + } + } + } + // 保存校验 + // 1.不显示的数据默认删除 + var newTempData = newTemp; + var changeTempData = changeTemp; + var stopTempData = stopTemp; + if (($("#publisher_new_tr").css('display') == 'none')) { + newTempData = []; + } + if (($("#publisher_change_tr").css('display') == 'none')) { + changeTempData = []; + } + if (($("#publisher_stop_tr").css('display') == 'none')) { + stopTempData = []; + } + // 2.校验变更的数据与停用的数据是否有重叠 + if(isTransact) { + if (!($("#publisher_change_tr").css('display') == 'none') && !($("#publisher_stop_tr").css('display') == 'none')) { + for (var i = 0; i < changeTempData.length; i ++) { + for (var j = 0; j < stopTempData.length; j++) { + if (changeTempData[i].changeFileId == stopTempData[j].stopFileId) { + $.simpleAlert('close'); + $.simpleAlert(stopTempData[j].stopFileName + ' V' + stopTempData[j].fileVersion + "
      在变更流程和停用流程中同时存在,不允许办理", 'error'); + return false; + } + } + } + } + } + //三员管理,提交后不生成手册,更改taskId + if (isHighSecurity){ + for (let i=0;i -1) && data.methodId != 'default') { + data.taskId = "new"; + } + } + for (let j=0; j 0) { + for (var i = 0; i < tempData.length; i++) { + msg += '
      ' + tempData[i].name + ' V' + tempData[i].version; + } + } + var options = { + title : "提示", + content:msg, + type:"alert", + onConfirm: function(){ + } + }; + $.confirm(options); + return false; + } else { + newTemp = newTempData; + if (newTemp.length == 0) { + newPageSetting = { + pageNum:1, + start:1 + }; + $('#new_pagination').hide(); + initPublishData(newTemp, 'new', 1, 1); + } + changeTemp = changeTempData; + if (changeTemp.length == 0) { + changePageSetting = { + pageNum:1, + start:1 + }; + $('#change_pagination').hide(); + initPublishData(changeTemp, 'change', 1, 1); + } + stopTemp = stopTempData; + if (stopTemp.length == 0) { + stopPageSetting = { + pageNum:1, + start:1 + }; + $('#stop_pagination').hide(); + initPublishData(stopTemp, 'stop', 1, 1); + } + $.simpleAlert('保存成功', 'ok'); + } +} + +//办理完成后关闭页面 +AWSFormMainAPI.customCloseFormPage(function(){ + if (closeFormPage) { + window.close(); + } else { + AWSFormUtil.refreshPage(); + } + // 父页面刷新 + opener.refreshTab(); + return true;//最后返回true +}); + +/********************************快速搜索start***************************************/ + +// 绑定事件 +function initPublishSearch(type) { + $("#processName").buttonedit({ + onClick: function(e){ + searchProcess(type); + } + }); + $("#processName").bind("keypress",function(event){ + if(event.keyCode == "13"){ + searchProcess(type); + } + }); + $("#autoSearchProcessDiv").off("mouseenter").on("mouseenter", function () { + $('#autoSearchProcessDiv').show(); + }).off("autoSearchProcessDiv").on("mouseleave", function () { + $('#autoSearchProcessDiv').hide(); + }); +} + +// 搜索 +function searchProcess(type) { + $("#autoSearchProcessDiv").empty().hide(); + if ($("#processName").val() == "" || $("#processName").val().trim() == "") { + return; + } + var name = $("#processName").val().trim().toLowerCase(); + var html = ''; + //先向后台请求完整tree数据 + if (type == 'new') { + var data = getAllTreeData(); + for (var i = 0; i < data.length; i++) { + var text = data[i].name; + if (text.indexOf(name) > -1) { + var id = data[i].id; + var path = getSearchTreeNodePath(data[i], text, data, 1); + var pids = getSearchTreeNodePath(data[i], text, data, 2); + html += '
      '; + html += ''; + html += '
      ' + path + '
      '; + html += '
      '; + html += '
      '; + html += '
      '; + } + } + } else { + $('span.tree-items-title').each(function() { + var text = $(this).text().toLowerCase(); + if (text.indexOf(name) > -1) {// found + var id = $(this).attr('id').substring(10); + if (id.length <= 36) { + var node = initTree.getNodeById(id); + var path = getFilePath(node, text); + html += '
      '; + html += ''; + html += '
      ' + path + '
      '; + html += '
      '; + html += '
      '; + html += '
      '; + } + } + }); + } + if (html.length > 0) { + $("#autoSearchProcessDiv").html(html).show(); + // $("#processName").val(''); + } +} + +function getAllTreeData() { + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_publish_tree_data_query_search", + teamId: teamId, + wsId: wsId + } + var data; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + async : false, + success : function(d) { + data = d; + } + }); + return data; +} + +function getSearchTreeNodePath(node, text, data, isPid) { + var name = text; + var pids = node.pid; + do { + var p = undefined; + for (var i = 0; i < data.length; i++) { + if (data[i].id == node.pid) { + p = data[i]; + break; + } + } + if (p == undefined) { + if (node.pid == "process") { + name = "流程>" + name; + } + if (node.pid == "org") { + name = "组织>" + name; + } + if (node.pid == "data") { + name = "数据>" + name; + } + if (node.pid == "itsystem") { + name = "IT系统>" + name; + } + if (node.pid == "control") { + name = "控制>" + name; + } + break; + } + name = p.name + ">" + name; + pids = p.pid + "." + pids; + node = p; + } while(true); + if (isPid == 2) { + return pids; + } else { + return name; + } +} + +function getFilePath(node, text) { + var name = text; + do { + var p = initTree.getParentNodeById(node.id); + if (p == undefined) { + break; + } + name = p.name + ">" + name; + node = p; + } while(true); + return name; +} + +function auto_move(obj) { + obj.css({"color": "white", "background-image" : "url(../apps/com.actionsoft.apps.coe.pal.publisher/img/link.png)"}); +} + +function auto_out(obj) { + obj.css({"color": "black", "background-image" : "none"}); +} + +function auto_click(obj, type) { + var plId = obj.find("span").attr("plId"); + var type = obj.find("span").data("type"); + var dom = initTree.getNodeDomById(plId) + if (type == 'new') { + //预先去加载initTree + var pids = obj.find("span").data("pids"); + var pidList = pids.split('.'); + for (var i = 0; i < pidList.length; i++) { + loadNewData(pidList[i]); + dom = initTree.getNodeDomById(pidList[i]); + initTree.expandNodes(dom, true, true, true); + } + } else { + initTree.expandNodes(dom, true, true, true); + } + initTree.expandNodes(dom, true, true, true); + // 偏移至可见区域 + var ele = document.getElementById('tree_span_' + plId); + $('#tree').scrollTop(ele.offsetTop); + initTree.cancelSelectNode() + initTree.selectNode(plId); + $("#autoSearchProcessDiv").empty().hide(); +} +/********************************快速搜索end***************************************/ + +function listenCloseEvent() { + window.onbeforeunload = function(){ + // 查询bo表数据,是否保存过,未保存过离开页面则删除该实例 + awsui.ajax.request({ + type: "POST", + url: "./jd", + async: false, + data: { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_save_status_query", + processInstId: processInstId + }, + success : function(r) { + if (r.result == "ok") { + if (r.data.saveStatus == '1') { + return "未保存,关闭之后不会保存该表单!"; + } + } + } + }); + } + + //在弹出“是否离开”的提示框后,选择离开,则触发onunload事件 + window.onunload = function(){ + // 查询bo表数据,是否保存过,未保存过离开页面则删除该实例 + awsui.ajax.request({ + type: "POST", + url: "./jd", + async: false, + data: { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_save_status_query", + processInstId: processInstId + }, + success : function(r) { + if (r.result == "ok") { + if (r.data.saveStatus == '1') { + // 删除该流程实例,并刷新主页面 + awsui.ajax.request({ + type: "POST", + url: "./jd", + async: false, + data: { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_remove", + processInstIds: processInstId + }, + success : function(r) { + if (r.result == "ok") { + // 父页面刷新 + opener.refreshTab(); + } + } + }); + } + } + } + }); + } +} + +function downloadReport(uuid, taskId) { + awsui.ajax.request({ + type: "POST", + url: "./jd", + async: false, + data: { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_output_download", + taskId: taskId, + uuid: uuid + }, + success : function(r) { + debugger; + if (r.result == "ok") { + debugger; + window.open (r.data.url); + } else { + + } + } + }); +} \ No newline at end of file diff --git a/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple.js b/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple.js index 170ed810..d1e15825 100644 --- a/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple.js +++ b/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple.js @@ -588,6 +588,15 @@ function showlist(data, type, pageNumber, start){ if (isHighSecurity){ reportName = curr.taskId == 'change' ? quickCreate : reportName; } + + if($("#userTaskDefId").val()=='obj_c9e93c345010000148211f97f9c07f00'){ + editPerm=false; + } + if($("#userTaskDefId").val()=='obj_c9e5a2e6a2c00001891c127ce9309250'){ + editPerm=false; + } + + var checkboxPerm = editPerm ? '' : 'disabled="disabled"'; var textareaPerm = editPerm ? '' : 'readonly'; html += '';