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