发布流程判断

This commit is contained in:
zhal 2023-07-11 00:04:15 +08:00
parent 9942e92ace
commit 19df749406
7 changed files with 5635 additions and 3012 deletions

View File

@ -1,30 +1,14 @@
package com.actionsoft.apps.coe.pal.publisher.client.util; 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.bo.engine.BO;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance; import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
import com.actionsoft.bpms.commons.database.RowMap; import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.util.DBSql; import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UUIDGener; import com.actionsoft.bpms.util.UUIDGener;
import com.actionsoft.bpms.util.UtilDate;
import com.actionsoft.bpms.util.UtilString; import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.sdk.local.SDK; 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 * @author baizp
@ -39,12 +23,12 @@ public class ProcesNumberUtil {
* @param regionCode * @param regionCode
* @return * @return
*/ */
public String getProcessNum(String levelCode, String regionCode,String plcategory) { public String getProcessNum(String levelCode, String regionCode, String plcategory) {
int nowNum = 1; int nowNum = 1;
//流程编号 //流程编号
if (plcategory.contains("process")) { if (plcategory.contains("process")) {
String querySql = "select ID,PROCESS_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; 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)); RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
//如果没有就新增 //如果没有就新增
if (result == null) { if (result == null) {
@ -58,13 +42,13 @@ public class ProcesNumberUtil {
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID"))); DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
if (nowNum < 10) { if (nowNum < 10) {
return "00" + nowNum; return "00" + nowNum;
}else if(nowNum >=10&&nowNum < 100){ } else if (nowNum >= 10 && nowNum < 100) {
return "0" + nowNum; return "0" + nowNum;
} }
} else if (plcategory.contains("control")) { } else if (plcategory.contains("control")) {
//制度编号 //制度编号
String querySql = "select ID,SYSTEM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; 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)); RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
//如果没有就新增 //如果没有就新增
if (result == null) { if (result == null) {
@ -78,13 +62,13 @@ public class ProcesNumberUtil {
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID"))); DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
if (nowNum < 10) { if (nowNum < 10) {
return "00" + nowNum; return "00" + nowNum;
}else if(nowNum >=10&&nowNum < 100){ } else if (nowNum >= 10 && nowNum < 100) {
return "0" + nowNum; return "0" + nowNum;
} }
} else if (plcategory.contains("form")) { } else if (plcategory.contains("form")) {
//表单编号 //表单编号
String querySql = "select ID,FORM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'"; 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)); RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
//如果没有就新增 //如果没有就新增
if (result == null) { if (result == null) {
@ -98,314 +82,313 @@ public class ProcesNumberUtil {
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID"))); DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
if (nowNum < 10) { if (nowNum < 10) {
return "00" + nowNum; return "00" + nowNum;
}else if(nowNum >=10&&nowNum < 100){ } else if (nowNum >= 10 && nowNum < 100) {
return "0" + nowNum; return "0" + nowNum;
} }
} }
return nowNum + ""; return nowNum + "";
} }
/** /**
* 生成编号并写入数据库 * 生成编号并写入数据库
* *
* @param bindId * @param bindId
* @return * @return
*/ */
public String getNumber(String bindId) { public String getNumber(String bindId) {
// 查询出所有的发布流程 // 查询出所有的发布流程
List<BO> dataList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").addQuery("BINDID=", bindId).orderByCreated().asc().list(); List<BO> dataList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").addQuery("BINDID=", bindId).orderByCreated().asc().list();
// 查询出所有的变更流程 // 查询出所有的变更流程
List<BO> changList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").addQuery("BINDID=", bindId).orderByCreated().asc().list(); List<BO> changList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").addQuery("BINDID=", bindId).orderByCreated().asc().list();
if (changList.size() != 0) { if (changList.size() != 0) {
for (BO changData : changList) { for (BO changData : changList) {
String change_numner = changData.getString("CHANGE_NUMBER"); String change_numner = changData.getString("CHANGE_NUMBER");
String changFileId = changData.getString("CHANGEFILEID"); String changFileId = changData.getString("CHANGEFILEID");
String changAfterFileId = changData.getString("CHANGEDFILEIDNEW"); String changAfterFileId = changData.getString("CHANGEDFILEIDNEW");
if(UtilString.isEmpty(change_numner)) { if (UtilString.isEmpty(change_numner)) {
RowMap rowMap = DBSql.getMap("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" + changAfterFileId + "'"); 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='" String Vsion1Id = DBSql.getString("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID='"
+ rowMap.getString("PLRID") + "' AND" + " PLVER = 1 "); + rowMap.getString("PLRID") + "' AND" + " PLVER = 1 ");
String publish_number = DBSql.getString( String publish_number = DBSql.getString(
"SELECT PUBLISH_NUMBER FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID ='" + Vsion1Id + "'"); "SELECT PUBLISH_NUMBER FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID ='" + Vsion1Id + "'");
System.out.println("获取编号为======================="+publish_number); System.out.println("获取编号为=======================" + publish_number);
if (UtilString.isNotEmpty(publish_number)) { if (UtilString.isNotEmpty(publish_number)) {
// 设置模型ID // 设置模型ID
String plver = "2.0"; String plver = "2.0";
String plvers = rowMap.getString("PLVER"); String plvers = rowMap.getString("PLVER");
if (!"".equals(plvers)) { if (!"".equals(plvers)) {
if (plvers.length() > 1) { if (plvers.length() > 1) {
plver = plvers.substring(0, 1) + "." plver = plvers.substring(0, 1) + "."
+ plvers.substring(plvers.length() - 1, plvers.length()); + plvers.substring(plvers.length() - 1, plvers.length());
} else { } else {
plver = plvers.substring(0, 1) + ".0"; 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);
ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(bindId); String new_number = publish_number.replaceAll("V1.0", "V" + plver);
String levelnum=null; String updateSql = "update BO_ACT_COE_PUBLISH_C set CHANGE_NUMBER = '%s' where CHANGEDFILEIDNEW = '%s'";
String orgCode=null; //更新子表文件编码属性
String regionCode=null; int update = DBSql.update(String.format(updateSql, new_number, changAfterFileId));
String productCode=null; System.out.println("更新子表文件编号:" + update + "--->" + new_number);
if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ String fileName = "file_number";
// 根据主表数据查询出权限的编码 if (rowMap != null) {
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' " String plcategory = rowMap.getString("PLMETHODID");
+ " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; if (plcategory.contains("form")) {
RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), fileName = "form_number";
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 updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'";
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' " int update2 = DBSql.update(String.format(updateAttrsql, new_number, fileName, changAfterFileId));
+ " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; System.out.println("更新模型文件编号:" + update2 + "--->" + new_number);
RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), } else {
mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), // 查询出主表数据
mainData.getString("LEVEL_3_PROCESS_NAME"), BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId);
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; 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'"; levelnum = levelOne + "." + levelTwo + "." + levelThree;
rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" } else {
+ changAfterFileId + "' AND" + " ISUSE = 1 "); // 根据主表数据查询出权限的编码
String name = ""; 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' "
String fileName = "file_number"; + " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'";
String plver = "2.0"; RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"),
if (rowMap != null) { mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"),
String plcategory = rowMap.getString("PLMETHODID"); mainData.getString("LEVEL_3_PROCESS_NAME"),
String plvers = rowMap.getString("PLVER"); mainData.getString("LEVEL_4_PROCESS_NAME"),
String number = getProcessNum(levelnum, orgCode,plcategory); mainData.getString("ADAPT_REGION_NAME"),
if (plcategory.contains("process")) { mainData.getString("APPLICABLE_PRODUCT")));
// 获取所有的流程编码 如果为空则为00
name = "/P" + number; orgCode = authData.getString("ORGCODE");
} else if (plcategory.contains("control")) { String levelOne = authData.getString("LEVEL_1_PROCESS_ID");
name = "/R" + number; String levelTwo = authData.getString("LEVEL_2_PROCESS_ID");
} else if (plcategory.contains("form")) { String levelThree = authData.getString("LEVEL_3_PROCESS_ID");
fileName = "form_number"; String levelFour = authData.getString("LEVEL_4_PROCESS_ID");
name = "/T" + number; regionCode = authData.getString("ADAPT_REGION_CODE");
} productCode = authData.getString("APPLICABLE_PRODUCT_CODE");
if (!"".equals(plvers)) { // 依次生成编号~并回填 修改
if (plvers.length() > 1) { if (UtilString.isNotEmpty(levelTwo)) {
plver = plvers.substring(0, 1) + "." levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length());
+ plvers.substring(plvers.length() - 1, plvers.length()); } else {
} else { levelTwo = "00";
plver = plvers.substring(0, 1) + ".0"; }
} 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(); if (UtilString.isNotEmpty(levelFour)) {
int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase())); levelFour = levelFour.substring(levelFour.lastIndexOf(".") + 1, levelFour.length());
System.out.println("更新表单文件编号回填:" + update + "--->" + processNum+" 文件id"+s); } else {
String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'"; levelFour = "00";
int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, changAfterFileId)); }
System.out.println("更新模型文件编号回填:" + update2 + "--->" + processNum +" 文件id"+changAfterFileId);
}
}
}
}
if (dataList.size() != 0) { levelnum = levelOne + "." + levelTwo + "." + levelThree + "." + levelFour;
// 查询出主表数据 }
BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId);
ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(bindId); String updateSql = "update BO_ACT_COE_PUBLISH_C set CHANGE_NUMBER = '%s' where ID = '%s'";
String levelnum=null; rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='"
String orgCode=null; + changAfterFileId + "' AND" + " ISUSE = 1 ");
String regionCode=null; String name = "";
String productCode=null; String fileName = "file_number";
if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ String plver = "2.0";
// 根据主表数据查询出权限的编码 if (rowMap != null) {
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' " String plcategory = rowMap.getString("PLMETHODID");
+ " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'"; String plvers = rowMap.getString("PLVER");
RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), String number = getProcessNum(levelnum, orgCode, plcategory);
mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"), if (plcategory.contains("process")) {
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");
// 依次生成编号~并回填 修改 name = "/P" + number;
if (UtilString.isNotEmpty(levelTwo)) { } else if (plcategory.contains("control")) {
levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); name = "/R" + number;
} else { } else if (plcategory.contains("form")) {
levelTwo = "00"; fileName = "form_number";
} name = "/T" + number;
if (UtilString.isNotEmpty(levelThree)) { }
levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length()); if (!"".equals(plvers)) {
} else { if (plvers.length() > 1) {
levelThree = "00"; plver = plvers.substring(0, 1) + "."
} + plvers.substring(plvers.length() - 1, plvers.length());
levelnum = levelOne + "." + levelTwo + "." + levelThree ; } else {
}else{ plver = plvers.substring(0, 1) + ".0";
// 根据主表数据查询出权限的编码 }
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");
// 依次生成编号~并回填 修改 String processNum = levelnum + name + "V" + plver + "-" + orgCode + regionCode + productCode;
if (UtilString.isNotEmpty(levelTwo)) { String s = changData.getId();
levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length()); int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase()));
} else { System.out.println("更新表单文件编号回填:" + update + "--->" + processNum + " 文件id" + s);
levelTwo = "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, processNum, fileName, changAfterFileId));
if (UtilString.isNotEmpty(levelThree)) { System.out.println("更新模型文件编号回填:" + update2 + "--->" + processNum + " 文件id" + changAfterFileId);
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; 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'"; String updateSql = "update BO_ACT_COE_PUBLISH_N set PUBLISH_NUMBER='%s' where ID = '%s'";
for (BO nowData : dataList) { for (BO nowData : dataList) {
String publish_numner = nowData.getString("PUBLISH_NUMBER"); String publish_numner = nowData.getString("PUBLISH_NUMBER");
if(UtilString.isEmpty(publish_numner)) { if (UtilString.isEmpty(publish_numner)) {
String publishfileid = nowData.getString("PUBLISHFILEID"); String publishfileid = nowData.getString("PUBLISHFILEID");
RowMap rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" RowMap rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='"
+ publishfileid + "' AND" + " ISUSE = 1 "); + publishfileid + "' AND" + " ISUSE = 1 ");
String name = "00R00"; String name = "00R00";
String fileName = "file_number"; String fileName = "file_number";
String plver = "1.0"; String plver = "1.0";
if (rowMap != null) { if (rowMap != null) {
String plcategory = rowMap.getString("PLMETHODID"); String plcategory = rowMap.getString("PLMETHODID");
String plvers = rowMap.getString("PLVER"); String plvers = rowMap.getString("PLVER");
String number = getProcessNum(levelnum, orgCode,plcategory); String number = getProcessNum(levelnum, orgCode, plcategory);
if (plcategory.contains("process")) { if (plcategory.contains("process")) {
name = "/P" + number; name = "/P" + number;
} else if (plcategory.contains("control")) { } else if (plcategory.contains("control")) {
name = "/R" + number; name = "/R" + number;
} else if (plcategory.contains("form")) { } else if (plcategory.contains("form")) {
fileName = "form_number"; fileName = "form_number";
name = "/T" + number; name = "/T" + number;
} }
if (!"".equals(plvers)) { if (!"".equals(plvers)) {
if (plvers.length() > 1) { if (plvers.length() > 1) {
plver = plvers.substring(0, 1) + "." plver = plvers.substring(0, 1) + "."
+ plvers.substring(plvers.length() - 1, plvers.length()); + plvers.substring(plvers.length() - 1, plvers.length());
} else { } else {
plver = plvers.substring(0, 1) + ".0"; plver = plvers.substring(0, 1) + ".0";
} }
} }
} }
String processNum = levelnum + name + "V" + plver +"-"+orgCode + regionCode + productCode; String processNum = levelnum + name + "V" + plver + "-" + orgCode + regionCode + productCode;
String s = nowData.getId(); String s = nowData.getId();
int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase())); int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase()));
System.out.println("表单文件编号回填:" + update + "--->" + processNum); System.out.println("表单文件编号回填:" + update + "--->" + processNum);
String publishFileId = nowData.getString("PUBLISHFILEID"); String publishFileId = nowData.getString("PUBLISHFILEID");
String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%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, publishFileId)); int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, publishFileId));
System.out.println("模型文件编号回填:" + update2 + "--->" + processNum); System.out.println("模型文件编号回填:" + update2 + "--->" + processNum);
// 更新流程绩效的编号----规则没看懂 // 更新流程绩效的编号----规则没看懂
} }
} }
} }
return "OK"; return "OK";
} }
} }

View File

@ -1,31 +1,5 @@
package com.actionsoft.apps.coe.pal.publisher.client.web; 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.constant.CoEConstant;
import com.actionsoft.apps.coe.pal.cooperation.CoeCooperationAPIManager; import com.actionsoft.apps.coe.pal.cooperation.CoeCooperationAPIManager;
import com.actionsoft.apps.coe.pal.cooperation.cache.CooperationCache; 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.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepository; 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.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.designer.util.CoeDesignerUtil;
import com.actionsoft.apps.coe.pal.pal.repository.model.CoeProcessLevelAutoBean; import com.actionsoft.apps.coe.pal.pal.repository.model.CoeProcessLevelAutoBean;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; 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.DCProfileManager;
import com.actionsoft.bpms.server.fs.dc.DCUtil; import com.actionsoft.bpms.server.fs.dc.DCUtil;
import com.actionsoft.bpms.util.Base64; import com.actionsoft.bpms.util.Base64;
import com.actionsoft.bpms.util.DBSql; import com.actionsoft.bpms.util.*;
import com.actionsoft.bpms.util.UUIDGener; import com.actionsoft.exception.AWSDataAccessException;
import com.actionsoft.bpms.util.UtilDate;
import com.actionsoft.bpms.util.UtilFile;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.exception.AWSException; import com.actionsoft.exception.AWSException;
import com.actionsoft.exception.AWSQuotaException; import com.actionsoft.exception.AWSQuotaException;
import com.actionsoft.i18n.I18nRes; import com.actionsoft.i18n.I18nRes;
import com.actionsoft.sdk.local.SDK; import com.actionsoft.sdk.local.SDK;
import com.actionsoft.sdk.local.api.AppAPI; import com.actionsoft.sdk.local.api.AppAPI;
import com.actionsoft.sdk.local.api.BOQueryAPI;
import com.actionsoft.sdk.local.api.ProcessExecuteQuery; import com.actionsoft.sdk.local.api.ProcessExecuteQuery;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; 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.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.util.concurrent.ThreadFactoryBuilder; 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 * 流程发布App
@ -1914,7 +1897,7 @@ public class ProcessPublishWeb extends ActionWeb {
if (stopBo != null) { if (stopBo != null) {
String stopId=stopBo.getString("STOPFILEID"); String stopId = stopBo.getString("STOPFILEID");
/******************** 附件 **********************/ /******************** 附件 **********************/
// 文件或节点自身附件 // 文件或节点自身附件
JSONArray js = new JSONArray(); JSONArray js = new JSONArray();
@ -3409,9 +3392,9 @@ public class ProcessPublishWeb extends ActionWeb {
PALRepositoryModel stopmodel = PALRepositoryCache.getCache().get(stopBo.getString("STOPFILEID")); 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); obj.put("upfileId", js);
} }
} }
} }
@ -4339,7 +4321,7 @@ public class ProcessPublishWeb extends ActionWeb {
* @param datas * @param datas
* @return * @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(); ResponseObject ro = ResponseObject.newOkResponse();
JSONArray palarr = JSON.parseArray(datas); JSONArray palarr = JSON.parseArray(datas);
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
@ -4366,9 +4348,9 @@ public class ProcessPublishWeb extends ActionWeb {
String methodId = paljb.getString("methodId"); String methodId = paljb.getString("methodId");
PALRepositoryModel model = PALRepositoryCache.getCache().get(id); PALRepositoryModel model = PALRepositoryCache.getCache().get(id);
ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(processInstId); ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processInstId);
if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) {
//ID获取L1 L2 L3 的值 //ID获取L1 L2 L3 的值
List<RowMap> 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)); List<RowMap> 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) { for (RowMap tmp : resulttmp) {
String key = tmp.getString("PROPERTYID"); String key = tmp.getString("PROPERTYID");
@ -4389,7 +4371,7 @@ public class ProcessPublishWeb extends ActionWeb {
} }
result.put(key, value); result.put(key, value);
} }
}else{ } else {
//ID获取L1 L2 L3 L4 的值 //ID获取L1 L2 L3 L4 的值
List<RowMap> 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)); List<RowMap> 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) { for (RowMap tmp : resulttmp) {
@ -4435,22 +4417,22 @@ public class ProcessPublishWeb extends ActionWeb {
* @param product * @param product
* @return * @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); ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(bindid);
if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) {
//l1 l2 l3 l4 保存到表里 //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)); 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'"; 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(); ResponseObject ro = ResponseObject.newOkResponse();
ro.put("data", result == null ? "" : result); ro.put("data", result == null ? "" : result);
return ro.toString(); return ro.toString();
}else{ } else {
//l1 l2 l3 l4 保存到表里 //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)); 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'"; 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)); RowMap result = DBSql.getMap(String.format(sql, level1, level2, level3, level4, company, region, product));
ResponseObject ro = ResponseObject.newOkResponse(); ResponseObject ro = ResponseObject.newOkResponse();
ro.put("data", result == null ? "" : result); ro.put("data", result == null ? "" : result);
return ro.toString(); return ro.toString();
@ -4570,8 +4552,8 @@ public class ProcessPublishWeb extends ActionWeb {
*/ */
public String getProcessManifest(String publishFileId, String fileName) { public String getProcessManifest(String publishFileId, String fileName) {
BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(publishFileId, 0); BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(publishFileId, 0);
if(defineModel==null){ if (defineModel == null) {
return ResponseObject.newErrResponse("当前模型名称:【"+fileName+"】当前不存在活动节点<br/>请配置活动节点后再进行查看活动清单操作!").toString(); return ResponseObject.newErrResponse("当前模型名称:【" + fileName + "】当前不存在活动节点<br/>请配置活动节点后再进行查看活动清单操作!").toString();
} }
String definition = defineModel.getDefinition(); String definition = defineModel.getDefinition();
JSONObject definitionJo = JSONObject.parseObject(definition); JSONObject definitionJo = JSONObject.parseObject(definition);
@ -4605,7 +4587,7 @@ public class ProcessPublishWeb extends ActionWeb {
* @param shape 形状 * @param shape 形状
* @param fileName 文件名称 * @param fileName 文件名称
*/ */
private void setShapeAttr(ArrayList<BO> bos, String publishFileId, JSONObject shape, String fileName , List<RowMap> processLevel) { private void setShapeAttr(ArrayList<BO> bos, String publishFileId, JSONObject shape, String fileName, List<RowMap> processLevel) {
//只需要活动节点 //只需要活动节点
if (shape.containsKey("category") && !shape.getString("title").equals("开始/结束")) { if (shape.containsKey("category") && !shape.getString("title").equals("开始/结束")) {
BO bo = new BO(); BO bo = new BO();
@ -4666,7 +4648,7 @@ public class ProcessPublishWeb extends ActionWeb {
if (publishNBO.size() > 0) { if (publishNBO.size() > 0) {
for (BO onePublishN : publishNBO) { for (BO onePublishN : publishNBO) {
if(onePublishN.getString("TASKID").equals("submit_create")){ if (onePublishN.getString("TASKID").equals("submit_create")) {
return ResponseObject.newWarnResponse("请先创建手册!!").toString(); return ResponseObject.newWarnResponse("请先创建手册!!").toString();
} }
String plId = onePublishN.getString("PUBLISHFILEID"); 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<BO> publishCBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").bindId(processInstId).list(); List<BO> 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) { for (BO onePublishC : publishCBO) {
if(onePublishC.getString("TASKID")=="submit_create"){ if (onePublishC.getString("TASKID") == "submit_create") {
return ResponseObject.newWarnResponse("请先创建手册!!").toString(); return ResponseObject.newWarnResponse("请先创建手册!!").toString();
} }
@ -4731,7 +4713,7 @@ public class ProcessPublishWeb extends ActionWeb {
} }
} }
}else if(type.equals("3")) { } else if (type.equals("3")) {
//发布变更文件 //发布变更文件
List<BO> publishSBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S").bindId(processInstId).list(); List<BO> publishSBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_S").bindId(processInstId).list();
@ -4769,7 +4751,7 @@ public class ProcessPublishWeb extends ActionWeb {
} }
} }
} catch (AWSDataAccessException e) { } catch (AWSDataAccessException e) {
ro.put("result","创建手册失败!!!"); ro.put("result", "创建手册失败!!!");
e.printStackTrace(); e.printStackTrace();
} }
return ro.toString(); return ro.toString();
@ -4789,8 +4771,8 @@ public class ProcessPublishWeb extends ActionWeb {
} }
ResponseObject ro = ResponseObject.newOkResponse(); ResponseObject ro = ResponseObject.newOkResponse();
try { try {
ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(processInstId); ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processInstId);
if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ if (processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362") || processInstance.getProcessDefId().equals("obj_5609e1d265dc4e7094c617f20be353dd") || processInstance.getProcessDefId().equals("obj_114e76f691c14beb902e9904f4be26f8")) {
//ID获取L1 L2 L3 的值 //ID获取L1 L2 L3 的值
List<RowMap> 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)); List<RowMap> 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) { for (RowMap tmp : resulttmp) {
@ -4800,7 +4782,7 @@ public class ProcessPublishWeb extends ActionWeb {
} }
ro.put("data", result); ro.put("data", result);
ro.put("info", iswrong); ro.put("info", iswrong);
}else{ } else {
//ID获取L1 L2 L3 L4 的值 //ID获取L1 L2 L3 L4 的值
List<RowMap> 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)); List<RowMap> 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) { for (RowMap tmp : resulttmp) {
@ -4821,6 +4803,7 @@ public class ProcessPublishWeb extends ActionWeb {
/** /**
* 中断任务操作 * 中断任务操作
*
* @param uuid * @param uuid
* @param processInstId * @param processInstId
* @return * @return
@ -4831,10 +4814,10 @@ public class ProcessPublishWeb extends ActionWeb {
return ResponseObject.newErrResponse("流程实例未找到").toString(); return ResponseObject.newErrResponse("流程实例未找到").toString();
} }
int count = DBSql.update("UPDATE BO_ACT_EXECUTIVE_TASK SET TASKSTATUS='2' WHERE TASKID ='" + taskId + "'"); int count = DBSql.update("UPDATE BO_ACT_EXECUTIVE_TASK SET TASKSTATUS='2' WHERE TASKID ='" + taskId + "'");
if(count>0){ if (count > 0) {
ro.put("result","ok"); ro.put("result", "ok");
}else{ } else {
ro.put("result","error"); ro.put("result", "error");
} }
return ro.toString(); return ro.toString();
} }

View File

@ -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.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.listener.InterruptListener; import com.actionsoft.bpms.bpmn.engine.listener.InterruptListener;
import com.actionsoft.bpms.bpmn.engine.listener.InterruptListenerInterface; 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.database.RowMap;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject; import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.bpms.util.DBSql; import com.actionsoft.bpms.util.DBSql;
@ -51,7 +50,6 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
/** /**
*
* @param param * @param param
* @return * @return
* @throws Exception * @throws Exception
@ -60,36 +58,34 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
public boolean execute(ProcessExecutionContext param) throws Exception { public boolean execute(ProcessExecutionContext param) throws Exception {
List<BO> gridNData = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(param.getProcessInstance().getId()).list();
List<BO> gridNData=SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(param.getProcessInstance().getId()).list(); String bindid = param.getProcessInstance().getId();
String bindid=param.getProcessInstance().getId(); StringBuffer sb = new StringBuffer();
StringBuffer sb=new StringBuffer(); StringBuffer sb1 = new StringBuffer();
StringBuffer sb1=new StringBuffer();
if (gridNData.size() > 0) { if (gridNData.size() > 0) {
for (BO rowData : gridNData) { for (BO rowData : gridNData) {
//下面一行示例代码可以获取Ajax子表的每行记录的新建状态 //下面一行示例代码可以获取Ajax子表的每行记录的新建状态
String publishfileid = String.valueOf(rowData.getString("PUBLISHFILEID"));//注意isCreate并不是BO的一个字段该字段是有接口上层赋值的 String publishfileid = String.valueOf(rowData.getString("PUBLISHFILEID"));//注意isCreate并不是BO的一个字段该字段是有接口上层赋值的
verifyPublish(publishfileid,rowData,bindid,sb,sb1,"1"); verifyPublish(publishfileid, rowData, bindid, sb, sb1, "1");
} }
} }
//发布变更 //发布变更
List<BO> gridCData=SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(param.getProcessInstance().getId()).list(); List<BO> gridCData = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(param.getProcessInstance().getId()).list();
if (gridCData.size() > 0) { if (gridCData.size() > 0) {
for (BO rowData : gridCData) { for (BO rowData : gridCData) {
//下面一行示例代码可以获取Ajax子表的每行记录的新建状态 //下面一行示例代码可以获取Ajax子表的每行记录的新建状态
String publishfileid = String.valueOf(rowData.getString("CHANGEDFILEIDNEW"));//注意isCreate并不是BO的一个字段该字段是有接口上层赋值的 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; 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); defineQualityCheck(publishfileid);
// 校验 // 校验
PALRepositoryModel model = PALRepositoryCache.getCache().get(publishfileid); PALRepositoryModel model = PALRepositoryCache.getCache().get(publishfileid);
@ -102,135 +98,132 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
for (PALRepositoryPropertyModel propertyModel : oldPropertyList) { for (PALRepositoryPropertyModel propertyModel : oldPropertyList) {
//获取文件属性中支持文件 //获取文件属性中支持文件
if(propertyModel.getPropertyId().equals("support_files")){ if (propertyModel.getPropertyId().equals("support_files")) {
//获取关联模型id //获取关联模型id
String relationFileId= null; String relationFileId = null;
try { try {
String propertyValue = propertyModel.getPropertyValue(); String propertyValue = propertyModel.getPropertyValue();
System.err.println("propertyValue========>"+propertyValue); System.err.println("propertyValue========>" + propertyValue);
if(UtilString.isNotEmpty(propertyValue)&&propertyValue.contains("{")) { if (UtilString.isNotEmpty(propertyValue) && propertyValue.contains("{")) {
relationFileId = JSONObject.parseObject(propertyModel.getPropertyValue()).getString("relationFileId"); relationFileId = JSONObject.parseObject(propertyModel.getPropertyValue()).getString("relationFileId");
} }
} catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); // e.printStackTrace();
throw new BPMNError("0313", sb.append("模型名称:").append(model.getName()).append("关联支持文件异常,请联系管理员!!!").append("</br>").toString()); throw new BPMNError("0313", sb.append("模型名称:").append(model.getName()).append("关联支持文件异常,请联系管理员!!!").append("</br>").toString());
} }
//获取关联表单模型id //获取关联表单模型id
List<Map<String, Object>> fileElements ; List<Map<String, Object>> fileElements;
if(UtilString.isNotEmpty(relationFileId)){ 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<splitRelationFileId.length;i++) { for (int i = 0; i < splitRelationFileId.length; i++) {
PALRepositoryModel onemodel = PALRepositoryCache.getCache().get(splitRelationFileId[i]); PALRepositoryModel onemodel = PALRepositoryCache.getCache().get(splitRelationFileId[i]);
if(onemodel!=null) { if (onemodel != null) {
boolean isUse = onemodel.isUse(); boolean isUse = onemodel.isUse();
boolean publish = onemodel.isPublish(); boolean publish = onemodel.isPublish();
//如果状态是未发布 //如果状态是未发布
if (isUse == true && publish == false) { if (isUse == true && publish == false) {
fileElements = CoeDesignerUtil.getShapeMessageJson4(onemodel.getId()); fileElements = CoeDesignerUtil.getShapeMessageJson4(onemodel.getId());
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[i]); 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[i]);
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[i]); 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[i]);
if (publishNrowMap == null && publishCrowMap == null) { if (publishNrowMap == null && publishCrowMap == null) {
sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("</br>"); sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("</br>");
}
//如果当前不是使用中查找使用中版本
}else if(isUse==false && publish==true){
List<PALRepositoryModel> 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("</br>");
}
}
}
}
}else if(isUse==false && publish==false) {
List<PALRepositoryModel> 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("</br>");
}
}
}
}
} }
if(onemodel.getMethodId().equals("data.form")){ //如果当前不是使用中查找使用中版本
fileElements = CoeDesignerUtil.getShapeMessageJson4(splitRelationFileId[i]); } else if (isUse == false && publish == true) {
for (Map<String, Object> shape : fileElements) { List<PALRepositoryModel> versions = PALRepositoryCache.getByVersionId(model.getVersionId());
String tempShapeId = shape.get("id").toString(); if (versions.size() > 0) {
for (int k = 0; k < versions.size(); k++) {
UpFileDao dao = new UpFileDao(); boolean isUseV = versions.get(k).isUse();
// 文件根据relationFileId 文件类型 查询 boolean isPublishV = versions.get(k).isPublish();
List<UpfileModel> list2;
list2= dao.search(splitRelationFileId[i], tempShapeId, "s"); if (isUseV == true && isPublishV == false) {
if(list2.size()==0){ fileElements = CoeDesignerUtil.getShapeMessageJson4(onemodel.getId());
String name="";
if (type == "1") { 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]);
name=rowData.getString("PUBLISHFILENAME");
} else {
name=rowData.getString("CHANGEFILENAME"); 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("</br>");
} }
sb.append(name).append("关联模型名称:").append("</br>").append("").append(shape.get("plName")).append("").append("节点名称:").append(""+shape.get("name")+"").append("未上传附件,请检查!!!").append("</br>").append(",");
} }
} }
} }
} else if (isUse == false && publish == false) {
List<PALRepositoryModel> 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("</br>");
}
}
}
}
} }
if (onemodel.getMethodId().equals("data.form")) {
fileElements = CoeDesignerUtil.getShapeMessageJson4(splitRelationFileId[i]);
for (Map<String, Object> shape : fileElements) {
String tempShapeId = shape.get("id").toString();
UpFileDao dao = new UpFileDao();
// 文件根据relationFileId 文件类型 查询
List<UpfileModel> 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("</br>").append("").append(shape.get("plName")).append("").append("节点名称:").append("" + shape.get("name") + "").append("未上传附件,请检查!!!").append("</br>").append(",");
}
}
}
} }
} }
}
} }
} }
@ -244,18 +237,18 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
} }
/** /**
* 判断文件属性数据属性校验 * 判断文件属性数据属性校验
*
* @param uuid * @param uuid
* @return * @return
*/ */
public void defineQualityCheck(String uuid){ public void defineQualityCheck(String uuid) {
PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid); PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid);
String vison = getVison(uuid); String vison = getVison(uuid);
List<JSONObject> elements_fei = getShapeJsonToJsonObject2(vison); List<JSONObject> elements_fei = getShapeJsonToJsonObject2(vison);
StringBuffer sb6= new StringBuffer(); StringBuffer sb6 = new StringBuffer();
StringBuilder sbs = new StringBuilder(); StringBuilder sbs = new StringBuilder();
List<String> list_linker = new LinkedList<>(); List<String> list_linker = new LinkedList<>();
//连线数据增加 //连线数据增加
@ -267,7 +260,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
String title = o.getString("title"); String title = o.getString("title");
if (!shapeName.equals("linker")) { if (!shapeName.equals("linker")) {
list_linker.add(shapeId); 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"); String to_id = to.getString("id");
if (UtilString.isNotEmpty(from_id)) { if (UtilString.isNotEmpty(from_id)) {
list_linker.remove(from_id); list_linker.remove(from_id);
}else { } else {
JSONObject definition = JSONObject.parseObject(vison); JSONObject definition = JSONObject.parseObject(vison);
JSONObject elements = definition.getJSONObject("elements"); JSONObject elements = definition.getJSONObject("elements");
JSONObject string = elements.getJSONObject(to_id); JSONObject string = elements.getJSONObject(to_id);
String title = string.getString("title"); String title = string.getString("title");
sb6.append("\""+title+"\"").append("连线没有入线"); sb6.append("\"" + title + "\"").append("连线没有入线");
list_linker.add("\""+title+"\""+"连线没有入线"); list_linker.add("\"" + title + "\"" + "连线没有入线");
} }
if (UtilString.isNotEmpty(to_id)) { if (UtilString.isNotEmpty(to_id)) {
list_linker.remove(to_id); list_linker.remove(to_id);
}else { } else {
JSONObject definition = JSONObject.parseObject(vison); JSONObject definition = JSONObject.parseObject(vison);
JSONObject elements = definition.getJSONObject("elements"); JSONObject elements = definition.getJSONObject("elements");
JSONObject string = elements.getJSONObject(from_id); JSONObject string = elements.getJSONObject(from_id);
String title = string.getString("title"); String title = string.getString("title");
sb6.append("\""+title+"\"").append("连线没有出线"); sb6.append("\"" + title + "\"").append("连线没有出线");
list_linker.add("\""+title+"\""+"连线没有出线"); list_linker.add("\"" + title + "\"" + "连线没有出线");
} }
} }
//System.out.println("m的值>>>>>>>>>>>" + ms); //System.out.println("m的值>>>>>>>>>>>" + ms);
@ -316,9 +309,9 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
sb6.append("校验未通过,请检查模型是否都已连线!"); sb6.append("校验未通过,请检查模型是否都已连线!");
sbs.append(sb6); sbs.append(sb6);
} }
if (sbs.length()>0){ /*if (sbs.length()>0){
throw new BPMNError("0313", sbs.toString()); throw new BPMNError("0313", sbs.toString());
} }*/
/************************************文件属性校验************************************/ /************************************文件属性校验************************************/
ResponseObject ro = ResponseObject.newOkResponse(); ResponseObject ro = ResponseObject.newOkResponse();
@ -338,13 +331,14 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
List<PALRepositoryPropertyModel> propertys = dao.getPropertysByPlid(uuid, null); List<PALRepositoryPropertyModel> propertys = dao.getPropertysByPlid(uuid, null);
Boolean flag1=true; Boolean flag1 = true;
Boolean flag2=true; Boolean flag2 = true;
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
StringBuffer sb1=new StringBuffer(); StringBuffer sb1 = new StringBuffer();
StringBuffer sb2=new StringBuffer(); StringBuffer sb2 = new StringBuffer();
StringBuffer sb3=new StringBuffer(); StringBuffer sb3 = new StringBuffer();
StringBuffer sb4 = new StringBuffer();; StringBuffer sb4 = new StringBuffer();
;
sb.append("<span style='font-weight:bold'>质量校验<span><br/>"); sb.append("<span style='font-weight:bold'>质量校验<span><br/>");
@ -370,16 +364,16 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
flag1 = UtilString.isNotEmpty(property.getPropertyValue()); flag1 = UtilString.isNotEmpty(property.getPropertyValue());
} }
if (!flag1) {// 校验不通过 if (!flag1) {// 校验不通过
sb1.append("''"+attributeModel.getTitle()+"''").append(","); sb1.append("''" + attributeModel.getTitle() + "''").append(",");
flag1 = false; flag1 = false;
} }
} }
if(sb1.length()>0){ if (sb1.length() > 0) {
sb.append("<span style='font-weight:bold'>模型名称:【"+model.getName()+"】<span><br/>"); sb.append("<span style='font-weight:bold'>模型名称:【" + model.getName() + "】<span><br/>");
sb.append("<span>文件属性:<span><br/>"); sb.append("<span>文件属性:<span><br/>");
sb.append(sb1.substring(0, sb1.length()-1)); sb.append(sb1.substring(0, sb1.length() - 1));
sb.append("未填写,请检查!").append("</br>"); sb.append("未填写,请检查!").append("</br>");
} }
@ -430,27 +424,26 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
flag2 = UtilString.isNotEmpty(value); flag2 = UtilString.isNotEmpty(value);
} }
if (!flag2) { if (!flag2) {
sb2.append("<span>节点名称:<span>"+""+text+"").append("''"+attrModel.getNewTitle()+"''").append("</br>"); sb2.append("<span>节点名称:<span>" + "" + text + "").append("''" + attrModel.getNewTitle() + "''").append("</br>");
} }
} }
} }
} }
if(sb2.length()>0){ if (sb2.length() > 0) {
sb.append("<span>数据属性:<span><br/>"); sb.append("<span>数据属性:<span><br/>");
sb.append(sb2.substring(0, sb2.length()-1)); sb.append(sb2.substring(0, sb2.length() - 1));
sb.append("未填写,请检查!"); sb.append("未填写,请检查!");
} }
int index=sb.indexOf("未填写"); int index = sb.indexOf("未填写");
if(index!=-1){ if (index != -1) {
ro.put("result","error"); ro.put("result", "error");
sb1 = sb.deleteCharAt(sb.length() - 1); sb1 = sb.deleteCharAt(sb.length() - 1);
throw new BPMNError("0313", sb1.toString()); throw new BPMNError("0313", sb1.toString());
} }
} }
public static List<JSONObject> getShapeJsonToJsonObject2(String messageJson) { public static List<JSONObject> getShapeJsonToJsonObject2(String messageJson) {
@ -462,7 +455,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
String key = ite.next(); String key = ite.next();
JSONObject shape = elements.getJSONObject(key); JSONObject shape = elements.getJSONObject(key);
String name = shape.getString("name"); String name = shape.getString("name");
if ("linker".equals(name)){ if ("linker".equals(name)) {
JSONObject jsonObj = new JSONObject(); JSONObject jsonObj = new JSONObject();
jsonObj.put("id", key); jsonObj.put("id", key);
jsonObj.put("name", shape.getString("name")); jsonObj.put("name", shape.getString("name"));
@ -529,10 +522,11 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
/** /**
* 根据uuid寻找对应的json文件即图形文件 * 根据uuid寻找对应的json文件即图形文件
*
* @param uuid 文件id * @param uuid 文件id
* @return json文件 * @return json文件
*/ */
public String getVison(String uuid) { public String getVison(String uuid) {
List<Map<String, Object>> fileElements = CoeDesignerUtil.getShapeMessageJson4(uuid); List<Map<String, Object>> fileElements = CoeDesignerUtil.getShapeMessageJson4(uuid);
JSONObject definition = new JSONObject(new LinkedHashMap<>()); JSONObject definition = new JSONObject(new LinkedHashMap<>());
if (fileElements.size() > 0) { if (fileElements.size() > 0) {
@ -541,7 +535,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int
BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(uuid, 0); BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(uuid, 0);
String define = defineModel.getDefinition(); String define = defineModel.getDefinition();
definition = JSONObject.parseObject(define); definition = JSONObject.parseObject(define);
} }
} }

View File

@ -1,8 +1,5 @@
package com.actionsoft.apps.coe.pal.publisher.event; 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.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.apps.coe.pal.publisher.constant.PublisherConstant; 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.SDK;
import com.actionsoft.sdk.local.api.BOQueryAPI; import com.actionsoft.sdk.local.api.BOQueryAPI;
import org.apache.commons.lang.StringUtils; 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 class SubFormAfterSave extends ExecuteListener {
public String getDescription() { public String getDescription() {
return "子表单保存后,拆分成多条数据保存到数据库中"; return "子表单保存后,拆分成多条数据保存到数据库中";
} }
@ -35,7 +34,7 @@ public class SubFormAfterSave extends ExecuteListener {
} }
public void execute(ProcessExecutionContext param) throws Exception { public void execute(ProcessExecutionContext param) throws Exception {
String processInstId = param.getProcessInstance().getId(); String processInstId = param.getProcessInstance().getId();
//记录ID //记录ID
String boId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BOID); String boId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BOID);
//表单ID //表单ID
@ -47,85 +46,85 @@ public class SubFormAfterSave extends ExecuteListener {
String bindId = formData.getBindId(); String bindId = formData.getBindId();
String uid = formData.getCreateUser(); String uid = formData.getCreateUser();
if (boName.equals("BO_ACT_COE_PUBLISH_N")) { if (boName.equals("BO_ACT_COE_PUBLISH_N")) {
// 保存前的表单数据注意该参数针对不同场景获取内容会有所不同 // 保存前的表单数据注意该参数针对不同场景获取内容会有所不同
// 主表场景获取主表数据子表场景获取子表数据获取不同的数据请使用BOQueryAPI获取 // 主表场景获取主表数据子表场景获取子表数据获取不同的数据请使用BOQueryAPI获取
String publishFileId = formData.getString("PUBLISHFILEID"); String publishFileId = formData.getString("PUBLISHFILEID");
String publishDesc = formData.getString("PUBLISHDESC"); String publishDesc = formData.getString("PUBLISHDESC");
BOQueryAPI boQueryAPI = SDK.getBOAPI().query(boName); BOQueryAPI boQueryAPI = SDK.getBOAPI().query(boName);
boQueryAPI = boQueryAPI.bindId(bindId); boQueryAPI = boQueryAPI.bindId(bindId);
List<BO> list = boQueryAPI.list(); List<BO> list = boQueryAPI.list();
StringBuilder boFileIds = new StringBuilder(); StringBuilder boFileIds = new StringBuilder();
for (BO bo : list) { for (BO bo : list) {
if (!bo.getId().equals(formData.getId())) { if (!bo.getId().equals(formData.getId())) {
boFileIds.append(bo.get("PUBLISHFILEID")); boFileIds.append(bo.get("PUBLISHFILEID"));
} }
} }
String existedBoFileIds = boFileIds.toString(); String existedBoFileIds = boFileIds.toString();
if (publishFileId != null && publishFileId.length() > 0) { if (publishFileId != null && publishFileId.length() > 0) {
String[] publishFileIds = publishFileId.split(","); String[] publishFileIds = publishFileId.split(",");
List<BO> boList = new ArrayList<BO>(); List<BO> boList = new ArrayList<BO>();
for (String fileId : publishFileIds) { for (String fileId : publishFileIds) {
if (!existedBoFileIds.contains(fileId)) { if (!existedBoFileIds.contains(fileId)) {
PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId); PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId);
if (repositoryModel != null) { if (repositoryModel != null) {
BO newBO = new BO(); BO newBO = new BO();
newBO.setId(UUIDGener.getUUID()); newBO.setId(UUIDGener.getUUID());
newBO.set("PUBLISTHTYPE", "N"); newBO.set("PUBLISTHTYPE", "N");
newBO.set("PUBLISHFILEID", fileId); newBO.set("PUBLISHFILEID", fileId);
newBO.set("PUBLISHFILENAME", repositoryModel.getName()); newBO.set("PUBLISHFILENAME", repositoryModel.getName());
newBO.set("PUBLISHDESC", publishDesc); newBO.set("PUBLISHDESC", publishDesc);
boList.add(newBO); boList.add(newBO);
} }
} }
} }
SDK.getBOAPI().create(boName, boList, bindId, uid); SDK.getBOAPI().create(boName, boList, bindId, uid);
// 该记录是否新建的状态由于机制调整BO对象中的ID是不为空的不能通过ID判断记录是否处于新建状态还是修改状态 // 该记录是否新建的状态由于机制调整BO对象中的ID是不为空的不能通过ID判断记录是否处于新建状态还是修改状态
boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE); boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE);
if (isCreate) { if (isCreate) {
SDK.getBOAPI().remove(boName, boId); SDK.getBOAPI().remove(boName, boId);
} }
} }
} else if (boName.equals("BO_ACT_COE_PUBLISH_S")) { } 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); boQueryAPI = boQueryAPI.bindId(bindId);
List<BO> list = boQueryAPI.list(); List<BO> list = boQueryAPI.list();
StringBuilder boFileIds = new StringBuilder(); StringBuilder boFileIds = new StringBuilder();
for (BO bo : list) { for (BO bo : list) {
if (!bo.getId().equals(formData.getId())) { if (!bo.getId().equals(formData.getId())) {
boFileIds.append(bo.get("STOPFILEID")); boFileIds.append(bo.get("STOPFILEID"));
} }
} }
String existedBoFileIds = boFileIds.toString(); String existedBoFileIds = boFileIds.toString();
String stopFileId = formData.getString("STOPFILEID"); String stopFileId = formData.getString("STOPFILEID");
String stopDesc = formData.getString("STOPDESC"); String stopDesc = formData.getString("STOPDESC");
if (stopFileId != null && stopFileId.length() > 0) { if (stopFileId != null && stopFileId.length() > 0) {
String[] publishFileIds = stopFileId.split(","); String[] publishFileIds = stopFileId.split(",");
List<BO> boList = new ArrayList<BO>(); List<BO> boList = new ArrayList<BO>();
for (String fileId : publishFileIds) { for (String fileId : publishFileIds) {
if (!existedBoFileIds.contains(fileId)) { if (!existedBoFileIds.contains(fileId)) {
PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId); PALRepositoryModel repositoryModel = PALRepositoryCache.getCache().get(fileId);
if (repositoryModel != null) { if (repositoryModel != null) {
BO newBO = new BO(); BO newBO = new BO();
newBO.setId(UUIDGener.getUUID()); newBO.setId(UUIDGener.getUUID());
newBO.set("STOPTYPE", "S"); newBO.set("STOPTYPE", "S");
newBO.set("STOPFILEID", fileId); newBO.set("STOPFILEID", fileId);
newBO.set("STOPFILENAME", repositoryModel.getName()); newBO.set("STOPFILENAME", repositoryModel.getName());
newBO.set("STOPDESC", stopDesc); newBO.set("STOPDESC", stopDesc);
boList.add(newBO); boList.add(newBO);
} }
} }
} }
SDK.getBOAPI().create(boName, boList, bindId, uid); SDK.getBOAPI().create(boName, boList, bindId, uid);
// 该记录是否新建的状态由于机制调整BO对象中的ID是不为空的不能通过ID判断记录是否处于新建状态还是修改状态 // 该记录是否新建的状态由于机制调整BO对象中的ID是不为空的不能通过ID判断记录是否处于新建状态还是修改状态
boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE); boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE);
if (isCreate) { if (isCreate) {
SDK.getBOAPI().remove(boName, boId); SDK.getBOAPI().remove(boName, boId);
} }
//保存文件类型到主表 //保存文件类型到主表
saveFileType(processInstId); saveFileType(processInstId);
} }
@ -133,101 +132,102 @@ public class SubFormAfterSave extends ExecuteListener {
//保存文件类型到主表 //保存文件类型到主表
saveFileType(processInstId); saveFileType(processInstId);
System.out.println(formData.getString("ADAPT_NAME_THE_COMPANY")); System.out.println(formData.getString("ADAPT_NAME_THE_COMPANY"));
System.out.println(formData.getString("ADAPT_REGION_NAME")); System.out.println(formData.getString("ADAPT_REGION_NAME"));
System.out.println(formData.getString("APPLICABLE_PRODUCT")); System.out.println(formData.getString("APPLICABLE_PRODUCT"));
/* /*
根据L1L2L3L4查询权限矩阵所属分部数据 根据L1L2L3L4查询权限矩阵所属分部数据
*/ */
ProcessInstance processInstance=SDK.getProcessAPI().getInstanceById(processInstId); ProcessInstance processInstance = SDK.getProcessAPI().getInstanceById(processInstId);
if(processInstance.getProcessDefId().equals("obj_fb1c7a54b98b412187388c8bab407362")){ 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 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") }); 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)){ if (StringUtils.isNotEmpty(ssfb)) {
int r1 = DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET SSFB='" + ssfb + "'WHERE BINDID ='" + processInstId + "'"); int r1 = DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET SSFB='" + ssfb + "'WHERE BINDID ='" + processInstId + "'");
} }
}else{ } 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 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") }); 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 + "'");
}
}
} }
public String saveFileType(String processInstId) { public String saveFileType(String processInstId) {
List<BO> bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list(); List<BO> bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list();
ArrayList<String> arr = new ArrayList<String>(); ArrayList<String> arr = new ArrayList<String>();
if(bolistN.size()>0) { if (bolistN.size() > 0) {
for (BO bo : bolistN) { for (BO bo : bolistN) {
try { try {
typeList(arr, bo.getString("PUBLISHFILEID")); typeList(arr, bo.getString("PUBLISHFILEID"));
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
} }
} }
} }
List<BO> bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list(); List<BO> bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list();
if(bolistC.size()>0) { if (bolistC.size() > 0) {
for (BO bo : bolistC) { for (BO bo : bolistC) {
try { try {
typeList(arr, bo.getString("CHANGEDFILEIDNEW")); typeList(arr, bo.getString("CHANGEDFILEIDNEW"));
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
} }
} }
} }
List<BO> bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list(); List<BO> bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list();
if(bolistS.size()>0) { if (bolistS.size() > 0) {
for (BO bo : bolistS) { for (BO bo : bolistS) {
try { try {
typeList(arr, bo.getString("STOPFILEID")); typeList(arr, bo.getString("STOPFILEID"));
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
} }
} }
} }
//保存发布文件的类型到主表 //保存发布文件的类型到主表
if((arr.contains("表单模板")||arr.contains("操作指导"))&&!arr.contains("制度模型")&&!arr.contains("EPC模型")&&!arr.contains("泳道图")) { 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+"'"); 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", "操作指导/表单模板"); //SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "操作指导/表单模板");
}else { } else {
DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '制度模型/EPC模型/泳道图' WHERE BINDID = '"+processInstId+"'"); 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模型/泳道图"); //SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "制度模型/EPC模型/泳道图");
} }
return processInstId; return processInstId;
}
public ArrayList<String> typeList(ArrayList<String> 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<String> typeList(ArrayList<String> 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;
}
} }