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 ++++++++++++++++++++++++++++++---------------- 1 files changed, 91 insertions(+), 49 deletions(-) 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