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 1ca3dfad..9065e5e1 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 d04babaf..e6e9e519 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 @@ -164,6 +164,8 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme //修改关联角色、绩效发布状态 updateRoleAndPerformance(boC.get("CHANGEDFILEIDNEW").toString(),model.getPublishDate(),"C"); + //绩效模型中数据模型回填流程编号 + updateProcessNumber(boC.get("CHANGEDFILEIDNEW").toString(),param.getUserContext(),bo.get("WSID").toString(),boC.getString("PUBLISH_NUMBER"),model.getPublishDate()); } } @@ -761,7 +763,6 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme if(UtilString.isNotEmpty(processNumber)){ //编号规则为: MP(流程编号是:08.01.05.05/P05V1.0-YLYYYY,对应的流程绩效编号MP-08.01.05.05-YLYYYY.AA(AA=1~99顺序排号)对流程编号,去除"/P05V1.0) - //去掉 /P05V1.0- String before = null; String after = null; @@ -772,11 +773,8 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme e.printStackTrace(); } - int currentnumber = 0; //拿去流程数据填充绩效模型中数据属性 for (String key : elements.keySet()) { - //获取当前MP绩效最新排序数值 - BO performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.kpi").addQuery("PROCESS_NUMBER=", processNumber).detail(); JSONObject shape1 = elements.getJSONObject(key); if ("linker".equals(shape1.getString("name"))) { @@ -786,157 +784,185 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme 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 = 0; - } - currentnumber++; + for (Object attribute : dataAttributes) { JSONObject obj = (JSONObject) attribute; if (obj.containsKey("attributesJsonArray")) { JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray"); BO recordBO = new BO(); + boolean insertFlag=false; 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("Name_process_performance_indicator")) {//流程绩效指标名称 - recordBO.set("PERFORMANCE_INDICATOR_NAME", value); - } - - if (getid.equals("Index_properties")) {//指标性质 - recordBO.set("INDEX_PROPERTIES", value); - } - if (getid.equals("ndicator_User_defined_label")) {//指标自定义标签 - recordBO.set("NDICATOR_USER_DEFINED_LABEL", value); - } - if (getid.equals("Index_definition")) {//指标定义 - recordBO.set("INDEX_DEFINITION", value); - } - if (getid.equals("unit_measurement")) {//计量单位 - recordBO.set("UNIT_MEASUREMENT", value); - } - if (getid.equals("statistical_period")) {//统计周期 - recordBO.set("STATISTICAL_PERIOD", value); - } - - if (getid.equals("computational_formula")) {//计算公式 - recordBO.set("COMPUTATIONAL_FORMULA", value); - } - if (getid.equals("Data_fetch_logic")) {//数据取数逻辑 - recordBO.set("DATA_FETCH_LOGIC", value); - } - if (getid.equals("Take_the_number_aperture")) {//取数口径 - recordBO.set("TAKE_THE_NUMBER_APERTURE", value); - } - if (getid.equals("remark")) {//备注 - recordBO.set("REMARK", value); - } - if (getid.equals("oa_process")) {//OA流程 - recordBO.set("OA_PROCESS", value); - } - - if (getid.equals("The_upstream_indicators")) {//上游指标 - if(UtilString.isNotEmpty(value)){ - String The_upstream_indicatorsValue=value.substring(value.indexOf('"')+1,value.lastIndexOf('"')); - RowMap rowMap=DBSql.getMap("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND RELATIONSHAPEID=?",id,The_upstream_indicatorsValue); - recordBO.set("THE_UPSTREAM_INDICATORS_ID", The_upstream_indicatorsValue); - if(rowMap!=null){ - recordBO.set("THE_UPSTREAM_INDICATORS",rowMap.getString("RELATIONSHAPETEXT")); - } - } - - } - if (getid.equals("Downstream_target")) {//下游指标 - if(UtilString.isNotEmpty(value)){ - String Downstream_target=value.substring(value.indexOf('"')+1,value.lastIndexOf('"')); - RowMap rowMap=DBSql.getMap("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND RELATIONSHAPEID=?",id,Downstream_target); - recordBO.set("DOWNSTREAM_TARGET_ID", Downstream_target); - if(rowMap!=null){ - recordBO.set("DOWNSTREAM_TARGET",rowMap.getString("RELATIONSHAPETEXT")); - } - } - - } - - recordBO.set("PERFORMANCE_TYPE", "末级流程绩效"); - - if (getid.equals("element")) {//元素 - JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); - if (getvalue != null) { - JSONArray elejsonArray = attributesJsonArray.getJSONObject(i).getJSONObject("value").getJSONArray("table"); - for (int k = 1; k < elejsonArray.size(); k++) { - String name = elejsonArray.getJSONObject(k).get("name").toString(); - String desc = elejsonArray.getJSONObject(k).get("desc").toString(); - BO eleBO = new BO(); - eleBO.set("ELEMENT", name); - eleBO.set("DATASOURCES", desc); - SDK.getBOAPI().create("BO_EU_ELEMENT", eleBO, processInst.getId(), ""); - } - } - - } - //发布时间 - recordBO.set("PUBDATE", publishDate); - //回填绩效编号操作 - if (getid.equals("Process_performance_indicator_Number")) { - if(UtilString.isEmpty(value)){ - attributesJsonArray.getJSONObject(i).put("value", "MA." + before + after +"."+ currentnumber); - - recordBO.set("PROCESS_PERFORMANCE_IND_NUM","MA." + before + after +"."+ currentnumber); + //事前循环jsonarry,判断绩效编号是否填写 + for (int c=0;c 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"); - - BO performanceNuRecord = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NU_RECORD").addQuery("PROCESS_NUMBER=", value).addQuery("WHETHERCOMPLETE=", "1").addQuery("PERFORMANCE_TYPE=","L1L3流程绩效").detail(); - - if (performanceNuRecord == null) { + if (insertFlag == true) { //回填绩效编号操作 if (getid.equals("Process_performance_indicator_Number")) { - //获取当前MA绩效最新排序数值 BO performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.ma").addQuery("PROCESS_NUMBER=", value).detail(); if (performanceNumberBO != null) { currentnumber = Integer.valueOf(performanceNumberBO.getString("CURRENTNUMBER")); - } else { + } + if (performanceNumberBO == null) { BO performanceBo = new BO(); performanceBo.set("PROCESS_NUMBER", value); performanceBo.set("CURRENTNUMBER", 1); @@ -167,109 +179,102 @@ public class PublishProcessAfterCompleteEvent extends ExecuteListener implements recordBO.set("PROCESS_PERFORMANCE_IND_NUM", value + "." + currentnumber); SDK.getBOAPI().update("BO_EU_PERFORMANCE_NUMBER", performanceNumberBO); - - ProcessInstance processrecordInst = SDK.getProcessAPI().createBOProcessInstance("obj_5afd2f44bf754d47a241211b3219e716", uc.getUID(), "指标绩效记录数据插入"); - - BO recordNumberBo = new BO(); - recordNumberBo.set("PROCESS_NUMBER", value + "." + currentnumber); - recordNumberBo.set("PERFORMANCE_TYPE", "L1L3流程绩效"); - recordNumberBo.set("ORIGINALNUMBER", value); - recordNumberBo.set("WHETHERCOMPLETE", "1"); - SDK.getBOAPI().create("BO_EU_PERFORMANCE_NU_RECORD", recordNumberBo, processrecordInst.getId(), ""); - } + //插入绩效指标库操作 + 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("Name_process_performance_indicator")) {//流程绩效指标名称 + recordBO.set("PERFORMANCE_INDICATOR_NAME", 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("Name_process_performance_indicator")) {//流程绩效指标名称 - 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("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("computational_formula")) {//计算公式 - recordBO.set("COMPUTATIONAL_FORMULA", value); - } - if (getid.equals("Data_fetch_logic")) {//数据取数逻辑 - recordBO.set("DATA_FETCH_LOGIC", value); - } - if (getid.equals("Take_the_number_aperture")) {//取数口径 - recordBO.set("TAKE_THE_NUMBER_APERTURE", value); - } - if (getid.equals("remark")) {//备注 - recordBO.set("REMARK", value); - } - if (getid.equals("oa_process")) {//OA流程 - recordBO.set("OA_PROCESS", value); - } + if (getid.equals("The_upstream_indicators")) {//上游指标 + if (UtilString.isNotEmpty(value)) { + String The_upstream_indicatorsValue = value.substring(value.indexOf('"') + 1, value.lastIndexOf('"')); - if (getid.equals("The_upstream_indicators")) {//上游指标 - if (UtilString.isNotEmpty(value)) { - String The_upstream_indicatorsValue = value.substring(value.indexOf('"') + 1, value.lastIndexOf('"')); + RowMap rowMap = DBSql.getMap("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND RELATIONSHAPEID=?", publishFileId, The_upstream_indicatorsValue); + recordBO.set("THE_UPSTREAM_INDICATORS_ID", The_upstream_indicatorsValue); + if (rowMap != null) { + recordBO.set("THE_UPSTREAM_INDICATORS", rowMap.getString("RELATIONSHAPETEXT")); + } + } - RowMap rowMap = DBSql.getMap("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND RELATIONSHAPEID=?", publishFileId, The_upstream_indicatorsValue); - recordBO.set("THE_UPSTREAM_INDICATORS_ID", The_upstream_indicatorsValue); - if (rowMap != null) { - recordBO.set("THE_UPSTREAM_INDICATORS", rowMap.getString("RELATIONSHAPETEXT")); + } + if (getid.equals("Downstream_target")) {//下游指标 + if (UtilString.isNotEmpty(value)) { + String Downstream_target = value.substring(value.indexOf('"') + 1, value.lastIndexOf('"')); + RowMap rowMap = DBSql.getMap("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND RELATIONSHAPEID=?", publishFileId, Downstream_target); + recordBO.set("DOWNSTREAM_TARGET_ID", Downstream_target); + if (rowMap != null) { + recordBO.set("DOWNSTREAM_TARGET", rowMap.getString("RELATIONSHAPETEXT")); + } + } + + } + recordBO.set("PERFORMANCE_TYPE", "L1L3流程绩效"); + + if (getid.equals("element")) {//元素 + JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); + if (getvalue != null) { + JSONArray elejsonArray = attributesJsonArray.getJSONObject(i).getJSONObject("value").getJSONArray("table"); + for (int k = 1; k < elejsonArray.size(); k++) { + String name = elejsonArray.getJSONObject(k).get("name").toString(); + String desc = elejsonArray.getJSONObject(k).get("desc").toString(); + BO eleBO = new BO(); + eleBO.set("ELEMENT", name); + eleBO.set("DATASOURCES", desc); + SDK.getBOAPI().create("BO_EU_ELEMENT", eleBO, processInst.getId(), ""); + } } } + //发布时间 + recordBO.set("PUBDATE", publishDate); + } - if (getid.equals("Downstream_target")) {//下游指标 - if (UtilString.isNotEmpty(value)) { - String Downstream_target = value.substring(value.indexOf('"') + 1, value.lastIndexOf('"')); - RowMap rowMap = DBSql.getMap("SELECT RELATIONSHAPETEXT FROM APP_ACT_COE_PAL_SHAPE_RLAT WHERE FILEID=? AND RELATIONSHAPEID=?", publishFileId, Downstream_target); - recordBO.set("DOWNSTREAM_TARGET_ID", Downstream_target); - if (rowMap != null) { - recordBO.set("DOWNSTREAM_TARGET", rowMap.getString("RELATIONSHAPETEXT")); - } - } - } - recordBO.set("PERFORMANCE_TYPE", "L1L3流程绩效"); - - if (getid.equals("element")) {//元素 - JSONObject getvalue = attributesJsonArray.getJSONObject(i).getJSONObject("value"); - if (getvalue != null) { - JSONArray elejsonArray = attributesJsonArray.getJSONObject(i).getJSONObject("value").getJSONArray("table"); - for (int k = 1; k < elejsonArray.size(); k++) { - String name = elejsonArray.getJSONObject(k).get("name").toString(); - String desc = elejsonArray.getJSONObject(k).get("desc").toString(); - BO eleBO = new BO(); - eleBO.set("ELEMENT", name); - eleBO.set("DATASOURCES", desc); - SDK.getBOAPI().create("BO_EU_ELEMENT", eleBO, processInst.getId(), ""); - } - } - } - //发布时间 - recordBO.set("PUBDATE", publishDate); - - SDK.getBOAPI().create("BO_EU_PER_IND_LIB", recordBO, processInst.getId(), ""); - } } - } + } + if(insertFlag == true){ + SDK.getBOAPI().create("BO_EU_PER_IND_LIB", recordBO, processInst.getId(), ""); + } } } }