From 59c8b08ce2025c0f4a947ec313d8229eaf464c3d Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 21 八月 2020 11:06:44 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/SiteController.java | 65 ++++++++++++
src/main/webapp/views/index.html | 2
src/main/webapp/static/css/pipeline.css | 56 +++++++++++
src/main/webapp/views/pipeline.html | 102 ++++++++++++-------
src/main/java/com/zy/core/thread/CrnThread.java | 2
src/main/java/com/zy/core/thread/DevpThread.java | 60 ++++++++++--
6 files changed, 234 insertions(+), 53 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 9c6ae40..857c326 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -4,17 +4,17 @@
import com.core.common.R;
import com.zy.asrs.domain.vo.PlcErrorTableVo;
import com.zy.asrs.domain.vo.SiteTableVo;
+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.Task;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.DevpThread;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@@ -97,4 +97,63 @@
return R.ok().add(str.toString());
}
+ /****************************************************************/
+ /************************** 璇︽儏鎿嶄綔 ******************************/
+ /****************************************************************/
+
+ @GetMapping("/detl/{siteId}")
+ public R siteDetl(@PathVariable("siteId") Integer siteId){
+ SiteTableVo vo = new SiteTableVo();
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
+ if (siteId.equals(entry.getKey())) {
+ StaProtocol staProtocol = entry.getValue();
+ vo.setDevNo(entry.getKey()); // 绔欑偣缂栧彿
+ vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ vo.setAutoing(staProtocol.isAutoing()?"Y":"N"); // 鑷姩
+ vo.setLoading(staProtocol.isLoading()?"Y":"N"); // 鏈夌墿
+ vo.setInEnable(staProtocol.isInEnable()?"Y":"N"); // 鍙叆
+ vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭
+ vo.setInreq1(staProtocol.isInreq1()?"Y":"N"); // 闇�姹�1
+ vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿
+ vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔�
+ return R.ok().add(vo);
+ }
+ }
+ }
+ return R.error("plc宸叉帀绾�");
+ }
+
+ @PostMapping("/detl/update")
+ @ManagerAuth(memo = "淇敼绔欑偣鏁版嵁")
+ public R siteDetlUpdate(@RequestParam Integer siteId,
+ @RequestParam Short workNo,
+ @RequestParam Short staNo){
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
+ if (siteId.equals(entry.getKey())) {
+ StaProtocol staProtocol = entry.getValue();
+ if (workNo != null) {
+ staProtocol.setWorkNo(workNo);
+ }
+ if (staNo != null) {
+ staProtocol.setStaNo(staNo);
+ }
+ boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (result) {
+ return R.ok();
+ } else {
+ return R.error("涓嬪彂鍛戒护澶辫触");
+ }
+ }
+ }
+ }
+ return R.error("plc宸叉帀绾�");
+ }
+
+
}
diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java
index 148a3e5..ad3e99b 100644
--- a/src/main/java/com/zy/core/thread/CrnThread.java
+++ b/src/main/java/com/zy/core/thread/CrnThread.java
@@ -179,7 +179,7 @@
OperateResult result = siemensNet.Write("DB8.0", array);
if (result.IsSuccess) {
System.out.println(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
// readStatus();
} else {
System.out.println(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
diff --git a/src/main/java/com/zy/core/thread/DevpThread.java b/src/main/java/com/zy/core/thread/DevpThread.java
index d0493ed..b75d3f5 100644
--- a/src/main/java/com/zy/core/thread/DevpThread.java
+++ b/src/main/java/com/zy/core/thread/DevpThread.java
@@ -54,9 +54,17 @@
case 1:
read();
break;
- // 鍐欐暟鎹�
+ // 鍐欐暟鎹� ID+鐩爣绔�
case 2:
write((StaProtocol)task.getData());
+ break;
+ // 鍐欐暟鎹� ID
+ case 3:
+ writeId((StaProtocol)task.getData());
+ break;
+ // 鍐欐暟鎹� 鐩爣绔�
+ case 4:
+ writeStaNo((StaProtocol)task.getData());
break;
default:
break;
@@ -129,7 +137,7 @@
}
/**
- * 鍐欏叆 =====> 鍗曠珯鐐瑰啓鍏�
+ * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
*/
private void write(StaProtocol staProtocol){
if (null == staProtocol) {
@@ -137,14 +145,46 @@
}
OperateResult write = siemensS7Net.Write("DB100." + (staProtocol.getSiteId() - 1) * 2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
OperateResult write1 = siemensS7Net.Write("DB100." + ((staProtocol.getSiteId() - 1) * 2 + 20), staProtocol.getStaNo()); // 鐩爣绔�
- boolean[] status = new boolean[8];
- status[0] = staProtocol.isAutoing();
- status[1] = staProtocol.isLoading();
- status[2] = staProtocol.isInEnable();
- status[3] = staProtocol.isOutEnable();
- status[4] = staProtocol.isEmptyMk();
- OperateResult write2 = siemensS7Net.Write("DB100." + ((staProtocol.getSiteId() - 1) + 40), status); // 鐘舵��
- if (!write.IsSuccess || !write1.IsSuccess || !write2.IsSuccess) {
+// boolean[] status = new boolean[8];
+// status[0] = staProtocol.isAutoing();
+// status[1] = staProtocol.isLoading();
+// status[2] = staProtocol.isInEnable();
+// status[3] = staProtocol.isOutEnable();
+// status[4] = staProtocol.isEmptyMk();
+// OperateResult write2 = siemensS7Net.Write("DB100." + ((staProtocol.getSiteId() - 1) + 40), status); // 鐘舵��
+ if (!write.IsSuccess || !write1.IsSuccess) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+ }
+ }
+
+ /**
+ * 鍐欏叆 ID =====> 鍗曠珯鐐瑰啓鍏�
+ */
+ private void writeId(StaProtocol staProtocol){
+ if (null == staProtocol) {
+ return;
+ }
+ OperateResult write = siemensS7Net.Write("DB100." + (staProtocol.getSiteId() - 1) * 2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ if (!write.IsSuccess ) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+ }
+ }
+
+ /**
+ * 鍐欏叆 鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
+ */
+ private void writeStaNo(StaProtocol staProtocol){
+ if (null == staProtocol) {
+ return;
+ }
+ OperateResult write = siemensS7Net.Write("DB100." + ((staProtocol.getSiteId() - 1) * 2 + 20), staProtocol.getStaNo()); // 鐩爣绔�
+ if (!write.IsSuccess ) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
} else {
diff --git a/src/main/webapp/static/css/pipeline.css b/src/main/webapp/static/css/pipeline.css
index d03b223..0968a9b 100644
--- a/src/main/webapp/static/css/pipeline.css
+++ b/src/main/webapp/static/css/pipeline.css
@@ -96,4 +96,60 @@
height: 100%;
overflow: auto;
resize:none;
+}
+
+
+/* 璇︽儏寮瑰嚭灞� */
+#site-detl {
+ padding: 30px 10px 0 25px;
+ overflow: hidden;
+}
+#site-detl form {
+ overflow: hidden;
+}
+.form-item {
+ margin-bottom: 10px;
+}
+.form-label {
+ display: inline-block;
+ width: 70px;
+ text-align: right;
+}
+.form-input {
+ display: inline-block;
+ padding-left: 15px;
+}
+.form-input input {
+ outline-style: none ;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ padding: 5px 8px;
+ width: 150px;
+ font-size: 14px;
+ font-weight: bolder;
+}
+.form-input input:focus{
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)
+}
+.form-button-container {
+ text-align: center;
+}
+.form-button {
+ margin: 10px 10px;
+ width: 50px;
+ height: 30px;
+ color:white;
+ background-color:cornflowerblue;
+ border-radius: 3px;
+ border-width: 0;
+ outline: none;
+ font-size: 15px;
+ text-align: center;
+ cursor: pointer;
+}
+.form-button:hover {
+ opacity: 0.7;
}
\ No newline at end of file
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 2a5b0b5..fd7cf1f 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -26,7 +26,7 @@
</ul>
<!-- 涓讳綋鍐呭 -->
- <iframe id="content" src="console.html"></iframe>
+ <iframe id="content" src="pipeline.html"></iframe>
<footer class="footer">
Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">娴欐睙涓壃鐗╂祦瑁呭鏈夐檺鍏徃</a> 淇濈暀鎵�鏈夋潈鍒�
diff --git a/src/main/webapp/views/pipeline.html b/src/main/webapp/views/pipeline.html
index 6768bdf..9c35d6e 100644
--- a/src/main/webapp/views/pipeline.html
+++ b/src/main/webapp/views/pipeline.html
@@ -77,30 +77,30 @@
</footer>
<div id="site-detl" style="display: none">
- <div class="layui-form">
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">绔欑偣:</label>
- <div class="layui-input-block">
- <input id="siteId" name="siteId" placeholder="璇疯緭鍏ョ珯鐐圭紪鍙�" class="layui-input" lay-verify="required|number" autocomplete="off">
+ <form>
+ <div class="form-item">
+ <label class="form-label">绔欏彿:</label>
+ <div class="form-input">
+ <input id="siteId" name="siteId" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled">
</div>
</div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">宸ヤ綔鍙�:</label>
- <div class="layui-input-block">
- <input id="workNo" name="workNo" type="number" placeholder="璇疯緭鍏ュ伐浣滃彿" class="layui-input" lay-verify="number" autocomplete="off">
+ <div class="form-item">
+ <label class="form-label">宸ヤ綔鍙�:</label>
+ <div class="form-input">
+ <input id="workNo" name="workNo" type="number" class="layui-input" lay-verify="number" autocomplete="off">
</div>
</div>
- <div class="layui-form-item">
- <label class="layui-form-label layui-form-required">鐩爣绔�:</label>
- <div class="layui-input-block">
- <input id="staNo" name="staNo" type="number" placeholder="璇疯緭鍏ョ洰鏍囩珯" class="layui-input" lay-verify="number" autocomplete="off">
+ <div class="form-item">
+ <label class="form-label">鐩爣绔�:</label>
+ <div class="form-input">
+ <input id="staNo" name="staNo" type="number" class="layui-input" lay-verify="number" autocomplete="off">
</div>
</div>
- <div class="layui-form-item cool-button-contain">
- <button class="layui-btn layui-btn-normal" id="print" lay-filter="print" lay-submit="">鎵撳嵃</button>
- <button class="layui-btn layui-btn-primary" id="cancel">鍙栨秷</button>
+ <div class="form-item form-button-container">
+ <button class="form-button" id="save">淇濆瓨</button>
+ <button class="form-button" id="cancel" style="background-color: #D0D0D0">鍙栨秷</button>
</div>
- </div>
+ </form>
</div>
</body>
<script>
@@ -126,27 +126,6 @@
setInterval(function () {
getSiteOutput();
},500);
-
- $(document).on('click','#site-table tr', function () {
- var siteId = $(this).children("td").eq(0).html();
- if (siteId !== null && siteId !== "") {
- layer.open({
- type: 1,
- title: false,
- shadeClose: true,
- offset: 'rt',
- anim: 5,
- shade: [0],
- area: ['340px', '215px'],
- closeBtn: 0,
- content: $("#site-detl"),
- success: function(layero, index){
-
- }
- })
- }
- });
-
// plc寮傚父淇℃伅琛ㄨ幏鍙�
function getPlcError() {
@@ -289,5 +268,52 @@
$('#site-table tbody').after(html);
}
+ // 璇︽儏鎿嶄綔 -------------------------------------------------------------------------
+ var layerDetl;
+ $(document).on('dblclick ','#site-table tr', function () {
+ var siteId = $(this).children("td").eq(0).html();
+ if (siteId !== null && siteId !== "") {
+ layerDetl = layer.open({
+ type: 1,
+ title: false,
+ shadeClose: true,
+ offset: 'rt',
+ anim: 5,
+ shade: [0],
+ area: ['340px', '215px'],
+ closeBtn: 0,
+ content: $("#site-detl"),
+ success: function(layero, index){
+ http.get(baseUrl+ "/site/detl/"+siteId, null, function (res) {
+ $('#siteId').val(siteId);
+ $('#workNo').val(res.data.workNo);
+ $('#staNo').val(res.data.staNo);
+ })
+ },
+ end: function () {
+ $('#siteId').val("");
+ $('#workNo').val("");
+ $('#staNo').val("");
+ }
+ })
+ }
+ });
+
+ $(document).on('click ','#save', function () {
+ http.post(baseUrl+ "/site//detl/update", {
+ siteId: $('#siteId').val(),
+ workNo: $('#workNo').val(),
+ staNo: $('#staNo').val()
+ }, function (res) {
+ layer.msg("淇敼鎴愬姛",{icon: 1,});
+ })
+ })
+ $(document).on('click ','#cancel', function () {
+ $('#siteId').val("");
+ $('#workNo').val("");
+ $('#staNo').val("");
+ layer.close(layerDetl);
+ })
+
</script>
</html>
\ No newline at end of file
--
Gitblit v1.9.1