package com.zy.asrs.wcs.rcs.thread; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zy.asrs.wcs.asrs.entity.param.FlowLogicCodeParam; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; @Component public class FlowExecute { //执行流程图 public boolean execute(List list) { for (FlowLogicCodeParam param : list) { if (param.getId().equals("1")) { return executeFlow(param.getLogicTrue()); } } System.out.println(list); return false; } private boolean executeFlow(List> list) { for (Map 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; } }