From 88880cf067bf4d3aacdf9ba70353b731888cf9fe Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 27 三月 2023 10:57:30 +0800
Subject: [PATCH] 实时数据接口与移动端接口
---
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryResult.java | 99 +++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java | 4
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java | 214 ++++++
jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DrySocketConst.java | 33 +
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderTrendVo.java | 43 +
jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java | 8
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderTrendController.java | 344 +++++-----
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java | 10
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java | 83 ++
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java | 66 ++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java | 8
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderTrendServiceImpl.java | 18
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHelloController.java | 37 +
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryResultService.java | 14
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerb.java | 60 +
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryResultController.java | 178 +++++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryResultServiceImpl.java | 19
db/nginx/nginx.pem | 76 ++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/websocket/DrySocket.java | 214 ++++++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java | 47 +
jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java | 12
jeecg-boot-base-core/src/main/java/org/jeecg/config/WebSocketConfig.java | 1
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java | 8
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrderTrend.java | 47 +
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java | 21
db/nginx/nginx.key | 27
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java | 23
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java | 4
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderTrendService.java | 4
db/herb.sql | 2
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryResultMapper.xml | 5
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryResultMapper.java | 17
jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java | 41 +
jeecg-module-dry/jeecg-module-dry-start/src/main/resources/logback-spring.xml | 77 ++
jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml | 6
35 files changed, 1,651 insertions(+), 219 deletions(-)
diff --git a/db/herb.sql b/db/herb.sql
index 62a14c1..20dbb03 100644
--- a/db/herb.sql
+++ b/db/herb.sql
@@ -1,5 +1,5 @@
CREATE database if NOT EXISTS `herb` default character set utf8mb4 collate utf8mb4_general_ci;
-USE `hreb`;
+USE `herb`;
/*
diff --git a/db/nginx/nginx.key b/db/nginx/nginx.key
new file mode 100644
index 0000000..7bd913f
--- /dev/null
+++ b/db/nginx/nginx.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAsd7TtPzeC0RKlIt0CeBej7JauxxBWnKFSQNP0jVPp0bzANlE
+OW8j22s8lJshGogSiyAQcS4+uecnz/uoyIsujXhgvgUO+Mp2Q4/WC2fMhIKCSYk5
+7LbARM7870XIy+9GLAapvrMwUG4vipJnQbwH0x49RtxFjsaOE6ZfmGtfU0NY+1dZ
+yS9Xe8AXveEQLGxB1JPwI/ocR9bxFTalp7AL1tD1UFpS5BOeShx2dKEtVnI/YMGT
+DeAOjcd8HjXwP6H/rGTYaW+p0yM9McLh4B2Z0eHRFblvLfKoWh8E+EBGPmn0ntuR
+ZKHV87i3FKO4cepuAE0Ie2ZEJPE0kmSGuG1ZYwIDAQABAoIBAA0d8pzZPQK1sY5M
+zmzgB/ku3PQJfGRQJ7YfsWY+Gjaqy8bXPunBYXKP8PLAketj94IdBjligKuy+UOk
+Omk3omI6a1/3/YepXplS5SUILZPkD/meThA/1eP9I7f9fHZVmeYrQ59VlY2I4qak
+b0rws98Ezt4H5nVF/TpDva7+1BPOtuO6lUa04XBPsFajKJWjYvOFa4VfgsRt3w18
+AxiCfE4DRRKH+ybc2zUwtOH2C+w9E/qgpDhAWTfqvAnapz7IF9Qx+9H2jmCPe8ya
+pDq5hdEMYrf0a1czRLN5DxtPTSbtw3l47PdeWkKvGlfB30ZO+j4lFoW9q2lnceTi
+fR4Au+ECgYEA87ypudeyvFf+Ax0mlyQoLQUXeUXtN9mkaQbrSifLq7u3N/snQcKP
+fORD6OiqXmaGTHsxiZZ4bmGPLrR6F4JT2mgAt2AT3vza+NGp7WARKBpm7hSyN5lP
+/g3qw5RLXkAou+eExbg3iG1nfJBzIovc2O0gM8u4QNWJmNGidSFIUHECgYEAutHN
+MbL5jXal62aKvF3rKvTc3bEGXqIt5crcdlPKe7q4HOZVCXVrOzD8uhyFTTNZ9Eoe
+RG1B8JDdJRKCh1sVHlAbdFwhIy71xmj5E5LdpM09WVGxZDNnnB2anTguuV49R8zF
+Noy5CN/sAMmRaVeNeUJ1hapR1qc8NftSW0wl8RMCgYEA8lPS02h21fcOHv5ujbpv
+D0OOsQ4q6WpDogA1Eoc6YcXCRbA4uZK8okk4k2ovaKe6QnQBLnAh0GzCtIbPFGyI
+/g6FF8w4NW1kMBoUPmNS63JEf9Sn08tj0oz3qffYbx6O4TMvuHyNCeDsENZ1AhXY
+PvyTFawnxp4HrZ5PTPEIOqECgYBiIQGfMVtTqxbL5zjIaKy2C5hX+jxWSOnC4iOb
+I7gf9Zvv0iyoozyIAts9Bu4d9vMxFh1/48PXEMCYUHivkHAvU/SX0iy1xlzisxDh
+7yrs/cFTwU1kTHwHzKUCIBiq1Y1qwWx1ksU+nB/i6f2vT4XIQ9hnNWd3ULCXykMg
+IYdscQKBgQCb4TcSFmZ1FiJEcRhe4Hi1jj3Q7gpW8fx7QH6c0Re9+FTeMnFFkNvd
+PWY1LL+NDphoPDBeifyxj15X6j0+wtn2mb7X2r5D8i/mEAKExKE6t9TZiqzrC3sp
+FOAC3sSQlfDoq2pFr9njQ0Ib3EC3DNoNbfLRM0Nb93vBhoHtYfEmpg==
+-----END RSA PRIVATE KEY-----
diff --git a/db/nginx/nginx.pem b/db/nginx/nginx.pem
new file mode 100644
index 0000000..7b4d6e9
--- /dev/null
+++ b/db/nginx/nginx.pem
@@ -0,0 +1,76 @@
+-----BEGIN CERTIFICATE-----
+MIIHkjCCBXqgAwIBAgIQBJQUPEv6WylvZlJzpb+N6DANBgkqhkiG9w0BAQsFADBc
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xNDAyBgNVBAMT
+K1JhcGlkU1NMIEdsb2JhbCBUTFMgUlNBNDA5NiBTSEEyNTYgMjAyMiBDQTEwHhcN
+MjMwMjEwMDAwMDAwWhcNMjQwMjEyMjM1OTU5WjAYMRYwFAYDVQQDDA0qLnNobGFu
+YmFvLmNuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsd7TtPzeC0RK
+lIt0CeBej7JauxxBWnKFSQNP0jVPp0bzANlEOW8j22s8lJshGogSiyAQcS4+uecn
+z/uoyIsujXhgvgUO+Mp2Q4/WC2fMhIKCSYk57LbARM7870XIy+9GLAapvrMwUG4v
+ipJnQbwH0x49RtxFjsaOE6ZfmGtfU0NY+1dZyS9Xe8AXveEQLGxB1JPwI/ocR9bx
+FTalp7AL1tD1UFpS5BOeShx2dKEtVnI/YMGTDeAOjcd8HjXwP6H/rGTYaW+p0yM9
+McLh4B2Z0eHRFblvLfKoWh8E+EBGPmn0ntuRZKHV87i3FKO4cepuAE0Ie2ZEJPE0
+kmSGuG1ZYwIDAQABo4IDkjCCA44wHwYDVR0jBBgwFoAU8JyF/aKffY/JaLvV1IlN
+Hb7TkP8wHQYDVR0OBBYEFJzhNUzeA/nCFFHZ5w00mCEnr377MCUGA1UdEQQeMByC
+DSouc2hsYW5iYW8uY26CC3NobGFuYmFvLmNuMA4GA1UdDwEB/wQEAwIFoDAdBgNV
+HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwgZ8GA1UdHwSBlzCBlDBIoEagRIZC
+aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL1JhcGlkU1NMR2xvYmFsVExTUlNBNDA5
+NlNIQTI1NjIwMjJDQTEuY3JsMEigRqBEhkJodHRwOi8vY3JsNC5kaWdpY2VydC5j
+b20vUmFwaWRTU0xHbG9iYWxUTFNSU0E0MDk2U0hBMjU2MjAyMkNBMS5jcmwwPgYD
+VR0gBDcwNTAzBgZngQwBAgEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdp
+Y2VydC5jb20vQ1BTMIGHBggrBgEFBQcBAQR7MHkwJAYIKwYBBQUHMAGGGGh0dHA6
+Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBRBggrBgEFBQcwAoZFaHR0cDovL2NhY2VydHMu
+ZGlnaWNlcnQuY29tL1JhcGlkU1NMR2xvYmFsVExTUlNBNDA5NlNIQTI1NjIwMjJD
+QTEuY3J0MAkGA1UdEwQCMAAwggF9BgorBgEEAdZ5AgQCBIIBbQSCAWkBZwB1AHb/
+iD8KtvuVUcJhzPWHujS0pM27KdxoQgqf5mdMWjp0AAABhjkEJJgAAAQDAEYwRAIg
+D6c8bJcNM1KcgxIWSxUiB8k/iymyBFiiFKmuiiYwYZUCIGQIVF39gA3sx5l6Xb+D
+VdRaqfZ1weRkc2WW38DqB9oXAHYAc9meiRtMlnigIH1HneayxhzQUV5xGSqMa4AQ
+esF3crUAAAGGOQQkwwAABAMARzBFAiAjebSFq6by4qwW89fwpE3+Z2j37jMQRAJd
+fLBNqMZu/QIhAL0o9lF8nPS/Tv516LUt/yV8k3TjDiGG/SNqKIGJ5uQUAHYASLDj
+a9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHMAAAGGOQQkiAAABAMARzBFAiAO
+zy7LipK499miZzKIqcU+QC8GdoUXTm3MlrWTbg+0hQIhANdOpLBwy/GfHD4i9u2O
+hMikx80LPL0cg7qAdJiZFVQUMA0GCSqGSIb3DQEBCwUAA4ICAQCGlBraan8PbxhV
+hZW0bOPxVBUx72M37mA4A3NAu0KEaboBgG1qrK835/Jp/vYZpptd4Z7maKzixCXT
+OL7J9+D7raN02oct6MDXb+uc+BWgYwnmwj9YgmS01Xs6UQLEAMRKaDENmt30OUXp
+n/ZghLRAliyGtEcyn4yJFODkUBJbi9m2VrRD+XdCZJYEStxmM2DuEVGpIAEDc+aC
+DoSUe/wuLJf3iUOSVQKLfYC/zNuB7FzSVSv/FphVt1EwlWD2RqSEoDgdzCwbD/pH
+p+8yjMDUHQZW6bSYDrwdYllq/NL/5PlDPdOiUUvmKNeOrJ1nY6vu0wkvHq55Agsl
+juWfyj8m2oCzURN78ONIJaEs3CR+9URM1xh+3ZjFWnzkmrc7WjGXTLDxX6tWDbcU
+qSBwLf4KDBwfWVcIGbXkoH/dvdF/boGJAx2ho9Sv/pMRQZ3xHjSI2MFAvGNocRBm
+tRN+TZXxhpQ7LSJdDyNKHvr9iV5sNTjPLpkpm2AXs3e520wXmtQyT5Hn3FmFFmt9
+srERXJL9VsQj20cKQth92N0ZKwVyiPKJo0PKDDwmSzAEsFgxHHE4y4itPY/nFN7y
+FYrtkhSCFwUHuwFZFyv9ZWAMF5Ikv2ivk2ujIykEGTGqlinup+rJTJwb078/Psjp
+ndWKtX0hCd4Vscz+L5Nz68duMQXobg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFyzCCBLOgAwIBAgIQCgWbJfVLPYeUzGYxR3U4ozANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0yMjA1MDQwMDAwMDBaFw0zMTExMDkyMzU5NTlaMFwxCzAJBgNVBAYTAlVT
+MRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE0MDIGA1UEAxMrUmFwaWRTU0wgR2xv
+YmFsIFRMUyBSU0E0MDk2IFNIQTI1NiAyMDIyIENBMTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAKY5PJhwCX2UyBb1nelu9APen53D5+C40T+BOZfSFaB0
+v0WJM3BGMsuiHZX2IHtwnjUhLL25d8tgLASaUNHCBNKKUlUGRXGztuDIeXb48d64
+k7Gk7u7mMRSrj+yuLSWOKnK6OGKe9+s6oaVIjHXY+QX8p2I2S3uew0bW3BFpkeAr
+LBCU25iqeaoLEOGIa09DVojd3qc/RKqr4P11173R+7Ub05YYhuIcSv8e0d7qN1sO
+1+lfoNMVfV9WcqPABmOasNJ+ol0hAC2PTgRLy/VZo1L0HRMr6j8cbR7q0nKwdbn4
+Ar+ZMgCgCcG9zCMFsuXYl/rqobiyV+8U37dDScAebZTIF/xPEvHcmGi3xxH6g+dT
+CjetOjJx8sdXUHKXGXC9ka33q7EzQIYlZISF7EkbT5dZHsO2DOMVLBdP1N1oUp0/
+1f6fc8uTDduELoKBRzTTZ6OOBVHeZyFZMMdi6tA5s/jxmb74lqH1+jQ6nTU2/Mma
+hGNxUuJpyhUHezgBA6sto5lNeyqc+3Cr5ehFQzUuwNsJaWbDdQk1v7lqRaqOlYjn
+iomOl36J5txTs0wL7etCeMRfyPsmc+8HmH77IYVMUOcPJb+0gNuSmAkvf5QXbgPI
+Zursn/UYnP9obhNbHc/9LYdQkB7CXyX9mPexnDNO7pggNA2jpbEarLmZGi4grMmf
+AgMBAAGjggGCMIIBfjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTwnIX9
+op99j8lou9XUiU0dvtOQ/zAfBgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3R
+VTAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
+MHYGCCsGAQUFBwEBBGowaDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNl
+cnQuY29tMEAGCCsGAQUFBzAChjRodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20v
+RGlnaUNlcnRHbG9iYWxSb290Q0EuY3J0MEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6
+Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEdsb2JhbFJvb3RDQS5jcmwwPQYD
+VR0gBDYwNDALBglghkgBhv1sAgEwBwYFZ4EMAQEwCAYGZ4EMAQIBMAgGBmeBDAEC
+AjAIBgZngQwBAgMwDQYJKoZIhvcNAQELBQADggEBAAfjh/s1f5dDdfm0sNm74/dW
+MbbsxfYV1LoTpFt+3MSUWvSbiPQfUkoV57b5rutRJvnPP9mSlpFwcZ3e1nSUbi2o
+ITGA7RCOj23I1F4zk0YJm42qAwJIqOVenR3XtyQ2VR82qhC6xslxtNf7f2Ndx2G7
+Mem4wpFhyPDT2P6UJ2MnrD+FC//ZKH5/ERo96ghz8VqNlmL5RXo8Ks9rMr/Ad9xw
+Y4hyRvAz5920myUffwdUqc0SvPlFnahsZg15uT5HkK48tHR0TLuLH8aRpzh4KJ/Y
+p0sARNb+9i1R4Fg5zPNvHs2BbIve0vkwxAy+R4727qYzl3027w9jEFC6HMXRaDc=
+-----END CERTIFICATE-----
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DrySocketConst.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DrySocketConst.java
new file mode 100644
index 0000000..31e0610
--- /dev/null
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DrySocketConst.java
@@ -0,0 +1,33 @@
+package org.jeecg.common.constant;
+
+/**
+ * VXESocket 甯搁噺
+ * @author: jeecg-boot
+ */
+public class DrySocketConst {
+
+ /**
+ * 娑堟伅绫诲瀷
+ */
+ public static final String TYPE = "type";
+
+ /**
+ * 娑堟伅鏁版嵁
+ */
+ public static final String DATA = "data";
+
+ /**
+ * 娑堟伅绫诲瀷锛氬績璺虫娴�
+ */
+ public static final String TYPE_HB = "heart_beat";
+ /**
+ * 娑堟伅绫诲瀷锛氶�氱敤鏁版嵁浼犻��
+ */
+ public static final String TYPE_CSD = "common_send_date";
+
+ /**
+ * 娑堟伅绫诲瀷锛氬疄鏃舵暟鎹笂浼�
+ */
+ public static final String TYPE_RDT = "real_time_data";
+
+}
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebSocketConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebSocketConfig.java
index af51cb9..fdbb48b 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebSocketConfig.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebSocketConfig.java
@@ -12,6 +12,7 @@
*/
@Configuration
public class WebSocketConfig {
+
/**
* 娉ㄥ叆ServerEndpointExporter锛�
* 杩欎釜bean浼氳嚜鍔ㄦ敞鍐屼娇鐢ㄤ簡@ServerEndpoint娉ㄨВ澹版槑鐨刉ebsocket endpoint
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java
index 653818a..6ed3ba1 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java
@@ -67,6 +67,14 @@
//TENANT_TABLE.add("demo");
//3.online绉熸埛闅旂娴嬭瘯
//TENANT_TABLE.add("ceapp_issue");
+
+ TENANT_TABLE.add("dry_eqp_type");
+ TENANT_TABLE.add("dry_equipment");
+ TENANT_TABLE.add("dry_eqp_type");
+ TENANT_TABLE.add("dry_herb");
+ TENANT_TABLE.add("dry_herb_type");
+ TENANT_TABLE.add("dry_order");
+ TENANT_TABLE.add("dry_shop");
}
diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
index 57a0186..198ddd0 100644
--- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -120,14 +120,14 @@
filterChainDefinitionMap.put("/swagger**/**", "anon");
filterChainDefinitionMap.put("/webjars/**", "anon");
filterChainDefinitionMap.put("/v2/**", "anon");
-
+
filterChainDefinitionMap.put("/sys/annountCement/show/**", "anon");
//绉湪鎶ヨ〃鎺掗櫎
filterChainDefinitionMap.put("/jmreport/**", "anon");
filterChainDefinitionMap.put("/**/*.js.map", "anon");
filterChainDefinitionMap.put("/**/*.css.map", "anon");
-
+
//澶у睆妯℃澘渚嬪瓙
filterChainDefinitionMap.put("/test/bigScreen/**", "anon");
filterChainDefinitionMap.put("/bigscreen/template1/**", "anon");
@@ -140,6 +140,7 @@
filterChainDefinitionMap.put("/websocket/**", "anon");//绯荤粺閫氱煡鍜屽叕鍛�
filterChainDefinitionMap.put("/newsWebsocket/**", "anon");//CMS妯″潡
filterChainDefinitionMap.put("/vxeSocket/**", "anon");//JVxeTable鏃犵棔鍒锋柊绀轰緥
+ filterChainDefinitionMap.put("/drySocket/**", "anon");//骞茬嚗鏈洪�氫俊
//鎬ц兘鐩戞帶鈥斺�斿畨鍏ㄩ殣鎮f硠闇睺OEKN锛坉urid杩炴帴姹犱篃鏈夛級
//filterChainDefinitionMap.put("/actuator/**", "anon");
@@ -147,7 +148,12 @@
filterChainDefinitionMap.put("/test/seata/**", "anon");
// 骞茬嚗璁惧瀹炴椂鏁版嵁涓婁紶
- filterChainDefinitionMap.put("/dry/dryOrder/sendRealTimeData", "anon");
+ //filterChainDefinitionMap.put("/dry/dryOrder/**", "anon");
+
+ // 骞茬嚗娴嬭瘯
+ filterChainDefinitionMap.put("/dry/dryResult/**", "anon");
+ filterChainDefinitionMap.put("/dry/real/**", "anon");
+
// 娣诲姞鑷繁鐨勮繃婊ゅ櫒骞朵笖鍙栧悕涓簀wt
Map<String, Filter> filterMap = new HashMap<String, Filter>(1);
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java
new file mode 100644
index 0000000..b241dc3
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/common/CacheConstants.java
@@ -0,0 +1,21 @@
+package org.jeecg.modules.dry.common;
+
+public interface CacheConstants {
+ enum RedisKeyEnum{
+ WORK_ORDER("workOrder","宸ュ崟MAP");
+ private String code;
+ private String text;
+ RedisKeyEnum(String code, String text) {
+ this.code = code;
+ this.text = text;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getText() {
+ return text;
+ }
+ }
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java
index 7b318b9..3c1f6b6 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryEquipment.java
@@ -10,6 +10,7 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.modules.dry.vo.RealTimeDataVo;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
@@ -82,4 +83,11 @@
@Excel(name = "绉熸埛id", width = 15)
@ApiModelProperty(value = "绉熸埛id")
private Integer tenantId;
+
+ public DryEquipment() {
+ }
+ public DryEquipment(RealTimeDataVo realTimeDataVo) {
+ this.code = realTimeDataVo.getMachineid();
+ this.tenantId = realTimeDataVo.getTenantid();
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerb.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerb.java
index 07452be..673734b 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerb.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryHerb.java
@@ -10,6 +10,7 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.modules.dry.vo.RealTimeDataVo;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
@@ -61,14 +62,14 @@
@Excel(name = "骞茬嚗鏂规硶", width = 15)
@ApiModelProperty(value = "骞茬嚗鏂规硶")
private String dryMethod;
- /**骞茬嚗鏃堕棿*/
- @Excel(name = "骞茬嚗鏃堕棿", width = 15)
- @ApiModelProperty(value = "骞茬嚗鏃堕棿")
- private Integer dryTime;
- /**骞茬嚗娓╁害*/
- @Excel(name = "骞茬嚗娓╁害", width = 15)
- @ApiModelProperty(value = "骞茬嚗娓╁害")
- private String dryTemp;
+// /**骞茬嚗鏃堕棿*/
+// @Excel(name = "骞茬嚗鏃堕棿", width = 15)
+// @ApiModelProperty(value = "骞茬嚗鏃堕棿")
+// private Integer dryTime;
+// /**骞茬嚗娓╁害*/
+// @Excel(name = "骞茬嚗娓╁害", width = 15)
+// @ApiModelProperty(value = "骞茬嚗娓╁害")
+// private String dryTemp;
/**娉ㄦ剰浜嬮」*/
@Excel(name = "娉ㄦ剰浜嬮」", width = 15)
@ApiModelProperty(value = "娉ㄦ剰浜嬮」")
@@ -105,4 +106,47 @@
@Excel(name = "鐩爣鍚按鐜�", width = 15)
@ApiModelProperty(value = "鐩爣鍚按鐜�")
private Double target;
+ /**鎶曟枡閲�*/
+ @Excel(name = "鎶曟枡閲�", width = 15)
+ @ApiModelProperty(value = "鎶曟枡閲�")
+ private Integer feed;
+ /**棰勮骞茬嚗鏃堕棿*/
+ @Excel(name = "棰勮骞茬嚗鏃堕棿", width = 15)
+ @ApiModelProperty(value = "棰勮骞茬嚗鏃堕棿")
+ private Integer et;
+ /**鐑娓╁害*/
+ @Excel(name = "鐑娓╁害", width = 15)
+ @ApiModelProperty(value = "鐑娓╁害")
+ private Double windTemp;
+ /**鐜娓╁害*/
+ @Excel(name = "鐜娓╁害", width = 15)
+ @ApiModelProperty(value = "鐜娓╁害")
+ private Double envTemp;
+ /**鐜婀垮害*/
+ @Excel(name = "鐜婀垮害", width = 15)
+ @ApiModelProperty(value = "鐜婀垮害")
+ private Double envHum;
+ /**鑽℃枡寤舵椂ms*/
+ @Excel(name = "鑽℃枡寤舵椂ms", width = 15)
+ @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
+ private Integer delay;
+ /**缈绘枡娆℃暟*/
+ @Excel(name = "缈绘枡娆℃暟", width = 15)
+ @ApiModelProperty(value = "缈绘枡娆℃暟")
+ private Integer turn;
+
+ public DryHerb(){}
+ public DryHerb(RealTimeDataVo realTimeDataVo) {
+ this.code = realTimeDataVo.getIndex() + "";
+ this.delay = realTimeDataVo.getDelay();
+ this.name = realTimeDataVo.getName();
+ this.delay = realTimeDataVo.getDelay();
+ this.turn = realTimeDataVo.getTurntime();
+ this.feed = realTimeDataVo.getWeight1();
+ this.initial = realTimeDataVo.getMoisture1();
+ this.target = realTimeDataVo.getMoisture3();
+ this.windTemp = realTimeDataVo.getTemp3();
+ this.et = realTimeDataVo.getTime1();
+ this.tenantId = realTimeDataVo.getTenantid();
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
index 527fc59..29c3e0b 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrder.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
@@ -23,6 +24,7 @@
* @Version: V1.0
*/
@Data
+@ToString
@TableName("dry_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@@ -35,9 +37,9 @@
@ApiModelProperty(value = "id")
private String id;
/**宸ュ崟鏃堕棿*/
- @Excel(name = "宸ュ崟鏃堕棿", width = 15, format = "yyyy-MM-dd")
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "宸ュ崟鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "宸ュ崟鏃堕棿")
private Date orderTime;
/**宸ュ崟鍙�*/
@@ -49,6 +51,9 @@
@Dict(dictTable = "dry_herb", dicText = "name", dicCode = "id")
@ApiModelProperty(value = "鑽潗")
private String herbId;
+ /**鑽潗*/
+ @ApiModelProperty(value = "鑽潗鍚嶇О")
+ private String herbName;
/**鍒濆鍚按鐜�*/
@Excel(name = "鍒濆鍚按鐜�", width = 15)
@ApiModelProperty(value = "鍒濆鍚按鐜�")
@@ -60,7 +65,11 @@
/**鎶曟枡閲�*/
@Excel(name = "鎶曟枡閲�", width = 15)
@ApiModelProperty(value = "鎶曟枡閲�")
- private Double feed;
+ private Integer feed;
+ /**鍒濆閲嶉噺*/
+ @Excel(name = "鍒濆閲嶉噺", width = 15)
+ @ApiModelProperty(value = "鍒濆閲嶉噺")
+ private Double originWeight;
/**棰勮骞茬嚗鏃堕棿*/
@Excel(name = "棰勮骞茬嚗鏃堕棿", width = 15)
@ApiModelProperty(value = "棰勮骞茬嚗鏃堕棿")
@@ -72,7 +81,27 @@
/**骞茬嚗鏃堕棿*/
@Excel(name = "骞茬嚗鏃堕棿", width = 15)
@ApiModelProperty(value = "骞茬嚗鏃堕棿")
- private Integer drying;
+ private Integer dryTime;
+ /**鐑娓╁害*/
+ @Excel(name = "鐑娓╁害", width = 15)
+ @ApiModelProperty(value = "鐑娓╁害")
+ private Double windTemp;
+ /**鐜娓╁害*/
+ @Excel(name = "鐜娓╁害", width = 15)
+ @ApiModelProperty(value = "鐜娓╁害")
+ private Double envTemp;
+ /**鐜婀垮害*/
+ @Excel(name = "鐜婀垮害", width = 15)
+ @ApiModelProperty(value = "鐜婀垮害")
+ private Double envHum;
+ /**鑽℃枡寤舵椂ms*/
+ @Excel(name = "鑽℃枡寤舵椂ms", width = 15)
+ @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
+ private Integer delay;
+ /**缈绘枡娆℃暟*/
+ @Excel(name = "缈绘枡娆℃暟", width = 15)
+ @ApiModelProperty(value = "缈绘枡娆℃暟")
+ private Integer turn;
/**棰勮鍓╀綑鏃堕棿*/
@Excel(name = "棰勮鍓╀綑鏃堕棿", width = 15)
@ApiModelProperty(value = "棰勮鍓╀綑鏃堕棿")
@@ -116,4 +145,6 @@
@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
@ApiModelProperty(value = "鎿嶄綔浜�")
private String operator;
+
+ private String temps;
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrderTrend.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrderTrend.java
index bb711a0..bac31a2 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrderTrend.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryOrderTrend.java
@@ -41,18 +41,47 @@
@Excel(name = "鍚按鐜�", width = 15)
@ApiModelProperty(value = "鍚按鐜�")
private Double moisture;
- /**娓╁害*/
- @Excel(name = "娓╁害", width = 15)
- @ApiModelProperty(value = "娓╁害")
- private Double temp;
+ /**椋庢満娓╁害*/
+ @Excel(name = "椋庢満娓╁害", width = 15)
+ @ApiModelProperty(value = "椋庢満娓╁害")
+ private Double fanTemp;
+ /**椋庣娓╁害*/
+ @Excel(name = "椋庣娓╁害", width = 15)
+ @ApiModelProperty(value = "椋庣娓╁害")
+ private Double bellowsTemp;
/**鏃堕棿*/
- @Excel(name = "鏃堕棿", width = 15, format = "yyyy-MM-dd")
- @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
- @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "鏃堕棿", width = 15, format = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "鏃堕棿")
private Date tim;
- /**绉熸埛id*/
- @Excel(name = "绉熸埛id", width = 15)
+
+ /**鎬绘椂闂�*/
+ @Excel(name = "鎬绘椂闂�", width = 15)
+ @ApiModelProperty(value = "鎬绘椂闂�")
+ private Integer totalTime;
+ /**骞茬嚗鏃堕棿s*/
+ @Excel(name = "骞茬嚗鏃堕棿s", width = 15)
+ @ApiModelProperty(value = "骞茬嚗鏃堕棿s")
+ private Integer dryTime;
+ /**缈绘枡娆℃暟*/
+ @Excel(name = "缈绘枡娆℃暟", width = 15)
+ @ApiModelProperty(value = "缈绘枡娆℃暟")
+ private Integer turn;
+ /**椋庢満棰戠巼*/
+ @Excel(name = "椋庢満棰戠巼", width = 15)
+ @ApiModelProperty(value = "椋庢満棰戠巼")
+ private Double fanFrequency;
+ /**瀹炴椂閲嶉噺*/
+ @Excel(name = "瀹炴椂閲嶉噺", width = 15)
+ @ApiModelProperty(value = "瀹炴椂閲嶉噺")
+ private Double weight;
+ /**鐑1/鍐烽0*/
+ @Excel(name = "鐑1/鍐烽0", width = 15)
+ @ApiModelProperty(value = "鐑1/鍐烽0")
+ private Boolean wind;
+ /**绉熸埛id*/
+ @Excel(name = "绉熸埛id", width = 15)
@ApiModelProperty(value = "绉熸埛id")
private Integer tenantId;
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryResult.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryResult.java
new file mode 100644
index 0000000..03dfabc
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/entity/DryResult.java
@@ -0,0 +1,99 @@
+package org.jeecg.modules.dry.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 娴嬭瘯缁撴灉
+ * @Author: jeecg-boot
+ * @Date: 2023-03-19
+ * @Version: V1.0
+ */
+@Data
+@TableName("dry_result")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="dry_result瀵硅薄", description="娴嬭瘯缁撴灉")
+public class DryResult implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "id")
+ private String id;
+ /**鑽潗鍚嶇О*/
+ @Excel(name = "鑽潗鍚嶇О", width = 15)
+ @ApiModelProperty(value = "鑽潗鍚嶇О")
+ private String herbName;
+ /**瑁呮枡閲�*/
+ @Excel(name = "瑁呮枡閲�", width = 15)
+ @ApiModelProperty(value = "瑁呮枡閲�")
+ private Integer feed;
+ /**鍒濆閲嶉噺*/
+ @Excel(name = "鍒濆閲嶉噺", width = 15)
+ @ApiModelProperty(value = "鍒濆閲嶉噺")
+ private Double weight;
+ /**鐩爣姘村垎*/
+ @Excel(name = "鐩爣姘村垎", width = 15)
+ @ApiModelProperty(value = "鐩爣姘村垎")
+ private Double target;
+ /**宸ュ崟鍙�*/
+ @Excel(name = "宸ュ崟鍙�", width = 15)
+ @ApiModelProperty(value = "宸ュ崟鍙�")
+ private String orderNo;
+ /**宸ュ崟id*/
+ @Excel(name = "宸ュ崟id", width = 15)
+ @ApiModelProperty(value = "宸ュ崟id")
+ private String orderId;
+ /**鍓嶅乏*/
+ @Excel(name = "鍓嶅乏", width = 15)
+ @ApiModelProperty(value = "鍓嶅乏")
+ private Double frontLeft;
+ /**鍓嶅乏*/
+ @Excel(name = "鍓嶅乏", width = 15)
+ @ApiModelProperty(value = "鍓嶅乏")
+ private Double frontRight;
+ /**涓乏*/
+ @Excel(name = "涓乏", width = 15)
+ @ApiModelProperty(value = "涓乏")
+ private Double middleLeft;
+ /**涓彸*/
+ @Excel(name = "涓彸", width = 15)
+ @ApiModelProperty(value = "涓彸")
+ private Double middleRight;
+ /**鍚庡乏*/
+ @Excel(name = "鍚庡乏", width = 15)
+ @ApiModelProperty(value = "鍚庡乏")
+ private Double backLeft;
+ /**鍚庡彸*/
+ @Excel(name = "鍚庡彸", width = 15)
+ @ApiModelProperty(value = "鍚庡彸")
+ private Double backRight;
+ /**骞冲潎*/
+ @Excel(name = "骞冲潎", width = 15)
+ @ApiModelProperty(value = "骞冲潎")
+ private Double avg;
+ /**鏃堕暱*/
+ @Excel(name = "鏃堕暱", width = 15)
+ @ApiModelProperty(value = "鏃堕暱")
+ private Double dryTime;
+ /**钂告苯锛堢珛鏂癸級*/
+ @Excel(name = "钂告苯锛堢珛鏂癸級", width = 15)
+ @ApiModelProperty(value = "钂告苯锛堢珛鏂癸級")
+ private Double steam;
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderTrendVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderTrendVo.java
index 1c4e4a9..4e611ac 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderTrendVo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderTrendVo.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import lombok.NoArgsConstructor;
import lombok.ToString;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@@ -13,6 +14,7 @@
@Data
@ToString
+@NoArgsConstructor
public class DryOrderTrendVo {
/**id*/
@@ -25,8 +27,30 @@
@ApiModelProperty(value = "鍚按鐜�", example = "33")
private Double moisture;
/**娓╁害*/
- @ApiModelProperty(value = "娓╁害", example = "70")
- private Double temp;
+ @ApiModelProperty(value = "椋庢満娓╁害", example = "70")
+ private Double fanTemp;
+ /**椋庣娓╁害*/
+ @ApiModelProperty(value = "椋庣娓╁害")
+ private Double bellowsTemp;
+
+ /**鎬绘椂闂�*/
+ @ApiModelProperty(value = "鎬绘椂闂�")
+ private Integer totalTime;
+ /**骞茬嚗鏃堕棿s*/
+ @ApiModelProperty(value = "骞茬嚗鏃堕棿s")
+ private Integer dryTime;
+ /**缈绘枡娆℃暟*/
+ @ApiModelProperty(value = "缈绘枡娆℃暟")
+ private Integer turn;
+ /**椋庢満棰戠巼*/
+ @ApiModelProperty(value = "椋庢満棰戠巼")
+ private Double fanFrequency;
+ /**瀹炴椂閲嶉噺*/
+ @ApiModelProperty(value = "瀹炴椂閲嶉噺")
+ private Double weight;
+ /**鐑1/鍐烽0*/
+ @ApiModelProperty(value = "鐑1/鍐烽0")
+ private Integer wind;
/**鏃堕棿*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@@ -35,4 +59,19 @@
/**绉熸埛id*/
@ApiModelProperty(value = "绉熸埛id", example = "1000")
private Integer tenantId;
+
+
+ public DryOrderTrendVo(RealTimeDataVo realTimeDataVo) {
+ this.fanFrequency = realTimeDataVo.getFanfrq();
+ this.weight = realTimeDataVo.getWeight3();
+ this.moisture = realTimeDataVo.getMoisture2();
+ this.fanTemp = realTimeDataVo.getTemp1();
+ this.bellowsTemp = realTimeDataVo.getTemp2();
+ this.dryTime = realTimeDataVo.getTime2();
+ this.wind = realTimeDataVo.getWind()?1:0;
+ this.turn = realTimeDataVo.getTurntime();
+ this.totalTime = realTimeDataVo.getTime3();
+ this.orderId = realTimeDataVo.getOrderId();
+ this.tim = new Date();
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
index 2ac9388..c4d9107 100644
--- a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/DryOrderVo.java
@@ -1,17 +1,20 @@
package org.jeecg.modules.dry.vo;
+import cn.hutool.core.util.IdUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import lombok.NoArgsConstructor;
import lombok.ToString;
import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
@Data
@ToString
+@NoArgsConstructor
public class DryOrderVo {
/**id*/
@ApiModelProperty(value = "id")
@@ -27,6 +30,9 @@
/**鑽潗*/
@ApiModelProperty(value = "鑽潗", example = "1085571074")
private String herbId;
+ /**鑽潗鍚嶇О*/
+ @ApiModelProperty(value="鑽潗鍚嶇О", example = "浼哥瓔鑽�")
+ private String herbName;
/**鍒濆鍚按鐜�*/
@ApiModelProperty(value = "鍒濆鍚按鐜�", example = "75.51")
private Double initial;
@@ -34,8 +40,10 @@
@ApiModelProperty(value = "鐩爣鍚按鐜�", example="12")
private Double target;
/**鎶曟枡閲�*/
- @ApiModelProperty(value = "鎶曟枡閲�", example = "32")
- private Double feed;
+ @ApiModelProperty(value = "鎶曟枡閲�", example = "16")
+ private Integer feed;
+ @ApiModelProperty(value = "鍒濆閲嶉噺")
+ private Double originWeight;
/**棰勮骞茬嚗鏃堕棿*/
@ApiModelProperty(value = "棰勮骞茬嚗鏃堕棿(min)", example = "120")
private Integer et;
@@ -44,13 +52,31 @@
private Double yield;
/**骞茬嚗鏃堕棿*/
@ApiModelProperty(value = "骞茬嚗鏃堕棿")
- private Integer drying;
+ private Integer dryTime;
+ /**鐑娓╁害*/
+ @ApiModelProperty(value = "鐑娓╁害")
+ private Double windTemp;
+ /**鐜娓╁害*/
+ @ApiModelProperty(value = "鐜娓╁害")
+ private Double envTemp;
+ /**鐜婀垮害*/
+ @ApiModelProperty(value = "鐜婀垮害")
+ private Double envHum;
+ /**鑽℃枡寤舵椂ms*/
+ @ApiModelProperty(value = "鑽℃枡寤舵椂ms")
+ private Integer delay;
+ /**缈绘枡娆℃暟*/
+ @ApiModelProperty(value = "缈绘枡娆℃暟")
+ private Integer turn;
/**棰勮鍓╀綑鏃堕棿*/
@ApiModelProperty(value = "棰勮鍓╀綑鏃堕棿")
private Integer remain;
/**璁惧*/
@ApiModelProperty(value = "璁惧", example = "S1001")
private String equId;
+ /**璁惧缂栧彿*/
+ @ApiModelProperty(value = "璁惧缂栧彿", example = "GM001")
+ private String machineCode;
/**杞﹂棿*/
@ApiModelProperty(value = "杞﹂棿", example = "S1")
private String shopId;
@@ -66,6 +92,49 @@
private String operator;
- @ApiModelProperty(value = "瀹炴椂鏄庣粏鏁版嵁")
- private List<DryOrderTrendVo> DetailList;
+ @ApiModelProperty(value = "鏄庣粏鏁版嵁鍒楄〃")
+ private List<DryOrderTrendVo> detailList = new ArrayList<>();
+ @ApiModelProperty(value = "鏄庣粏")
+ private DryOrderTrendVo trendVo;
+
+ private Map<Integer, Double> bellowsTemp = new HashMap<>();
+
+ /**寮�濮嬪共鐖�*/
+ private Boolean start;
+ /**鑷姩 true/鎵嬪姩 false*/
+ private Boolean auto;
+ /**鏆傚仠鏍囧織 true/false*/
+ private Boolean stop;
+ /**涓婁綅鏈� true/PLC false*/
+ private Boolean plcdisable;
+ /**娓╁害杩囦綆 true/姝e父 false*/
+ private Boolean lowalarm;
+ /**鐑 true/鍐烽 false*/
+ private Boolean wind;
+
+ public DryOrderVo(RealTimeDataVo realTimeDataVo) {
+ this.id = IdUtil.fastSimpleUUID();
+ this.code = realTimeDataVo.getWorkorder();
+ this.herbName = realTimeDataVo.getName();
+ this.delay = realTimeDataVo.getDelay();
+ this.turn = realTimeDataVo.getTurntime();
+ this.feed = realTimeDataVo.getWeight1();
+ this.originWeight = realTimeDataVo.getWeight2();
+ this.initial = realTimeDataVo.getMoisture1();
+ this.target = realTimeDataVo.getMoisture3();
+ this.windTemp = realTimeDataVo.getTemp3();
+ this.et = realTimeDataVo.getTime1();
+ this.dryTime = realTimeDataVo.getTime3();
+ this.start = realTimeDataVo.getStart();
+ this.auto = realTimeDataVo.getAuto();
+ this.stop = realTimeDataVo.getStop();
+ this.plcdisable = realTimeDataVo.getPlcdisable();
+ this.lowalarm = realTimeDataVo.getLowalarm();
+ this.wind = realTimeDataVo.getWind();
+ this.machineCode = realTimeDataVo.getMachineid();
+ this.tenantId = realTimeDataVo.getTenantid();
+ this.orderTime = new Date();
+ this.yield = realTimeDataVo.getWeight3();
+
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java
new file mode 100644
index 0000000..6dbec23
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-api/src/main/java/org/jeecg/modules/dry/vo/RealTimeDataVo.java
@@ -0,0 +1,66 @@
+package org.jeecg.modules.dry.vo;
+
+import lombok.Data;
+import lombok.ToString;
+
+@Data
+@ToString
+public class RealTimeDataVo {
+
+ /**宸ュ崟ID*/
+ private String orderId;
+ /**宸ュ崟鍙�*/
+ private String workorder;
+ /**閰嶆柟绱㈠紩*/
+ private Integer index;
+ /**鑽潗鍚嶇О*/
+ private String name;
+
+ private Integer tenantid;
+
+ private String machineid;
+ /**鑽℃枡寤舵椂*/
+ private Integer delay;
+ /**缈绘枡娆℃暟*/
+ private Integer turntime;
+ /**椋庢満棰戠巼*/
+ private Double fanfrq;
+ /**鎶曟枡閲忥紙绛愶級*/
+ private Integer weight1;
+ /**鍒濆閲嶉噺*/
+ private Double weight2;
+ /**杩囩▼瀹炴椂閲嶉噺*/
+ private Double weight3;
+ /**鍒濆鍚按鐜囷紙璁惧畾鍊硷級*/
+ private Double moisture1;
+ /**瀹炴椂鍚按鐜�*/
+ private Double moisture2;
+ /**鐩爣鍚按鐜�*/
+ private Double moisture3;
+ /**椋庢満娓╁害*/
+ private Double temp1;
+ /**椋庣娓╁害*/
+ private Double temp2;
+ /**娓╁害璁惧畾鍊�*/
+ private Double temp3;
+ /**鏃堕棿璁惧畾鍊�*/
+ private Integer time1;
+ /**鏃堕棿璁℃暟*/
+ private Integer time2;
+ /**鎬绘椂闂�*/
+ private Integer time3;
+ /**寮�濮嬪共鐖�*/
+ private Boolean start;
+ /**鑷姩 true/鎵嬪姩 false*/
+ private Boolean auto;
+ /**鏆傚仠鏍囧織 true/false*/
+ private Boolean stop;
+ /**涓婁綅鏈� true/PLC false*/
+ private Boolean plcdisable;
+ /**娓╁害杩囦綆 true/姝e父 false*/
+ private Boolean lowalarm;
+ /**鐑 true/鍐烽 false*/
+ private Boolean wind;
+
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHelloController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHelloController.java
index 0c8ad96..413d7dd 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHelloController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryHelloController.java
@@ -1,14 +1,16 @@
package org.jeecg.modules.dry.controller;
+import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.dry.entity.DryHelloEntity;
import org.jeecg.modules.dry.service.IDryHelloService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;
+
+import java.util.Map;
@Api(tags = "dry绀轰緥")
@RestController
@@ -26,4 +28,33 @@
return jeecgHelloService.hello();
}
+ @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁Str", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
+ @PostMapping("/sendRealTimeData")
+ public Result<?> realTimeData(String orderVo) {
+ System.out.println("鎺ユ敹鍒板疄鏃舵暟鎹細" + orderVo.toString());
+ log.info("瀹炴椂鏁版嵁锛�"+ orderVo.toString());
+ //service.saveRealTimeData(orderVo);
+
+ return Result.ok();
+ }
+
+ @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁Map", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
+ @PostMapping("/sendRealTimeDataMap")
+ public Result<?> realTimeDataMap(@RequestBody Map<String,Object> orderVo) {
+ System.out.println("鎺ユ敹鍒板疄鏃舵暟鎹細" + orderVo.toString());
+ log.info("瀹炴椂鏁版嵁锛�"+ orderVo.toString());
+ //service.saveRealTimeData(orderVo);
+
+ return Result.ok();
+ }
+
+ @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁Json", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
+ @PostMapping("/sendRealTimeDataJson")
+ public Result<?> realTimeDataJson(@RequestBody JSONObject orderVo) {
+ System.out.println("鎺ユ敹鍒板疄鏃舵暟鎹細" + orderVo.toJSONString());
+ log.info("瀹炴椂鏁版嵁锛�"+orderVo.toJSONString());
+ //service.saveRealTimeData(orderVo);
+
+ return Result.ok();
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
index 9df905d..8d4de43 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderController.java
@@ -1,8 +1,12 @@
package org.jeecg.modules.dry.controller;
import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONObject;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.config.TenantContext;
import org.jeecg.common.system.query.QueryGenerator;
@@ -67,6 +71,16 @@
IPage<DryOrder> pageList = dryOrderService.page(page, queryWrapper);
return Result.OK(pageList);
}
+
+
+ @ApiOperation(value="鏈堢敓浜ф儏鍐垫瑙�", notes="")
+ @GetMapping(value = "/monthOverview")
+ public Result<?> queryMonthOverview(@RequestParam(name="month") String month) {
+ int tenantId = oConvertUtils.getInt(TenantContext.getTenant(),0);
+ List<String> list = dryOrderService.queryMonthOverview(month, tenantId);
+ return Result.ok(list);
+ }
+
/**
* 娣诲姞
@@ -170,14 +184,5 @@
return super.importExcel(request, response, DryOrder.class);
}
-
-
- @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
- @PostMapping("/sendRealTimeData")
- public void realTimeData(@RequestBody DryOrderVo orderVo) {
- System.out.println("鎺ユ敹鍒板疄鏃舵暟鎹細" + orderVo.toString());
- service.saveRealTimeData(orderVo);
-
- }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderTrendController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderTrendController.java
index 76923b5..c9989dd 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderTrendController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryOrderTrendController.java
@@ -1,172 +1,172 @@
-package org.jeecg.modules.dry.controller;
-
-import java.util.Arrays;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.config.TenantContext;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
-import org.jeecg.modules.dry.entity.DryOrderTrend;
-import org.jeecg.modules.dry.service.IDryOrderTrendService;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-
- /**
- * @Description: 宸ュ崟杩囩▼瓒嬪娍
- * @Author: jeecg-boot
- * @Date: 2023-03-08
- * @Version: V1.0
- */
-@Api(tags="宸ュ崟杩囩▼瓒嬪娍")
-@RestController
-@RequestMapping("/dry/dryOrderTrend")
-@Slf4j
-public class DryOrderTrendController extends JeecgController<DryOrderTrend, IDryOrderTrendService> {
- @Autowired
- private IDryOrderTrendService dryOrderTrendService;
-
- /**
- * 鍒嗛〉鍒楄〃鏌ヨ
- *
- * @param dryOrderTrend
- * @param pageNo
- * @param pageSize
- * @param req
- * @return
- */
- //@AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-鍒嗛〉鍒楄〃鏌ヨ")
- @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ュ崟杩囩▼瓒嬪娍-鍒嗛〉鍒楄〃鏌ヨ")
- @GetMapping(value = "/list")
- public Result<IPage<DryOrderTrend>> queryPageList(DryOrderTrend dryOrderTrend,
- @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
- HttpServletRequest req) {
- //------------------------------------------------------------------------------------------------
- //鏄惁寮�鍚郴缁熺鐞嗘ā鍧楃殑澶氱鎴锋暟鎹殧绂汇�怱AAS澶氱鎴锋ā寮忋��
- if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){
- dryOrderTrend.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(),0));
- }
- //------------------------------------------------------------------------------------------------
- QueryWrapper<DryOrderTrend> queryWrapper = QueryGenerator.initQueryWrapper(dryOrderTrend, req.getParameterMap());
- Page<DryOrderTrend> page = new Page<DryOrderTrend>(pageNo, pageSize);
- IPage<DryOrderTrend> pageList = dryOrderTrendService.page(page, queryWrapper);
- return Result.OK(pageList);
- }
-
- /**
- * 娣诲姞
- *
- * @param dryOrderTrend
- * @return
- */
- @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-娣诲姞")
- @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-娣诲姞", notes="宸ュ崟杩囩▼瓒嬪娍-娣诲姞")
- @RequiresPermissions("dry:dry_order_trend:add")
- @PostMapping(value = "/add")
- public Result<String> add(@RequestBody DryOrderTrend dryOrderTrend) {
- dryOrderTrendService.save(dryOrderTrend);
- return Result.OK("娣诲姞鎴愬姛锛�");
- }
-
- /**
- * 缂栬緫
- *
- * @param dryOrderTrend
- * @return
- */
- @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-缂栬緫")
- @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-缂栬緫", notes="宸ュ崟杩囩▼瓒嬪娍-缂栬緫")
- @RequiresPermissions("dry:dry_order_trend:edit")
- @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
- public Result<String> edit(@RequestBody DryOrderTrend dryOrderTrend) {
- dryOrderTrendService.updateById(dryOrderTrend);
- return Result.OK("缂栬緫鎴愬姛!");
- }
-
- /**
- * 閫氳繃id鍒犻櫎
- *
- * @param id
- * @return
- */
- @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鍒犻櫎")
- @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鍒犻櫎", notes="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鍒犻櫎")
- @RequiresPermissions("dry:dry_order_trend:delete")
- @DeleteMapping(value = "/delete")
- public Result<String> delete(@RequestParam(name="id",required=true) String id) {
- dryOrderTrendService.removeById(id);
- return Result.OK("鍒犻櫎鎴愬姛!");
- }
-
- /**
- * 鎵归噺鍒犻櫎
- *
- * @param ids
- * @return
- */
- @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-鎵归噺鍒犻櫎")
- @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-鎵归噺鍒犻櫎", notes="宸ュ崟杩囩▼瓒嬪娍-鎵归噺鍒犻櫎")
- @RequiresPermissions("dry:dry_order_trend:deleteBatch")
- @DeleteMapping(value = "/deleteBatch")
- public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
- this.dryOrderTrendService.removeByIds(Arrays.asList(ids.split(",")));
- return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
- }
-
- /**
- * 閫氳繃id鏌ヨ
- *
- * @param id
- * @return
- */
- //@AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鏌ヨ")
- @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鏌ヨ", notes="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鏌ヨ")
- @GetMapping(value = "/queryById")
- public Result<DryOrderTrend> queryById(@RequestParam(name="id",required=true) String id) {
- DryOrderTrend dryOrderTrend = dryOrderTrendService.getById(id);
- if(dryOrderTrend ==null) {
- return Result.error("鏈壘鍒板搴旀暟鎹�");
- }
- return Result.OK(dryOrderTrend);
- }
-
- /**
- * 瀵煎嚭excel
- *
- * @param request
- * @param dryOrderTrend
- */
- @RequiresPermissions("dry:dry_order_trend:exportXls")
- @RequestMapping(value = "/exportXls")
- public ModelAndView exportXls(HttpServletRequest request, DryOrderTrend dryOrderTrend) {
- return super.exportXls(request, dryOrderTrend, DryOrderTrend.class, "宸ュ崟杩囩▼瓒嬪娍");
- }
-
- /**
- * 閫氳繃excel瀵煎叆鏁版嵁
- *
- * @param request
- * @param response
- * @return
- */
- @RequiresPermissions("dry:dry_order_trend:importExcel")
- @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
- public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
- return super.importExcel(request, response, DryOrderTrend.class);
- }
-
-}
+//package org.jeecg.modules.dry.controller;
+//
+//import java.util.Arrays;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import org.jeecg.common.api.vo.Result;
+//import org.jeecg.common.config.TenantContext;
+//import org.jeecg.common.system.query.QueryGenerator;
+//import org.jeecg.common.util.oConvertUtils;
+//import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
+//import org.jeecg.modules.dry.entity.DryOrderTrend;
+//import org.jeecg.modules.dry.service.IDryOrderTrendService;
+//
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import org.jeecg.common.system.base.controller.JeecgController;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.*;
+//import org.springframework.web.servlet.ModelAndView;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import org.jeecg.common.aspect.annotation.AutoLog;
+//import org.apache.shiro.authz.annotation.RequiresPermissions;
+//
+// /**
+// * @Description: 宸ュ崟杩囩▼瓒嬪娍
+// * @Author: jeecg-boot
+// * @Date: 2023-03-08
+// * @Version: V1.0
+// */
+//@Api(tags="宸ュ崟杩囩▼瓒嬪娍")
+//@RestController
+//@RequestMapping("/dry/dryOrderTrend")
+//@Slf4j
+//public class DryOrderTrendController extends JeecgController<DryOrderTrend, IDryOrderTrendService> {
+// @Autowired
+// private IDryOrderTrendService dryOrderTrendService;
+//
+// /**
+// * 鍒嗛〉鍒楄〃鏌ヨ
+// *
+// * @param dryOrderTrend
+// * @param pageNo
+// * @param pageSize
+// * @param req
+// * @return
+// */
+// //@AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-鍒嗛〉鍒楄〃鏌ヨ")
+// @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-鍒嗛〉鍒楄〃鏌ヨ", notes="宸ュ崟杩囩▼瓒嬪娍-鍒嗛〉鍒楄〃鏌ヨ")
+// @GetMapping(value = "/list")
+// public Result<IPage<DryOrderTrend>> queryPageList(DryOrderTrend dryOrderTrend,
+// @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+// @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+// HttpServletRequest req) {
+// //------------------------------------------------------------------------------------------------
+// //鏄惁寮�鍚郴缁熺鐞嗘ā鍧楃殑澶氱鎴锋暟鎹殧绂汇�怱AAS澶氱鎴锋ā寮忋��
+// if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){
+// dryOrderTrend.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(),0));
+// }
+// //------------------------------------------------------------------------------------------------
+// QueryWrapper<DryOrderTrend> queryWrapper = QueryGenerator.initQueryWrapper(dryOrderTrend, req.getParameterMap());
+// Page<DryOrderTrend> page = new Page<DryOrderTrend>(pageNo, pageSize);
+// IPage<DryOrderTrend> pageList = dryOrderTrendService.page(page, queryWrapper);
+// return Result.OK(pageList);
+// }
+//
+// /**
+// * 娣诲姞
+// *
+// * @param dryOrderTrend
+// * @return
+// */
+// @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-娣诲姞")
+// @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-娣诲姞", notes="宸ュ崟杩囩▼瓒嬪娍-娣诲姞")
+// @RequiresPermissions("dry:dry_order_trend:add")
+// @PostMapping(value = "/add")
+// public Result<String> add(@RequestBody DryOrderTrend dryOrderTrend) {
+// dryOrderTrendService.save(dryOrderTrend);
+// return Result.OK("娣诲姞鎴愬姛锛�");
+// }
+//
+// /**
+// * 缂栬緫
+// *
+// * @param dryOrderTrend
+// * @return
+// */
+// @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-缂栬緫")
+// @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-缂栬緫", notes="宸ュ崟杩囩▼瓒嬪娍-缂栬緫")
+// @RequiresPermissions("dry:dry_order_trend:edit")
+// @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+// public Result<String> edit(@RequestBody DryOrderTrend dryOrderTrend) {
+// dryOrderTrendService.updateById(dryOrderTrend);
+// return Result.OK("缂栬緫鎴愬姛!");
+// }
+//
+// /**
+// * 閫氳繃id鍒犻櫎
+// *
+// * @param id
+// * @return
+// */
+// @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鍒犻櫎")
+// @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鍒犻櫎", notes="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鍒犻櫎")
+// @RequiresPermissions("dry:dry_order_trend:delete")
+// @DeleteMapping(value = "/delete")
+// public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+// dryOrderTrendService.removeById(id);
+// return Result.OK("鍒犻櫎鎴愬姛!");
+// }
+//
+// /**
+// * 鎵归噺鍒犻櫎
+// *
+// * @param ids
+// * @return
+// */
+// @AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-鎵归噺鍒犻櫎")
+// @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-鎵归噺鍒犻櫎", notes="宸ュ崟杩囩▼瓒嬪娍-鎵归噺鍒犻櫎")
+// @RequiresPermissions("dry:dry_order_trend:deleteBatch")
+// @DeleteMapping(value = "/deleteBatch")
+// public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+// this.dryOrderTrendService.removeByIds(Arrays.asList(ids.split(",")));
+// return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+// }
+//
+// /**
+// * 閫氳繃id鏌ヨ
+// *
+// * @param id
+// * @return
+// */
+// //@AutoLog(value = "宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鏌ヨ")
+// @ApiOperation(value="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鏌ヨ", notes="宸ュ崟杩囩▼瓒嬪娍-閫氳繃id鏌ヨ")
+// @GetMapping(value = "/queryById")
+// public Result<DryOrderTrend> queryById(@RequestParam(name="id",required=true) String id) {
+// DryOrderTrend dryOrderTrend = dryOrderTrendService.getById(id);
+// if(dryOrderTrend ==null) {
+// return Result.error("鏈壘鍒板搴旀暟鎹�");
+// }
+// return Result.OK(dryOrderTrend);
+// }
+//
+// /**
+// * 瀵煎嚭excel
+// *
+// * @param request
+// * @param dryOrderTrend
+// */
+// @RequiresPermissions("dry:dry_order_trend:exportXls")
+// @RequestMapping(value = "/exportXls")
+// public ModelAndView exportXls(HttpServletRequest request, DryOrderTrend dryOrderTrend) {
+// return super.exportXls(request, dryOrderTrend, DryOrderTrend.class, "宸ュ崟杩囩▼瓒嬪娍");
+// }
+//
+// /**
+// * 閫氳繃excel瀵煎叆鏁版嵁
+// *
+// * @param request
+// * @param response
+// * @return
+// */
+// @RequiresPermissions("dry:dry_order_trend:importExcel")
+// @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+// public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+// return super.importExcel(request, response, DryOrderTrend.class);
+// }
+//
+//}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
new file mode 100644
index 0000000..b41f4a3
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -0,0 +1,47 @@
+package org.jeecg.modules.dry.controller;
+
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+
+import org.jeecg.modules.dry.service.*;
+
+import org.jeecg.modules.dry.vo.RealTimeDataVo;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+@Api(tags = "瀹炴椂鏁版嵁澶勭悊鎺у埗鍣�")
+@RestController
+@RequestMapping("/dry/real")
+@Slf4j
+public class DryRealTimeDataController {
+
+ @Autowired
+ private IDryRealTimeDataService dryRealTimeDataService;
+
+
+ @ApiOperation(value="娴嬭瘯", notes="杩斿洖Hello")
+ @GetMapping("/hello")
+ public Result<?> sayHello() {
+ return Result.ok("Hello");
+ }
+
+ @ApiOperation(value="鎺ユ敹瀹炴椂鏁版嵁Json", notes="璁惧瀹炴椂鏁版嵁涓婁紶")
+ @PostMapping("/sendRealTimeDataJson")
+ public Result<?> realTimeDataJson(@RequestBody RealTimeDataVo realTimeDataVo) {
+ return dryRealTimeDataService.realTimeDataHandle(realTimeDataVo);
+ }
+
+
+
+ @ApiOperation(value="鑾峰彇璁惧瀹炴椂鏁版嵁", notes="閫氳繃绉熸埛ID鍜岃澶囩紪鐮佽幏鍙栧疄鏃舵暟鎹�")
+ @GetMapping("/getRealTimeData")
+ public Result<?> queryMachineRealTimeData(RealTimeDataVo realTimeDataVo) {
+ return dryRealTimeDataService.queryMachineRealTImeData(realTimeDataVo);
+ }
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryResultController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryResultController.java
new file mode 100644
index 0000000..3c2c630
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryResultController.java
@@ -0,0 +1,178 @@
+package org.jeecg.modules.dry.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.dry.entity.DryResult;
+import org.jeecg.modules.dry.service.IDryResultService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+
+ /**
+ * @Description: 娴嬭瘯缁撴灉
+ * @Author: jeecg-boot
+ * @Date: 2023-03-19
+ * @Version: V1.0
+ */
+@Api(tags="娴嬭瘯缁撴灉")
+@RestController
+@RequestMapping("/dry/dryResult")
+@Slf4j
+public class DryResultController extends JeecgController<DryResult, IDryResultService> {
+ @Autowired
+ private IDryResultService dryResultService;
+
+ /**
+ * 鍒嗛〉鍒楄〃鏌ヨ
+ *
+ * @param dryResult
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ //@AutoLog(value = "娴嬭瘯缁撴灉-鍒嗛〉鍒楄〃鏌ヨ")
+ @ApiOperation(value="娴嬭瘯缁撴灉-鍒嗛〉鍒楄〃鏌ヨ", notes="娴嬭瘯缁撴灉-鍒嗛〉鍒楄〃鏌ヨ")
+ @GetMapping(value = "/list")
+ public Result<IPage<DryResult>> queryPageList(DryResult dryResult,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper<DryResult> queryWrapper = QueryGenerator.initQueryWrapper(dryResult, req.getParameterMap());
+ Page<DryResult> page = new Page<DryResult>(pageNo, pageSize);
+ IPage<DryResult> pageList = dryResultService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 娣诲姞
+ *
+ * @param dryResult
+ * @return
+ */
+ @AutoLog(value = "娴嬭瘯缁撴灉-娣诲姞")
+ @ApiOperation(value="娴嬭瘯缁撴灉-娣诲姞", notes="娴嬭瘯缁撴灉-娣诲姞")
+ @RequiresPermissions("dry:dry_result:add")
+ @PostMapping(value = "/add")
+ public Result<String> add(@RequestBody DryResult dryResult) {
+ dryResultService.save(dryResult);
+ return Result.OK("娣诲姞鎴愬姛锛�");
+ }
+
+ /**
+ * 缂栬緫
+ *
+ * @param dryResult
+ * @return
+ */
+ @AutoLog(value = "娴嬭瘯缁撴灉-缂栬緫")
+ @ApiOperation(value="娴嬭瘯缁撴灉-缂栬緫", notes="娴嬭瘯缁撴灉-缂栬緫")
+ @RequiresPermissions("dry:dry_result:edit")
+ @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+ public Result<String> edit(@RequestBody DryResult dryResult) {
+ dryResultService.updateById(dryResult);
+ return Result.OK("缂栬緫鎴愬姛!");
+ }
+
+ /**
+ * 閫氳繃id鍒犻櫎
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "娴嬭瘯缁撴灉-閫氳繃id鍒犻櫎")
+ @ApiOperation(value="娴嬭瘯缁撴灉-閫氳繃id鍒犻櫎", notes="娴嬭瘯缁撴灉-閫氳繃id鍒犻櫎")
+ @RequiresPermissions("dry:dry_result:delete")
+ @DeleteMapping(value = "/delete")
+ public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+ dryResultService.removeById(id);
+ return Result.OK("鍒犻櫎鎴愬姛!");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "娴嬭瘯缁撴灉-鎵归噺鍒犻櫎")
+ @ApiOperation(value="娴嬭瘯缁撴灉-鎵归噺鍒犻櫎", notes="娴嬭瘯缁撴灉-鎵归噺鍒犻櫎")
+ @RequiresPermissions("dry:dry_result:deleteBatch")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.dryResultService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("鎵归噺鍒犻櫎鎴愬姛!");
+ }
+
+ /**
+ * 閫氳繃id鏌ヨ
+ *
+ * @param id
+ * @return
+ */
+ //@AutoLog(value = "娴嬭瘯缁撴灉-閫氳繃id鏌ヨ")
+ @ApiOperation(value="娴嬭瘯缁撴灉-閫氳繃id鏌ヨ", notes="娴嬭瘯缁撴灉-閫氳繃id鏌ヨ")
+ @GetMapping(value = "/queryById")
+ public Result<DryResult> queryById(@RequestParam(name="id",required=true) String id) {
+ DryResult dryResult = dryResultService.getById(id);
+ if(dryResult==null) {
+ return Result.error("鏈壘鍒板搴旀暟鎹�");
+ }
+ return Result.OK(dryResult);
+ }
+
+ /**
+ * 瀵煎嚭excel
+ *
+ * @param request
+ * @param dryResult
+ */
+ @RequiresPermissions("dry:dry_result:exportXls")
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, DryResult dryResult) {
+ return super.exportXls(request, dryResult, DryResult.class, "娴嬭瘯缁撴灉");
+ }
+
+ /**
+ * 閫氳繃excel瀵煎叆鏁版嵁
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequiresPermissions("dry:dry_result:importExcel")
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, DryResult.class);
+ }
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java
index 885e7fc..5edd90c 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryOrderMapper.java
@@ -1,7 +1,10 @@
package org.jeecg.modules.dry.mapper;
+import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.dry.entity.DryOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
/**
* @Description: 骞茬嚗宸ュ崟
@@ -11,4 +14,5 @@
*/
public interface DryOrderMapper extends BaseMapper<DryOrder> {
+ List<String> queryMonthOverview(@Param("month") String month, @Param("tenantId") int tenantId);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryResultMapper.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryResultMapper.java
new file mode 100644
index 0000000..f888e7a
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/DryResultMapper.java
@@ -0,0 +1,17 @@
+package org.jeecg.modules.dry.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.dry.entity.DryResult;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 娴嬭瘯缁撴灉
+ * @Author: jeecg-boot
+ * @Date: 2023-03-19
+ * @Version: V1.0
+ */
+public interface DryResultMapper extends BaseMapper<DryResult> {
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml
index 31344b3..ce47adb 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryOrderMapper.xml
@@ -2,4 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.dry.mapper.DryOrderMapper">
+ <select id="queryMonthOverview" resultType="java.lang.String">
+ select DATE_FORMAT(order_time, '%Y-%m-%d') as orderTime
+ from dry_order where 1=1 and DATE_FORMAT(order_time, '%Y-%m') = #{month}
+ and tenant_id = #{tenantId} group by orderTime order by orderTime desc
+
+ </select>
</mapper>
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryResultMapper.xml b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryResultMapper.xml
new file mode 100644
index 0000000..b0dac7f
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/mapper/xml/DryResultMapper.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="org.jeecg.modules.dry.mapper.DryResultMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
index 0fd2b33..6fc915a 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderService.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.dry.vo.DryOrderVo;
+import java.util.List;
+
/**
* @Description: 骞茬嚗宸ュ崟
* @Author: jeecg-boot
@@ -15,4 +17,6 @@
public interface IDryOrderService extends IService<DryOrder> {
void saveRealTimeData(DryOrderVo orderVo);
+
+ List<String> queryMonthOverview(String month, int tenantId);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderTrendService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderTrendService.java
index 9aa9060..951dd12 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderTrendService.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryOrderTrendService.java
@@ -2,6 +2,9 @@
import org.jeecg.modules.dry.entity.DryOrderTrend;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.dry.vo.DryOrderTrendVo;
+
+import java.util.List;
/**
* @Description: 宸ュ崟杩囩▼瓒嬪娍
@@ -11,4 +14,5 @@
*/
public interface IDryOrderTrendService extends IService<DryOrderTrend> {
+ List<DryOrderTrendVo> listByOrderId(String id);
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
new file mode 100644
index 0000000..7e3844c
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryRealTimeDataService.java
@@ -0,0 +1,10 @@
+package org.jeecg.modules.dry.service;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.dry.vo.RealTimeDataVo;
+
+public interface IDryRealTimeDataService {
+ Result<?> realTimeDataHandle(RealTimeDataVo realTimeDataVo);
+
+ Result<?> queryMachineRealTImeData(RealTimeDataVo realTimeDataVo);
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryResultService.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryResultService.java
new file mode 100644
index 0000000..f1e562d
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/IDryResultService.java
@@ -0,0 +1,14 @@
+package org.jeecg.modules.dry.service;
+
+import org.jeecg.modules.dry.entity.DryResult;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 娴嬭瘯缁撴灉
+ * @Author: jeecg-boot
+ * @Date: 2023-03-19
+ * @Version: V1.0
+ */
+public interface IDryResultService extends IService<DryResult> {
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
index 96854fa..d2badb2 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderServiceImpl.java
@@ -9,6 +9,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+
/**
* @Description: 骞茬嚗宸ュ崟
* @Author: jeecg-boot
@@ -23,4 +25,10 @@
public void saveRealTimeData(DryOrderVo orderVo) {
log.info("淇濆瓨瀹炴椂鏁版嵁锛�" + orderVo.toString());
}
+
+
+ @Override
+ public List<String> queryMonthOverview(String month, int tenantId) {
+ return baseMapper.queryMonthOverview(month, tenantId);
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderTrendServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderTrendServiceImpl.java
index ac2997f..9230b20 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderTrendServiceImpl.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryOrderTrendServiceImpl.java
@@ -1,11 +1,17 @@
package org.jeecg.modules.dry.service.impl;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.jeecg.modules.dry.entity.DryOrderTrend;
import org.jeecg.modules.dry.mapper.DryOrderTrendMapper;
import org.jeecg.modules.dry.service.IDryOrderTrendService;
+import org.jeecg.modules.dry.vo.DryOrderTrendVo;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* @Description: 宸ュ崟杩囩▼瓒嬪娍
@@ -16,4 +22,16 @@
@Service
public class DryOrderTrendServiceImpl extends ServiceImpl<DryOrderTrendMapper, DryOrderTrend> implements IDryOrderTrendService {
+ @Override
+ public List<DryOrderTrendVo> listByOrderId(String id) {
+ LambdaQueryWrapper<DryOrderTrend> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(DryOrderTrend::getOrderId, id);
+ queryWrapper.orderByDesc(DryOrderTrend::getWeight);
+ List<DryOrderTrend> dryOrderTrends = baseMapper.selectList(queryWrapper);
+ List<DryOrderTrendVo> vos = new ArrayList<>();
+ dryOrderTrends.stream().forEach(item -> {
+ vos.add(BeanUtil.toBean(item, DryOrderTrendVo.class));
+ });
+ return vos;
+ }
}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
new file mode 100644
index 0000000..9fcd610
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryRealTimeDataServiceImpl.java
@@ -0,0 +1,214 @@
+package org.jeecg.modules.dry.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.config.TenantContext;
+import org.jeecg.common.util.RedisUtil;
+import org.jeecg.modules.dry.common.CacheConstants;
+import org.jeecg.modules.dry.entity.DryEquipment;
+import org.jeecg.modules.dry.entity.DryHerb;
+import org.jeecg.modules.dry.entity.DryOrder;
+import org.jeecg.modules.dry.entity.DryOrderTrend;
+import org.jeecg.modules.dry.service.*;
+import org.jeecg.modules.dry.vo.DryOrderTrendVo;
+import org.jeecg.modules.dry.vo.DryOrderVo;
+import org.jeecg.modules.dry.vo.RealTimeDataVo;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+@Slf4j
+@Service
+public class DryRealTimeDataServiceImpl implements IDryRealTimeDataService {
+ @Autowired
+ private IDryOrderService dryOrderService;
+ @Autowired
+ private IDryOrderTrendService dryOrderTrendService;
+
+ @Autowired
+ private IDryHerbService herbService;
+
+ @Autowired
+ private IDryEquipmentService equipmentService;
+
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Override
+ @Transactional
+ public Result<?> realTimeDataHandle(RealTimeDataVo realTimeDataVo) {
+ TenantContext.setTenant(realTimeDataVo.getTenantid()+"");
+ log.info("瀹炴椂鏁版嵁锛�"+realTimeDataVo.toString());
+
+ // 1 鏌ヨ鎴栧垱寤哄伐鍗�
+ // 1.1 浠巖edis鍙栧嚭宸ュ崟缂撳瓨
+ DryOrderVo orderVo = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(),
+ realTimeDataVo.getTenantid()+"_"+realTimeDataVo.getMachineid());
+ // 1.2 濡傛灉鏈夌紦瀛樿褰�
+ if(orderVo != null && orderVo.getCode().equals(realTimeDataVo.getWorkorder())) {
+
+ // 1.3 娌℃湁缂撳瓨璁板綍鍐嶆煡璇㈡暟鎹簱
+ } else {
+ // 鏍规嵁绉熸埛id鍜屽伐鍗曞彿鏌ヨ鏁版嵁搴撴槸鍚︽湁璁板綍锛屾湁鍒欒繑鍥烇紝娌℃湁鍒欐柊澧炰竴鏉″啀杩斿洖
+ orderVo = getOrSaveDryOrderVoDB(realTimeDataVo);
+ }
+
+ // 2 鏇存柊宸ュ崟瀹炴椂鏁版嵁
+ // 2.1 灏嗗伐鍗曚腑鐨勬暟鎹浛鎹负鏈�鏂版暟鎹�
+ realTimeDataVo.setOrderId(orderVo.getId());
+ orderVo.setInitial(realTimeDataVo.getMoisture1());
+ orderVo.setDryTime(realTimeDataVo.getTime3());
+ orderVo.setDelay(realTimeDataVo.getDelay());
+ orderVo.setTurn(realTimeDataVo.getTurntime());
+ orderVo.setYield(realTimeDataVo.getWeight3());
+ orderVo.setStart(realTimeDataVo.getStart());
+ orderVo.setAuto(realTimeDataVo.getAuto());
+ orderVo.setPlcdisable(realTimeDataVo.getPlcdisable());
+ orderVo.setLowalarm(realTimeDataVo.getLowalarm());
+ orderVo.setWind(realTimeDataVo.getWind());
+ DryOrderTrendVo trendVo = new DryOrderTrendVo(realTimeDataVo);
+ // 2.2 淇濆瓨宸ュ崟鍚按鐜囧彉鍖� 鎴� 閲嶉噺鍙樺寲
+ saveOrderTrendVo(trendVo, orderVo);
+ orderVo.setTrendVo(trendVo);
+ orderVo.getBellowsTemp().put(realTimeDataVo.getTime3(), realTimeDataVo.getTemp2());
+ // 2.3 鏇存柊鍒皉edis缂撳瓨
+ redisUtil.hset(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(),
+ realTimeDataVo.getTenantid()+"_"+realTimeDataVo.getMachineid(),orderVo, 600000);
+ return Result.ok();
+ }
+
+ /**
+ * 鏍规嵁绉熸埛id鍜屽伐鍗曞彿鏌ヨ鏁版嵁搴撴槸鍚︽湁璁板綍锛屾湁鍒欒繑鍥烇紝娌℃湁鍒欐柊澧炰竴鏉�
+ * @param realTimeDataVo
+ * @return
+ */
+ private DryOrderVo getOrSaveDryOrderVoDB(RealTimeDataVo realTimeDataVo) {
+ DryOrderVo orderVo;
+ LambdaQueryWrapper<DryOrder> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(DryOrder::getCode, realTimeDataVo.getWorkorder());
+ queryWrapper.eq(DryOrder::getTenantId, realTimeDataVo.getTenantid());
+ // 1 鏌ヨ鏁版嵁搴�
+ DryOrder one = dryOrderService.getOne(queryWrapper);
+ // 2 鏁版嵁搴撴湁璁板綍锛屾洿鏂板埌缂撳瓨
+ if (one != null) {
+ // 杞崲涓虹紦瀛樻暟鎹粨鏋�
+ orderVo = BeanUtil.toBean(one, DryOrderVo.class);
+ if (one.getTemps() != null) {
+ Map map = JSONObject.parseObject(one.getTemps(), new TypeReference<Map<Integer,Double>>(){});
+ orderVo.setBellowsTemp(map);
+ }
+ // 鏌ヨ绉伴噸璁板綍锛屾坊鍔犲埌缂撳瓨鏁版嵁缁撴瀯
+ List<DryOrderTrendVo> trendVos = dryOrderTrendService.listByOrderId(one.getId());
+ if (trendVos != null && trendVos.size() > 0) {
+ DryOrderTrendVo oldVo = trendVos.get(trendVos.size() - 1);
+ orderVo.setTrendVo(oldVo);
+ orderVo.setDetailList(trendVos);
+ }
+ // 3 鏁版嵁搴撴病鏈夊垯鏂板涓�鏉℃暟鎹�
+ } else {
+ orderVo = saveNewOrder(realTimeDataVo);
+ }
+ return orderVo;
+ }
+
+ /**
+ * 淇濆瓨鏂板伐鍗�
+ * @param realTimeDataVo
+ * @return
+ */
+ @NotNull
+ private DryOrderVo saveNewOrder(RealTimeDataVo realTimeDataVo) {
+ DryOrderVo orderVo;
+ // 鏌ヨ鑽潗
+ DryHerb herb = queryHerbByIndexTenant(realTimeDataVo);
+ // 鏌ヨ璁惧
+ DryEquipment equ = queryEquipmentByCodeTenant(realTimeDataVo);
+
+ // 鍒涘缓鏂板伐鍗�
+ orderVo = new DryOrderVo(realTimeDataVo);
+ orderVo.setHerbId(herb.getId());
+ orderVo.setEquId(equ.getId());
+ DryOrder dryOrder = BeanUtil.toBean(orderVo, DryOrder.class);
+ boolean save = dryOrderService.save(dryOrder);
+ return orderVo;
+ }
+
+
+ /**
+ * 鏌ヨ璁惧锛屾柊璁惧鍒欐坊鍔犲埌璁惧涓绘暟鎹�
+ * @param realTimeDataVo
+ * @return
+ */
+ private DryEquipment queryEquipmentByCodeTenant(RealTimeDataVo realTimeDataVo) {
+ LambdaQueryWrapper<DryEquipment> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(DryEquipment::getTenantId, realTimeDataVo.getTenantid());
+ queryWrapper.eq(DryEquipment::getCode, realTimeDataVo.getMachineid());
+ DryEquipment one = equipmentService.getOne(queryWrapper);
+ if (one == null) {
+ one = new DryEquipment(realTimeDataVo);
+ equipmentService.save(one);
+ }
+ return one;
+ }
+
+ /**
+ * 鏌ヨ鑽潗锛屾柊鑽潗娣诲姞鍒版暟鎹簱
+ * @param realTimeDataVo
+ * @return
+ */
+ private DryHerb queryHerbByIndexTenant(RealTimeDataVo realTimeDataVo) {
+ LambdaQueryWrapper<DryHerb> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(DryHerb::getTenantId, realTimeDataVo.getTenantid());
+ queryWrapper.eq(DryHerb::getCode, realTimeDataVo.getIndex());
+ DryHerb one = herbService.getOne(queryWrapper);
+ if (one == null) {
+ one = new DryHerb(realTimeDataVo);
+ herbService.save(one);
+ }
+ return one;
+ }
+
+ /**
+ * 淇濆瓨鍚按鐜囧彉鍖栬褰�
+ * @param trendVo
+ * @param orderVo
+ */
+ private void saveOrderTrendVo(DryOrderTrendVo trendVo, DryOrderVo orderVo) {
+ //鍒ゆ柇 瀹炴椂鍚按鐜� 鎴� 瀹炴椂閲嶉噺鏈夋病鏈夊彉鍖栵紝鏈夊彉鍖栧垯鏇存柊
+ if(orderVo.getTrendVo() == null
+ || trendVo.getWeight() < orderVo.getTrendVo().getWeight()
+ ) {
+ DryOrder byId = dryOrderService.getById(orderVo.getId());
+ // 灏嗘渶鏂扮粨鏋滄洿鏂板埌宸ュ崟
+ if (byId != null) {
+ BeanUtil.copyProperties(orderVo, byId);
+ byId.setTemps(JSONObject.toJSONString(orderVo.getBellowsTemp()));
+ dryOrderService.updateById(byId);
+ }
+ // 淇濆瓨鍚按鐜囧彉鍖�
+ orderVo.getDetailList().add(trendVo);
+ DryOrderTrend dryOrderTrend = BeanUtil.toBean(trendVo, DryOrderTrend.class);
+ dryOrderTrendService.save(dryOrderTrend);
+ }
+ }
+
+
+ /**
+ * 鏌ヨ鏈哄彴瀹炴椂鏁版嵁
+ * @param realTimeDataVo
+ * @return
+ */
+ @Override
+ public Result<?> queryMachineRealTImeData(RealTimeDataVo realTimeDataVo) {
+ TenantContext.setTenant(realTimeDataVo.getTenantid()+"");
+ DryOrderVo orderVo = (DryOrderVo) redisUtil.hget(CacheConstants.RedisKeyEnum.WORK_ORDER.getCode(), realTimeDataVo.getTenantid()+"_"+realTimeDataVo.getMachineid());
+ return Result.ok(orderVo);
+ }
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryResultServiceImpl.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryResultServiceImpl.java
new file mode 100644
index 0000000..881c8c5
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/service/impl/DryResultServiceImpl.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.dry.service.impl;
+
+import org.jeecg.modules.dry.entity.DryResult;
+import org.jeecg.modules.dry.mapper.DryResultMapper;
+import org.jeecg.modules.dry.service.IDryResultService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 娴嬭瘯缁撴灉
+ * @Author: jeecg-boot
+ * @Date: 2023-03-19
+ * @Version: V1.0
+ */
+@Service
+public class DryResultServiceImpl extends ServiceImpl<DryResultMapper, DryResult> implements IDryResultService {
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/websocket/DrySocket.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/websocket/DrySocket.java
new file mode 100644
index 0000000..6103217
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/websocket/DrySocket.java
@@ -0,0 +1,214 @@
+package org.jeecg.modules.dry.websocket;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.constant.DrySocketConst;
+import org.jeecg.common.util.SpringContextUtils;
+import org.jeecg.modules.dry.service.IDryRealTimeDataService;
+import org.jeecg.modules.dry.vo.RealTimeDataVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.OnClose;
+import javax.websocket.OnMessage;
+import javax.websocket.OnOpen;
+import javax.websocket.Session;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Component
+@ServerEndpoint("/drySocket/{tenantId}/{machineId}")
+public class DrySocket {
+
+ /**
+ * 褰撳墠 session
+ */
+ private Session session;
+ /**
+ * 褰撳墠绉熸埛id
+ */
+ private String tenantId;
+ /**
+ * 璁惧id锛岀敤浜庢爣璇嗗悓涓�绉熸埛锛屼笉鍚岃澶囩殑鏁版嵁
+ */
+ private String machineId;
+ /**
+ * 褰撳墠socket鍞竴id
+ */
+ private String socketId;
+
+ /**
+ * 绉熸埛杩炴帴姹狅紝鍖呭惈鍗曚釜绉熸埛鐨勬墍鏈塻ocket杩炴帴锛�
+ * 鍥犱负涓�涓鎴峰彲鑳芥墦寮�澶氫釜璁惧锛屽涓澶囧氨浼氭湁澶氫釜杩炴帴锛�
+ * key鏄痶enantId锛寁alue鏄疢ap瀵硅薄锛涘瓙Map鐨刱ey鏄痬achineId锛寁alue鏄痙rySocket瀵硅薄
+ */
+ private static Map<String, Map<String, DrySocket>> tenantPool = new HashMap<>();
+ /**
+ * 杩炴帴姹狅紝鍖呭惈鎵�鏈塛ebSocket杩炴帴锛�
+ * key鏄痵ocketId锛寁alue鏄痙rySocket瀵硅薄
+ */
+ private static Map<String, DrySocket> machinePool = new HashMap<>();
+
+ /**
+ * 鑾峰彇鏌愪釜绉熸埛鎵�鏈夌殑璁惧
+ */
+ public static Map<String, DrySocket> getTenantPool(String tenantId) {
+ return tenantPool.computeIfAbsent(tenantId, k -> new HashMap<>(5));
+ }
+
+ /**
+ * 鍚戝綋鍓嶇鎴峰彂閫佹秷鎭�
+ *
+ * @param message 娑堟伅鍐呭
+ */
+ public void sendMessage(String message) {
+ try {
+ this.session.getAsyncRemote().sendText(message);
+ } catch (Exception e) {
+ log.error("銆恉rySocket銆戞秷鎭彂閫佸け璐ワ細" + e.getMessage());
+ }
+ }
+
+ /**
+ * 灏佽娑堟伅json
+ *
+ * @param data 娑堟伅鍐呭
+ */
+ public static String packageMessage(String type, Object data) {
+ JSONObject message = new JSONObject();
+ message.put(DrySocketConst.TYPE, type);
+ message.put(DrySocketConst.DATA, data);
+ return message.toJSONString();
+ }
+
+ /**
+ * 鍚戞寚瀹氱鎴风殑鎵�鏈夎澶囧彂閫佹秷鎭�
+ *
+ * @param tenantId 鎺ユ敹娑堟伅鐨勭鎴稩D
+ * @param message 娑堟伅鍐呭
+ */
+ public static void sendMessageTo(String tenantId, String message) {
+ Collection<DrySocket> values = getTenantPool(tenantId).values();
+ if (values.size() > 0) {
+ for (DrySocket socketItem : values) {
+ socketItem.sendMessage(message);
+ }
+ } else {
+ log.warn("銆恉rySocket銆戞秷鎭彂閫佸け璐ワ細tenantId\"" + tenantId + "\"涓嶅瓨鍦ㄦ垨鏈湪绾匡紒");
+ }
+ }
+
+ /**
+ * 鍚戞寚瀹氱鎴风殑鎸囧畾璁惧鍙戦�佹秷鎭�
+ *
+ * @param tenantId 鎺ユ敹娑堟伅鐨勭鎴稩D
+ * @param message 娑堟伅鍐呭
+ */
+ public static void sendMessageTo(String tenantId, String machineId, String message) {
+ DrySocket socketItem = getTenantPool(tenantId).get(machineId);
+ if (socketItem != null) {
+ socketItem.sendMessage(message);
+ } else {
+ log.warn("銆恉rySocket銆戞秷鎭彂閫佸け璐ワ細tenantId\"" + tenantId + "\"鐨刴achineId\"" + machineId + "\"涓嶅瓨鍦ㄦ垨鏈湪绾匡紒");
+ }
+ }
+
+ /**
+ * 鍚戝涓鎴风殑鎵�鏈夎澶囧彂閫佹秷鎭�
+ *
+ * @param tenantIds 鎺ユ敹娑堟伅鐨勭鎴稩D鏁扮粍
+ * @param message 娑堟伅鍐呭
+ */
+ public static void sendMessageTo(String[] tenantIds, String message) {
+ for (String tenantId : tenantIds) {
+ DrySocket.sendMessageTo(tenantId, message);
+ }
+ }
+
+ /**
+ * 鍚戞墍鏈夌鎴风殑鎵�鏈夎澶囧彂閫佹秷鎭�
+ *
+ * @param message 娑堟伅鍐呭
+ */
+ public static void sendMessageToAll(String message) {
+ for (DrySocket socketItem : machinePool.values()) {
+ socketItem.sendMessage(message);
+ }
+ }
+
+ /**
+ * websocket 寮�鍚繛鎺�
+ */
+ @OnOpen
+ public void onOpen(Session session, @PathParam("tenantId") String tenantId, @PathParam("machineId") String machineId) {
+ try {
+ this.tenantId = tenantId;
+ this.machineId = machineId;
+ this.socketId = tenantId + machineId;
+ this.session = session;
+
+ machinePool.put(this.socketId, this);
+ getTenantPool(tenantId).put(this.machineId, this);
+
+ log.info("銆恉rySocket銆戞湁鏂扮殑杩炴帴锛屾�绘暟涓�:" + machinePool.size());
+ } catch (Exception ignored) {
+ }
+ }
+
+ /**
+ * websocket 鏂紑杩炴帴
+ */
+ @OnClose
+ public void onClose() {
+ try {
+ machinePool.remove(this.socketId);
+ getTenantPool(this.tenantId).remove(this.machineId);
+
+ log.info("銆恉rySocket銆戣繛鎺ユ柇寮�锛屾�绘暟涓�:" + machinePool.size());
+ } catch (Exception ignored) {
+ }
+ }
+
+ /**
+ * websocket 鏀跺埌娑堟伅
+ */
+ @OnMessage
+ public void onMessage(String message) {
+ log.info("銆恉rySocket銆憃nMessage:" + message);
+ IDryRealTimeDataService realTimeDataService = SpringContextUtils.getBean(IDryRealTimeDataService.class);
+ JSONObject json;
+ try {
+ json = JSON.parseObject(message);
+ } catch (Exception e) {
+ log.warn("銆恉rySocket銆戞敹鍒颁笉鍚堟硶鐨勬秷鎭�:" + message);
+ return;
+ }
+ String type = json.getString(DrySocketConst.TYPE);
+ switch (type) {
+ // 蹇冭烦妫�娴�
+ case DrySocketConst.TYPE_HB:
+ this.sendMessage(DrySocket.packageMessage(type, true));
+ break;
+ // 瀹炴椂鏁版嵁澶勭悊
+ case DrySocketConst.TYPE_RDT:
+ Object o = json.get(DrySocketConst.DATA);
+ RealTimeDataVo realTimeDataVo = BeanUtil.toBean(o, RealTimeDataVo.class);
+ realTimeDataService.realTimeDataHandle(realTimeDataVo);
+ break;
+
+ default:
+ log.warn("銆恉rySocket銆戞敹鍒颁笉璇嗗埆鐨勬秷鎭被鍨�:" + type);
+ break;
+ }
+
+
+ }
+
+
+}
diff --git a/jeecg-module-dry/jeecg-module-dry-start/src/main/resources/logback-spring.xml b/jeecg-module-dry/jeecg-module-dry-start/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..6c0fd36
--- /dev/null
+++ b/jeecg-module-dry/jeecg-module-dry-start/src/main/resources/logback-spring.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+ <!--瀹氫箟鏃ュ織鏂囦欢鐨勫瓨鍌ㄥ湴鍧� -->
+ <property name="LOG_HOME" value="../logs" />
+
+ <!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
+ <!-- 鎺у埗鍙拌緭鍑� -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>-->
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <!-- 鎸夌収姣忓ぉ鐢熸垚鏃ュ織鏂囦欢 -->
+ <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--鏃ュ織鏂囦欢杈撳嚭鐨勬枃浠跺悕 -->
+ <FileNamePattern>${LOG_HOME}/herb-dry-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+ <!--鏃ュ織鏂囦欢淇濈暀澶╂暟 -->
+ <MaxHistory>30</MaxHistory>
+ <maxFileSize>10MB</maxFileSize>
+ </rollingPolicy>
+ <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+ <!--鏍煎紡鍖栬緭鍑猴細%d琛ㄧず鏃ユ湡锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒粠宸︽樉绀�5涓瓧绗﹀搴�%msg锛氭棩蹇楁秷鎭紝%n鏄崲琛岀 -->
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <!-- 鐢熸垚 error html鏍煎紡鏃ュ織寮�濮� -->
+ <appender name="HTML" class="ch.qos.logback.core.FileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <!--璁剧疆鏃ュ織绾у埆,杩囨护鎺塱nfo鏃ュ織,鍙緭鍏rror鏃ュ織-->
+ <level>ERROR</level>
+ </filter>
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+ <layout class="ch.qos.logback.classic.html.HTMLLayout">
+ <pattern>%p%d%msg%M%F{32}%L</pattern>
+ </layout>
+ </encoder>
+ <file>${LOG_HOME}/error-log.html</file>
+ </appender>
+ <!-- 鐢熸垚 error html鏍煎紡鏃ュ織缁撴潫 -->
+
+ <!-- 姣忓ぉ鐢熸垚涓�涓猦tml鏍煎紡鐨勬棩蹇楀紑濮� -->
+ <appender name="FILE_HTML" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--鏃ュ織鏂囦欢杈撳嚭鐨勬枃浠跺悕 -->
+ <FileNamePattern>${LOG_HOME}/herb-dry-%d{yyyy-MM-dd}.%i.html</FileNamePattern>
+ <!--鏃ュ織鏂囦欢淇濈暀澶╂暟 -->
+ <MaxHistory>30</MaxHistory>
+ <MaxFileSize>10MB</MaxFileSize>
+ </rollingPolicy>
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+ <layout class="ch.qos.logback.classic.html.HTMLLayout">
+ <pattern>%p%d%msg%M%F{32}%L</pattern>
+ </layout>
+ </encoder>
+ </appender>
+ <!-- 姣忓ぉ鐢熸垚涓�涓猦tml鏍煎紡鐨勬棩蹇楃粨鏉� -->
+
+ <!--myibatis log configure -->
+ <logger name="com.apache.ibatis" level="TRACE" />
+ <logger name="java.sql.Connection" level="DEBUG" />
+ <logger name="java.sql.Statement" level="DEBUG" />
+ <logger name="java.sql.PreparedStatement" level="DEBUG" />
+
+ <!-- 鏃ュ織杈撳嚭绾у埆 -->
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="FILE" />
+ <appender-ref ref="HTML" />
+ <appender-ref ref="FILE_HTML" />
+ </root>
+
+</configuration>
--
Gitblit v1.9.3