绩效bug修复

This commit is contained in:
zhal 2022-11-06 21:14:12 +08:00
parent 75480f3fb8
commit 4a6c7513a5
3 changed files with 263 additions and 231 deletions

View File

@ -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,6 +784,43 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
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();
boolean insertFlag=false;
if (attributesJsonArray.size() > 0) {
//事前循环jsonarry判断绩效编号是否填写
for (int c=0;c<attributesJsonArray.size();c++) {
if (attributesJsonArray.getJSONObject(c).containsKey("id")) {
String getid1 = attributesJsonArray.getJSONObject(c).getString("id");
String value1 = attributesJsonArray.getJSONObject(c).getString("value");
if (getid1.equals("Process_performance_indicator_Number")) {
if (UtilString.isEmpty(value1) || !value1.contains("MA")) {
insertFlag = true;
}
}
}
}
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 (insertFlag == true) {
//回填绩效编号操作
if (getid.equals("Process_performance_indicator_Number")) {
if (UtilString.isEmpty(value)) {
//获取当前MP绩效最新排序数值
BO performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.kpi").addQuery("PROCESS_NUMBER=", processNumber).detail();
int currentnumber;
if (performanceNumberBO != null) {
currentnumber = Integer.valueOf(performanceNumberBO.getString("CURRENTNUMBER"));
} else {
@ -798,23 +833,26 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
}
currentnumber++;
for (Object attribute : dataAttributes) {
JSONObject obj = (JSONObject) attribute;
if (obj.containsKey("attributesJsonArray")) {
JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray");
BO recordBO = new BO();
if (attributesJsonArray.size() > 0) {
for (int i = 0; i < attributesJsonArray.size(); i++) {
if (attributesJsonArray.getJSONObject(i).containsKey("id")) {
String getid = attributesJsonArray.getJSONObject(i).getString("id");
String value = attributesJsonArray.getJSONObject(i).getString("value");
attributesJsonArray.getJSONObject(i).put("value", "MA." + before + after + "." + currentnumber);
recordBO.set("PROCESS_PERFORMANCE_IND_NUM", "MA." + before + after + "." + currentnumber);
if (performanceNumberBO != null) {
performanceNumberBO.set("CURRENTNUMBER", currentnumber);
} else {
performanceNumberBO = SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.kpi").addQuery("PROCESS_NUMBER=", processNumber).detail();
}
SDK.getBOAPI().update("BO_EU_PERFORMANCE_NUMBER", performanceNumberBO);
}
}
//回填流程编号到绩效模型
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);
@ -905,36 +943,24 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
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);
}
}
}
}
}
if (insertFlag == true) {
SDK.getBOAPI().create("BO_EU_PER_IND_LIB", recordBO, processInst.getId(), "");
}
}
}
}
if(performanceNumberBO!=null){
performanceNumberBO.set("CURRENTNUMBER", currentnumber);
}else{
performanceNumberBO=SDK.getBOAPI().query("BO_EU_PERFORMANCE_NUMBER").addQuery("PERFORMANCE_TYPE=", "control.kpi").addQuery("PROCESS_NUMBER=", processNumber).detail();
}
SDK.getBOAPI().update("BO_EU_PERFORMANCE_NUMBER", performanceNumberBO);
}
}
defineModel.setDefinition(definition.toString());
@ -955,4 +981,5 @@ public class PublishExecuteListenerInterfaceImpl extends ExecuteListener impleme
}

View File

@ -127,26 +127,38 @@ public class PublishProcessAfterCompleteEvent extends ExecuteListener implements
if (obj.containsKey("attributesJsonArray")) {
JSONArray attributesJsonArray = obj.getJSONArray("attributesJsonArray");
BO recordBO = new BO();
boolean insertFlag=false;
//事前循环jsonarry判断绩效编号是否填写
for (int c=0;c<attributesJsonArray.size();c++) {
if (attributesJsonArray.getJSONObject(c).containsKey("id")) {
String getid1 = attributesJsonArray.getJSONObject(c).getString("id");
String value1 = attributesJsonArray.getJSONObject(c).getString("value");
if (getid1.equals("Process_performance_indicator_Number")) {
if (UtilString.isEmpty(value1)) {
insertFlag = true;
}
}
}
}
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");
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,19 +179,8 @@ 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);
@ -265,12 +266,16 @@ public class PublishProcessAfterCompleteEvent extends ExecuteListener implements
//发布时间
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(), "");
}
}
}
}
}