package com.zy.asrs.wcs.core.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<FlowLogicCodeParam> list) {
|
for (FlowLogicCodeParam param : list) {
|
if (param.getId().equals("1")) {
|
return executeFlow(param.getLogicTrue());
|
}
|
}
|
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);
|
}
|
|
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;
|
}
|
|
}
|