From b410d11448b86685894e5d5f60263a7fd3b6c357 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 16 四月 2024 16:55:36 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/FlowExecute.java | 140 ++++++++++++++++++++++++++++++----------------
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 5 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowController.java | 9 +-
3 files changed, 101 insertions(+), 53 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowController.java
index e8a5ed6..417c3d1 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowController.java
@@ -1,6 +1,7 @@
package com.zy.asrs.wcs.asrs.controller;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wcs.asrs.entity.FlowGraph;
import com.zy.asrs.wcs.asrs.entity.param.FlowLogicCodeParam;
@@ -72,11 +73,10 @@
flowGraph.setStatus(0);
}
flowGraph.setName(param.get("name").toString());
- flowGraph.setMemo(param.get("memo").toString());
+ flowGraph.setMemo(param.get("memo") == null ? "" : param.get("memo").toString());
flowGraph.setOriginData(param.get("originData").toString());
- flowGraph.setProcessData(JSON.toJSONString(list));
+ flowGraph.setProcessData(JSON.toJSONString(param.get("data")));
flowGraph.setUpdateTime(new Date());
- flowGraph.setHostId(getHostId());
flowGraphService.saveOrUpdate(flowGraph);
return R.ok();
@@ -91,7 +91,8 @@
//寮�濮嬫ā鎷熸墽琛�
String processData = flowGraph.getProcessData();
- List<FlowLogicCodeParam> list = JSON.parseArray(processData, FlowLogicCodeParam.class);
+// List<FlowLogicCodeParam> list = JSON.parseArray(processData, FlowLogicCodeParam.class);
+ List<JSONObject> list = JSON.parseArray(processData, JSONObject.class);
boolean execute = flowExecute.execute(list);
return R.ok().add(execute);
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index 54c4852..741bed4 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -442,6 +442,11 @@
continue;
}
+ ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+ if (shuttleProtocol == null) {
+ continue;
+ }
+
if (!shuttleThread.isCharging()) {
continue;
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/FlowExecute.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/FlowExecute.java
index 2725023..f1158fe 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/FlowExecute.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/FlowExecute.java
@@ -1,8 +1,12 @@
package com.zy.asrs.wcs.rcs.thread;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wcs.asrs.entity.param.FlowLogicCodeParam;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.codec.digest.Md5Crypt;
import org.springframework.stereotype.Component;
import java.util.List;
@@ -12,61 +16,99 @@
public class FlowExecute {
//鎵ц娴佺▼鍥�
- public boolean execute(List<FlowLogicCodeParam> list) {
- for (FlowLogicCodeParam param : list) {
- if (param.getId().equals("1")) {
- return executeFlow(param.getLogicTrue());
+ public boolean execute(List<JSONObject> list) {
+ String currentId = list.get(0).getString("id");
+
+ String listId = DigestUtils.md5Hex(JSON.toJSONString(list));
+
+ while (currentId != null) {
+ //鑾峰彇娴佺▼鍥�
+ JSONObject flow = findFLow(list, currentId);
+ if (flow == null) {
+ break;
}
- }
- System.out.println(list);
- return false;
- }
- private boolean executeFlow(List<Map<String, Object>> list) {
- for (Map<String, Object> map : list) {
- JSONObject data = (JSONObject) map.get("data");
- if (data.getString("type").equals("devp")) {
- JSONObject devp = data.getJSONObject("devpType");
- String devpNo = devp.getString("devpNo");//杈撻�佺嚎PLC
- String staNo = devp.getString("staNo");//绔欏彿
- Boolean enableStaStatus = devp.getBoolean("enableStaStatus");//鍒ゆ柇绔欑偣鐘舵��
- JSONArray staStatus = devp.getJSONArray("staStatus");//绔欑偣鐘舵�佸垪琛�
- String staJudgementFailExecute = devp.getString("staJudgementFailExecute");//鍒ゆ柇澶辫触鍚庢槸鍚︾户缁墽琛屾祦绋�
- Boolean writeWorkNoStatus = devp.getBoolean("writeWorkNoStatus");//鏄惁鍐欏叆宸ヤ綔鍙�
- Boolean writeStaNoStatus = devp.getBoolean("writeStaNoStatus");//鏄惁鍐欏叆鐩爣绔�
- String writeWorkNo = devp.getString("writeWorkNo");//鍐欏叆宸ヤ綔鍙锋暟鎹�
- String writeStaNo = devp.getString("writeStaNo");//鍐欏叆鐩爣绔欐暟鎹�
- if (enableStaStatus) {
- //鍒ゆ柇绔欑偣鐘舵��
- boolean statusFlag = true;//榛樿鍒ゆ柇閫氳繃
- for (Object status : staStatus) {
- System.out.println(status);
- }
+ //鎵ц
+ boolean result = executeFlow(flow, listId);
- if (!statusFlag) {
- //鍒ゆ柇涓嶉�氳繃
- if (staJudgementFailExecute.equals("stop")) {
- //鍒ゆ柇澶辫触鍚庝笉缁х画鎵ц
- return false;
- }
- }
-
- }
-
- if (writeWorkNoStatus) {
- //鍐欏叆宸ヤ綔鍙�
- }
-
- if (writeStaNoStatus) {
- //鍐欏叆鐩爣绔�
- }
- System.out.println(devp);
+ //鎵ц鍚庣画娴佺▼
+ if (Cools.isEmpty(flow.get("nextTrue")) && Cools.isEmpty(flow.get("nextFalse"))) {
+ break;//鏃犲悗缁祦绋�
}
- System.out.println(data);
+
+ //鏇存柊id
+ currentId = result ? flow.getString("nextTrue") : flow.getString("nextFalse");
}
- System.out.println(list);
- return false;
+ System.out.println("鎵ц瀹屾垚");
+ return true;
}
+ private boolean executeFlow(JSONObject flow, String listId) {
+ System.out.println(flow.getString("id") + "琚墽琛�");
+ String type = flow.getString("type");
+ if (type.equals("devp")) {
+
+ } else if (type.equals("shuttle")) {
+
+ }
+ return true;
+ }
+
+ private JSONObject findFLow(List<JSONObject> list, String id) {
+ for (JSONObject flow : list) {
+ if (flow.getString("id").equals(id)) {
+ return flow;
+ }
+ }
+ return null;
+ }
+
+// private boolean executeFlow(List<Map<String, Object>> list) {
+// for (Map<String, Object> map : list) {
+// JSONObject data = (JSONObject) map.get("data");
+// if (data.getString("type").equals("devp")) {
+// JSONObject devp = data.getJSONObject("devpType");
+// String devpNo = devp.getString("devpNo");//杈撻�佺嚎PLC
+// String staNo = devp.getString("staNo");//绔欏彿
+// Boolean enableStaStatus = devp.getBoolean("enableStaStatus");//鍒ゆ柇绔欑偣鐘舵��
+// JSONArray staStatus = devp.getJSONArray("staStatus");//绔欑偣鐘舵�佸垪琛�
+// String staJudgementFailExecute = devp.getString("staJudgementFailExecute");//鍒ゆ柇澶辫触鍚庢槸鍚︾户缁墽琛屾祦绋�
+// Boolean writeWorkNoStatus = devp.getBoolean("writeWorkNoStatus");//鏄惁鍐欏叆宸ヤ綔鍙�
+// Boolean writeStaNoStatus = devp.getBoolean("writeStaNoStatus");//鏄惁鍐欏叆鐩爣绔�
+// String writeWorkNo = devp.getString("writeWorkNo");//鍐欏叆宸ヤ綔鍙锋暟鎹�
+// String writeStaNo = devp.getString("writeStaNo");//鍐欏叆鐩爣绔欐暟鎹�
+// if (enableStaStatus) {
+// //鍒ゆ柇绔欑偣鐘舵��
+// boolean statusFlag = true;//榛樿鍒ゆ柇閫氳繃
+// for (Object status : staStatus) {
+// System.out.println(status);
+// }
+//
+// if (!statusFlag) {
+// //鍒ゆ柇涓嶉�氳繃
+// if (staJudgementFailExecute.equals("stop")) {
+// //鍒ゆ柇澶辫触鍚庝笉缁х画鎵ц
+// return false;
+// }
+// }
+//
+// }
+//
+// if (writeWorkNoStatus) {
+// //鍐欏叆宸ヤ綔鍙�
+// }
+//
+// if (writeStaNoStatus) {
+// //鍐欏叆鐩爣绔�
+// }
+// System.out.println(devp);
+// }
+// System.out.println(data);
+// }
+//
+// System.out.println(list);
+// return false;
+// }
+
}
--
Gitblit v1.9.1