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