From d7a0b3b0935a582aa24de76b2901f3f4ee97d1a0 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期五, 17 四月 2026 16:18:47 +0800
Subject: [PATCH] 兼容postgresql以及处理文件ip问题
---
business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
index 11abb1c..e552ab1 100644
--- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java
@@ -288,11 +288,11 @@
// 鍏跺畠绫诲瀷鐨勮〃鍗曟暟鎹細濡傚浘鐗囥�佹枃浠跺崟鐙瓨琛ㄧ殑銆傚巻鍙层�佽繍琛屼腑鐨勬祦绋嬮渶鍚勫瓨涓�浠�
v.setVAR_TYPE_("serializable");
v.setBYTEARRAY_ID_(new StrongUuidGenerator().getNextId());
- projectProcessMapper.insertByteArray(v.getBYTEARRAY_ID_(), 1, "hist.var-" + key, newV.get(key));
+ projectProcessMapper.insertByteArray(v.getBYTEARRAY_ID_(), 1, "hist.var-" + key, objectToInputStream(newV.get(key)));
run.setVAR_TYPE_("serializable");
run.setBYTEARRAY_ID_(new StrongUuidGenerator().getNextId());
- projectProcessMapper.insertByteArray(run.getBYTEARRAY_ID_(), 1, "var-" + key, newV.get(key));
+ projectProcessMapper.insertByteArray(run.getBYTEARRAY_ID_(), 1, "var-" + key, objectToInputStream(newV.get(key)));
}
projectProcessMapper.insertHisFlowableVar(v);
@@ -324,6 +324,12 @@
oos.flush();
return bos.toByteArray(); // 杩斿洖瀛楄妭鏁扮粍
}
+ }
+
+ // 灏嗗璞¤浆鎹负 InputStream锛岄�傞厤 BLOB 鍐欏叆
+ public static InputStream objectToInputStream(Object obj) throws IOException {
+ byte[] bytes = objectToBytes(obj);
+ return Objects.isNull(bytes) ? null : new ByteArrayInputStream(bytes);
}
/**
@@ -1848,13 +1854,10 @@
if (disableInput) {
options.put("disabled", true);
}
- // 澶勭悊鏂囦欢涓婁紶ip闂
- if ("file-upload".equals(oldField.get("type"))) {
- options.put("uploadURL", String.format("http://%s:10076/common/upload", this.targetIp));
- }
}
formJson.put(ProcessConstants.WIDGET_LIST, oldFields);
+ normalizeUploadUrl(formJson);
newP.put(ProcessConstants.TASK_FORM_KEY, formJson);
newP.remove(formDetailVO.getBeforeNodeDefId() + "&" + ProcessConstants.TASK_FORM_KEY);
// 澶勭悊宸茬粡涓婁紶鐨勬枃浠剁殑ip鍦板潃
@@ -1885,11 +1888,42 @@
formDetailVO.setFormJsonObj(newP);
}
+ } else {
+ // 褰撳墠鑺傜偣涓�鑸娇鐢ㄦā鏉垮垵濮嬪寲鏁版嵁锛岀粺涓�鍦ㄨ繖閲屾敼鍐欎笂浼犲湴鍧�锛岄伩鍏嶆棫IP娈嬬暀
+ Map<String, Object> formObj = formDetailVO.getFormJsonObj();
+ if (Objects.nonNull(formObj) && Objects.nonNull(formObj.get(ProcessConstants.TASK_FORM_KEY))) {
+ JSONObject formJson = JSONObject.parseObject(JSON.toJSONString(formObj.get(ProcessConstants.TASK_FORM_KEY)));
+ normalizeUploadUrl(formJson);
+ formObj.put(ProcessConstants.TASK_FORM_KEY, formJson);
+ formDetailVO.setFormJsonObj(formObj);
+ }
}
}
return beforeNodes;
}
+ private void normalizeUploadUrl(JSONObject formJson) {
+ if (Objects.isNull(formJson)) {
+ return;
+ }
+ List<JSONObject> fields = JSON.parseObject(JSON.toJSONString(formJson.get(ProcessConstants.WIDGET_LIST)), new TypeReference<List<JSONObject>>() {
+ });
+ if (CollectionUtils.isEmpty(fields)) {
+ return;
+ }
+ for (JSONObject field : fields) {
+ if (!"file-upload".equals(field.get("type"))) {
+ continue;
+ }
+ JSONObject options = field.getJSONObject("options");
+ if (Objects.isNull(options)) {
+ continue;
+ }
+ options.put("uploadURL", String.format("http://%s:10076/common/upload", this.targetIp));
+ }
+ formJson.put(ProcessConstants.WIDGET_LIST, fields);
+ }
+
/**
* 娴佺▼鑺傜偣淇℃伅
--
Gitblit v1.8.0