流程模型的节点没有属性的时候也同步到流程模型清单视图里

This commit is contained in:
wangpf 2023-06-08 15:19:21 +08:00
parent fc8e0747ca
commit 0a682ee169
2 changed files with 144 additions and 129 deletions

View File

@ -817,12 +817,25 @@ public class PublisherController {
return publishWeb.getProcessManifest(publishFileId , fileName);
}
/**
* 获得发布指导dw数据id
*
* @param me me
* @param areaType 区域类型
* @return {@link String}
*/
@Mapping("com.actionsoft.apps.coe.pal.publisher_guide")
public String getPublishGuideDwDataId(UserContext me, String areaType) {
ProcessPublishWeb publishWeb = new ProcessPublishWeb(me);
return publishWeb.getPublishGuideDwDataId(areaType);
}
/**
* 获得发布指导台账各个显示区域的配置状态
*
* @param me me
* @return {@link String}
*/
@Mapping("com.actionsoft.apps.coe.pal.publisher_guide_status")
public String getPublishGuideStatus(UserContext me) {
ProcessPublishWeb publishWeb = new ProcessPublishWeb(me);

View File

@ -4187,7 +4187,7 @@ public class ProcessPublishWeb extends ActionWeb {
* @param datas
* @return
*/
public String getLevelByData(UserContext me, String wsId,String type,String datas) {
public String getLevelByData(UserContext me, String wsId, String type, String datas) {
ResponseObject ro = ResponseObject.newOkResponse();
JSONArray palarr = JSON.parseArray(datas);
JSONObject result = new JSONObject();
@ -4196,9 +4196,9 @@ public class ProcessPublishWeb extends ActionWeb {
for (int i = 0; i < palarr.size(); i++) {
JSONObject paljb = palarr.getJSONObject(i);
String id;
if(type.equals("change")){
if (type.equals("change")) {
id = paljb.getString("changedFileIdNew");
}else{
} else {
id = paljb.getString("id");
//获取最新要更新版本的id
List<PALRepositoryModel> temp = PALRepositoryCache.getByVersionId(wsId, id);
@ -4345,11 +4345,11 @@ public class ProcessPublishWeb extends ActionWeb {
* @param areaType 区域类型
* @return {@link String}
*/
public String getPublishGuideDwDataId(String areaType){
public String getPublishGuideDwDataId(String areaType) {
ResponseObject ro = ResponseObject.newOkResponse();
BO bo = SDK.getBOAPI().query("BO_ACT_PUBLISH_GUIDE").addQuery("AREAID = ", areaType).detail();
if(bo != null){
ro.put("dwId" , bo.getId());
if (bo != null) {
ro.put("dwId", bo.getId());
}
return ro.toString();
}
@ -4359,12 +4359,12 @@ public class ProcessPublishWeb extends ActionWeb {
*
* @return {@link String}
*/
public String getPublishGuideStatus(){
public String getPublishGuideStatus() {
ResponseObject ro = ResponseObject.newOkResponse();
//List<BO> publishGuideList = SDK.getBOAPI().query("BO_ACT_PUBLISH_GUIDE").list();
String sql ="SELECT AREAID,STATUS FROM BO_ACT_PUBLISH_GUIDE WHERE 1=?";
String sql = "SELECT AREAID,STATUS FROM BO_ACT_PUBLISH_GUIDE WHERE 1=?";
List<RowMap> publishGuideStatus = DBSql.getMaps(sql, 1);
ro.put("status",publishGuideStatus);
ro.put("status", publishGuideStatus);
return ro.toString();
}
@ -4383,12 +4383,10 @@ public class ProcessPublishWeb extends ActionWeb {
ArrayList<BO> bos = new ArrayList<>();
ResponseObject ro = ResponseObject.newOkResponse();
elements.forEach((k, v) -> {
if (((JSONObject) v).containsKey("attributesJsonArray")) {
setShapeAttr(bos, publishFileId, (JSONObject) v, fileName);
}
setShapeAttr(bos, publishFileId, (JSONObject) v, fileName);
});
if(bos.size() == 0){
return ResponseObject.newErrResponse("模型的数据属性不存在").toString();
if (bos.size() == 0) {
return ResponseObject.newErrResponse("模型不存在活动节点").toString();
}
ProcessInstance processInst = SDK.getProcessAPI().createBOProcessInstance("obj_f188537a313e4c6a9bb44eb65f2a0ecd", _uc.getUID(), "流程清单");
BO oldBo = (BO) ((BOQueryAPI) SDK.getBOAPI().query("BO_ACT_PAL_PROCESS_MANIFEST").addQuery("MODELID = ", publishFileId)).detail();
@ -4410,151 +4408,155 @@ public class ProcessPublishWeb extends ActionWeb {
* @param fileName 文件名称
*/
private void setShapeAttr(ArrayList<BO> bos, String publishFileId, JSONObject shape, String fileName) {
BO bo = new BO();
bo.set("MODELNAME", fileName);
bo.set("MODELID", publishFileId);
if (shape.containsKey("category")) {
//只需要活动节点
if (shape.containsKey("category") && !shape.getString("title").equals("开始/结束")) {
BO bo = new BO();
bo.set("MODELNAME", fileName);
bo.set("MODELID", publishFileId);
bo.set("MODELTYPE", shape.getString("category"));
}
if (shape.containsKey("title")) {
bo.set("SHAPETYPE", shape.getString("title"));
}
if (shape.containsKey("text")) {
bo.set("SHAPENAME", shape.getString("text"));
if (shape.containsKey("dataAttributes")) {
JSONArray dataAttributes = shape.getJSONArray("dataAttributes");
if (dataAttributes.size() > 0) {
JSONObject attributesJson = dataAttributes.getJSONObject(dataAttributes.size() - 1);
if (attributesJson.containsKey("attributesJsonArray")) {
//形状的属性
JSONArray attributesJsonArray = attributesJson.getJSONArray("attributesJsonArray");
attributesJsonArray.stream()
.filter(a -> a != null && !"null".equals(a.toString()) && ((JSONObject) a).size() > 0)
.forEach(a -> {
JSONObject shapeAttr = (JSONObject) a;
if (shapeAttr.get("key").equals("activity_number")) {
bo.set("SHAPENUMBER", shapeAttr.getString("value"));
}
if (shapeAttr.get("key").equals("output")) {
bo.set("EXTOUTPUT", shapeAttr.getString("value"));
}
if (shapeAttr.get("key").equals("input")) {
bo.set("EXTINPUT", shapeAttr.getString("value"));
}
if (shapeAttr.get("key").equals("activity_description")) {
bo.set("EXTDESC", shapeAttr.getString("value"));
}
});
}
}
}
bos.add(bo);
}
JSONArray attributesJsonArray = shape.getJSONArray("attributesJsonArray");
attributesJsonArray.stream()
.filter(a -> {
return a != null && !"null".equals(a.toString()) && ((JSONObject) a).size() > 0;
})
.forEach(a -> {
JSONObject shapeAttr = (JSONObject) a;
if (shapeAttr.get("key").equals("activity_number")) {
bo.set("SHAPENUMBER", shapeAttr.getString("value"));
}
if (shapeAttr.get("key").equals("output")) {
bo.set("EXTOUTPUT", shapeAttr.getString("value"));
}
if (shapeAttr.get("key").equals("input")) {
bo.set("EXTINPUT", shapeAttr.getString("value"));
}
if (shapeAttr.get("key").equals("activity_description")) {
bo.set("EXTDESC", shapeAttr.getString("value"));
}
});
bos.add(bo);
}
/**
* 重新生成手册
*
* @param plId
* @return
*/
public String RefreshManual(String processInstId,String type){
ResponseObject ro = ResponseObject.newOkResponse();
public String RefreshManual(String processInstId, String type) {
ResponseObject ro = ResponseObject.newOkResponse();
if(type.equals("1")){
//发布新文件
List<BO> publishNBO=SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").bindId(processInstId).list();
if (type.equals("1")) {
//发布新文件
List<BO> publishNBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").bindId(processInstId).list();
if(publishNBO.size()>0){
for(BO onePublishN:publishNBO){
String plId=onePublishN.getString("PUBLISHFILEID");
int count = 0;
// 重新生成手册
PALRepositoryModel model = PALRepositoryCache.getCache().get(plId);
String wsIdro = queryMaPublishGetWsId();
JSONObject wsIdJson=JSONObject.parseObject(wsIdro);
String taskId = createOutputReport(model, wsIdJson.getJSONObject("data").get("wsId").toString(), "admin", "", plId);
// 刷新预览加载的表
String sqlr = "UPDATE BO_EU_PAL_OUTPUTREPORT SET TASKID = '" + taskId + "' WHERE PLID = '" + plId + "'";
DBSql.update(sqlr);
String sql1 = "SELECT ID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID = '" + plId + "'";
String sql2 = "SELECT ID FROM BO_ACT_COE_PUBLISH_C WHERE CHANGEDFILEIDNEW = '" + plId + "'";
if (UtilString.isNotEmpty(DBSql.getString(sql1))) {
count = DBSql.update(
"UPDATE BO_ACT_COE_PUBLISH_N SET TASKID='" + taskId + "'WHERE PUBLISHFILEID ='" + plId + "'");
}
if (UtilString.isNotEmpty(DBSql.getString(sql2))) {
count = DBSql.update(
"UPDATE BO_ACT_COE_PUBLISH_C SET TASKID='" + taskId + "'WHERE CHANGEDFILEIDNEW ='" + plId + "'");
}
if (count != 0) {
DBSql.update("UPDATE APP_ACT_COE_PAL_PUBLISH_LIST SET TASKID='" + taskId + "'WHERE PALREPOSITORYID='"
+ plId + "'");
}
if (publishNBO.size() > 0) {
for (BO onePublishN : publishNBO) {
String plId = onePublishN.getString("PUBLISHFILEID");
int count = 0;
// 重新生成手册
PALRepositoryModel model = PALRepositoryCache.getCache().get(plId);
String wsIdro = queryMaPublishGetWsId();
JSONObject wsIdJson = JSONObject.parseObject(wsIdro);
String taskId = createOutputReport(model, wsIdJson.getJSONObject("data").get("wsId").toString(), "admin", "", plId);
// 刷新预览加载的表
String sqlr = "UPDATE BO_EU_PAL_OUTPUTREPORT SET TASKID = '" + taskId + "' WHERE PLID = '" + plId + "'";
DBSql.update(sqlr);
String sql1 = "SELECT ID FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID = '" + plId + "'";
String sql2 = "SELECT ID FROM BO_ACT_COE_PUBLISH_C WHERE CHANGEDFILEIDNEW = '" + plId + "'";
if (UtilString.isNotEmpty(DBSql.getString(sql1))) {
count = DBSql.update(
"UPDATE BO_ACT_COE_PUBLISH_N SET TASKID='" + taskId + "'WHERE PUBLISHFILEID ='" + plId + "'");
}
if (UtilString.isNotEmpty(DBSql.getString(sql2))) {
count = DBSql.update(
"UPDATE BO_ACT_COE_PUBLISH_C SET TASKID='" + taskId + "'WHERE CHANGEDFILEIDNEW ='" + plId + "'");
}
if (count != 0) {
DBSql.update("UPDATE APP_ACT_COE_PAL_PUBLISH_LIST SET TASKID='" + taskId + "'WHERE PALREPOSITORYID='"
+ plId + "'");
}
}
}
}
} else {
//发布变更文件
List<BO> publishCBO = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").bindId(processInstId).list();
}
}else{
//发布变更文件
List<BO> publishCBO=SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").bindId(processInstId).list();
if (publishCBO.size() > 0) {
if(publishCBO.size()>0){
for (BO onePublishC : publishCBO) {
String plId = onePublishC.getString("CHANGEDFILEIDNEW");
int count = 0;
// 重新生成手册
PALRepositoryModel model = PALRepositoryCache.getCache().get(plId);
String wsIdro = queryMaPublishGetWsId();
JSONObject wsIdJson = JSONObject.parseObject(wsIdro);
String taskId = createOutputReport(model, wsIdJson.getJSONObject("data").get("wsId").toString(), "admin", "", plId);
// 刷新预览加载的表
String sqlr = "UPDATE BO_EU_PAL_OUTPUTREPORT SET TASKID = '" + taskId + "' WHERE PLID = '" + plId + "'";
DBSql.update(sqlr);
String sql2 = "SELECT ID FROM BO_ACT_COE_PUBLISH_C WHERE CHANGEDFILEIDNEW = '" + plId + "'";
for(BO onePublishC:publishCBO){
String plId=onePublishC.getString("CHANGEDFILEIDNEW");
int count = 0;
// 重新生成手册
PALRepositoryModel model = PALRepositoryCache.getCache().get(plId);
String wsIdro = queryMaPublishGetWsId();
JSONObject wsIdJson=JSONObject.parseObject(wsIdro);
String taskId = createOutputReport(model, wsIdJson.getJSONObject("data").get("wsId").toString(), "admin", "", plId);
// 刷新预览加载的表
String sqlr = "UPDATE BO_EU_PAL_OUTPUTREPORT SET TASKID = '" + taskId + "' WHERE PLID = '" + plId + "'";
DBSql.update(sqlr);
String sql2 = "SELECT ID FROM BO_ACT_COE_PUBLISH_C WHERE CHANGEDFILEIDNEW = '" + plId + "'";
if (UtilString.isNotEmpty(DBSql.getString(sql2))) {
count = DBSql.update(
"UPDATE BO_ACT_COE_PUBLISH_C SET TASKID='" + taskId + "'WHERE CHANGEDFILEIDNEW ='" + plId + "'");
}
if (count != 0) {
DBSql.update("UPDATE APP_ACT_COE_PAL_PUBLISH_LIST SET TASKID='" + taskId + "'WHERE PALREPOSITORYID='"
+ plId + "'");
}
if (UtilString.isNotEmpty(DBSql.getString(sql2))) {
count = DBSql.update(
"UPDATE BO_ACT_COE_PUBLISH_C SET TASKID='" + taskId + "'WHERE CHANGEDFILEIDNEW ='" + plId + "'");
}
if (count != 0) {
DBSql.update("UPDATE APP_ACT_COE_PAL_PUBLISH_LIST SET TASKID='" + taskId + "'WHERE PALREPOSITORYID='"
+ plId + "'");
}
}
}
}
}
}
}
return ro.toString();
}
return ro.toString();
}
/**
* 发布变更版本流程-根据下拉选择获取最新架构数据赋值到发布表单中
*
* @return
*/
public String updateFramework(String uuid,String processInstId){
boolean iswrong = false;
JSONObject result = new JSONObject();
if(processInstId==null){
return ResponseObject.newErrResponse("流程实例未找到").toString();
}
ResponseObject ro = ResponseObject.newOkResponse();
try {
public String updateFramework(String uuid, String processInstId) {
boolean iswrong = false;
JSONObject result = new JSONObject();
if (processInstId == null) {
return ResponseObject.newErrResponse("流程实例未找到").toString();
}
ResponseObject ro = ResponseObject.newOkResponse();
try {
//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','Process_Architecture_L4') AND PLID='%s'", uuid));
for (RowMap tmp : resulttmp) {
String key = tmp.getString("PROPERTYID");
String value = tmp.getString("PROPERTYVALUE");
result.put(key, value);
}
ro.put("data", result);
ro.put("info", iswrong);
} catch (AWSDataAccessException e) {
e.printStackTrace();
}
return ro.toString();
}
//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','Process_Architecture_L4') AND PLID='%s'", uuid));
for (RowMap tmp : resulttmp) {
String key = tmp.getString("PROPERTYID");
String value = tmp.getString("PROPERTYVALUE");
result.put(key, value);
}
ro.put("data", result);
ro.put("info", iswrong);
} catch (AWSDataAccessException e) {
e.printStackTrace();
}
return ro.toString();
}
}