From 19df749406a2bd50f276efc04ada5e2b0183c892 Mon Sep 17 00:00:00 2001 From: zhal <15900249928@163.com> Date: Tue, 11 Jul 2023 00:04:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=B5=81=E7=A8=8B=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com.actionsoft.apps.coe.pal.publisher.jar | Bin 488984 -> 491189 bytes .../client/util/ProcesNumberUtil.java | 637 ++- .../client/web/ProcessPublishWeb.java | 109 +- .../event/PublishFormBeforeSaveEvent.java | 272 +- .../pal/publisher/event/SubFormAfterSave.java | 284 +- .../js/coe.pal.process.publish.multiple.js | 4683 +++++++++-------- .../js/coe.pal.process.publish.multiple_L4.js | 2662 ++++++++++ 7 files changed, 5635 insertions(+), 3012 deletions(-) create mode 100644 com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple_L4.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 f25c969a28e89095664a103457c319df75349b0d..833a89bd3c266f7e27e45e321cbb9c71933d1d87 100644 GIT binary patch delta 165994 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 H8{+=~1ChV* delta 163812 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 z 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
ktNlM78N7dcgdBN;pj*};ENHd?EO-OIKh+=` z{^yh^3}GlR5QgeOW&<()qE`I|lY(KO%^!etnWUk&4OWXb2mmno-!lX-gu__Mkdts+ zsG2bd?XPwkGlJQ>MZz?%AOcau|D!Q8hH0`tz%)t_yN}QRM|1jH;~e)}1JyGDk^gmi z(eCi*nR@^LHWLt_@~?_NCc>zS&{Y!<4%P1wQ+W>=aE67*4QnsOe=!RK;UMZB;!sUf z5aA!{TMeprZ(vlx|3i%l{);*Uqf-3#dhla^(i=v7`G2UsP&hM?{vUtM765(sHCR`X z0s->>s@m?|U;diSK=^+Ko4+fF6wV%+Z4F|CsyP5bPzrMpBQW*92of~Y0f+;QG6$hi zmS}A2{I5HX{}liwZ~k(#Y!2cEUjJ7>g-Tn1sQ=VvZvh*{#$La9?9f^Z5HqmgkH877 z^akQXmmOgp#$^d22R;S-=5Ruh!9YUjCrc0-e6hwhw8#=>-WK+k%EbzV2YqG*!u_M7 zvVy6a-ummJrHBj;BKSpfO6k)BTq} zS4GNxzp3m{{?{OJ;H!^+2{$qD6tIg391sI;N$m#J}4y4Azc%|EhE} z`7bXpzQ`Xh!oPi=r2d04K}($fUY!3_YdZ|3as_cf(Oh7osrrxb66)##5(N58{nq>u zP@zXIAWq=3@4pef|4cR#;Ni}1zl_jMm?;*+zk4yJARO|tI0sk}V zZ>b_00R_tJ2_sm>{SBpgf;iztCjXXjyj#&iI@AGE{jxa+zyg)v{4{X1W zvd|!JnA=Ywh`(c%hMI&Sq9pskyc&f6jgY@XM1lJKhWaD_hJO0MDk9wcTUy+L5nlVk z2y@$iL(9Ifj+qySV)?-;N|pM3l!cD_!4_^<@>HD&<}{=V*gz?RUBOiU)dO|8NWa5S zfWlI%g8t0VKL)t}y|n=-|I1*l;E#bkRK_3l0{DmvUGsB7{B$z*d{z(*`{dL?WOg2?8j~Xi2assK|2so>+JQJODB>G5~gW or88r*hzN@YfCYOA|Er<^NvL@sNEX8l;0C~ijm=*$Hvqu@1B!>}oB#j- diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/util/ProcesNumberUtil.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/util/ProcesNumberUtil.java index 30146862..ad8ff04a 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/util/ProcesNumberUtil.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/client/util/ProcesNumberUtil.java @@ -1,30 +1,14 @@ package com.actionsoft.apps.coe.pal.publisher.client.util; -import java.sql.Timestamp; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import com.actionsoft.apps.coe.pal.pal.manage.publish.dao.PublishHistory; -import com.actionsoft.apps.coe.pal.pal.manage.publish.model.PublishHistoryModel; -import com.actionsoft.apps.coe.pal.pal.output.dao.OutputTask; -import com.actionsoft.apps.coe.pal.pal.output.model.OutputTaskModel; -import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager; -import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; -import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao; -import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; -import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryPropertyModel; -import com.actionsoft.apps.coe.pal.publisher.constant.PublisherConstant; import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; import com.actionsoft.bpms.commons.database.RowMap; import com.actionsoft.bpms.util.DBSql; import com.actionsoft.bpms.util.UUIDGener; -import com.actionsoft.bpms.util.UtilDate; import com.actionsoft.bpms.util.UtilString; import com.actionsoft.sdk.local.SDK; -import com.alibaba.fastjson.JSONObject; -import com.sun.org.apache.xalan.internal.xsltc.compiler.sym; + +import java.util.List; /** * @author baizp @@ -39,12 +23,12 @@ public class ProcesNumberUtil { * @param regionCode * @return */ - public String getProcessNum(String levelCode, String regionCode,String plcategory) { - - int nowNum = 1; - //流程编号 - if (plcategory.contains("process")) { - String querySql = "select ID,PROCESS_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; + public String getProcessNum(String levelCode, String regionCode, String plcategory) { + + int nowNum = 1; + //流程编号 + if (plcategory.contains("process")) { + String querySql = "select ID,PROCESS_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode)); //如果没有就新增 if (result == null) { @@ -58,13 +42,13 @@ public class ProcesNumberUtil { DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID"))); if (nowNum < 10) { return "00" + nowNum; - }else if(nowNum >=10&&nowNum < 100){ - return "0" + nowNum; + } else if (nowNum >= 10 && nowNum < 100) { + return "0" + nowNum; } - - } else if (plcategory.contains("control")) { - //制度编号 - String querySql = "select ID,SYSTEM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; + + } else if (plcategory.contains("control")) { + //制度编号 + String querySql = "select ID,SYSTEM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode)); //如果没有就新增 if (result == null) { @@ -78,13 +62,13 @@ public class ProcesNumberUtil { DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID"))); if (nowNum < 10) { return "00" + nowNum; - }else if(nowNum >=10&&nowNum < 100){ - return "0" + nowNum; + } else if (nowNum >= 10 && nowNum < 100) { + return "0" + nowNum; } - - } else if (plcategory.contains("form")) { - //表单编号 - String querySql = "select ID,FORM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; + + } else if (plcategory.contains("form")) { + //表单编号 + String querySql = "select ID,FORM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode)); //如果没有就新增 if (result == null) { @@ -98,314 +82,313 @@ public class ProcesNumberUtil { DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID"))); if (nowNum < 10) { return "00" + nowNum; - }else if(nowNum >=10&&nowNum < 100){ - return "0" + nowNum; + } else if (nowNum >= 10 && nowNum < 100) { + return "0" + nowNum; } - } - - - + } + + return nowNum + ""; } - /** - * 生成编号并写入数据库 - * - * @param bindId - * @return - */ - public String getNumber(String bindId) { + /** + * 生成编号并写入数据库 + * + * @param bindId + * @return + */ + public String getNumber(String bindId) { - // 查询出所有的发布流程 - List dataList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").addQuery("BINDID=", bindId).orderByCreated().asc().list(); - // 查询出所有的变更流程 - List changList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").addQuery("BINDID=", bindId).orderByCreated().asc().list(); - if (changList.size() != 0) { - for (BO changData : changList) { - String change_numner = changData.getString("CHANGE_NUMBER"); - String changFileId = changData.getString("CHANGEFILEID"); - String changAfterFileId = changData.getString("CHANGEDFILEIDNEW"); - if(UtilString.isEmpty(change_numner)) { - RowMap rowMap = DBSql.getMap("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" + changAfterFileId + "'"); - String Vsion1Id = DBSql.getString("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID='" - + rowMap.getString("PLRID") + "' AND" + " PLVER = 1 "); - String publish_number = DBSql.getString( - "SELECT PUBLISH_NUMBER FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID ='" + Vsion1Id + "'"); + // 查询出所有的发布流程 + List dataList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").addQuery("BINDID=", bindId).orderByCreated().asc().list(); + // 查询出所有的变更流程 + List changList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").addQuery("BINDID=", bindId).orderByCreated().asc().list(); + if (changList.size() != 0) { + for (BO changData : changList) { + String change_numner = changData.getString("CHANGE_NUMBER"); + String changFileId = changData.getString("CHANGEFILEID"); + String changAfterFileId = changData.getString("CHANGEDFILEIDNEW"); + if (UtilString.isEmpty(change_numner)) { + RowMap rowMap = DBSql.getMap("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" + changAfterFileId + "'"); + String Vsion1Id = DBSql.getString("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID='" + + rowMap.getString("PLRID") + "' AND" + " PLVER = 1 "); + String publish_number = DBSql.getString( + "SELECT PUBLISH_NUMBER FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID ='" + Vsion1Id + "'"); - System.out.println("获取编号为======================="+publish_number); - if (UtilString.isNotEmpty(publish_number)) { - // 设置模型ID - String plver = "2.0"; - String plvers = rowMap.getString("PLVER"); - if (!"".equals(plvers)) { - if (plvers.length() > 1) { - plver = plvers.substring(0, 1) + "." - + plvers.substring(plvers.length() - 1, plvers.length()); - } else { - plver = plvers.substring(0, 1) + ".0"; - } - } - - String new_number = publish_number.replaceAll("V1.0", "V"+plver); - String updateSql = "update BO_ACT_COE_PUBLISH_C set CHANGE_NUMBER = '%s' where CHANGEDFILEIDNEW = '%s'"; - //更新子表文件编码属性 - int update = DBSql.update(String.format(updateSql, new_number, changAfterFileId)); - System.out.println("更新子表文件编号:" + update + "--->" + new_number); - String fileName = "file_number"; - if (rowMap != null) { - String plcategory = rowMap.getString("PLMETHODID"); - if (plcategory.contains("form")) { - fileName = "form_number"; - } - - } - //更新模型文件编码属性 - String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; - int update2 = DBSql.update(String.format(updateAttrsql, new_number, fileName, changAfterFileId)); - System.out.println("更新模型文件编号:" + update2 + "--->" + new_number); - }else { - // 查询出主表数据 - BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId); + System.out.println("获取编号为=======================" + publish_number); + if (UtilString.isNotEmpty(publish_number)) { + // 设置模型ID + String plver = "2.0"; + String plvers = rowMap.getString("PLVER"); + if (!"".equals(plvers)) { + if (plvers.length() > 1) { + plver = plvers.substring(0, 1) + "." + + plvers.substring(plvers.length() - 1, plvers.length()); + } else { + plver = plvers.substring(0, 1) + ".0"; + } + } - ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(bindId); - String levelnum=null; - String orgCode=null; - String regionCode=null; - String productCode=null; - if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ - // 根据主表数据查询出权限的编码 - String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' " - + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; - RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), - mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), - mainData.getString("LEVEL_3_PROCESS_NAME"), - mainData.getString("ADAPT_REGION_NAME"), - mainData.getString("APPLICABLE_PRODUCT"))); - // 获取所有的流程编码 如果为空则为00 - orgCode = authData.getString("ORGCODE"); - String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); - String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); - String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); - regionCode = authData.getString("ADAPT_REGION_CODE"); - productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); - // 依次生成编号~并回填 修改 - if (UtilString.isNotEmpty(levelTwo)) { - levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); - } else { - levelTwo = "00"; - } - if (UtilString.isNotEmpty(levelThree)) { - levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); - } else { - levelThree = "00"; - } + String new_number = publish_number.replaceAll("V1.0", "V" + plver); + String updateSql = "update BO_ACT_COE_PUBLISH_C set CHANGE_NUMBER = '%s' where CHANGEDFILEIDNEW = '%s'"; + //更新子表文件编码属性 + int update = DBSql.update(String.format(updateSql, new_number, changAfterFileId)); + System.out.println("更新子表文件编号:" + update + "--->" + new_number); + String fileName = "file_number"; + if (rowMap != null) { + String plcategory = rowMap.getString("PLMETHODID"); + if (plcategory.contains("form")) { + fileName = "form_number"; + } - levelnum = levelOne + "." + levelTwo + "." + levelThree; - }else{ - // 根据主表数据查询出权限的编码 - String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and LEVEL_4_PROCESS_NAME='%s' " - + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; - RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), - mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), - mainData.getString("LEVEL_3_PROCESS_NAME"), - mainData.getString("LEVEL_4_PROCESS_NAME"), - mainData.getString("ADAPT_REGION_NAME"), - mainData.getString("APPLICABLE_PRODUCT"))); - // 获取所有的流程编码 如果为空则为00 - orgCode = authData.getString("ORGCODE"); - String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); - String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); - String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); - String levelFour = authData.getString("LEVEL_4_PROCESS_ID"); - regionCode = authData.getString("ADAPT_REGION_CODE"); - productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); - // 依次生成编号~并回填 修改 - if (UtilString.isNotEmpty(levelTwo)) { - levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); - } else { - levelTwo = "00"; - } - if (UtilString.isNotEmpty(levelThree)) { - levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); - } else { - levelThree = "00"; - } - if (UtilString.isNotEmpty(levelFour)) { - levelFour = levelFour.substring(levelFour.lastIndexOf(".") + 1, levelFour.length()); - } else { - levelFour = "00"; - } + } + //更新模型文件编码属性 + String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; + int update2 = DBSql.update(String.format(updateAttrsql, new_number, fileName, changAfterFileId)); + System.out.println("更新模型文件编号:" + update2 + "--->" + new_number); + } else { + // 查询出主表数据 + BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId); - levelnum = levelOne + "." + levelTwo + "." + levelThree +"."+levelFour; - } + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(bindId); + String levelnum = null; + String orgCode = null; + String regionCode = null; + String productCode = null; + if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) { + // 根据主表数据查询出权限的编码 + String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' " + + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; + RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), + mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), + mainData.getString("LEVEL_3_PROCESS_NAME"), + mainData.getString("ADAPT_REGION_NAME"), + mainData.getString("APPLICABLE_PRODUCT"))); + // 获取所有的流程编码 如果为空则为00 + orgCode = authData.getString("ORGCODE"); + String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); + String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); + String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); + regionCode = authData.getString("ADAPT_REGION_CODE"); + productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); + // 依次生成编号~并回填 修改 + if (UtilString.isNotEmpty(levelTwo)) { + levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); + } else { + levelTwo = "00"; + } + if (UtilString.isNotEmpty(levelThree)) { + levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); + } else { + levelThree = "00"; + } - String updateSql = "update BO_ACT_COE_PUBLISH_C set CHANGE_NUMBER = '%s' where ID = '%s'"; - rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" - + changAfterFileId + "' AND" + " ISUSE = 1 "); - String name = ""; - String fileName = "file_number"; - String plver = "2.0"; - if (rowMap != null) { - String plcategory = rowMap.getString("PLMETHODID"); - String plvers = rowMap.getString("PLVER"); - String number = getProcessNum(levelnum, orgCode,plcategory); - if (plcategory.contains("process")) { - - name = "/P" + number; - } else if (plcategory.contains("control")) { - name = "/R" + number; - } else if (plcategory.contains("form")) { - fileName = "form_number"; - name = "/T" + number; - } - if (!"".equals(plvers)) { - if (plvers.length() > 1) { - plver = plvers.substring(0, 1) + "." - + plvers.substring(plvers.length() - 1, plvers.length()); - } else { - plver = plvers.substring(0, 1) + ".0"; - } - } - } - - String processNum = levelnum + name + "V" + plver +"-"+ orgCode + regionCode + productCode; - String s = changData.getId(); - int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase())); - System.out.println("更新表单文件编号回填:" + update + "--->" + processNum+" 文件id"+s); - String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; - int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, changAfterFileId)); - System.out.println("更新模型文件编号回填:" + update2 + "--->" + processNum +" 文件id"+changAfterFileId); - } - - } - } - } + levelnum = levelOne + "." + levelTwo + "." + levelThree; + } else { + // 根据主表数据查询出权限的编码 + String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and LEVEL_4_PROCESS_NAME='%s' " + + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; + RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), + mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), + mainData.getString("LEVEL_3_PROCESS_NAME"), + mainData.getString("LEVEL_4_PROCESS_NAME"), + mainData.getString("ADAPT_REGION_NAME"), + mainData.getString("APPLICABLE_PRODUCT"))); + // 获取所有的流程编码 如果为空则为00 + orgCode = authData.getString("ORGCODE"); + String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); + String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); + String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); + String levelFour = authData.getString("LEVEL_4_PROCESS_ID"); + regionCode = authData.getString("ADAPT_REGION_CODE"); + productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); + // 依次生成编号~并回填 修改 + if (UtilString.isNotEmpty(levelTwo)) { + levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); + } else { + levelTwo = "00"; + } + if (UtilString.isNotEmpty(levelThree)) { + levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); + } else { + levelThree = "00"; + } + if (UtilString.isNotEmpty(levelFour)) { + levelFour = levelFour.substring(levelFour.lastIndexOf(".") + 1, levelFour.length()); + } else { + levelFour = "00"; + } - if (dataList.size() != 0) { - // 查询出主表数据 - BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId); + levelnum = levelOne + "." + levelTwo + "." + levelThree + "." + levelFour; + } - ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(bindId); - String levelnum=null; - String orgCode=null; - String regionCode=null; - String productCode=null; - if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ - // 根据主表数据查询出权限的编码 - String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' " - + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; - RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), - mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), - mainData.getString("LEVEL_3_PROCESS_NAME"), - mainData.getString("ADAPT_REGION_NAME"), - mainData.getString("APPLICABLE_PRODUCT"))); - // 获取所有的流程编码 如果为空则为00 - orgCode = authData.getString("ORGCODE"); - String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); - String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); - String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); - regionCode = authData.getString("ADAPT_REGION_CODE"); - productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); + String updateSql = "update BO_ACT_COE_PUBLISH_C set CHANGE_NUMBER = '%s' where ID = '%s'"; + rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" + + changAfterFileId + "' AND" + " ISUSE = 1 "); + String name = ""; + String fileName = "file_number"; + String plver = "2.0"; + if (rowMap != null) { + String plcategory = rowMap.getString("PLMETHODID"); + String plvers = rowMap.getString("PLVER"); + String number = getProcessNum(levelnum, orgCode, plcategory); + if (plcategory.contains("process")) { - // 依次生成编号~并回填 修改 - if (UtilString.isNotEmpty(levelTwo)) { - levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); - } else { - levelTwo = "00"; - } - if (UtilString.isNotEmpty(levelThree)) { - levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); - } else { - levelThree = "00"; - } - levelnum = levelOne + "." + levelTwo + "." + levelThree ; - }else{ - // 根据主表数据查询出权限的编码 - String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and LEVEL_4_PROCESS_NAME='%s' " - + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; - RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), - mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), - mainData.getString("LEVEL_3_PROCESS_NAME"), - mainData.getString("LEVEL_4_PROCESS_NAME"), - mainData.getString("ADAPT_REGION_NAME"), - mainData.getString("APPLICABLE_PRODUCT"))); - // 获取所有的流程编码 如果为空则为00 - orgCode = authData.getString("ORGCODE"); - String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); - String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); - String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); - String levelFour = authData.getString("LEVEL_4_PROCESS_ID"); - regionCode = authData.getString("ADAPT_REGION_CODE"); - productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); + name = "/P" + number; + } else if (plcategory.contains("control")) { + name = "/R" + number; + } else if (plcategory.contains("form")) { + fileName = "form_number"; + name = "/T" + number; + } + if (!"".equals(plvers)) { + if (plvers.length() > 1) { + plver = plvers.substring(0, 1) + "." + + plvers.substring(plvers.length() - 1, plvers.length()); + } else { + plver = plvers.substring(0, 1) + ".0"; + } + } + } - // 依次生成编号~并回填 修改 - if (UtilString.isNotEmpty(levelTwo)) { - levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); - } else { - levelTwo = "00"; - } - if (UtilString.isNotEmpty(levelThree)) { - levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); - } else { - levelThree = "00"; - } + String processNum = levelnum + name + "V" + plver + "-" + orgCode + regionCode + productCode; + String s = changData.getId(); + int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase())); + System.out.println("更新表单文件编号回填:" + update + "--->" + processNum + " 文件id" + s); + String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; + int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, changAfterFileId)); + System.out.println("更新模型文件编号回填:" + update2 + "--->" + processNum + " 文件id" + changAfterFileId); + } - if (UtilString.isNotEmpty(levelFour)) { - levelFour = levelFour.substring(levelFour.lastIndexOf(".") + 1, levelFour.length()); - } else { - levelFour = "00"; - } + } + } + } - levelnum = levelOne + "." + levelTwo + "." + levelThree +"."+levelFour; - } + if (dataList.size() != 0) { + // 查询出主表数据 + BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId); + + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(bindId); + String levelnum = null; + String orgCode = null; + String regionCode = null; + String productCode = null; + if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) { + // 根据主表数据查询出权限的编码 + String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' " + + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; + RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), + mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), + mainData.getString("LEVEL_3_PROCESS_NAME"), + mainData.getString("ADAPT_REGION_NAME"), + mainData.getString("APPLICABLE_PRODUCT"))); + // 获取所有的流程编码 如果为空则为00 + orgCode = authData.getString("ORGCODE"); + String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); + String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); + String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); + regionCode = authData.getString("ADAPT_REGION_CODE"); + productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); + + // 依次生成编号~并回填 修改 + if (UtilString.isNotEmpty(levelTwo)) { + levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); + } else { + levelTwo = "00"; + } + if (UtilString.isNotEmpty(levelThree)) { + levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); + } else { + levelThree = "00"; + } + levelnum = levelOne + "." + levelTwo + "." + levelThree; + } else { + // 根据主表数据查询出权限的编码 + String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and LEVEL_4_PROCESS_NAME='%s' " + + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; + RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), + mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), + mainData.getString("LEVEL_3_PROCESS_NAME"), + mainData.getString("LEVEL_4_PROCESS_NAME"), + mainData.getString("ADAPT_REGION_NAME"), + mainData.getString("APPLICABLE_PRODUCT"))); + // 获取所有的流程编码 如果为空则为00 + orgCode = authData.getString("ORGCODE"); + String levelOne = authData.getString("LEVEL_1_PROCESS_ID"); + String levelTwo = authData.getString("LEVEL_2_PROCESS_ID"); + String levelThree = authData.getString("LEVEL_3_PROCESS_ID"); + String levelFour = authData.getString("LEVEL_4_PROCESS_ID"); + regionCode = authData.getString("ADAPT_REGION_CODE"); + productCode = authData.getString("APPLICABLE_PRODUCT_CODE"); + + // 依次生成编号~并回填 修改 + if (UtilString.isNotEmpty(levelTwo)) { + levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); + } else { + levelTwo = "00"; + } + if (UtilString.isNotEmpty(levelThree)) { + levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); + } else { + levelThree = "00"; + } + + if (UtilString.isNotEmpty(levelFour)) { + levelFour = levelFour.substring(levelFour.lastIndexOf(".") + 1, levelFour.length()); + } else { + levelFour = "00"; + } + + levelnum = levelOne + "." + levelTwo + "." + levelThree + "." + levelFour; + } - String updateSql = "update BO_ACT_COE_PUBLISH_N set PUBLISH_NUMBER='%s' where ID = '%s'"; - for (BO nowData : dataList) { - String publish_numner = nowData.getString("PUBLISH_NUMBER"); - if(UtilString.isEmpty(publish_numner)) { - String publishfileid = nowData.getString("PUBLISHFILEID"); - RowMap rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" - + publishfileid + "' AND" + " ISUSE = 1 "); - String name = "00R00"; - String fileName = "file_number"; - String plver = "1.0"; - if (rowMap != null) { - String plcategory = rowMap.getString("PLMETHODID"); - String plvers = rowMap.getString("PLVER"); - String number = getProcessNum(levelnum, orgCode,plcategory); - - if (plcategory.contains("process")) { - name = "/P" + number; - } else if (plcategory.contains("control")) { - name = "/R" + number; - } else if (plcategory.contains("form")) { - fileName = "form_number"; - name = "/T" + number; - } - if (!"".equals(plvers)) { - if (plvers.length() > 1) { - plver = plvers.substring(0, 1) + "." - + plvers.substring(plvers.length() - 1, plvers.length()); - } else { - plver = plvers.substring(0, 1) + ".0"; - } - } - } - - String processNum = levelnum + name + "V" + plver +"-"+orgCode + regionCode + productCode; - String s = nowData.getId(); - int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase())); - System.out.println("表单文件编号回填:" + update + "--->" + processNum); - String publishFileId = nowData.getString("PUBLISHFILEID"); - String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; - int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, publishFileId)); - System.out.println("模型文件编号回填:" + update2 + "--->" + processNum); - // 更新流程绩效的编号----规则没看懂 - } - } - } - return "OK"; - } + String updateSql = "update BO_ACT_COE_PUBLISH_N set PUBLISH_NUMBER='%s' where ID = '%s'"; + for (BO nowData : dataList) { + String publish_numner = nowData.getString("PUBLISH_NUMBER"); + if (UtilString.isEmpty(publish_numner)) { + String publishfileid = nowData.getString("PUBLISHFILEID"); + RowMap rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" + + publishfileid + "' AND" + " ISUSE = 1 "); + String name = "00R00"; + String fileName = "file_number"; + String plver = "1.0"; + if (rowMap != null) { + String plcategory = rowMap.getString("PLMETHODID"); + String plvers = rowMap.getString("PLVER"); + String number = getProcessNum(levelnum, orgCode, plcategory); + + if (plcategory.contains("process")) { + name = "/P" + number; + } else if (plcategory.contains("control")) { + name = "/R" + number; + } else if (plcategory.contains("form")) { + fileName = "form_number"; + name = "/T" + number; + } + if (!"".equals(plvers)) { + if (plvers.length() > 1) { + plver = plvers.substring(0, 1) + "." + + plvers.substring(plvers.length() - 1, plvers.length()); + } else { + plver = plvers.substring(0, 1) + ".0"; + } + } + } + + String processNum = levelnum + name + "V" + plver + "-" + orgCode + regionCode + productCode; + String s = nowData.getId(); + int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase())); + System.out.println("表单文件编号回填:" + update + "--->" + processNum); + String publishFileId = nowData.getString("PUBLISHFILEID"); + String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; + int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, publishFileId)); + System.out.println("模型文件编号回填:" + update2 + "--->" + processNum); + // 更新流程绩效的编号----规则没看懂 + } + } + } + return "OK"; + } } 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 12fa93d0..fe986ab4 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 @@ -1,31 +1,5 @@ package com.actionsoft.apps.coe.pal.publisher.client.web; -import java.io.File; -import java.sql.Timestamp; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.LinkedBlockingDeque; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -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.exception.AWSDataAccessException; -import com.actionsoft.sdk.local.api.BOQueryAPI; -import org.apache.commons.lang.StringUtils; - import com.actionsoft.apps.coe.pal.constant.CoEConstant; import com.actionsoft.apps.coe.pal.cooperation.CoeCooperationAPIManager; import com.actionsoft.apps.coe.pal.cooperation.cache.CooperationCache; @@ -47,6 +21,8 @@ import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager; import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepository; import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao; +import com.actionsoft.apps.coe.pal.pal.repository.designer.manage.CoeDesignerAPIManager; +import com.actionsoft.apps.coe.pal.pal.repository.designer.model.BaseModel; import com.actionsoft.apps.coe.pal.pal.repository.designer.util.CoeDesignerUtil; import com.actionsoft.apps.coe.pal.pal.repository.model.CoeProcessLevelAutoBean; import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; @@ -86,16 +62,14 @@ 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.Base64; -import com.actionsoft.bpms.util.DBSql; -import com.actionsoft.bpms.util.UUIDGener; -import com.actionsoft.bpms.util.UtilDate; -import com.actionsoft.bpms.util.UtilFile; -import com.actionsoft.bpms.util.UtilString; +import com.actionsoft.bpms.util.*; +import com.actionsoft.exception.AWSDataAccessException; import com.actionsoft.exception.AWSException; import com.actionsoft.exception.AWSQuotaException; import com.actionsoft.i18n.I18nRes; import com.actionsoft.sdk.local.SDK; import com.actionsoft.sdk.local.api.AppAPI; +import com.actionsoft.sdk.local.api.BOQueryAPI; import com.actionsoft.sdk.local.api.ProcessExecuteQuery; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -104,6 +78,15 @@ import com.google.common.base.Joiner; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import org.apache.commons.lang.StringUtils; + +import java.io.File; +import java.sql.Timestamp; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; /** * 流程发布App @@ -1914,7 +1897,7 @@ public class ProcessPublishWeb extends ActionWeb { if (stopBo != null) { - String stopId=stopBo.getString("STOPFILEID"); + String stopId = stopBo.getString("STOPFILEID"); /******************** 附件 **********************/ // 文件或节点自身附件 JSONArray js = new JSONArray(); @@ -3409,9 +3392,9 @@ public class ProcessPublishWeb extends ActionWeb { PALRepositoryModel stopmodel = PALRepositoryCache.getCache().get(stopBo.getString("STOPFILEID")); - String stopId=stopBo.getString("STOPFILEID"); + String stopId = stopBo.getString("STOPFILEID"); - String methodId=stopmodel.getMethodId(); + String methodId = stopmodel.getMethodId(); /******************** 附件 ************************/ // 文件或节点自身附件 @@ -3524,7 +3507,6 @@ public class ProcessPublishWeb extends ActionWeb { obj.put("upfileId", js); - } } } @@ -4339,7 +4321,7 @@ public class ProcessPublishWeb extends ActionWeb { * @param datas * @return */ - public String getLevelByData(UserContext me, String wsId, String type, String datas,String processInstId) { + public String getLevelByData(UserContext me, String wsId, String type, String datas, String processInstId) { ResponseObject ro = ResponseObject.newOkResponse(); JSONArray palarr = JSON.parseArray(datas); JSONObject result = new JSONObject(); @@ -4366,9 +4348,9 @@ public class ProcessPublishWeb extends ActionWeb { String methodId = paljb.getString("methodId"); PALRepositoryModel model = PALRepositoryCache.getCache().get(id); - ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(processInstId); - if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ - //ID获取L1 L2 L3 的值 + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processInstId); + if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) { + //ID获取L1 L2 L3 的值 List resulttmp = DBSql.getMaps(String.format("select PROPERTYID,PROPERTYVALUE from APP_ACT_COE_PAL_PROP where PROPERTYID in ('Process_Architecture_L1','Process_Architecture_L2','Process_Architecture_L3') AND PLID='%s'", id)); for (RowMap tmp : resulttmp) { String key = tmp.getString("PROPERTYID"); @@ -4389,7 +4371,7 @@ public class ProcessPublishWeb extends ActionWeb { } result.put(key, value); } - }else{ + } else { //ID获取L1 L2 L3 L4 的值 List resulttmp = DBSql.getMaps(String.format("select PROPERTYID,PROPERTYVALUE from APP_ACT_COE_PAL_PROP where PROPERTYID in ('Process_Architecture_L1','Process_Architecture_L2','Process_Architecture_L3','Process_Architecture_L4') AND PLID='%s'", id)); for (RowMap tmp : resulttmp) { @@ -4435,22 +4417,22 @@ public class ProcessPublishWeb extends ActionWeb { * @param product * @return */ - public String getApproveInfos(UserContext me, String level1, String level2, String level3,String level4, String company, String region, String product, String bindid) { + public String getApproveInfos(UserContext me, String level1, String level2, String level3, String level4, String company, String region, String product, String bindid) { - ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(bindid); - if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(bindid); + if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) { //l1 l2 l3 l4 保存到表里 DBSql.update(String.format("update BO_ACT_COE_PUBLISH set LEVEL_1_PROCESS_NAME='%s',LEVEL_2_PROCESS_NAME='%s',LEVEL_3_PROCESS_NAME='%s' where BINDID='%s'", level1, level2, level3, bindid)); String sql = "select AUDITOR1,AUDITOR_NO_1,L1_SP,AUDITOR2,AUDITOR_NO_2,L2_SP,AUDITOR3,AUDITOR_NO_3,L3_SP from BO_ACT_AUTH_INFO where LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and ORGNAME='%s' and ADAPT_REGION_NAME='%s' and APPLICABLE_PRODUCT='%s'"; - RowMap result = DBSql.getMap(String.format(sql, level1, level2, level3,company, region, product)); + RowMap result = DBSql.getMap(String.format(sql, level1, level2, level3, company, region, product)); ResponseObject ro = ResponseObject.newOkResponse(); ro.put("data", result == null ? "" : result); return ro.toString(); - }else{ + } else { //l1 l2 l3 l4 保存到表里 - DBSql.update(String.format("update BO_ACT_COE_PUBLISH set LEVEL_1_PROCESS_NAME='%s',LEVEL_2_PROCESS_NAME='%s',LEVEL_3_PROCESS_NAME='%s',LEVEL_4_PROCESS_NAME='%s' where BINDID='%s'", level1, level2, level3,level4, bindid)); - String sql = "select AUDITOR1,AUDITOR_NO_1,L1_SP,AUDITOR2,AUDITOR_NO_2,L2_SP,AUDITOR3,AUDITOR_NO_3,L3_SP from BO_ACT_AUTH_INFO where LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and LEVEL_4_PROCESS_NAME='%s' and ORGNAME='%s' and ADAPT_REGION_NAME='%s' and APPLICABLE_PRODUCT='%s'"; - RowMap result = DBSql.getMap(String.format(sql, level1, level2, level3, level4,company, region, product)); + DBSql.update(String.format("update BO_ACT_COE_PUBLISH set LEVEL_1_PROCESS_NAME='%s',LEVEL_2_PROCESS_NAME='%s',LEVEL_3_PROCESS_NAME='%s',LEVEL_4_PROCESS_NAME='%s' where BINDID='%s'", level1, level2, level3, level4, bindid)); + String sql = "select AUDITOR1,AUDITOR_NO_1,L1_SP,AUDITOR2,AUDITOR_NO_2,L2_SP,AUDITOR3,AUDITOR_NO_3,L3_SP,AUDITOR4,AUDITOR_NO_4,L4_SP from BO_ACT_AUTH_INFO where LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s' and LEVEL_4_PROCESS_NAME='%s' and ORGNAME='%s' and ADAPT_REGION_NAME='%s' and APPLICABLE_PRODUCT='%s'"; + RowMap result = DBSql.getMap(String.format(sql, level1, level2, level3, level4, company, region, product)); ResponseObject ro = ResponseObject.newOkResponse(); ro.put("data", result == null ? "" : result); return ro.toString(); @@ -4570,8 +4552,8 @@ public class ProcessPublishWeb extends ActionWeb { */ public String getProcessManifest(String publishFileId, String fileName) { BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(publishFileId, 0); - if(defineModel==null){ - return ResponseObject.newErrResponse("当前模型名称:【"+fileName+"】当前不存在活动节点
请配置活动节点后再进行查看活动清单操作!").toString(); + if (defineModel == null) { + return ResponseObject.newErrResponse("当前模型名称:【" + fileName + "】当前不存在活动节点
请配置活动节点后再进行查看活动清单操作!").toString(); } String definition = defineModel.getDefinition(); JSONObject definitionJo = JSONObject.parseObject(definition); @@ -4605,7 +4587,7 @@ public class ProcessPublishWeb extends ActionWeb { * @param shape 形状 * @param fileName 文件名称 */ - private void setShapeAttr(ArrayList bos, String publishFileId, JSONObject shape, String fileName , List processLevel) { + private void setShapeAttr(ArrayList bos, String publishFileId, JSONObject shape, String fileName, List processLevel) { //只需要活动节点 if (shape.containsKey("category") && !shape.getString("title").equals("开始/结束")) { BO bo = new BO(); @@ -4666,7 +4648,7 @@ public class ProcessPublishWeb extends ActionWeb { if (publishNBO.size() > 0) { for (BO onePublishN : publishNBO) { - if(onePublishN.getString("TASKID").equals("submit_create")){ + if (onePublishN.getString("TASKID").equals("submit_create")) { return ResponseObject.newWarnResponse("请先创建手册!!").toString(); } String plId = onePublishN.getString("PUBLISHFILEID"); @@ -4694,7 +4676,7 @@ public class ProcessPublishWeb extends ActionWeb { } } - } else if(type.equals("2")) { + } else if (type.equals("2")) { //发布变更文件 List publishCBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").bindId(processInstId).list(); @@ -4702,7 +4684,7 @@ public class ProcessPublishWeb extends ActionWeb { for (BO onePublishC : publishCBO) { - if(onePublishC.getString("TASKID")=="submit_create"){ + if (onePublishC.getString("TASKID") == "submit_create") { return ResponseObject.newWarnResponse("请先创建手册!!").toString(); } @@ -4731,7 +4713,7 @@ public class ProcessPublishWeb extends ActionWeb { } } - }else if(type.equals("3")) { + } else if (type.equals("3")) { //发布变更文件 List publishSBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S").bindId(processInstId).list(); @@ -4769,7 +4751,7 @@ public class ProcessPublishWeb extends ActionWeb { } } } catch (AWSDataAccessException e) { - ro.put("result","创建手册失败!!!"); + ro.put("result", "创建手册失败!!!"); e.printStackTrace(); } return ro.toString(); @@ -4789,8 +4771,8 @@ public class ProcessPublishWeb extends ActionWeb { } ResponseObject ro = ResponseObject.newOkResponse(); try { - ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(processInstId); - if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processInstId); + if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) { //ID获取L1 L2 L3 的值 List resulttmp = DBSql.getMaps(String.format("select PROPERTYID,PROPERTYVALUE from APP_ACT_COE_PAL_PROP where PROPERTYID in ('Process_Architecture_L1','Process_Architecture_L2','Process_Architecture_L3') AND PLID='%s'", uuid)); for (RowMap tmp : resulttmp) { @@ -4800,7 +4782,7 @@ public class ProcessPublishWeb extends ActionWeb { } ro.put("data", result); ro.put("info", iswrong); - }else{ + } else { //ID获取L1 L2 L3 L4 的值 List resulttmp = DBSql.getMaps(String.format("select PROPERTYID,PROPERTYVALUE from APP_ACT_COE_PAL_PROP where PROPERTYID in ('Process_Architecture_L1','Process_Architecture_L2','Process_Architecture_L3','Process_Architecture_L4') AND PLID='%s'", uuid)); for (RowMap tmp : resulttmp) { @@ -4821,6 +4803,7 @@ public class ProcessPublishWeb extends ActionWeb { /** * 中断任务操作 + * * @param uuid * @param processInstId * @return @@ -4831,10 +4814,10 @@ public class ProcessPublishWeb extends ActionWeb { return ResponseObject.newErrResponse("流程实例未找到").toString(); } int count = DBSql.update("UPDATE BO_ACT_EXECUTIVE_TASK SET TASKSTATUS='2' WHERE TASKID ='" + taskId + "'"); - if(count>0){ - ro.put("result","ok"); - }else{ - ro.put("result","error"); + if (count > 0) { + ro.put("result", "ok"); + } else { + ro.put("result", "error"); } return ro.toString(); } diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java index 8d1f07b0..9ecc9627 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java @@ -22,7 +22,6 @@ import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; import com.actionsoft.bpms.bpmn.engine.listener.InterruptListener; import com.actionsoft.bpms.bpmn.engine.listener.InterruptListenerInterface; -import com.actionsoft.bpms.bpmn.engine.listener.ListenerConst; import com.actionsoft.bpms.commons.database.RowMap; import com.actionsoft.bpms.commons.mvc.view.ResponseObject; import com.actionsoft.bpms.util.DBSql; @@ -51,7 +50,6 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int /** - * * @param param * @return * @throws Exception @@ -60,36 +58,34 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int public boolean execute(ProcessExecutionContext param) throws Exception { - - List gridNData=SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(param.getProcessInstance().getId()).list(); - String bindid=param.getProcessInstance().getId(); - StringBuffer sb=new StringBuffer(); - StringBuffer sb1=new StringBuffer(); + List gridNData = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(param.getProcessInstance().getId()).list(); + String bindid = param.getProcessInstance().getId(); + StringBuffer sb = new StringBuffer(); + StringBuffer sb1 = new StringBuffer(); if (gridNData.size() > 0) { for (BO rowData : gridNData) { //下面一行示例代码,可以获取Ajax子表的每行记录的新建状态 String publishfileid = String.valueOf(rowData.getString("PUBLISHFILEID"));//注意:isCreate并不是BO的一个字段,该字段是有接口上层赋值的 - verifyPublish(publishfileid,rowData,bindid,sb,sb1,"1"); + verifyPublish(publishfileid, rowData, bindid, sb, sb1, "1"); } } //发布变更 - List gridCData=SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(param.getProcessInstance().getId()).list(); + List gridCData = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(param.getProcessInstance().getId()).list(); if (gridCData.size() > 0) { for (BO rowData : gridCData) { //下面一行示例代码,可以获取Ajax子表的每行记录的新建状态 String publishfileid = String.valueOf(rowData.getString("CHANGEDFILEIDNEW"));//注意:isCreate并不是BO的一个字段,该字段是有接口上层赋值的 - verifyPublish(publishfileid,rowData,bindid,sb,sb1,"2"); - } + verifyPublish(publishfileid, rowData, bindid, sb, sb1, "2"); } + } return true; } - - public void verifyPublish(String publishfileid,BO rowData,String bindid,StringBuffer sb,StringBuffer sb1,String type){ + public void verifyPublish(String publishfileid, BO rowData, String bindid, StringBuffer sb, StringBuffer sb1, String type) { defineQualityCheck(publishfileid); // 校验 PALRepositoryModel model = PALRepositoryCache.getCache().get(publishfileid); @@ -102,135 +98,132 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int for (PALRepositoryPropertyModel propertyModel : oldPropertyList) { //获取文件属性中支持文件 - if(propertyModel.getPropertyId().equals("support_files")){ + if (propertyModel.getPropertyId().equals("support_files")) { //获取关联模型id - String relationFileId= null; + String relationFileId = null; try { - String propertyValue = propertyModel.getPropertyValue(); - System.err.println("propertyValue========>"+propertyValue); - if(UtilString.isNotEmpty(propertyValue)&&propertyValue.contains("{")) { - relationFileId = JSONObject.parseObject(propertyModel.getPropertyValue()).getString("relationFileId"); - } + String propertyValue = propertyModel.getPropertyValue(); + System.err.println("propertyValue========>" + propertyValue); + if (UtilString.isNotEmpty(propertyValue) && propertyValue.contains("{")) { + relationFileId = JSONObject.parseObject(propertyModel.getPropertyValue()).getString("relationFileId"); + } } catch (Exception e) { - // e.printStackTrace(); + // e.printStackTrace(); throw new BPMNError("0313", sb.append("模型名称:").append(model.getName()).append("关联支持文件异常,请联系管理员!!!").append("
").toString()); } //获取关联表单模型id - List> fileElements ; - if(UtilString.isNotEmpty(relationFileId)){ + List> fileElements; + if (UtilString.isNotEmpty(relationFileId)) { - int len=relationFileId.split(",").length; + int len = relationFileId.split(",").length; - String[] splitRelationFileId=relationFileId.split(","); + String[] splitRelationFileId = relationFileId.split(","); - //如果当前使用中并且已发布给与通过 - if(splitRelationFileId.length>0){ + //如果当前使用中并且已发布给与通过 + if (splitRelationFileId.length > 0) { - for(int i=0;i"); - } - //如果当前不是使用中查找使用中版本 - }else if(isUse==false && publish==true){ - - List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); - if(versions.size()>0) { - for(int k=0;k"); - } - } - } - } - }else if(isUse==false && publish==false) { - - List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); - if(versions.size()>0) { - for(int k=0;k"); - } - } - } - } - + if (publishNrowMap == null && publishCrowMap == null) { + sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("
"); } - if(onemodel.getMethodId().equals("data.form")){ - fileElements = CoeDesignerUtil.getShapeMessageJson4(splitRelationFileId[i]); + //如果当前不是使用中查找使用中版本 + } else if (isUse == false && publish == true) { - for (Map shape : fileElements) { - String tempShapeId = shape.get("id").toString(); + List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); + if (versions.size() > 0) { + for (int k = 0; k < versions.size(); k++) { - UpFileDao dao = new UpFileDao(); - // 文件:根据relationFileId 和 文件类型 查询 - List list2; + boolean isUseV = versions.get(k).isUse(); + boolean isPublishV = versions.get(k).isPublish(); - list2= dao.search(splitRelationFileId[i], tempShapeId, "s"); + if (isUseV == true && isPublishV == false) { - if(list2.size()==0){ - String name=""; - if (type == "1") { - name=rowData.getString("PUBLISHFILENAME"); - } else { - name=rowData.getString("CHANGEFILENAME"); + fileElements = CoeDesignerUtil.getShapeMessageJson4(onemodel.getId()); + + RowMap publishCrowMap = DBSql.getMap("SELECT T1.* FROM BO_ACT_COE_PUBLISH_C T1 LEFT JOIN APP_ACT_COE_PAL_REPOSITORY T2 on T1.CHANGEDFILEIDNEW=T2.ID WHERE T1.BINDID=? AND T1.CHANGEDFILEIDNEW=? AND T2.ISPUBLISH=0", bindid, splitRelationFileId[0]); + + + RowMap publishNrowMap = DBSql.getMap("SELECT T1.* FROM BO_ACT_COE_PUBLISH_N T1 LEFT JOIN APP_ACT_COE_PAL_REPOSITORY T2 on T1.PUBLISHFILEID=T2.ID WHERE T1.BINDID=? AND T1.PUBLISHFILEID=? AND T2.ISPUBLISH=0", bindid, splitRelationFileId[0]); + + if (publishNrowMap == null && publishCrowMap == null) { + sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("
"); } - sb.append(name).append("关联模型名称:").append("
").append("【").append(shape.get("plName")).append("】").append("节点名称:").append("【"+shape.get("name")+"】").append("未上传附件,请检查!!!").append("
").append(","); } - } } + } else if (isUse == false && publish == false) { + + List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); + if (versions.size() > 0) { + for (int k = 0; k < versions.size(); k++) { + + boolean isUseV = versions.get(k).isUse(); + boolean isPublishV = versions.get(k).isPublish(); + + if (isUseV == true && isPublishV == false) { + + fileElements = CoeDesignerUtil.getShapeMessageJson4(onemodel.getId()); + RowMap publishCrowMap = DBSql.getMap("SELECT T1.* FROM BO_ACT_COE_PUBLISH_C T1 LEFT JOIN APP_ACT_COE_PAL_REPOSITORY T2 on T1.CHANGEDFILEIDNEW=T2.ID WHERE T1.BINDID=? AND T1.CHANGEDFILEIDNEW=? AND T2.ISPUBLISH=0", bindid, splitRelationFileId[0]); + RowMap publishNrowMap = DBSql.getMap("SELECT T1.* FROM BO_ACT_COE_PUBLISH_N T1 LEFT JOIN APP_ACT_COE_PAL_REPOSITORY T2 on T1.PUBLISHFILEID=T2.ID WHERE T1.BINDID=? AND T1.PUBLISHFILEID=? AND T2.ISPUBLISH=0", bindid, splitRelationFileId[0]); - + if (publishNrowMap == null && publishCrowMap == null) { + sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("
"); + } + } + } + } } + if (onemodel.getMethodId().equals("data.form")) { + fileElements = CoeDesignerUtil.getShapeMessageJson4(splitRelationFileId[i]); + + for (Map shape : fileElements) { + String tempShapeId = shape.get("id").toString(); + + UpFileDao dao = new UpFileDao(); + // 文件:根据relationFileId 和 文件类型 查询 + List list2; + + list2 = dao.search(splitRelationFileId[i], tempShapeId, "s"); + + if (list2.size() == 0) { + String name = ""; + if (type == "1") { + name = rowData.getString("PUBLISHFILENAME"); + } else { + name = rowData.getString("CHANGEFILENAME"); + } + sb.append(name).append("关联模型名称:").append("
").append("【").append(shape.get("plName")).append("】").append("节点名称:").append("【" + shape.get("name") + "】").append("未上传附件,请检查!!!").append("
").append(","); + } + + } + } + } } + } + } } @@ -244,18 +237,18 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int } - /** * 判断文件属性、数据属性校验 + * * @param uuid * @return */ - public void defineQualityCheck(String uuid){ + public void defineQualityCheck(String uuid) { PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid); - String vison = getVison(uuid); + String vison = getVison(uuid); List elements_fei = getShapeJsonToJsonObject2(vison); - StringBuffer sb6= new StringBuffer(); + StringBuffer sb6 = new StringBuffer(); StringBuilder sbs = new StringBuilder(); List list_linker = new LinkedList<>(); //连线数据增加 @@ -267,7 +260,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int String title = o.getString("title"); if (!shapeName.equals("linker")) { list_linker.add(shapeId); - json.put(shapeId,title); + json.put(shapeId, title); } } @@ -283,23 +276,23 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int String to_id = to.getString("id"); if (UtilString.isNotEmpty(from_id)) { list_linker.remove(from_id); - }else { + } else { JSONObject definition = JSONObject.parseObject(vison); JSONObject elements = definition.getJSONObject("elements"); JSONObject string = elements.getJSONObject(to_id); String title = string.getString("title"); - sb6.append("\""+title+"\"").append("连线没有入线"); - list_linker.add("\""+title+"\""+"连线没有入线"); + sb6.append("\"" + title + "\"").append("连线没有入线"); + list_linker.add("\"" + title + "\"" + "连线没有入线"); } if (UtilString.isNotEmpty(to_id)) { list_linker.remove(to_id); - }else { + } else { JSONObject definition = JSONObject.parseObject(vison); JSONObject elements = definition.getJSONObject("elements"); JSONObject string = elements.getJSONObject(from_id); String title = string.getString("title"); - sb6.append("\""+title+"\"").append("连线没有出线"); - list_linker.add("\""+title+"\""+"连线没有出线"); + sb6.append("\"" + title + "\"").append("连线没有出线"); + list_linker.add("\"" + title + "\"" + "连线没有出线"); } } //System.out.println("m的值>>>>>>>>>>>" + ms); @@ -316,9 +309,9 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int sb6.append("校验未通过,请检查模型是否都已连线!"); sbs.append(sb6); } - if (sbs.length()>0){ + /*if (sbs.length()>0){ throw new BPMNError("0313", sbs.toString()); - } + }*/ /************************************文件属性校验************************************/ ResponseObject ro = ResponseObject.newOkResponse(); @@ -338,13 +331,14 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int List propertys = dao.getPropertysByPlid(uuid, null); - Boolean flag1=true; - Boolean flag2=true; + Boolean flag1 = true; + Boolean flag2 = true; StringBuffer sb = new StringBuffer(); - StringBuffer sb1=new StringBuffer(); - StringBuffer sb2=new StringBuffer(); - StringBuffer sb3=new StringBuffer(); - StringBuffer sb4 = new StringBuffer();; + StringBuffer sb1 = new StringBuffer(); + StringBuffer sb2 = new StringBuffer(); + StringBuffer sb3 = new StringBuffer(); + StringBuffer sb4 = new StringBuffer(); + ; sb.append("质量校验
"); @@ -370,16 +364,16 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int flag1 = UtilString.isNotEmpty(property.getPropertyValue()); } if (!flag1) {// 校验不通过 - sb1.append("''"+attributeModel.getTitle()+"''").append(","); + sb1.append("''" + attributeModel.getTitle() + "''").append(","); flag1 = false; } } - if(sb1.length()>0){ - sb.append("模型名称:【"+model.getName()+"】
"); + if (sb1.length() > 0) { + sb.append("模型名称:【" + model.getName() + "】
"); sb.append("文件属性:
"); - sb.append(sb1.substring(0, sb1.length()-1)); + sb.append(sb1.substring(0, sb1.length() - 1)); sb.append("未填写,请检查!").append("
"); } @@ -430,27 +424,26 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int flag2 = UtilString.isNotEmpty(value); } if (!flag2) { - sb2.append("节点名称:"+"【"+text+"】").append("''"+attrModel.getNewTitle()+"''").append("
"); + sb2.append("节点名称:" + "【" + text + "】").append("''" + attrModel.getNewTitle() + "''").append("
"); } } } } - if(sb2.length()>0){ + if (sb2.length() > 0) { sb.append("数据属性:
"); - sb.append(sb2.substring(0, sb2.length()-1)); + sb.append(sb2.substring(0, sb2.length() - 1)); sb.append("未填写,请检查!"); } - int index=sb.indexOf("未填写"); - if(index!=-1){ - ro.put("result","error"); + int index = sb.indexOf("未填写"); + if (index != -1) { + ro.put("result", "error"); sb1 = sb.deleteCharAt(sb.length() - 1); throw new BPMNError("0313", sb1.toString()); } - } public static List getShapeJsonToJsonObject2(String messageJson) { @@ -462,7 +455,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int String key = ite.next(); JSONObject shape = elements.getJSONObject(key); String name = shape.getString("name"); - if ("linker".equals(name)){ + if ("linker".equals(name)) { JSONObject jsonObj = new JSONObject(); jsonObj.put("id", key); jsonObj.put("name", shape.getString("name")); @@ -529,10 +522,11 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int /** * 根据uuid寻找对应的json文件即图形文件 + * * @param uuid 文件id * @return json文件 */ - public String getVison(String uuid) { + public String getVison(String uuid) { List> fileElements = CoeDesignerUtil.getShapeMessageJson4(uuid); JSONObject definition = new JSONObject(new LinkedHashMap<>()); if (fileElements.size() > 0) { @@ -541,7 +535,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(uuid, 0); String define = defineModel.getDefinition(); - definition = JSONObject.parseObject(define); + definition = JSONObject.parseObject(define); } } diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/SubFormAfterSave.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/SubFormAfterSave.java index 809ad534..377b05b1 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/SubFormAfterSave.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/SubFormAfterSave.java @@ -1,8 +1,5 @@ package com.actionsoft.apps.coe.pal.publisher.event; -import java.util.ArrayList; -import java.util.List; - import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; import com.actionsoft.apps.coe.pal.publisher.constant.PublisherConstant; @@ -18,11 +15,13 @@ import com.actionsoft.bpms.util.UUIDGener; import com.actionsoft.sdk.local.SDK; import com.actionsoft.sdk.local.api.BOQueryAPI; import org.apache.commons.lang.StringUtils; -import org.docx4j.wml.P; + +import java.util.ArrayList; +import java.util.List; public class SubFormAfterSave extends ExecuteListener { - - public String getDescription() { + + public String getDescription() { return "子表单保存后,拆分成多条数据保存到数据库中"; } @@ -35,7 +34,7 @@ public class SubFormAfterSave extends ExecuteListener { } public void execute(ProcessExecutionContext param) throws Exception { - String processInstId = param.getProcessInstance().getId(); + String processInstId = param.getProcessInstance().getId(); //记录ID String boId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BOID); //表单ID @@ -47,85 +46,85 @@ public class SubFormAfterSave extends ExecuteListener { String bindId = formData.getBindId(); String uid = formData.getCreateUser(); if (boName.equals("BO_ACT_COE_PUBLISH_N")) { - // 保存前的表单数据,注意:该参数针对不同场景获取内容会有所不同 + // 保存前的表单数据,注意:该参数针对不同场景获取内容会有所不同 // 主表场景获取主表数据;子表场景获取子表数据;获取不同的数据请使用BOQueryAPI获取 String publishFileId = formData.getString("PUBLISHFILEID"); String publishDesc = formData.getString("PUBLISHDESC"); - + BOQueryAPI boQueryAPI = SDK.getBOAPI().query(boName); boQueryAPI = boQueryAPI.bindId(bindId); List list = boQueryAPI.list(); StringBuilder boFileIds = new StringBuilder(); for (BO bo : list) { - if (!bo.getId().equals(formData.getId())) { - boFileIds.append(bo.get("PUBLISHFILEID")); - } + if (!bo.getId().equals(formData.getId())) { + boFileIds.append(bo.get("PUBLISHFILEID")); + } } String existedBoFileIds = boFileIds.toString(); if (publishFileId != null && publishFileId.length() > 0) { - String[] publishFileIds = publishFileId.split(","); - List boList = new ArrayList(); - for (String fileId : publishFileIds) { - if (!existedBoFileIds.contains(fileId)) { - PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId); - if (repositoryModel != null) { - BO newBO = new BO(); - newBO.setId(UUIDGener.getUUID()); - newBO.set("PUBLISTHTYPE", "N"); - newBO.set("PUBLISHFILEID", fileId); - newBO.set("PUBLISHFILENAME", repositoryModel.getName()); - newBO.set("PUBLISHDESC", publishDesc); - boList.add(newBO); - } - } - } - SDK.getBOAPI().create(boName, boList, bindId, uid); - // 该记录是否新建的状态,由于机制调整,BO对象中的ID是不为空的,不能通过ID判断记录是否处于新建状态还是修改状态 + String[] publishFileIds = publishFileId.split(","); + List boList = new ArrayList(); + for (String fileId : publishFileIds) { + if (!existedBoFileIds.contains(fileId)) { + PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId); + if (repositoryModel != null) { + BO newBO = new BO(); + newBO.setId(UUIDGener.getUUID()); + newBO.set("PUBLISTHTYPE", "N"); + newBO.set("PUBLISHFILEID", fileId); + newBO.set("PUBLISHFILENAME", repositoryModel.getName()); + newBO.set("PUBLISHDESC", publishDesc); + boList.add(newBO); + } + } + } + SDK.getBOAPI().create(boName, boList, bindId, uid); + // 该记录是否新建的状态,由于机制调整,BO对象中的ID是不为空的,不能通过ID判断记录是否处于新建状态还是修改状态 boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE); if (isCreate) { - SDK.getBOAPI().remove(boName, boId); + SDK.getBOAPI().remove(boName, boId); } } } else if (boName.equals("BO_ACT_COE_PUBLISH_S")) { - BOQueryAPI boQueryAPI = SDK.getBOAPI().query(boName); + BOQueryAPI boQueryAPI = SDK.getBOAPI().query(boName); boQueryAPI = boQueryAPI.bindId(bindId); List list = boQueryAPI.list(); StringBuilder boFileIds = new StringBuilder(); for (BO bo : list) { - if (!bo.getId().equals(formData.getId())) { - boFileIds.append(bo.get("STOPFILEID")); - } + if (!bo.getId().equals(formData.getId())) { + boFileIds.append(bo.get("STOPFILEID")); + } } String existedBoFileIds = boFileIds.toString(); - + String stopFileId = formData.getString("STOPFILEID"); String stopDesc = formData.getString("STOPDESC"); if (stopFileId != null && stopFileId.length() > 0) { - String[] publishFileIds = stopFileId.split(","); - List boList = new ArrayList(); - for (String fileId : publishFileIds) { - if (!existedBoFileIds.contains(fileId)) { - PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId); - if (repositoryModel != null) { - BO newBO = new BO(); - newBO.setId(UUIDGener.getUUID()); - newBO.set("STOPTYPE", "S"); - newBO.set("STOPFILEID", fileId); - newBO.set("STOPFILENAME", repositoryModel.getName()); - newBO.set("STOPDESC", stopDesc); - boList.add(newBO); - } - } - } - - - SDK.getBOAPI().create(boName, boList, bindId, uid); - // 该记录是否新建的状态,由于机制调整,BO对象中的ID是不为空的,不能通过ID判断记录是否处于新建状态还是修改状态 + String[] publishFileIds = stopFileId.split(","); + List boList = new ArrayList(); + for (String fileId : publishFileIds) { + if (!existedBoFileIds.contains(fileId)) { + PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId); + if (repositoryModel != null) { + BO newBO = new BO(); + newBO.setId(UUIDGener.getUUID()); + newBO.set("STOPTYPE", "S"); + newBO.set("STOPFILEID", fileId); + newBO.set("STOPFILENAME", repositoryModel.getName()); + newBO.set("STOPDESC", stopDesc); + boList.add(newBO); + } + } + } + + + SDK.getBOAPI().create(boName, boList, bindId, uid); + // 该记录是否新建的状态,由于机制调整,BO对象中的ID是不为空的,不能通过ID判断记录是否处于新建状态还是修改状态 boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE); if (isCreate) { - SDK.getBOAPI().remove(boName, boId); + SDK.getBOAPI().remove(boName, boId); } - + //保存文件类型到主表 saveFileType(processInstId); } @@ -133,101 +132,102 @@ public class SubFormAfterSave extends ExecuteListener { //保存文件类型到主表 saveFileType(processInstId); - System.out.println(formData.getString("ADAPT_NAME_THE_COMPANY")); - System.out.println(formData.getString("ADAPT_REGION_NAME")); - System.out.println(formData.getString("APPLICABLE_PRODUCT")); + System.out.println(formData.getString("ADAPT_NAME_THE_COMPANY")); + System.out.println(formData.getString("ADAPT_REGION_NAME")); + System.out.println(formData.getString("APPLICABLE_PRODUCT")); /* 根据L1、L2、L3、L4查询权限矩阵所属分部数据 */ - ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(processInstId); - if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ - String sql = "SELECT SSFB FROM BO_ACT_AUTH_INFO WHERE LEVEL_1_PROCESS_NAME=? AND LEVEL_2_PROCESS_NAME=? AND LEVEL_3_PROCESS_NAME=? AND ORGNAME=? AND ADAPT_REGION_NAME=? AND APPLICABLE_PRODUCT=?"; - String ssfb = DBSql.getString(sql, new Object[] { formData.getString("LEVEL_1_PROCESS_NAME"),formData.getString("LEVEL_2_PROCESS_NAME"),formData.getString("LEVEL_3_PROCESS_NAME"),formData.getString("LEVEL_4_PROCESS_NAME"),formData.getString("ADAPT_NAME_THE_COMPANY"),formData.getString("ADAPT_REGION_NAME"),formData.getString("APPLICABLE_PRODUCT") }); + ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processInstId); + if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) { + String sql = "SELECT SSFB FROM BO_ACT_AUTH_INFO WHERE LEVEL_1_PROCESS_NAME=? AND LEVEL_2_PROCESS_NAME=? AND LEVEL_3_PROCESS_NAME=? AND ORGNAME=? AND ADAPT_REGION_NAME=? AND APPLICABLE_PRODUCT=?"; + String ssfb = DBSql.getString(sql, new Object[]{formData.getString("LEVEL_1_PROCESS_NAME"), formData.getString("LEVEL_2_PROCESS_NAME"), formData.getString("LEVEL_3_PROCESS_NAME"), formData.getString("ADAPT_NAME_THE_COMPANY"), formData.getString("ADAPT_REGION_NAME"), formData.getString("APPLICABLE_PRODUCT")}); - if(StringUtils.isNotEmpty(ssfb)){ - int r1 = DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET SSFB='" + ssfb + "'WHERE BINDID ='" + processInstId + "'"); - } - }else{ - String sql = "SELECT SSFB FROM BO_ACT_AUTH_INFO WHERE LEVEL_1_PROCESS_NAME=? AND LEVEL_2_PROCESS_NAME=? AND LEVEL_3_PROCESS_NAME=? AND LEVEL_4_PROCESS_NAME=? AND ORGNAME=? AND ADAPT_REGION_NAME=? AND APPLICABLE_PRODUCT=?"; - String ssfb = DBSql.getString(sql, new Object[] { formData.getString("LEVEL_1_PROCESS_NAME"),formData.getString("LEVEL_2_PROCESS_NAME"),formData.getString("LEVEL_3_PROCESS_NAME"),formData.getString("LEVEL_4_PROCESS_NAME"),formData.getString("ADAPT_NAME_THE_COMPANY"),formData.getString("ADAPT_REGION_NAME"),formData.getString("APPLICABLE_PRODUCT") }); - - if(StringUtils.isNotEmpty(ssfb)){ - int r1 = DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET SSFB='" + ssfb + "'WHERE BINDID ='" + processInstId + "'"); - } - } + if (StringUtils.isNotEmpty(ssfb)) { + int r1 = DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET SSFB='" + ssfb + "'WHERE BINDID ='" + processInstId + "'"); + } + } else { + String sql = "SELECT SSFB FROM BO_ACT_AUTH_INFO WHERE LEVEL_1_PROCESS_NAME=? AND LEVEL_2_PROCESS_NAME=? AND LEVEL_3_PROCESS_NAME=? AND LEVEL_4_PROCESS_NAME=? AND ORGNAME=? AND ADAPT_REGION_NAME=? AND APPLICABLE_PRODUCT=?"; + String ssfb = DBSql.getString(sql, new Object[]{formData.getString("LEVEL_1_PROCESS_NAME"), formData.getString("LEVEL_2_PROCESS_NAME"), formData.getString("LEVEL_3_PROCESS_NAME"), formData.getString("LEVEL_4_PROCESS_NAME"), formData.getString("ADAPT_NAME_THE_COMPANY"), formData.getString("ADAPT_REGION_NAME"), formData.getString("APPLICABLE_PRODUCT")}); + if (StringUtils.isNotEmpty(ssfb)) { + int r1 = DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET SSFB='" + ssfb + "'WHERE BINDID ='" + processInstId + "'"); + } + } } + public String saveFileType(String processInstId) { - List bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list(); - ArrayList arr = new ArrayList(); - if(bolistN.size()>0) { - for (BO bo : bolistN) { - try { - typeList(arr, bo.getString("PUBLISHFILEID")); - } catch (Exception e) { - // TODO: handle exception - } - } - } - List bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list(); - if(bolistC.size()>0) { - for (BO bo : bolistC) { - try { - typeList(arr, bo.getString("CHANGEDFILEIDNEW")); - } catch (Exception e) { - // TODO: handle exception - } - } - - } - - List bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list(); - if(bolistS.size()>0) { - for (BO bo : bolistS) { - try { - typeList(arr, bo.getString("STOPFILEID")); - } catch (Exception e) { - // TODO: handle exception - } - } - } - //保存发布文件的类型到主表 - if((arr.contains("表单模板")||arr.contains("操作指导"))&&!arr.contains("制度模型")&&!arr.contains("EPC模型")&&!arr.contains("泳道图")) { - DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '操作指导/表单模板',SECONDARY_AUDIT_REQUIRED = 'N',LEVEL_1_AUDIT_REQUIRED = 'N' WHERE BINDID = '"+processInstId+"'"); - //SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "操作指导/表单模板"); - }else { - DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '制度模型/EPC模型/泳道图' WHERE BINDID = '"+processInstId+"'"); - //SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "制度模型/EPC模型/泳道图"); - } - return processInstId; + List bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list(); + ArrayList arr = new ArrayList(); + if (bolistN.size() > 0) { + for (BO bo : bolistN) { + try { + typeList(arr, bo.getString("PUBLISHFILEID")); + } catch (Exception e) { + // TODO: handle exception + } + } + } + List bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list(); + if (bolistC.size() > 0) { + for (BO bo : bolistC) { + try { + typeList(arr, bo.getString("CHANGEDFILEIDNEW")); + } catch (Exception e) { + // TODO: handle exception + } + } + + } + + List bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list(); + if (bolistS.size() > 0) { + for (BO bo : bolistS) { + try { + typeList(arr, bo.getString("STOPFILEID")); + } catch (Exception e) { + // TODO: handle exception + } + } + } + //保存发布文件的类型到主表 + if ((arr.contains("表单模板") || arr.contains("操作指导")) && !arr.contains("制度模型") && !arr.contains("EPC模型") && !arr.contains("泳道图")) { + DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '操作指导/表单模板',SECONDARY_AUDIT_REQUIRED = 'N',LEVEL_1_AUDIT_REQUIRED = 'N' WHERE BINDID = '" + processInstId + "'"); + //SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "操作指导/表单模板"); + } else { + DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '制度模型/EPC模型/泳道图' WHERE BINDID = '" + processInstId + "'"); + //SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "制度模型/EPC模型/泳道图"); + } + return processInstId; + } + + public ArrayList typeList(ArrayList arr, String plId) { + String sql = "SELECT PLMETHODID,EXT3 FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '" + plId + "'"; + RowMap map = DBSql.getMap(sql); + if (map != null) { + String methodId = map.getString("PLMETHODID"); + if ("control.policy".equals(methodId)) { + String fileType = map.getString("EXT3"); + if ("I/O_L4".equals(fileType)) { + arr.add("操作指导"); + } else { + arr.add("制度模型"); + } + } else if ("data.form".equals(methodId)) { + arr.add("表单模板"); + } else if ("process.epc".equals(methodId)) { + arr.add("EPC模型"); + } else if ("process.flowchart".equals(methodId)) { + arr.add("泳道图"); + } + + + } + return arr; } - public ArrayList typeList(ArrayList arr,String plId){ - String sql = "SELECT PLMETHODID,EXT3 FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '"+plId+"'"; - RowMap map = DBSql.getMap(sql); - if(map!=null) { - String methodId = map.getString("PLMETHODID"); - if("control.policy".equals(methodId)) { - String fileType = map.getString("EXT3"); - if("I/O_L4".equals(fileType)) { - arr.add("操作指导"); - }else { - arr.add("制度模型"); - } - }else if("data.form".equals(methodId)) { - arr.add("表单模板"); - }else if("process.epc".equals(methodId)) { - arr.add("EPC模型"); - }else if("process.flowchart".equals(methodId)) { - arr.add("泳道图"); - } - - - } - return arr; - } } 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 a17b7565..a19533e4 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 @@ -20,1057 +20,1054 @@ var varDutyDept = "责任部门"; var varDutyUser = "责任人"; // 页码记录 var newPageSetting = { - pageNum:1, - start:1 + pageNum: 1, + start: 1 } var changePageSetting = { - pageNum:1, - start:1 + pageNum: 1, + start: 1 } var stopPageSetting = { - pageNum:1, - start:1 + pageNum: 1, + start: 1 } var isHighSecurity; -$(document).ready(function(){ - getWsId(); - $('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();// 初始化内容数据 +$(document).ready(function () { + getWsId(); + $('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(); + // 初始化表格宽度 + initTableWidth(); - initPagination();// 初始化页码 - initOptButton(); - //listenCloseEvent();// 关闭窗口执行,关闭窗口/刷新都会造成流程实例被删除,注释掉 + initPagination();// 初始化页码 + initOptButton(); + //listenCloseEvent();// 关闭窗口执行,关闭窗口/刷新都会造成流程实例被删除,注释掉 }) - //获取wsid function getWsId() { - var param = { - sid : $("#sid").val(), - cmd : "com.actionsoft.apps.coe.pal.publisher_publish_getWsId" - } - $.ajax({ - url : "./jd", - type : "POST", - dataType : "JSON", - data : param, - async: false, - success : function(r) { - if (r.result == 'ok') { - var wsId=$("#WSID").val(); - if(wsId==""){ - $("#WSID").val(r.data.wsId); - } - } - } - }); + var param = { + sid: $("#sid").val(), + cmd: "com.actionsoft.apps.coe.pal.publisher_publish_getWsId" + } + $.ajax({ + url: "./jd", + type: "POST", + dataType: "JSON", + data: param, + async: false, + success: function (r) { + if (r.result == 'ok') { + var wsId = $("#WSID").val(); + if (wsId == "") { + $("#WSID").val(r.data.wsId); + } + } + } + }); } 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} 条" + 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); - } - } - }); + $("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 + '%'}); - }); + $(".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); + 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); + 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); + 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); + 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"); - } + 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 += '
'; + 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 += '
'; + //非三员管理显示创建 + 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 += '立即:点击确定后需等待创建流程手册完成后才可以进行下一步操作,一次性选择的流程数量较多时耗费时间长;
提交(办理)时:表单进行提交时进行流程手册的创建,若一次性选择流程数量较多,建议选择此项'; + dialogHtml += '
'; + dialogHtml += '
'; + dialogHtml += '
'; + } - dialogHtml += ''; - dialogHtml += '
'; - dialogHtml += '
'; - dialogHtml += ''; - dialogHtml += ''; - $('body').append(dialogHtml); - $('input[name=radiox1]').check({radioClass:'iradio_minimal-grey'}); + 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 += '
'; - if($("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ - 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 += '
'; + $('#publisher_new_td').html('
'); + $('#publisher_change_td').html('
'); + $('#publisher_stop_td').html('
'); + var newHtml = ''; + newHtml += ''; + newHtml += '
'; + newHtml += ''; + newHtml += '
'; + if ($("#userTaskDefId").val() == 'obj_c9e5a2e257f00001e2a375d01f601518') { + 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 += '
'; - if($("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ - changeHtml += ''; - // changeHtml += ''; - changeHtml += ''; - changeHtml += ''; - changeHtml += ''; - } - //changeHtml += ''; - // changeHtml += ''; - //changeHtml += ''; + var changeHtml = ''; + changeHtml += ''; + changeHtml += '
'; + changeHtml += ''; + changeHtml += '
'; + if ($("#userTaskDefId").val() == 'obj_c9e5a2e257f00001e2a375d01f601518') { + changeHtml += ''; + // changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + } + //changeHtml += ''; + // changeHtml += ''; + //changeHtml += ''; - if(!$("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ - editPerm=false; - } + if (!$("#userTaskDefId").val() == 'obj_c9e5a2e257f00001e2a375d01f601518') { + editPerm = false; + } - 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 += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += '
序号流程制度模型变更后流程制度模型文件预览文件编号
'; + changeHtml += ''; + changeHtml += '
'; + changeHtml += '
'; - var stopHtml = ''; - stopHtml += ''; - stopHtml += ''; - stopHtml += '
'; - stopHtml += ''; - stopHtml += '
'; - if($("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ - stopHtml += ''; - // stopHtml += ''; - stopHtml += ''; - stopHtml += ''; - stopHtml += ''; + var stopHtml = ''; + stopHtml += ''; + stopHtml += ''; + stopHtml += '
'; + stopHtml += ''; + stopHtml += '
'; + if ($("#userTaskDefId").val() == 'obj_c9e5a2e257f00001e2a375d01f601518') { + 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 += ''; - 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(); + $('#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; - } - } - }); + 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 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); - if($("#readonly").val()=="true"){ - $("#publish_new_button").hide(); - $("#publish_change_button").hide(); - $("#publish_stop_button").hide(); - } +function initPublishData(data, type, pageNumber, start) { + showlist(data, type, pageNumber, start); + if ($("#readonly").val() == "true") { + $("#publish_new_button").hide(); + $("#publish_change_button").hide(); + $("#publish_stop_button").hide(); + } } // 初始化数据 function selectPublishData(data, type, pageNumber, start) { - //渲染到前台的流程架构L1,L2,L3,L4 - var param = { - cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', - processInstId: processInstId, - wsId : wsId, - sid: sid, - type:type, - 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 L4 = r.data.data.Process_Architecture_L4; - var L1old = ui("LEVEL_1_PROCESS_NAME"); - var L2old = ui("LEVEL_2_PROCESS_NAME"); - var L3old = ui("LEVEL_3_PROCESS_NAME"); - var L4old = ui("LEVEL_4_PROCESS_NAME"); - ui("LEVEL_1_PROCESS_NAME",L1); - ui("LEVEL_2_PROCESS_NAME",L2); - ui("LEVEL_3_PROCESS_NAME",L3); - ui("LEVEL_4_PROCESS_NAME",L4); - 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; - } - }); + + //渲染到前台的流程架构L1,L2,L3,L4 + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId: wsId, + sid: sid, + type: type, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + //var L4old = ui("LEVEL_4_PROCESS_NAME"); + ui("LEVEL_1_PROCESS_NAME", L1); + ui("LEVEL_2_PROCESS_NAME", L2); + ui("LEVEL_3_PROCESS_NAME", L3); + //ui("LEVEL_4_PROCESS_NAME",L4); + 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"), - level4 :ui("LEVEL_4_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("PERSON_FOUR_LEVEL_PROCESS_NO",info.AUDITOR_NO_4); - 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("PERSON_FOUR_LEVEL_PROCESS",info.AUDITOR4); +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"), + //level4 :ui("LEVEL_4_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("PERSON_FOUR_LEVEL_PROCESS_NO",info.AUDITOR_NO_4); + 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("PERSON_FOUR_LEVEL_PROCESS",info.AUDITOR4); - ui("LEVEL_AUDIT_REQUIRED",info.L3_SP); - ui("SECONDARY_AUDIT_REQUIRED",info.L2_SP); - ui("LEVEL_1_AUDIT_REQUIRED",info.L1_SP); - ui("FOURTH_AUDIT_REQUIRED",info.L4_SP); + ui("LEVEL_AUDIT_REQUIRED", info.L3_SP); + ui("SECONDARY_AUDIT_REQUIRED", info.L2_SP); + ui("LEVEL_1_AUDIT_REQUIRED", info.L1_SP); + //ui("FOURTH_AUDIT_REQUIRED",info.L4_SP); - - } - } - }); + } + } + }); } + //预览下载附件 function openUrl(url) { - //$.simpleAlert("文件正在处理", "loading"); - window.open(url); + //$.simpleAlert("文件正在处理", "loading"); + window.open(url); } //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) { +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 fName = ''; - var upFileId = curr.upfileId; - if(upFileId!=''&&upFileId!=undefined){ - for(var i = 0; i < upFileId.length; i++){ - var upFileJson = upFileId[i] - var json=JSON.parse(upFileJson); - var upId = json.upfileId; - var upName = json.upFileName; - var openUrl = json.openUrl; - var downUrl = json.downUrl; - fName += '

' + upName + ' 

'; - } - } - var fileName = curr.publishFileName + ' V' + curr.fileVersion; - var outputName = getOutputName(curr.category, curr.methodId); - var reportName = '' + fileName + "-" + outputName + ''; - if(outputName=="表单封面"){ - var reportName = ""; - } - //var reportName = '' + fileName + "-" + outputName + ''; - var quickCreate = "立即创建"; - var processNumber = '提交后生成文件编号'; - if(curr.processNumber != undefined&&curr.processNumber != ''){ - 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 + ''; - if(fName!=''){ - html += '

' + reportName + fName+''; - }else{ - html += '' + reportName +''; - } - //html += '' + fName + ''; - //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 fName = ''; + var upFileId = curr.upfileId; + if (upFileId != '' && upFileId != undefined) { + for (var i = 0; i < upFileId.length; i++) { + var upFileJson = upFileId[i] + var json = JSON.parse(upFileJson); + var upId = json.upfileId; + var upName = json.upFileName; + var openUrl = json.openUrl; + var downUrl = json.downUrl; + fName += '

' + upName + ' 

'; + } + } + var fileName = curr.publishFileName + ' V' + curr.fileVersion; + var outputName = getOutputName(curr.category, curr.methodId); + var reportName = '' + fileName + "-" + outputName + ''; + if (outputName == "表单封面") { + var reportName = ""; + } + //var reportName = '' + fileName + "-" + outputName + ''; + var quickCreate = "立即创建"; + var processNumber = '提交后生成文件编号'; + if (curr.processNumber != undefined && curr.processNumber != '') { + 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 + ''; + if (fName != '') { + html += '

' + reportName + fName + ''; + } else { + html += '' + reportName + ''; + } + //html += '' + fName + ''; + //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 fName = ''; - var upFileId = curr.upfileId; - var changNumer = '提交后生成文件编号'; - if(curr.changedNumber != undefined&&curr.changedNumber != ''){ - changNumer = curr.changedNumber; - } - if(upFileId!=''&&upFileId!=undefined){ - for(var i = 0; i < upFileId.length; i++){ - var upFileJson = upFileId[i] - var json=JSON.parse(upFileJson); - var upId = json.upfileId; - var upName = json.upFileName; - var openUrl = json.openUrl; - var downUrl = json.downUrl; - fName += '

' + upName + ' 

'; - } - } - 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 + ''; - if(outputName=="表单封面"){ - var reportName = ""; - } - var quickCreate = "立即创建"; - createButtonObj[curr.changeFileId] = quickCreate; - reportName = (curr.taskId == undefined || curr.taskId == '') ? '无' : curr.taskId == 'submit_create' ? quickCreate : reportName; + var fName = ''; + var upFileId = curr.upfileId; + var changNumer = '提交后生成文件编号'; + if (curr.changedNumber != undefined && curr.changedNumber != '') { + changNumer = curr.changedNumber; + } + if (upFileId != '' && upFileId != undefined) { + for (var i = 0; i < upFileId.length; i++) { + var upFileJson = upFileId[i] + var json = JSON.parse(upFileJson); + var upId = json.upfileId; + var upName = json.upFileName; + var openUrl = json.openUrl; + var downUrl = json.downUrl; + fName += '

' + upName + ' 

'; + } + } + 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 + ''; + if (outputName == "表单封面") { + var reportName = ""; + } + 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; - } - if($("#userTaskDefName").val()!='发起人'||$("#readonly").val()=='true'){ - editPerm=false; - } + // 三员管理,taskId为change标识未创建手册 + if (isHighSecurity) { + reportName = curr.taskId == 'change' ? quickCreate : reportName; + } + if ($("#userTaskDefName").val() != '发起人' || $("#readonly").val() == 'true') { + editPerm = false; + } - var checkboxPerm = editPerm ? '' : 'disabled="disabled"'; - var textareaPerm = editPerm ? '' : 'readonly'; - html += ''; - html += ''; - html += '' + s + ''; - html += '' + sourceFileName + ''; - var selectPerm = editPerm ? '' : '' + targetFileName + ''; - html += '' + selectPerm + ''; - if(fName!=''){ - html += '

' + reportName + fName +''; - }else{ - html += '' + reportName +''; - } - //html += '

' + reportName + fName +''; - //html += '' + reportName + ''; - //html += '' + fName + ''; - //html += ''; - html += '' + changNumer +''; - 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 checkboxPerm = editPerm ? '' : 'disabled="disabled"'; + var textareaPerm = editPerm ? '' : 'readonly'; + html += ''; + html += ''; + html += '' + s + ''; + html += '' + sourceFileName + ''; + var selectPerm = editPerm ? '' : '' + targetFileName + ''; + html += '' + selectPerm + ''; + if (fName != '') { + html += '

' + reportName + fName + ''; + } else { + html += '' + reportName + ''; + } + //html += '

' + reportName + fName +''; + //html += '' + reportName + ''; + //html += '' + fName + ''; + //html += ''; + html += '' + changNumer + ''; + 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 fName = ''; - var upFileId = curr.upfileId; - if(upFileId!=''&&upFileId!=undefined){ - for(var i = 0; i < upFileId.length; i++){ - var upFileJson = upFileId[i] - var json=JSON.parse(upFileJson); - var upId = json.upfileId; - var upName = json.upFileName; - var openUrl = json.openUrl; - var downUrl = json.downUrl; - fName += '

' + upName + ' 

'; - } - } + var fName = ''; + var upFileId = curr.upfileId; + if (upFileId != '' && upFileId != undefined) { + for (var i = 0; i < upFileId.length; i++) { + var upFileJson = upFileId[i] + var json = JSON.parse(upFileJson); + var upId = json.upfileId; + var upName = json.upFileName; + var openUrl = json.openUrl; + var downUrl = json.downUrl; + fName += '

' + upName + ' 

'; + } + } - 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 + '';*/ + 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 + '';*/ - if(fName!=''){ - html += '

' + reportName + fName +''; - }else{ - html += '' + reportName +''; - } + if (fName != '') { + html += '

' + reportName + fName + ''; + } else { + html += '' + reportName + ''; + } - html += ''; - html += ''; - } - } - $('#publish_stop_tbody').empty().html(html); - $("#publish_stop_tbody .awsui-checkbox").check(); - } + 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'); + $('#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; - } + 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) {// 立即 + var createTime = 'now_create'; + var isRadio1 = $('#radio1').closest('div').hasClass('checked'); + if (isRadio1) {// 立即 - } else { - createTime = 'submit_create'; - } - return createTime; + } 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"); - 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); - } + 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"); + 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') { - debugger; - 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"); - } - } - }); + //$("#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); - } + 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 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; - } - - } - } - }); + 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; + } + } + } + }); } @@ -1078,1585 +1075,1589 @@ function publishFlowCheck(data) { // 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); + 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; + // 更新数据 + 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 != '') { + // 更新界面手册 + if (selectedTaskId != '') { - var outputName = getOutputName(changeTemp[i].category, changeTemp[i].methodId); + 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('无'); - } - //获取选中模型数据,更新架构数据 - updateFramework(changeTemp[i].changedFileIdNew); - break; - } - } - break; - } - } + var targetFileName2 = changeTemp[i].targetFiles[j].text + ' V' + changeTemp[i].targetFiles[j].version + '-' + outputName + ''; + $('#report_' + changeFileId).html('' + targetFileName2 + ''); + } else { + $('#report_' + changeFileId).html('无'); + } + //获取选中模型数据,更新架构数据 + updateFramework(changeTemp[i].changedFileIdNew); + 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); - } - } - }); + 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); + } + } + }); } /** * 重新生成手册 * @param uuid */ -function refreshManuals(processInstId,type) { - $.simpleAlert("正在创建", "loading"); - FormToolBarAction.BTN_SAVE(); - var param = { - sid : sid, - cmd : "com.actionsoft.apps.coe.pal.publisher_publish_Refresh_Manual", - processInstId : processInstId, - type : type - } - $.ajax({ - url : "./jd", - type : "POST", - dataType : "JSON", - data : param, - success : function(r) { - $.simpleAlert('close'); - if (r.result == 'ok') { +function refreshManuals(processInstId, type) { + $.simpleAlert("正在创建", "loading"); + FormToolBarAction.BTN_SAVE(); + var param = { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_publish_Refresh_Manual", + processInstId: processInstId, + type: type + } + $.ajax({ + url: "./jd", + type: "POST", + dataType: "JSON", + data: param, + success: function (r) { + $.simpleAlert('close'); + if (r.result == 'ok') { AWSFormUtil.refreshPage(); - } else { - $.simpleAlert(r.msg); - } - } - }); + } else { + $.simpleAlert(r.msg); + } + } + }); } // 打开流程选择dialog function openQueryDataDialog(type) { - $('#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 - debugger; - 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); - } + $('#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_data_query", - teamId: teamId, - wsId: wsId, - 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); - } - }); + var param = { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_publish_tree_data_query", + teamId: teamId, + wsId: wsId, + 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_data_query&flag=" + false + "&pid=" + pid - + "&wsId=" + wsId + "&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 - }); - } + // 如果是父节点并且存在子节点执行加载 + 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_data_query&flag=" + false + "&pid=" + pid + + "&wsId=" + wsId + "&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 < data.length; i++) { + if (data[i].pid != pid) { + continue; + } + var v = data[i].nocheck; + if (v && data[i].id.length <= 36 && !data[i].isFolder && data[i].isPublish) { + data[i].name = data[i].name + ' (已发布)'; + } + // 流程名称连接责任部门和责任人 + data[i].tempName = data[i].name; + var hasDutyDept = false; + var hasDutyUser = false; + if (data[i].dutyDeptName != undefined && data[i].dutyDeptName != '') { + hasDutyDept = true; + } + if (data[i].dutyUserName != undefined && data[i].dutyUserName != '') { + hasDutyUser = true; + } + if (hasDutyDept && hasDutyUser) { + var tempText = '[' + varDutyDept + ':' + data[i].dutyDeptName + ' ' + varDutyUser + ':' + data[i].dutyUserName + ']'; + data[i].name += '   ' + tempText + ''; + } 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 = []; - var param = { - cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', - processInstId: processInstId, - wsId : wsId, - sid: sid, - datas:JSON.stringify(nodes) - }; - $.ajax({ - url : "./jd", - type : "POST", - dataType : "JSON", - async : false, - 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 L4 = r.data.data.Process_Architecture_L4; - var L1old = ui("LEVEL_1_PROCESS_NAME"); - var L2old = ui("LEVEL_2_PROCESS_NAME"); - var L3old = ui("LEVEL_3_PROCESS_NAME"); - var L4old = ui("LEVEL_4_PROCESS_NAME"); - if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old) || (L4old != '' && L4 != L4old)){ - $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); - alert("只能选择同一级别下的流程,请重新选择"); - return; - }else if(info == true){ - $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); - alert("只能选择同一级别下的流程,请重新选择"); - return; + var nodes = initTree.getCheckedNodes(); + treeCheckedNewArr = []; + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId: wsId, + sid: sid, + datas: JSON.stringify(nodes) + }; + $.ajax({ + url: "./jd", + type: "POST", + dataType: "JSON", + async: false, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + //var L4old = ui("LEVEL_4_PROCESS_NAME"); + if ((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old)) { + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + alert("只能选择同一级别下的流程,请重新选择"); + return; + } else if (info == true) { + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + alert("只能选择同一级别下的流程,请重新选择"); + return; - }else{ - //treeCheckedNewArr = nodes; - 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); - } - } - } - }); + } else { + //treeCheckedNewArr = nodes; + 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_data_query", - teamId: teamId, - wsId: wsId, - 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); - } - }); + var param = { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_publish_tree_data_query", + teamId: teamId, + wsId: wsId, + 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 < data.length; i++) { + // 流程名称连接责任部门和责任人 + data[i].tempName = data[i].name; + var hasDutyDept = false; + var hasDutyUser = false; + if (data[i].dutyDeptName != undefined && data[i].dutyDeptName != '') { + hasDutyDept = true; + } + if (data[i].dutyUserName != undefined && data[i].dutyUserName != '') { + hasDutyUser = true; + } + if (hasDutyDept && hasDutyUser) { + var tempText = '[' + varDutyDept + ':' + data[i].dutyDeptName + ' ' + varDutyUser + ':' + data[i].dutyUserName + ']'; + data[i].name += '   ' + tempText + ''; + } 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 = []; - var param = { - cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', - processInstId: processInstId, - wsId : wsId, - sid: sid, - datas:JSON.stringify(nodes) - }; - $.ajax({ - url : "./jd", - type : "POST", - dataType : "JSON", - async : false, - 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 L4 = r.data.data.Process_Architecture_L4; - var L1old = ui("LEVEL_1_PROCESS_NAME"); - var L2old = ui("LEVEL_2_PROCESS_NAME"); - var L3old = ui("LEVEL_3_PROCESS_NAME"); - var L4old = ui("LEVEL_4_PROCESS_NAME"); - if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old) || (L4old != '' && L3 != L4old)){ - $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); - $.simpleAlert("只能选择同一级别下的流程,请重新选择"); - return; - }else if(info == true){ - $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); - $.simpleAlert("只能选择同一级别下的流程,请重新选择"); - return; - }else{ - //treeCheckedNewArr = nodes; - 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); - } - } - } - }); + var nodes = initTree.getCheckedNodes(); + treeCheckedChangeArr = []; + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId: wsId, + sid: sid, + datas: JSON.stringify(nodes) + }; + $.ajax({ + url: "./jd", + type: "POST", + dataType: "JSON", + async: false, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + //var L4old = ui("LEVEL_4_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; + } else if (info == true) { + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + } else { + //treeCheckedNewArr = nodes; + 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 = []; - var param = { - cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', - processInstId: processInstId, - wsId : wsId, - sid: sid, - datas:JSON.stringify(nodes) - }; - $.ajax({ - url : "./jd", - type : "POST", - dataType : "JSON", - async : false, - 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 L4 = r.data.data.Process_Architecture_L4; - var L1old = ui("LEVEL_1_PROCESS_NAME"); - var L2old = ui("LEVEL_2_PROCESS_NAME"); - var L3old = ui("LEVEL_3_PROCESS_NAME"); - var L4old = ui("LEVEL_4_PROCESS_NAME"); - if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old) || (L4old != '' && L4 != L4old)){ - $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); - $.simpleAlert("只能选择同一级别下的流程,请重新选择"); - return; - }else if(info == true){ - $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); - $.simpleAlert("只能选择同一级别下的流程,请重新选择"); - return; - }else{ - //treeCheckedNewArr = nodes; - 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); - } - } - } - }); + var nodes = initTree.getCheckedNodes(); + treeCheckedStopArr = []; + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId: wsId, + sid: sid, + datas: JSON.stringify(nodes) + }; + $.ajax({ + url: "./jd", + type: "POST", + dataType: "JSON", + async: false, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + //var L4old = 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; + } else if (info == true) { + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + } else { + //treeCheckedNewArr = nodes; + 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) { - 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; + 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; + 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; + 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; + 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 '手册'; + 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 + "\')"); + 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(''); + //三员管理下,立即创建 + 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 = {}; + initTree = {}; } // 禁用按钮 function disabledAll() { - $('#treeDialog').find("div.dialog-button-wrap").find('button:first').attr({"disabled":"disabled"}); + $('#treeDialog').find("div.dialog-button-wrap").find('button:first').attr({"disabled": "disabled"}); } // 关闭模态窗 function closeDialog() { - $("#treeDialog").dialog("close"); + $("#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"); - } - }); + $.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('列表中无数据'); - } + 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'); +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("PERSON_FOUR_LEVEL_PROCESS",''); - ui("FOURTH_AUDIT_REQUIRED",'0'); + ui("PERSON_FOUR_LEVEL_PROCESS", ''); + ui("FOURTH_AUDIT_REQUIRED", '0'); - //流程级别信息 - ui("LEVEL_1_PROCESS_NAME",''); - ui("LEVEL_2_PROCESS_NAME",''); - ui("LEVEL_3_PROCESS_NAME",''); - ui("LEVEL_4_PROCESS_NAME",''); - //看是否需要清空后台数据~~ - queryapprove(); + //流程级别信息 + ui("LEVEL_1_PROCESS_NAME", ''); + ui("LEVEL_2_PROCESS_NAME", ''); + ui("LEVEL_3_PROCESS_NAME", ''); + ui("LEVEL_4_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; - } - } - } + 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'); - } + 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(); - } + 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 (false) { - 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'); - } + $.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 (false) { + 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){ - var userTaskDefName = $("#userTaskDefName").val(); - if(userTaskDefName == '发起人'){ - if(isTransact==true){ - uiRequiredClass("PROCESS_TITLE", isShow); - uiRequiredClass("SEND_SCOPE", isShow); - uiRequiredClass("ADAPT_NAME_THE_COMPANY", isShow); - uiRequiredClass("APPLICABLE_PRODUCT", isShow); - uiRequiredClass("ADAPT_REGION_NAME", isShow); - } +function formSave(isTransact) { + var userTaskDefName = $("#userTaskDefName").val(); + if (userTaskDefName == '发起人') { + if (isTransact == true) { + uiRequiredClass("PROCESS_TITLE", isShow); + uiRequiredClass("SEND_SCOPE", isShow); + uiRequiredClass("ADAPT_NAME_THE_COMPANY", isShow); + uiRequiredClass("APPLICABLE_PRODUCT", isShow); + uiRequiredClass("ADAPT_REGION_NAME", isShow); + } - 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; - } - 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 (!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; + } + 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'); - } - } + // 校验变更文件是否全部都有变更后文件 + 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 < newTempData.length; i++) { + let data = newTempData[i]; + if ((data.methodId == 'control.policy' || data.methodId == 'data.form' || data.methodId.indexOf('process.') > -1) && data.methodId != 'default') { + data.taskId = "new"; + } + } + for (let j = 0; j < changeTempData.length; j++) { + let changeData = changeTempData[j]; + changeData.taskId = "change"; + } + } + // 保存 + var param = { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_batch_save_before", + teamId: teamId, + wsId: wsId, + processInstId: processInstId, + newData: JSON.stringify(newTempData), + changeData: JSON.stringify(changeTempData), + stopData: JSON.stringify(stopTempData), + isTransact: isTransact + }; + 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 (false) { + 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); + 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 +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(); - }); + $("#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(''); - } + $("#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; + 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; - } + 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; + 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)"}); + 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"}); + 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(); + 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 "未保存,关闭之后不会保存该表单!"; - } - } - } - }); - } + 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(); - } - } - }); - } - } - } - }); - } + //在弹出“是否离开”的提示框后,选择离开,则触发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) { - if (r.result == "ok") { - window.open (r.data.url); - } else { + 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) { + if (r.result == "ok") { + window.open(r.data.url); + } else { - } - } - }); + } + } + }); } - //刷新页面 -function getFiles() { - FormToolBarAction.BTN_SAVE(); - AWSFormUtil.refreshPage(); +function getFiles() { + FormToolBarAction.BTN_SAVE(); + AWSFormUtil.refreshPage(); } //下拉获取最新架构进行赋值操作 function updateFramework(uuid) { - awsui.ajax.request({ - type: "POST", - url: "./jd", - async: false, - data: { - sid: sid, - cmd: "com.actionsoft.apps.coe.pal.publisher_publish_updateFramework", - uuid: uuid, - processInstId:processInstId - }, - success : function(r) { - if (r.result == "ok") { - 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 L4 = r.data.data.Process_Architecture_L4; - ui("LEVEL_1_PROCESS_NAME",L1); - ui("LEVEL_2_PROCESS_NAME",L2); - ui("LEVEL_3_PROCESS_NAME",L3); - ui("LEVEL_4_PROCESS_NAME",L4); - } - } - }); + awsui.ajax.request({ + type: "POST", + url: "./jd", + async: false, + data: { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_publish_updateFramework", + uuid: uuid, + processInstId: processInstId + }, + success: function (r) { + if (r.result == "ok") { + 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 L4 = r.data.data.Process_Architecture_L4; + ui("LEVEL_1_PROCESS_NAME", L1); + ui("LEVEL_2_PROCESS_NAME", L2); + ui("LEVEL_3_PROCESS_NAME", L3); + //ui("LEVEL_4_PROCESS_NAME",L4); + } + } + }); } diff --git a/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple_L4.js b/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple_L4.js new file mode 100644 index 00000000..a17b7565 --- /dev/null +++ b/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/coe.pal.process.publish.multiple_L4.js @@ -0,0 +1,2662 @@ +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(){ + getWsId(); + $('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();// 关闭窗口执行,关闭窗口/刷新都会造成流程实例被删除,注释掉 +}) + + + +//获取wsid +function getWsId() { + var param = { + sid : $("#sid").val(), + cmd : "com.actionsoft.apps.coe.pal.publisher_publish_getWsId" + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + async: false, + success : function(r) { + if (r.result == 'ok') { + var wsId=$("#WSID").val(); + if(wsId==""){ + $("#WSID").val(r.data.wsId); + } + } + } + }); +} + + +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 += '
          '; + if($("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ + 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 += '
          '; + if($("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ + changeHtml += ''; + // changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + changeHtml += ''; + } + //changeHtml += ''; + // changeHtml += ''; + //changeHtml += ''; + + if(!$("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ + editPerm=false; + } + + 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 += '
          '; + if($("#userTaskDefId").val()=='obj_c9e5a2e257f00001e2a375d01f601518'){ + 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); + if($("#readonly").val()=="true"){ + $("#publish_new_button").hide(); + $("#publish_change_button").hide(); + $("#publish_stop_button").hide(); + } + +} + +// 初始化数据 +function selectPublishData(data, type, pageNumber, start) { + //渲染到前台的流程架构L1,L2,L3,L4 + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId : wsId, + sid: sid, + type:type, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + var L4old = ui("LEVEL_4_PROCESS_NAME"); + ui("LEVEL_1_PROCESS_NAME",L1); + ui("LEVEL_2_PROCESS_NAME",L2); + ui("LEVEL_3_PROCESS_NAME",L3); + ui("LEVEL_4_PROCESS_NAME",L4); + 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"), + level4 :ui("LEVEL_4_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("PERSON_FOUR_LEVEL_PROCESS_NO",info.AUDITOR_NO_4); + 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("PERSON_FOUR_LEVEL_PROCESS",info.AUDITOR4); + + ui("LEVEL_AUDIT_REQUIRED",info.L3_SP); + ui("SECONDARY_AUDIT_REQUIRED",info.L2_SP); + ui("LEVEL_1_AUDIT_REQUIRED",info.L1_SP); + ui("FOURTH_AUDIT_REQUIRED",info.L4_SP); + + + + } + } + }); +} +//预览下载附件 +function openUrl(url) { + //$.simpleAlert("文件正在处理", "loading"); + window.open(url); +} + +//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 fName = ''; + var upFileId = curr.upfileId; + if(upFileId!=''&&upFileId!=undefined){ + for(var i = 0; i < upFileId.length; i++){ + var upFileJson = upFileId[i] + var json=JSON.parse(upFileJson); + var upId = json.upfileId; + var upName = json.upFileName; + var openUrl = json.openUrl; + var downUrl = json.downUrl; + fName += '

          ' + upName + ' 

          '; + } + } + var fileName = curr.publishFileName + ' V' + curr.fileVersion; + var outputName = getOutputName(curr.category, curr.methodId); + var reportName = '' + fileName + "-" + outputName + ''; + if(outputName=="表单封面"){ + var reportName = ""; + } + //var reportName = '' + fileName + "-" + outputName + ''; + var quickCreate = "立即创建"; + var processNumber = '提交后生成文件编号'; + if(curr.processNumber != undefined&&curr.processNumber != ''){ + 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 + ''; + if(fName!=''){ + html += '

          ' + reportName + fName+''; + }else{ + html += '' + reportName +''; + } + //html += '' + fName + ''; + //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 fName = ''; + var upFileId = curr.upfileId; + var changNumer = '提交后生成文件编号'; + if(curr.changedNumber != undefined&&curr.changedNumber != ''){ + changNumer = curr.changedNumber; + } + if(upFileId!=''&&upFileId!=undefined){ + for(var i = 0; i < upFileId.length; i++){ + var upFileJson = upFileId[i] + var json=JSON.parse(upFileJson); + var upId = json.upfileId; + var upName = json.upFileName; + var openUrl = json.openUrl; + var downUrl = json.downUrl; + fName += '

          ' + upName + ' 

          '; + } + } + 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 + ''; + if(outputName=="表单封面"){ + var reportName = ""; + } + 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; + } + if($("#userTaskDefName").val()!='发起人'||$("#readonly").val()=='true'){ + editPerm=false; + } + + var checkboxPerm = editPerm ? '' : 'disabled="disabled"'; + var textareaPerm = editPerm ? '' : 'readonly'; + html += ''; + html += ''; + html += '' + s + ''; + html += '' + sourceFileName + ''; + var selectPerm = editPerm ? '' : '' + targetFileName + ''; + html += '' + selectPerm + ''; + if(fName!=''){ + html += '

          ' + reportName + fName +''; + }else{ + html += '' + reportName +''; + } + //html += '

          ' + reportName + fName +''; + //html += '' + reportName + ''; + //html += '' + fName + ''; + //html += ''; + html += '' + changNumer +''; + 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 fName = ''; + var upFileId = curr.upfileId; + if(upFileId!=''&&upFileId!=undefined){ + for(var i = 0; i < upFileId.length; i++){ + var upFileJson = upFileId[i] + var json=JSON.parse(upFileJson); + var upId = json.upfileId; + var upName = json.upFileName; + var openUrl = json.openUrl; + var downUrl = json.downUrl; + fName += '

          ' + upName + ' 

          '; + } + } + + 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 + '';*/ + + if(fName!=''){ + html += '

          ' + reportName + fName +''; + }else{ + 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"); + 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') { + debugger; + 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('无'); + } + //获取选中模型数据,更新架构数据 + updateFramework(changeTemp[i].changedFileIdNew); + 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); + } + } + }); +} + +/** + * 重新生成手册 + * @param uuid + */ +function refreshManuals(processInstId,type) { + $.simpleAlert("正在创建", "loading"); + FormToolBarAction.BTN_SAVE(); + var param = { + sid : sid, + cmd : "com.actionsoft.apps.coe.pal.publisher_publish_Refresh_Manual", + processInstId : processInstId, + type : type + } + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + data : param, + success : function(r) { + $.simpleAlert('close'); + if (r.result == 'ok') { + AWSFormUtil.refreshPage(); + } else { + $.simpleAlert(r.msg); + } + } + }); +} + +// 打开流程选择dialog +function openQueryDataDialog(type) { + $('#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 + debugger; + 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_data_query", + teamId: teamId, + wsId: wsId, + 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_data_query&flag=" + false + "&pid=" + pid + + "&wsId=" + wsId + "&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 = []; + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId : wsId, + sid: sid, + datas:JSON.stringify(nodes) + }; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + var L4old = ui("LEVEL_4_PROCESS_NAME"); + if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old) || (L4old != '' && L4 != L4old)){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + alert("只能选择同一级别下的流程,请重新选择"); + return; + }else if(info == true){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + alert("只能选择同一级别下的流程,请重新选择"); + return; + + }else{ + //treeCheckedNewArr = nodes; + 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_data_query", + teamId: teamId, + wsId: wsId, + 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 = []; + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId : wsId, + sid: sid, + datas:JSON.stringify(nodes) + }; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + var L4old = ui("LEVEL_4_PROCESS_NAME"); + if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old) || (L4old != '' && L3 != L4old)){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + }else if(info == true){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + }else{ + //treeCheckedNewArr = nodes; + 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 = []; + var param = { + cmd: 'com.actionsoft.apps.coe.pal.publisher_getPublishNameByJs', + processInstId: processInstId, + wsId : wsId, + sid: sid, + datas:JSON.stringify(nodes) + }; + $.ajax({ + url : "./jd", + type : "POST", + dataType : "JSON", + async : false, + 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 L4 = r.data.data.Process_Architecture_L4; + var L1old = ui("LEVEL_1_PROCESS_NAME"); + var L2old = ui("LEVEL_2_PROCESS_NAME"); + var L3old = ui("LEVEL_3_PROCESS_NAME"); + var L4old = ui("LEVEL_4_PROCESS_NAME"); + if((L1old != '' && L1 != L1old) || (L2old != '' && L2 != L2old) || (L3old != '' && L3 != L3old) || (L4old != '' && L4 != L4old)){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + }else if(info == true){ + $('#publisher_dialog').find('div.dlg-button').find('button:first').prop('disabled', ''); + $.simpleAlert("只能选择同一级别下的流程,请重新选择"); + return; + }else{ + //treeCheckedNewArr = nodes; + 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) { + 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("PERSON_FOUR_LEVEL_PROCESS",''); + ui("FOURTH_AUDIT_REQUIRED",'0'); + + + //流程级别信息 + ui("LEVEL_1_PROCESS_NAME",''); + ui("LEVEL_2_PROCESS_NAME",''); + ui("LEVEL_3_PROCESS_NAME",''); + ui("LEVEL_4_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 (false) { + 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){ + var userTaskDefName = $("#userTaskDefName").val(); + if(userTaskDefName == '发起人'){ + if(isTransact==true){ + uiRequiredClass("PROCESS_TITLE", isShow); + uiRequiredClass("SEND_SCOPE", isShow); + uiRequiredClass("ADAPT_NAME_THE_COMPANY", isShow); + uiRequiredClass("APPLICABLE_PRODUCT", isShow); + uiRequiredClass("ADAPT_REGION_NAME", isShow); + } + + 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; + } + 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) { + if (r.result == "ok") { + window.open (r.data.url); + } else { + + } + } + }); +} + + + +//刷新页面 +function getFiles() { + FormToolBarAction.BTN_SAVE(); + AWSFormUtil.refreshPage(); +} + + +//下拉获取最新架构进行赋值操作 +function updateFramework(uuid) { + awsui.ajax.request({ + type: "POST", + url: "./jd", + async: false, + data: { + sid: sid, + cmd: "com.actionsoft.apps.coe.pal.publisher_publish_updateFramework", + uuid: uuid, + processInstId:processInstId + }, + success : function(r) { + if (r.result == "ok") { + 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 L4 = r.data.data.Process_Architecture_L4; + ui("LEVEL_1_PROCESS_NAME",L1); + ui("LEVEL_2_PROCESS_NAME",L2); + ui("LEVEL_3_PROCESS_NAME",L3); + ui("LEVEL_4_PROCESS_NAME",L4); + } + } + }); + +}