From 7c2e048de56976c6ee3757cebf414a0f5c8dcb58 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 22 四月 2024 16:30:09 +0800
Subject: [PATCH] #Ext
---
src/main/java/com/zy/core/thread/MelsecExtThread.java | 24 +++
src/main/java/com/zy/asrs/controller/SiteController.java | 23 +++
src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java | 12 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 28 +++
src/main/java/com/zy/asrs/controller/BasExtController.java | 123 +++++++++++++++++
src/main/java/com/zy/core/model/protocol/ExtProtocol.java | 16 +
src/main/java/com/zy/common/CodeBuilder.java | 4
src/main/resources/mapper/BasExtMapper.xml | 13 +
src/main/java/com/zy/asrs/mapper/BasExtMapper.java | 12 +
src/main/java/com/zy/asrs/entity/BasExt.java | 55 +++++++
src/main/java/com/zy/asrs/service/BasExtService.java | 8 +
src/main/java/com/zy/core/MainProcess.java | 2
src/main/webapp/views/deviceOperate/extOperate.html | 70 ++++++++++
13 files changed, 379 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/BasExtController.java b/src/main/java/com/zy/asrs/controller/BasExtController.java
new file mode 100644
index 0000000..6b3fd11
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasExtController.java
@@ -0,0 +1,123 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.common.DateUtils;
+import com.zy.asrs.entity.BasExt;
+import com.zy.asrs.service.BasExtService;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class BasExtController extends BaseController {
+
+ @Autowired
+ private BasExtService basExtService;
+
+ @RequestMapping(value = "/basExt/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basExtService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basExt/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasExt> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basExtService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basExt/add/auth")
+ @ManagerAuth
+ public R add(BasExt basExt) {
+ basExtService.insert(basExt);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basExt/update/auth")
+ @ManagerAuth
+ public R update(BasExt basExt){
+ if (Cools.isEmpty(basExt) || null==basExt.getExtNo()){
+ return R.error();
+ }
+ basExtService.updateById(basExt);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basExt/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basExtService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basExt/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasExt> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basExt"));
+ convert(map, wrapper);
+ List<BasExt> list = basExtService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basExtQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasExt> wrapper = new EntityWrapper<>();
+ wrapper.like("ext_no", condition);
+ Page<BasExt> page = basExtService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasExt basExt : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basExt.getExtNo());
+ map.put("value", basExt.getExtNo());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basExt/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasExt> wrapper = new EntityWrapper<BasExt>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basExtService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasExt.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 1768651..e9cb0fb 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -7,18 +7,23 @@
import com.zy.asrs.domain.vo.PlcErrorTableVo;
import com.zy.asrs.domain.vo.SiteTableVo;
import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.BasExt;
import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.BasExtService;
import com.zy.asrs.utils.CommandUtils;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DevpSlave;
+import com.zy.core.model.ExtSlave;
import com.zy.core.model.Task;
+import com.zy.core.model.protocol.ExtProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.DevpThread;
import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.MelsecExtThread;
import com.zy.core.thread.SiemensDevpThread;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -37,6 +42,8 @@
private SlaveProperties slaveProperties;
@Autowired
private BasDevpService basDevpService;
+ @Autowired
+ private BasExtService basExtService;
@GetMapping("/io/mode/info/site")
@@ -119,6 +126,22 @@
return R.ok().add(list);
}
+ @GetMapping("/list/ext/auth")
+ @ManagerAuth(memo = "鏈烘鑷備俊鎭�")
+ public R extList(){
+ List<SiteTableVo> list = new ArrayList<>();
+ // 鎸佷箙鏁版嵁
+ List<BasExt> basExts = basExtService.selectList(new EntityWrapper<BasExt>().orderBy("ext_no"));
+ for (BasExt ext : basExts) {
+ SiteTableVo vo = new SiteTableVo();
+ vo.setDevNo(ext.getExtNo()); // 绔欑偣缂栧彿
+ vo.setInEnable(ext.getExtTask()); // 鍙叆 鍙彇
+ vo.setOutEnable(ext.getExtPut()); // 鍙嚭 鍙斁
+ list.add(vo);
+ }
+ return R.ok().add(list);
+ }
+
@PostMapping("/table/plc/errors")
@ManagerAuth(memo = "杈撻�佽澶噋lc寮傚父淇℃伅琛�")
public R plcErrorTable(){
diff --git a/src/main/java/com/zy/asrs/entity/BasExt.java b/src/main/java/com/zy/asrs/entity/BasExt.java
new file mode 100644
index 0000000..5ce23aa
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasExt.java
@@ -0,0 +1,55 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("asr_bas_ext")
+public class BasExt implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 缂栧彿
+ */
+ @ApiModelProperty(value= "缂栧彿")
+ @TableId(value = "ext_no", type = IdType.INPUT)
+ @TableField("ext_no")
+ private Integer extNo;
+
+ /**
+ * 鍏佽鍙�(checkBox)
+ */
+ @ApiModelProperty(value= "鍏佽鍙�(checkBox)")
+ @TableField("ext_task")
+ private String extTask = "N";
+
+ /**
+ * 鍏佽鏀�(checkBox)
+ */
+ @ApiModelProperty(value= "鍏佽鏀�(checkBox)")
+ @TableField("ext_put")
+ private String extPut = "N";
+
+ public BasExt() {}
+
+ public BasExt(Integer extNo,String extTask,String extPut) {
+ this.extNo = extNo;
+ this.extTask = extTask;
+ this.extPut = extPut;
+ }
+
+// BasExt basExt = new BasExt(
+// null, // 缂栧彿[闈炵┖]
+// null, // 鍏佽鍙�(checkBox)
+// null // 鍏佽鏀�(checkBox)
+// );
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasExtMapper.java b/src/main/java/com/zy/asrs/mapper/BasExtMapper.java
new file mode 100644
index 0000000..5a94d9d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasExtMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasExt;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasExtMapper extends BaseMapper<BasExt> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasExtService.java b/src/main/java/com/zy/asrs/service/BasExtService.java
new file mode 100644
index 0000000..c3d31c6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasExtService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasExt;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasExtService extends IService<BasExt> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java
new file mode 100644
index 0000000..e41a7a1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasExtServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasExtMapper;
+import com.zy.asrs.entity.BasExt;
+import com.zy.asrs.service.BasExtService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basExtService")
+public class BasExtServiceImpl extends ServiceImpl<BasExtMapper, BasExt> implements BasExtService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index b67f5cc..af46969 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -29,13 +29,11 @@
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.command.RgvCommand;
import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.ExtProtocol;
import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.LedThread;
-import com.zy.core.thread.SiemensDevpThread;
-import com.zy.core.thread.SiemensRgvThread;
+import com.zy.core.thread.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -360,6 +358,28 @@
}
}
+ public synchronized void ExtTaskAndPut() throws InterruptedException {
+ for (ExtSlave extSlave : slaveProperties.getExt()) {
+// if (!rgv.getDemo()) {
+// continue;
+// }
+ MelsecExtThread extThread = (MelsecExtThread) SlaveConnection.get(SlaveType.Ext, extSlave.getId());
+ ExtProtocol extProtocol = extThread.getExtProtocol();
+ if (extProtocol == null) {
+ continue;
+ }
+// else {
+// extProtocol = extProtocol.clone();
+// }
+ if (extProtocol.isTake()){//鍏佽鍙�
+
+ }else if (extProtocol.isPut()){//鍏佽鏀�
+
+ }
+
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 8e2b23d..76a9f94 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -17,10 +17,10 @@
// generator.table="sys_host";
// sqlserver
generator.sqlOsType = SqlOsType.SQL_SERVER;
- generator.url="127.0.0.1:1433;databasename=ghtzasrs";
+ generator.url="192.168.4.15:1433;databasename=ssdasrs";
generator.username="sa";
generator.password="sa@123";
- generator.table="man_vacuum_mast";
+ generator.table="asr_bas_ext";
generator.packagePath="com.zy.asrs";
generator.js = false;
generator.html = false;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 9428400..3b7faa8 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -47,6 +47,8 @@
// mainService.RGVDemoShow0();
// mainService.RGVDemoShow1();
mainService.RGVDemoShow2();
+ //鏈烘鑷傚厑璁稿彇璐с�佸厑璁告斁璐�
+ mainService.ExtTaskAndPut();
} catch (Exception e) {
diff --git a/src/main/java/com/zy/core/model/protocol/ExtProtocol.java b/src/main/java/com/zy/core/model/protocol/ExtProtocol.java
index 5de464b..721810e 100644
--- a/src/main/java/com/zy/core/model/protocol/ExtProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/ExtProtocol.java
@@ -7,10 +7,20 @@
@Data
public class ExtProtocol {
- private Integer extNo;
+ private Integer extNo = 1;
- public boolean take;//鍏佽鍙栦俊鍙�
+ public boolean take = false;//鍏佽鍙栦俊鍙�
- public boolean put;//鍏佽鏀句俊鍙�
+ public boolean put = false;//鍏佽鏀句俊鍙�
+
+ @Override
+ public ExtProtocol clone() {
+ try {
+ return (ExtProtocol) super.clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
}
diff --git a/src/main/java/com/zy/core/thread/MelsecExtThread.java b/src/main/java/com/zy/core/thread/MelsecExtThread.java
index 3cab9ee..0b5805f 100644
--- a/src/main/java/com/zy/core/thread/MelsecExtThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecExtThread.java
@@ -4,7 +4,12 @@
import HslCommunication.Core.Types.OperateResultExOne;
import HslCommunication.Profinet.Melsec.MelsecMcNet;
import com.core.common.DateUtils;
+import com.core.common.SpringUtils;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.BasExt;
+import com.zy.asrs.service.BasCrnpService;
+import com.zy.asrs.service.BasExtService;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
@@ -118,10 +123,25 @@
// extProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
// extProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
- OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
+// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ BasExtService extService = SpringUtils.getBean(BasExtService.class);
+ BasExt basExt = new BasExt();
+ basExt.setExtNo(slave.getId());
+ basExt.setExtTask(extProtocol.isTake()?"Y":"N");
+ basExt.setExtPut(extProtocol.isPut()?"Y":"N");
+ if (!extService.updateById(basExt)){
+ log.error("MelsecExt"+" - 4"+" - 鏈烘鑷俻lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ }else {
+ OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+ }
} else {
+ BasExtService extService = SpringUtils.getBean(BasExtService.class);
+ BasExt basExt = new BasExt();
+ basExt.setExtNo(slave.getId());
+ basExt.setExtTask("N");
+ basExt.setExtPut("N");
+ extService.updateById(basExt);
OutputQueue.Ext.offer(MessageFormat.format("銆恵0}銆憑1}鏈烘鑷俻lc鐘舵�佷俊鎭け璐�",DateUtils.convert(new Date()), slave.getId()));
throw new CoolException(MessageFormat.format( "鏈烘鑷俻lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
}
diff --git a/src/main/resources/mapper/BasExtMapper.xml b/src/main/resources/mapper/BasExtMapper.xml
new file mode 100644
index 0000000..ebfde0a
--- /dev/null
+++ b/src/main/resources/mapper/BasExtMapper.xml
@@ -0,0 +1,13 @@
+<?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.mapper.BasExtMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasExt">
+ <result column="ext_no" property="extNo" />
+ <result column="ext_task" property="extTask" />
+ <result column="ext_put" property="extPut" />
+
+ </resultMap>
+
+</mapper>
diff --git a/src/main/webapp/views/deviceOperate/extOperate.html b/src/main/webapp/views/deviceOperate/extOperate.html
new file mode 100644
index 0000000..c59d53c
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/extOperate.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <title>Ext璁惧</title>
+ <link rel="stylesheet" href="../../static/wcs/css/element.css">
+ <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/common.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../static/wcs/js/element.js"></script>
+</head>
+
+<body>
+ <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+ <div style="width: 100%;">
+ <el-table border ref="singleTable" :data="tableData" highlight-current-row
+ max-height="450" style="width: 100%">
+ <el-table-column property="devNo" label="鏈烘鑷傜紪鍙�">
+ </el-table-column>
+ <el-table-column property="inEnable" label="鍏佽鍙�">
+ </el-table-column>
+ <el-table-column property="outEnable" label="鍏佽鏀�">
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ <script>
+ var app = new Vue({
+ el: '#app',
+ data: {
+ tableData: [],
+ },
+ created() {
+ this.init()
+ },
+ watch: {
+
+ },
+ methods: {
+ init() {
+ this.getTableData()
+
+ setInterval(() => {
+ this.getTableData()
+ }, 1000)
+ },
+ getTableData() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/site/list/ext/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'GET',
+ success: function (res) {
+ console.log(res)
+ that.tableData = res.data
+ }
+ });
+ }
+ }
+ })
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--
Gitblit v1.9.1