From 77ac6b72ed82d51d0d45bf156ac1b5bb3cb15782 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 19 三月 2024 14:01:43 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/DevpThread.java | 9
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/FlowGraphService.java | 8
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/CrnThread.java | 7
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowGraphController.java | 113 +++++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/FlowGraph.java | 137 +++++++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/FlowExecute.java | 72 +++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensDevpThread.java | 21 ++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensCrnThread.java | 12 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowController.java | 55 ++++-
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/protocol/StaProtocol.java | 83 ++++++++
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/impl/FlowGraphServiceImpl.java | 12 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/mapper/FlowGraphMapper.java | 12 +
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SlaveType.java | 23 ++
zy-asrs-wcs/src/main/resources/mapper/asrs/FlowGraphMapper.xml | 5
14 files changed, 557 insertions(+), 12 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 441ea98..8b75166 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,24 +1,28 @@
package com.zy.asrs.wcs.asrs.controller;
import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-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;
+import com.zy.asrs.wcs.asrs.service.FlowGraphService;
+import com.zy.asrs.wcs.core.thread.FlowExecute;
+import com.zy.asrs.wcs.system.controller.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.util.*;
@RestController
-@RequestMapping("/flow")
-public class FlowController {
+@RequestMapping("/api")
+public class FlowController extends BaseController {
- @PostMapping("/analysisExportData")
+ @Autowired
+ private FlowGraphService flowGraphService;
+ @Autowired
+ private FlowExecute flowExecute;
+
+ @PostMapping("/flow/analysisExportData")
public R analysisExportData(@RequestBody HashMap<String, Object> param) {
- System.out.println(param);
List<LinkedHashMap<String, Object>> data = (List<LinkedHashMap<String, Object>>) param.get("data");
ArrayList<FlowLogicCodeParam> list = new ArrayList<>();
@@ -32,7 +36,7 @@
Boolean isLogic = Boolean.parseBoolean(mapData.get("isLogic").toString());
String searchLogicId = mapData.get("searchLogicId").toString();
Boolean searchLogicBool = Boolean.parseBoolean(mapData.get("searchLogicBool").toString());
- String codeContent = mapData.get("codeContent").toString();
+ String codeContent = mapData.get("codeContent") == null ? "" : mapData.get("codeContent").toString();
if (isLogic) {
FlowLogicCodeParam flowLogicCodeParam = new FlowLogicCodeParam();
flowLogicCodeParam.setId(id);
@@ -60,9 +64,36 @@
}
- System.out.println(list);
+ FlowGraph flowGraph = new FlowGraph();
+ if (param.get("id") != null) {
+ flowGraph.setId(Integer.parseInt(param.get("id").toString()));
+ }else {
+ flowGraph.setCreateTime(new Date());
+ flowGraph.setStatus(0);
+ }
+ flowGraph.setName(param.get("name").toString());
+ flowGraph.setMemo(param.get("memo").toString());
+ flowGraph.setOriginData(param.get("originData").toString());
+ flowGraph.setProcessData(JSON.toJSONString(list));
+ flowGraph.setUpdateTime(new Date());
+ flowGraph.setHostId(getHostId());
+ flowGraphService.saveOrUpdate(flowGraph);
return R.ok();
}
+ @PostMapping("/flow/mockRun")
+ public R mockRun(@RequestBody HashMap<String, Object> param) {
+ FlowGraph flowGraph = flowGraphService.getById(param.get("id").toString());
+ if (flowGraph == null) {
+ return R.error("娴佺▼鍥句笉瀛樺湪");
+ }
+
+ //寮�濮嬫ā鎷熸墽琛�
+ String processData = flowGraph.getProcessData();
+ List<FlowLogicCodeParam> list = JSON.parseArray(processData, FlowLogicCodeParam.class);
+ boolean execute = flowExecute.execute(list);
+ return R.ok().add(execute);
+ }
+
}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowGraphController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowGraphController.java
new file mode 100644
index 0000000..85f264c
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/controller/FlowGraphController.java
@@ -0,0 +1,113 @@
+package com.zy.asrs.wcs.asrs.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.R;
+import com.zy.asrs.wcs.common.annotation.OperationLog;
+import com.zy.asrs.wcs.common.domain.BaseParam;
+import com.zy.asrs.wcs.common.domain.KeyValVo;
+import com.zy.asrs.wcs.common.domain.PageParam;
+import com.zy.asrs.wcs.asrs.entity.FlowGraph;
+import com.zy.asrs.wcs.asrs.service.FlowGraphService;
+import com.zy.asrs.wcs.system.controller.BaseController;
+import com.zy.asrs.wcs.utils.ExcelUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
+
+@RestController
+@RequestMapping("/api")
+public class FlowGraphController extends BaseController {
+
+ @Autowired
+ private FlowGraphService flowGraphService;
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:list')")
+ @PostMapping("/flowGraph/page")
+ public R page(@RequestBody Map<String, Object> map) {
+ BaseParam baseParam = buildParam(map, BaseParam.class);
+ PageParam<FlowGraph, BaseParam> pageParam = new PageParam<>(baseParam, FlowGraph.class);
+ return R.ok().add(flowGraphService.page(pageParam, pageParam.buildWrapper(true)));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:list')")
+ @PostMapping("/flowGraph/list")
+ public R list(@RequestBody(required = false) Map<String, Object> map) {
+ return R.ok().add(flowGraphService.list());
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:list')")
+ @GetMapping("/flowGraph/{id}")
+ public R get(@PathVariable("id") Long id) {
+ return R.ok().add(flowGraphService.getById(id));
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:save')")
+ @OperationLog("娣诲姞娴佺▼鍥�")
+ @PostMapping("/flowGraph/save")
+ public R save(@RequestBody FlowGraph flowGraph) {
+ if (!flowGraphService.save(flowGraph)) {
+ return R.error("娣诲姞澶辫触");
+ }
+ return R.ok("娣诲姞鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:update')")
+ @OperationLog("淇敼娴佺▼鍥�")
+ @PostMapping("/flowGraph/update")
+ public R update(@RequestBody FlowGraph flowGraph) {
+ if (!flowGraphService.updateById(flowGraph)) {
+ return R.error("淇敼澶辫触");
+ }
+ return R.ok("淇敼鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:update')")
+ @OperationLog("淇敼娴佺▼鍥剧姸鎬�")
+ @PostMapping("/flowGraph/updateFlowStatus")
+ public R updateFlowStatus(@RequestBody Map<String,Object> param) {
+ FlowGraph flowGraph = flowGraphService.getById(param.get("id").toString());
+ if (flowGraph == null) {
+ return R.error("娴佺▼鍥句笉瀛樺湪");
+ }
+ flowGraph.setStatus(Integer.parseInt(param.get("status").toString()));
+ flowGraph.setUpdateTime(new Date());
+ flowGraphService.saveOrUpdate(flowGraph);
+ return R.ok("淇敼鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:remove')")
+ @OperationLog("鍒犻櫎娴佺▼鍥�")
+ @PostMapping("/flowGraph/remove/{ids}")
+ public R remove(@PathVariable Long[] ids) {
+ if (!flowGraphService.removeByIds(Arrays.asList(ids))) {
+ return R.error("鍒犻櫎澶辫触");
+ }
+ return R.ok("鍒犻櫎鎴愬姛");
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:list')")
+ @PostMapping("/flowGraph/query")
+ public R query(@RequestParam(required = false) String condition) {
+ List<KeyValVo> vos = new ArrayList<>();
+ LambdaQueryWrapper<FlowGraph> wrapper = new LambdaQueryWrapper<>();
+ if (!Cools.isEmpty(condition)) {
+ wrapper.like(FlowGraph::getId, condition);
+ }
+ flowGraphService.page(new Page<>(1, 30), wrapper).getRecords().forEach(
+ item -> vos.add(new KeyValVo(item.getId(), item.getId()))
+ );
+ return R.ok().add(vos);
+ }
+
+ @PreAuthorize("hasAuthority('asrs:flowGraph:list')")
+ @PostMapping("/flowGraph/export")
+ public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+ ExcelUtil.build(ExcelUtil.create(flowGraphService.list(), FlowGraph.class), response);
+ }
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/FlowGraph.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/FlowGraph.java
new file mode 100644
index 0000000..9acf37e
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/entity/FlowGraph.java
@@ -0,0 +1,137 @@
+package com.zy.asrs.wcs.asrs.entity;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.zy.asrs.wcs.system.entity.Host;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wcs.system.service.UserService;
+import com.zy.asrs.wcs.system.service.HostService;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("wcs_flow_graph")
+public class FlowGraph implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value= "")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鍘熷鏁版嵁
+ */
+ @ApiModelProperty(value= "鍘熷鏁版嵁")
+ private String originData;
+
+ /**
+ * 澶勭悊鍚庣殑鏁版嵁
+ */
+ @ApiModelProperty(value= "澶勭悊鍚庣殑鏁版嵁")
+ private String processData;
+
+ @ApiModelProperty(value= "")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value= "")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 鏄惁鍚敤 0: 鍚� 1: 鏄�
+ */
+ @ApiModelProperty(value= "鏄惁鍚敤 0: 鍚� 1: 鏄� ")
+ private Integer status;
+
+ /**
+ * 鎵�灞炴満鏋�
+ */
+ @ApiModelProperty(value= "鎵�灞炴満鏋�")
+ private Long hostId;
+
+ /**
+ * 娴佺▼鍥惧悕绉�
+ */
+ @ApiModelProperty(value= "娴佺▼鍥惧悕绉�")
+ private String name;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public FlowGraph() {}
+
+ public FlowGraph(String originData, String processData, Date createTime, Date updateTime, Integer status, Long hostId, String name, String memo) {
+ this.originData = originData;
+ this.processData = processData;
+ this.createTime = createTime;
+ this.updateTime = updateTime;
+ this.status = status;
+ this.hostId = hostId;
+ this.name = name;
+ this.memo = memo;
+ }
+
+ // FlowGraph flowGraph = new FlowGraph(
+// null, // 鍘熷鏁版嵁
+// null, // 澶勭悊鍚庣殑鏁版嵁
+// null, //
+// null, //
+// null // 鏄惁鍚敤
+// );
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 0:
+ return "鍚�";
+ case 1:
+ return "鏄�";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getHostId$(){
+ HostService service = SpringUtils.getBean(HostService.class);
+ Host host = service.getById(this.hostId);
+ if (!Cools.isEmpty(host)){
+ return String.valueOf(host.getName());
+ }
+ return null;
+ }
+
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/mapper/FlowGraphMapper.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/mapper/FlowGraphMapper.java
new file mode 100644
index 0000000..981c203
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/mapper/FlowGraphMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wcs.asrs.mapper;
+
+import com.zy.asrs.wcs.asrs.entity.FlowGraph;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface FlowGraphMapper extends BaseMapper<FlowGraph> {
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/FlowGraphService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/FlowGraphService.java
new file mode 100644
index 0000000..e9f4dc7
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/FlowGraphService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.wcs.asrs.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zy.asrs.wcs.asrs.entity.FlowGraph;
+
+public interface FlowGraphService extends IService<FlowGraph> {
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/impl/FlowGraphServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/impl/FlowGraphServiceImpl.java
new file mode 100644
index 0000000..45a9a2f
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/asrs/service/impl/FlowGraphServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wcs.asrs.service.impl;
+
+import com.zy.asrs.wcs.asrs.mapper.FlowGraphMapper;
+import com.zy.asrs.wcs.asrs.entity.FlowGraph;
+import com.zy.asrs.wcs.asrs.service.FlowGraphService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("flowGraphService")
+public class FlowGraphServiceImpl extends ServiceImpl<FlowGraphMapper, FlowGraph> implements FlowGraphService {
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SlaveType.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SlaveType.java
new file mode 100644
index 0000000..1118943
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/enums/SlaveType.java
@@ -0,0 +1,23 @@
+package com.zy.asrs.wcs.core.model.enums;
+
+public enum SlaveType {
+
+ Crn,
+ Devp,
+ Barcode,
+ Led,
+ Scale,
+ Ste,
+ Shuttle,
+ Lift,
+ ;
+
+ public static SlaveType findInstance(String s){
+ for (SlaveType type : SlaveType.values()) {
+ if (type.toString().equals(s)) {
+ return type;
+ }
+ }
+ return null;
+ }
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/protocol/StaProtocol.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/protocol/StaProtocol.java
new file mode 100644
index 0000000..bc3d5d3
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/protocol/StaProtocol.java
@@ -0,0 +1,83 @@
+package com.zy.asrs.wcs.core.model.protocol;
+
+import lombok.Data;
+
+/**
+ * 杈撻�佺嚎plc鍗曚釜绔欑偣璇︾粏淇℃伅
+ */
+@Data
+public class StaProtocol implements Cloneable {
+
+ // 绔欑偣缂栧彿
+ private Integer siteId;
+
+ // ----------------------------------------------------------------
+ // 宸ヤ綔鍙�
+ private Short workNo = 0;
+
+ // ----------------------------------------------------------------
+ // 鐩爣绔�
+ private Short staNo;
+
+ // ----------------------------------------------------------------
+ // 鑷姩
+ private boolean autoing;
+
+ // 鏈夌墿
+ private boolean loading;
+
+ // 鍙叆
+ private boolean inEnable;
+
+ // 鍙嚭
+ private boolean outEnable;
+
+ // 绌烘澘淇″彿
+ private boolean emptyMk;
+
+ // 婊℃墭鐩�
+ private boolean fullPlt;
+
+ // 楂�
+ private boolean high;
+
+ // 浣�
+ private boolean low;
+
+ // 閿佸畾鏍囪
+ private boolean pakMk = true;
+
+ // 澶栧舰妫�娴� ------------------------------------------------------------------------
+
+ // 鍓嶈秴闄�
+ private boolean frontErr;
+
+ // 鍚庤秴闄�
+ private boolean backErr;
+
+ // 楂樿秴闄�
+ private boolean highErr;
+
+ // 宸﹁秴闄�
+ private boolean leftErr;
+
+ // 鍙宠秴闄�
+ private boolean rightErr;
+
+ // 瓒呴噸
+ private boolean weightErr;
+
+ // 鎵爜澶辫触
+ private boolean barcodeErr;
+
+ @Override
+ public StaProtocol clone() {
+ try {
+ return (StaProtocol) super.clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/CrnThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/CrnThread.java
new file mode 100644
index 0000000..1431322
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/CrnThread.java
@@ -0,0 +1,7 @@
+package com.zy.asrs.wcs.core.thread;
+
+public interface CrnThread {
+
+ boolean loadAndUnload();//鍙栨斁璐�
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/DevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/DevpThread.java
new file mode 100644
index 0000000..b826dc2
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/DevpThread.java
@@ -0,0 +1,9 @@
+package com.zy.asrs.wcs.core.thread;
+
+public interface DevpThread {
+
+ boolean writeWorkNo(short workNo);//鍐欏叆宸ヤ綔鍙�
+
+ boolean writeStaNo(short staNo);//鍐欏叆鐩爣绔�
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/FlowExecute.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/FlowExecute.java
new file mode 100644
index 0000000..082a163
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/FlowExecute.java
@@ -0,0 +1,72 @@
+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;
+ }
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensCrnThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensCrnThread.java
new file mode 100644
index 0000000..2c6db5c
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensCrnThread.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.wcs.core.thread.impl;
+
+import com.zy.asrs.wcs.core.thread.CrnThread;
+
+public class SiemensCrnThread implements CrnThread {
+
+ @Override
+ public boolean loadAndUnload() {
+ System.out.println("loadAndUnload 琚墽琛�");
+ return false;
+ }
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensDevpThread.java
new file mode 100644
index 0000000..01928d1
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/thread/impl/SiemensDevpThread.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.wcs.core.thread.impl;
+
+import com.zy.asrs.wcs.core.model.protocol.StaProtocol;
+import com.zy.asrs.wcs.core.thread.DevpThread;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class SiemensDevpThread implements DevpThread {
+
+ private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
+
+ @Override
+ public boolean writeWorkNo(short workNo) {
+ return false;
+ }
+
+ @Override
+ public boolean writeStaNo(short staNo) {
+ return false;
+ }
+}
diff --git a/zy-asrs-wcs/src/main/resources/mapper/asrs/FlowGraphMapper.xml b/zy-asrs-wcs/src/main/resources/mapper/asrs/FlowGraphMapper.xml
new file mode 100644
index 0000000..248a5ff
--- /dev/null
+++ b/zy-asrs-wcs/src/main/resources/mapper/asrs/FlowGraphMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.wcs.asrs.mapper.FlowGraphMapper">
+
+</mapper>
--
Gitblit v1.9.1