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

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

View File

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