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 47a129c4..9570bd92 100644 Binary files a/com.actionsoft.apps.coe.pal.publisher/lib/com.actionsoft.apps.coe.pal.publisher.jar and b/com.actionsoft.apps.coe.pal.publisher/lib/com.actionsoft.apps.coe.pal.publisher.jar differ diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java index 1529d8f5..53ca81c4 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishExecuteListenerInterfaceImpl.java @@ -127,14 +127,6 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme updateProcessNumber(boN.get("PUBLISHFILEID").toString(),param.getUserContext(),bo.get("WSID").toString(),boN.getString("PUBLISH_NUMBER")); - //插入绩效指标库 - insertPerformanceIndicatorLibrary(boN.get("PUBLISHFILEID").toString(),param.getUserContext(),bo.get("WSID").toString(),boN.getString("PUBLISH_NUMBER")); - - - //回填绩效编号 - //createPerformanceNumber(boN.get("PUBLISHFILEID").toString(),param.getUserContext(),bo.get("WSID").toString(),boN.getString("PUBLISH_NUMBER")); - - } //by bzp 测试编号生成 //new ProcesNumberUtil().getNumber(processInstId); @@ -529,28 +521,31 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme } /** - * 发布结束后获取关联绩效模型填充流程编号 + * 1、发布结束后获取关联绩效模型填充流程编号 + * 2、获取信息插入绩效指标库 * @param publishFileId * @param publishDate */ - public void updateProcessNumber(String publishFileId,UserContext uc,String wsId,String processNumber){ + public void updateProcessNumber(String publishFileId, UserContext uc, String wsId, String processNumber) { try { //获取关联绩效模型数据 - List performanceList=new ArrayList(); - performanceList.add(0,"control.kpi"); - performanceList.add(1,publishFileId); + List performanceList = new ArrayList(); + performanceList.add(0, "control.kpi"); + performanceList.add(1, publishFileId); - RowMap performrowMap=DBSql.getMap("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE EXT2=?",performanceList.toString()); + RowMap performrowMap = DBSql.getMap("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE EXT2=?", performanceList.toString()); + + ProcessInstance processInst = SDK.getProcessAPI().createBOProcessInstance("obj_1ffbc1e73b99427ca64469e466f97dbe", uc.getUID(), "指标绩效数据插入"); + ProcessInstance performNumberProcess = SDK.getProcessAPI().createBOProcessInstance("obj_96bc36eab7ac44af90458d8de6bcc58b", uc.getUID(), "绩效编号插入"); - if(performrowMap!=null ){ + if (performrowMap != null) { PALRepositoryModel parentModel = PALRepositoryCache.getCache().get(performrowMap.getString("ID")); - String id=performrowMap.getString("ID");; - + String id = performrowMap.getString("ID"); Map> methodAttrsMap = new HashMap<>();// 属性存储 @@ -560,7 +555,7 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme //查询对应绩效模型中数据模型进行填充数据 BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(id, 0); - CoeProcessLevelWeb coeProcessLevelWeb=new CoeProcessLevelWeb(uc); + CoeProcessLevelWeb coeProcessLevelWeb = new CoeProcessLevelWeb(uc); String define = defineModel.getDefinition(); JSONObject definition = JSONObject.parseObject(define); @@ -568,6 +563,13 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme coeProcessLevelWeb.handleShapeDefaultAttr(wsId, parentModel, elements, methodAttrsMap); + //获取当前MP绩效最新排序数值 + BO performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.kpi").addQuery("PROCESS_NUMBER=", processNumber).detail(); + //去掉 /P05V1.0- + String before = processNumber.substring(0, processNumber.indexOf("/")); + String after = processNumber.substring(processNumber.indexOf("-"), processNumber.length()); + + int currentnumber = 0; //拿去流程数据填充绩效模型中数据属性 for (String key : elements.keySet()) { JSONObject shape1 = elements.getJSONObject(key); @@ -577,25 +579,119 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme String shapeText = shape1.getString("text"); JSONArray dataAttributes = shape1.getJSONArray("dataAttributes"); if (!dataAttributes.isEmpty() && dataAttributes.size() > 0) { + + if (performanceNumberBO != null) { + currentnumber = Integer.valueOf(performanceNumberBO.getString("CURRENTNUMBER")); + } else { + BO performanceBo = new BO(); + performanceBo.set("PROCESS_NUMBER", processNumber); + performanceBo.set("CURRENTNUMBER", 1); + performanceBo.set("PERFORMANCE_TYPE", "control.kpi"); + SDK.getBOAPI().create("BO_EU_PERFORMANCE_NUMBER", performanceBo, performNumberProcess.getId(), ""); + currentnumber = 1; + } + currentnumber++; + for (Object attribute : dataAttributes) { JSONObject obj = (JSONObject) attribute; if (obj.containsKey("attributesJsonArray")) { JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray"); - for (int i = 0; i < attributesJsonArray.size(); i++) { - if (attributesJsonArray.getJSONObject(i).containsKey("id")) { - String getid=attributesJsonArray.getJSONObject(i).getString("id"); - if(getid.equals("Number_of_the_associated_flow_file")){ - attributesJsonArray.getJSONObject(i).put("value", processNumber); + BO recordBO = new BO(); + if (attributesJsonArray.size() > 0) { + for (int i = 0; i < attributesJsonArray.size(); i++) { + if (attributesJsonArray.getJSONObject(i).containsKey("id")) { + String getid = attributesJsonArray.getJSONObject(i).getString("id"); + String value = attributesJsonArray.getJSONObject(i).getString("value"); + + //回填流程编号到绩效模型 + if (getid.equals("Number_of_the_associated_flow_file")) { + attributesJsonArray.getJSONObject(i).put("value", processNumber); + } + + + //插入绩效指标库操作 + if (getid.equals("Process_Architecture_L1")) {//L1 + recordBO.set("PROCESS_ARCHITECTURE_L1", value); + } + if (getid.equals("Process_Architecture_L2")) {//L2 + recordBO.set("PROCESS_ARCHITECTURE_L2", value); + } + if (getid.equals("Process_Architecture_L3")) {//L3 + recordBO.set("PROCESS_ARCHITECTURE_L3", value); + } + if (getid.equals("Number_of_the_associated_flow_file")) {//关联流程文件编号 + recordBO.set("NUMBER_OF_THE_ASSO_FLOW_FILE", value); + } + if (getid.equals("Associated_process_name")) {//关联流程名称 + recordBO.set("ASSOCIATED_PROCESS_NAME", value); + } + if (getid.equals("Associated_process_name")) {//流程绩效指标名称 + recordBO.set("PERFORMANCE_INDICATOR_NAME", value); + } + + if (getid.equals("Index_properties")) {//指标性质 + recordBO.set("INDEX_PROPERTIES", value); + } + if (getid.equals("ndicator_User_defined_label")) {//指标自定义标签 + recordBO.set("NDICATOR_USER_DEFINED_LABEL", value); + } + if (getid.equals("Index_definition")) {//指标定义 + recordBO.set("INDEX_DEFINITION", value); + } + if (getid.equals("unit_measurement")) {//计量单位 + recordBO.set("UNIT_MEASUREMENT", value); + } + if (getid.equals("statistical_period")) {//统计周期 + recordBO.set("STATISTICAL_PERIOD", value); + } + + if (getid.equals("computational_formula")) {//计算公式 + recordBO.set("COMPUTATIONAL_FORMULA", value); + } + if (getid.equals("Data_fetch_logic")) {//数据取数逻辑 + recordBO.set("DATA_FETCH_LOGIC", value); + } + if (getid.equals("Take_the_number_aperture")) {//取数口径 + recordBO.set("TAKE_THE_NUMBER_APERTURE", value); + } + if (getid.equals("remark")) {//备注 + recordBO.set("REMARK", value); + } + if (getid.equals("oa_process")) {//OA流程 + recordBO.set("OA_PROCESS", value); + } + + if (getid.equals("element")) {//元素 + JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); + if (getvalue != null) { + JSONArray elejsonArray = attributesJsonArray.getJSONObject(i).getJSONObject("value").getJSONArray("table"); + for (int k = 1; k < elejsonArray.size(); k++) { + String name = elejsonArray.getJSONObject(k).get("name").toString(); + String desc = elejsonArray.getJSONObject(k).get("desc").toString(); + BO eleBO = new BO(); + eleBO.set("ELEMENT", name); + eleBO.set("DATASOURCES", desc); + SDK.getBOAPI().create("BO_EU_ELEMENT", eleBO, processInst.getId(), ""); + } + } + + } + + //回填绩效编号操作 + if (getid.equals("Process_performance_indicator_Number")) { + attributesJsonArray.getJSONObject(i).put("value", "MA" + before + after + currentnumber); + } } - } + SDK.getBOAPI().create("BO_EU_PER_IND_LIB", recordBO, processInst.getId(), ""); } - } } } } + performanceNumberBO.set("CURRENTNUMBER", currentnumber); + SDK.getBOAPI().update("BO_EU_PERFORMANCE_NUMBER", performanceNumberBO); defineModel.setDefinition(definition.toString()); // 保存文件 @@ -610,210 +706,5 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme } - /** - * 发布流程结束查询关联绩效模型数据,插入绩效指标库中 - * @return - */ - public void insertPerformanceIndicatorLibrary(String publishFileId,UserContext uc,String wsId,String processNumber){ - - //获取关联绩效模型数据 - try { - List performanceList=new ArrayList(); - performanceList.add(0,"control.kpi"); - performanceList.add(1,publishFileId); - - RowMap performrowMap=DBSql.getMap("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE EXT2=?",performanceList.toString()); - - - - if(performrowMap!=null ){ - - String id = performrowMap.getString("ID"); - - PALRepositoryModel parentModel = PALRepositoryCache.getCache().get(id); - - - Map> methodAttrsMap = new HashMap<>();// 属性存储 - - Map methodValueAttrsMap = new HashMap<>();// 属性存储 - - //查询对应绩效模型中数据模型进行填充数据 - BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(id, 0); - - CoeProcessLevelWeb coeProcessLevelWeb=new CoeProcessLevelWeb(uc); - - String define = defineModel.getDefinition(); - JSONObject definition = JSONObject.parseObject(define); - JSONObject elements = definition.getJSONObject("elements"); - - - - ProcessInstance processInst=SDK.getProcessAPI().createBOProcessInstance("obj_1ffbc1e73b99427ca64469e466f97dbe", uc.getUID(), "指标绩效数据插入"); - - //拿去流程数据填充绩效模型中数据属性 - for (String key : elements.keySet()) { - JSONObject shape1 = elements.getJSONObject(key); - if ("linker".equals(shape1.getString("name"))) { - continue; - } - String shapeText = shape1.getString("text"); - JSONArray dataAttributes = shape1.getJSONArray("dataAttributes"); - if (!dataAttributes.isEmpty() && dataAttributes.size() > 0) { - for (Object attribute : dataAttributes) { - JSONObject obj = (JSONObject) attribute; - if (obj.containsKey("attributesJsonArray")) { - JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray"); - BO recordBO=new BO(); - - for (int i = 0; i < attributesJsonArray.size(); i++) { - if (attributesJsonArray.getJSONObject(i).containsKey("id")) { - - String getid=attributesJsonArray.getJSONObject(i).getString("id"); - String value=attributesJsonArray.getJSONObject(i).getString("value"); - if(getid.equals("Process_Architecture_L1")){//L1 - recordBO.set("PROCESS_ARCHITECTURE_L1",value); - } - if(getid.equals("Process_Architecture_L2")){//L2 - recordBO.set("PROCESS_ARCHITECTURE_L2",value); - } - if(getid.equals("Process_Architecture_L3")){//L3 - recordBO.set("PROCESS_ARCHITECTURE_L3",value); - } - if(getid.equals("Number_of_the_associated_flow_file")){//关联流程文件编号 - recordBO.set("NUMBER_OF_THE_ASSO_FLOW_FILE",value); - } - if(getid.equals("Associated_process_name")){//关联流程名称 - recordBO.set("ASSOCIATED_PROCESS_NAME",value); - } - if(getid.equals("Associated_process_name")){//流程绩效指标名称 - recordBO.set("PERFORMANCE_INDICATOR_NAME",value); - } - - if(getid.equals("Index_properties")){//指标性质 - recordBO.set("INDEX_PROPERTIES",value); - } - if(getid.equals("ndicator_User_defined_label")){//指标自定义标签 - recordBO.set("NDICATOR_USER_DEFINED_LABEL",value); - } - if(getid.equals("Index_definition")){//指标定义 - recordBO.set("INDEX_DEFINITION",value); - } - if(getid.equals("unit_measurement")){//计量单位 - recordBO.set("UNIT_MEASUREMENT",value); - } - if(getid.equals("statistical_period")){//统计周期 - recordBO.set("STATISTICAL_PERIOD",value); - } - - if(getid.equals("computational_formula")){//计算公式 - recordBO.set("COMPUTATIONAL_FORMULA",value); - } - if(getid.equals("Data_fetch_logic")){//数据取数逻辑 - recordBO.set("DATA_FETCH_LOGIC",value); - } - if(getid.equals("Take_the_number_aperture")){//取数口径 - recordBO.set("TAKE_THE_NUMBER_APERTURE",value); - } - if(getid.equals("remark")){//备注 - recordBO.set("REMARK",value); - } - if(getid.equals("oa_process")){//OA流程 - recordBO.set("OA_PROCESS",value); - } - - if(getid.equals("element")){//元素 - - JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); - if(getvalue!=null){ - JSONArray elejsonArray = attributesJsonArray.getJSONObject(i).getJSONObject("value").getJSONArray("table"); - for(int k=1;k