From 23e2ee1e769f9ac67c8f840d937955d1c2b2bb09 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Thu, 13 Feb 2025 14:43:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B1=E4=BA=AB=E9=A9=BF=E7=AB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bonus-modules/bonus-shared-station/pom.xml | 213 ++++++++++++++++++ .../BonusSharedStationApplication.java | 37 +++ .../common/utils/BaseTreeNode.java | 43 ++++ .../src/main/resources/banner.txt | 10 + .../bootstrap-smart_canteen_local.yml | 45 ++++ .../src/main/resources/bootstrap.yml | 84 +++++++ .../src/main/resources/logback.xml | 74 ++++++ .../src/main/resources/template/template.xlsx | Bin 0 -> 10822 bytes bonus-modules/pom.xml | 2 + 9 files changed, 508 insertions(+) create mode 100644 bonus-modules/bonus-shared-station/pom.xml create mode 100644 bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java create mode 100644 bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java create mode 100644 bonus-modules/bonus-shared-station/src/main/resources/banner.txt create mode 100644 bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml create mode 100644 bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml create mode 100644 bonus-modules/bonus-shared-station/src/main/resources/logback.xml create mode 100644 bonus-modules/bonus-shared-station/src/main/resources/template/template.xlsx diff --git a/bonus-modules/bonus-shared-station/pom.xml b/bonus-modules/bonus-shared-station/pom.xml new file mode 100644 index 00000000..9768fb51 --- /dev/null +++ b/bonus-modules/bonus-shared-station/pom.xml @@ -0,0 +1,213 @@ + + + + com.bonus + bonus-modules + 24.12.0-SNAPSHOT + + 4.0.0 + + bonus-shared-station + + + bonus-modules-shared-station 共享驿站 + + + + + com.baomidou + mybatis-plus-boot-starter + 3.5.1 + + + + com.github.ulisesbocchio + jasypt-spring-boot-starter + ${jasypt-spring-boot-starter.version} + + + org.springframework + spring-test + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.bonus + bonus-common-datasource + + + + + com.bonus + bonus-common-datascope + + + + + com.bonus + bonus-common-log + + + + + com.bonus + bonus-common-swagger + + + com.google.guava + guava + 30.0-jre + compile + + + + org.springframework.boot + spring-boot-starter-mail + + + com.bonus + bonus-common-biz + 24.12.0-SNAPSHOT + compile + + + junit + junit + test + + + + + + org.apache.poi + poi-ooxml + 5.2.3 + + + + com.alipay.sdk + alipay-sdk-java + 4.34.0.ALL + + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + pom + import + + + + com.alibaba + easyexcel + 3.0.5 + + + cn.hutool + hutool-all + 5.8.11 + + + cn.hutool + hutool-all + 5.8.23 + compile + + + + org.redisson + redisson + 3.44.0 + + + + + org.apache.rocketmq + rocketmq-spring-boot-starter + 2.3.1 + + + + org.springframework.amqp + spring-amqp + 2.4.8 + + + org.springframework.amqp + spring-rabbit + 2.4.8 + + + + org.eclipse.paho + org.eclipse.paho.mqttv5.client + 1.2.5 + + + + com.xuxueli + xxl-job-core + 2.4.0 + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + 2.4.2 + + + + repackage + + + + + + + + diff --git a/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java new file mode 100644 index 00000000..eeaa1397 --- /dev/null +++ b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/BonusSharedStationApplication.java @@ -0,0 +1,37 @@ +package com.bonus.core; + +import com.bonus.common.security.annotation.EnableCustomConfig; +import com.bonus.common.security.annotation.EnableRyFeignClients; +import com.bonus.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * 系统模块 + * + * @author bonus + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableScheduling +@EnableRyFeignClients +@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) +public class BonusSharedStationApplication +{ + public static void main(String[] args) + { + SpringApplication.run(BonusSharedStationApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 2025博诺思共享驿站启动成功 ლ(´ڡ`ლ)゙ \n" + + " .-------. ____ __ \n" + + " | _ _ \\ \\ \\ / / \n" + + " | ( ' ) | \\ _. / ' \n" + + " |(_ o _) / _( )_ .' \n" + + " | (_,_).' __ ___(_ o _)' \n" + + " | |\\ \\ | || |(_,_)' \n" + + " | | \\ `' /| `-' / \n" + + " | | \\ / \\ / \n" + + " ''-' `'-' `-..-' "); + } +} diff --git a/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java new file mode 100644 index 00000000..cb7b1d0a --- /dev/null +++ b/bonus-modules/bonus-shared-station/src/main/java/com/bonus/sharedstation/common/utils/BaseTreeNode.java @@ -0,0 +1,43 @@ +package com.bonus.core.common.utils; + +import java.util.ArrayList; +import java.util.List; + +public class BaseTreeNode { + private Long id; + private Long parentId; + private List children; + + public void addChild(BaseTreeNode baseTreeNode) { + if (this.children == null) { + this.setChildren(new ArrayList()); + } + + this.getChildren().add(baseTreeNode); + } + + public Long getId() { + return this.id; + } + + public Long getParentId() { + return this.parentId; + } + + public List getChildren() { + return this.children; + } + + public void setId(final Long id) { + this.id = id; + } + + public void setParentId(final Long parentId) { + this.parentId = parentId; + } + + public void setChildren(final List children) { + this.children = children; + } + +} diff --git a/bonus-modules/bonus-shared-station/src/main/resources/banner.txt b/bonus-modules/bonus-shared-station/src/main/resources/banner.txt new file mode 100644 index 00000000..fbd45f53 --- /dev/null +++ b/bonus-modules/bonus-shared-station/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ + (_) | | + _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ +| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ +| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | +|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| + __/ | __/ | + |___/ |___/ \ No newline at end of file diff --git a/bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml new file mode 100644 index 00000000..f14f3a3b --- /dev/null +++ b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap-smart_canteen_local.yml @@ -0,0 +1,45 @@ +# Tomcat +server: + port: 58691 + +# Spring +spring: + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 127.0.0.1:8848 + namespace: smart_canteen + username: nacos + password: nacos + config: + # 配置中心地址 + server-addr: 127.0.0.1:8848 + namespace: smart_canteen + username: nacos + password: nacos + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + +#加密组件 +jasypt: + encryptor: + password: Encrypt + +mybatis: + configuration: + map-underscore-to-camel-case: true + + +system: + sysfile: + prefixOffline: http://localhost:9000/lnyst + prefixOnline: http://localhost:9000/lnyst + bucket: /lnyst + + +oss: + endpoint: http://localhost:9000 diff --git a/bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml new file mode 100644 index 00000000..146518d5 --- /dev/null +++ b/bonus-modules/bonus-shared-station/src/main/resources/bootstrap.yml @@ -0,0 +1,84 @@ +# Spring +spring: + application: + # 应用名称 + name: bonus-shared-station + profiles: + # 环境配置 + active: smart_canteen_local + messages: + basename: "message_device,message_account,message_adapter,message_allocation,message_attendance,message_auth,message_common,message_customer,message_dorm,message_drp,message_kitchen,message_marketing,message_menu,message_merchant,message_notice,message_nutrition,message_open,message_order,message_pay,message_report,message_supermarket,message_backfield,message_bus" + fallback-to-system-locale: false + mq: + type: ${MQ_TYPE:rabbitmq} + namespace: __yunshitang__ + topics: + - name: order #订单 + - name: backfield #后场 + - name: drp #出入库 + - name: supermarket #商超 + - name: device #设备 + - name: acc #账户 + - name: notice #通知 + - name: auth #权限 + - name: menuai #菜品识别 + - name: dishes #菜品 + - name: marketing #营销 + - name: backfield-mqtt + - name: device-mqtt + - name: customer + - name: pay + - name: canteen + - name: merchant + - name: paddle-ai + rabbitmq: + clean-none-namespace-queue: true + publisher-confirm-type: correlated + publisher-returns: true + username: guest + password: guest + addresses: ${RABBITMQ_ADDRESS:localhost:5672} + address-shuffle-mode: random + connection-timeout: 3000 + listener: + simple: + acknowledge-mode: manual + prefetch: ${RABBITMQ_CONSUMER_PREFETCH:10} + rocketmq: + name-server: ${ROCKETMQ_NAME_SERVER:rocketmq-nameserver:9876} + access-key: ${ROCKETMQ_ACCESS_KEY:root@rocket} + secret-key: ${ROCKETMQ_SECRET_KEY:do@u.can} + mqtt-enabled: true + producer: + group: default + +alipay: + URL: https://openapi.alipay.com/gateway.do + PID: 2088041561080184 + APPID: 2021002125609361 + PRIVATE_KEY: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCpBulkHcSEQvo0GmPyYmyNOWjlCxTn/r/zrOLoXlLN44ZECgdn+Kn9E0EFjwenc/xz4H3V89KrwCA0kNX3m5Hs5qfbKIaycIQf7MvBQHPeUxQ+HeiBwg8b5vcaNy9RtS+wEuU21GF2ZU4QFpk9wYU/MWtvyt/vtj/HCL3/IGvVhcQcbumGlmBEYfoFZLez/7PfIY0SOZ7jdxCS/XGOwwBx2hMTCsMS05VPEaEwDYV5U2WN8FDDXCt6NvHPPR+BUoDON7xxaalHcN/mokpkyFmTXXAadjLVof9BJFPIYaJKmN/aRG7TWMvvZwEDKmcmeyLGiph9M4UEviiXJus/369TAgMBAAECggEAN1Bqune/YuUkSj7ErIKnMYQzHpmEyvMkUBMo4pBTmss1mjiJ+e13e7l8Utxezd74I9e4dnbnX4ttPqaTTwebNqK5FdBqXCTUKDpu55w3Du+zNSzGdQhTt3bbMLoUgzG/HGjimBHin0NBy6QJnBsjhu2eUiRbKnBC6NikjMRIZcRrAhFx65s6M6X7tRmWCybPDcWyp2Zz+nQZhCaku+qVdNz1+Jt1z3R7RZvcVNMXV0XKTu/TdMGfeGOzmyjwCEQG2iw/e7y7QkJHQDU0dKjeBCcZ9xAeGjY9m2gEK2nk1drPJ4TUEtREbZbS8lVkdjOGFQ0VMEY00KEb4JLRwam16QKBgQDlMyaqhiYAY8o1QxZ/4i2YxNHnP8Q0qQ4lyvTaVjZH3trINIXMjwtlezxwjXoMKvcgYfXFdJ9La88qsBOrqzkgePI5sX3AAGMACgUSfQmbLCfxQ4pzN2/bigWl5apFWWrfi7vmUlE+xUZmbv+HePLVslOS8RmCE79sHjwIEGQghQKBgQC8yo1xCdripF8aLMZVFDBabi3i8n6jJFzEJvY74HqoIegjSAUkmivSvw/VkGdg+bGoAinza/4zUAF7oCn/z+Q422ZQ6ldHetDioxxtumUU1Zt6ilwdpiQzMGj9B9+fHtpEaXZJjjcUQCKUMOBegcki4H4WkHcyqkLHk7TY8DPD9wKBgQDV0LwXhIHbBzzSJz3MG2HSDHqMsm4FelhaZVW6gYat0XZkIqtXQ3KsPyUJEtJym3pjWT9/7uXT5EUlW5FeKqNmaa3+qFfZUAMLPE2zC7Z0beLtLcbw6RyOv9m5A+GuRFZxKNgna0+jsUGVuaLj7K8NMAjLIeRb9rQy1pnGJBRkSQKBgFyr6OY1+jYKjYxhsjGNKXcaYnfmpPccIFVA8tnNhSgHDNZUwgGHlD9s/i7NJZHav7RC66jLuAokGbY/lp41xEeMmxrZDWLPDL5TZt8OAhRKDnoGdNUw+tAN0Vtzg/etw2KVijTtFGhiWxb3Lwv1FXCDViFpZLmADiu9e6aJsj9dAoGBAK2IuG617pbbFq6vl9lYyYxT5wBYWQ47uHu8vKTfKnZ6zkGecZssiLdSKMwmAB0oJOXPc9QcWe3MYAnFEBw2DygmluxDlE5hK36Nb2Tvs75MD7Bj0noQ4pCC12v1KF57zzhaU9PqkAM8VouLLWe7eOa6ScBZn+3P9Q0EijuPesn/ + FORMAT: JSON + CHARSET: UTF-8 + SIGN_TYPE: RSA2 + ALIPAY_PUBLIC_KEY: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApnqCjevyilI4LcWsrUI7d6zSSc/+xqKO6U0Bmf3yCKRNPNubqHeOQ7Wd9+63lswObGNa6sHYkoZEmoO3WhIRu1ruV1gG3dqnuZ93PNHtoG22S6fPoSwJyB1i1N61dPHV7ikU5Ljq/VJhP05cYH+MiZOb5sx47Ub4KqKghVkyZu6mSlVWu/ojipd0H3kl88QXnF1W3QT1B9DSkODg94u4A28SrJHT+8nkPhOsD8cs5NmwmZJUieFiHh69hEgR+Af2xl1G+LNRWN4vTZ4sWcAnQp+ + +system: + sysfile: + prefixOffline: http://localhost:9000/lnyst + prefixOnline: http://localhost:9000/lnyst + bucket: /lnyst + max-upload-file-size: ${MAX_UPLOAD_FILE_SIZE:5} + notify: + unify-host: ${NOTIFY_UNIFY_HOST:} + +oss: + endpoint: ${OSS_ENDPOINT:http://127.0.0.1:9000} + access-key: ${OSS_ACCESS_KEY:minioadmin} + secret-key: ${OSS_SECRET_KEY:minioadmin} + bucketName: ${OSS_BUCKET:lnyst} + expiresTime: ${OSS_EXPIRES_TIME:604600} + useToken: ${OSS_USE_TOKEN:false} + region: ${OSS_REGION:} + path-style-access: ${OSS_PATH_STYLE:true} + useHttp: ${OSS_USE_HTTP:false} + diff --git a/bonus-modules/bonus-shared-station/src/main/resources/logback.xml b/bonus-modules/bonus-shared-station/src/main/resources/logback.xml new file mode 100644 index 00000000..b5892608 --- /dev/null +++ b/bonus-modules/bonus-shared-station/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-shared-station/src/main/resources/template/template.xlsx b/bonus-modules/bonus-shared-station/src/main/resources/template/template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2eddd2cc8c56fb8444d83b5fb5917a86d1eef605 GIT binary patch literal 10822 zcmeHtWmsIx(k{W>0wFjI?oMzgxO;F7?iwJ$83+>G-95OwLvRT01b2c3!rUR*=VT{m zf9Lt`&-*;LfApHQrmDKvTdS+9s!LG@3K|jOu?5R-2t8i^)eyixOzeym9qsI$m=wWe zSl|cnKge#8JV3lpARz1@At2EIPG)Ft&**MrofbVJ4aI^LcBvH(QWY4 zCIeq7@df4Cn_94^@_6g}Q?L-BMnab&SU>6QutV~&Oy&H#I@z@sk7kF1PwZ>zy5VhF zlii@Khet@z6g@ZpN;EE{ElJnMvVSZNfx0>72~_}?BLs)ijk~TXJ2Ype;eTqU?1apmm-Y2+NfHlz7Li6 zS_J7jW$FPoMEEx^?a5I*kPXG;L-BDMU= zS_sVBX}#SZ8JKX^-CDsnkBOsw$xbo=MIoJ3WEw^^ne@(=&$uy~j|scS912!0W-3Nf zRW=sy*jdZB4)^(3RIFik=)}-MsG)TaBBCwij-tFyY}49j{!2^^ot9IIwGSWIbbP)< zYe(Q`>R*c0NJvkRm1v~ZL(nj9Df(2wPWfyQSHS2d3gW*qU884hE?SbmYY?r&N}Fq* zr923C(S^G#3|~K2xo2;0wbQs{n^}^EkOt5sj(6A;#f&ZA%^q($HHV*OF6c1t^o=f8 z;@}RH$T`{*(xJ}gpCpp-Cj`6fp$%>BexppwA}3!Tpn94SM3WaL|D1GeWKI9OTwA%~ zVLwQLfHzg4kB0lTaTjF*)W(w!VmG@A`Raa<;R1L_aTT zOs1O|tN+9gBs$1H5?QCswh&RKE6hh-*eoqIRW?peAypuHzdDkr!skA*xp{ZfGUmyo z-8MwZ1#j$G<|rhB44Ktn>sdS8Ic1EZg04ARSchAK$<2j`6yJNP=4$tqI_w}2g->Lj z;4lpz2VScUr>Zh5GERZV#$?mW!d22ucT7C*mORiAXv8P#RV6RO^>)1@sh+E$9iTm; z;OctkPS9!_<=qu2Or^WJy;deYR4i=|xfc}o!JsOL-pC2461JBd&!KIzBFvngOare< z_Ix_vV0w@Ci0nUG87MHa?$$r-%RdvK z{v>d-bF^|YH#K$s(-v8*itz@4rA)y?Ks^5s+8-<|kGhIemy1~B#9G1GC4@iD5d@*p z!?9g)J{u{w%97uKPlK>;t~Z)Im+-OJXUR_?Lkxem+wCZ%;f0 zy}Z7jU#fIYMA43jC2ep4nX^qP9o3Ij?z^uSHJrj~NKNG%s4YS>iux)vR^L{a2ELhw zlSY9IQZBeL2x~zUO(QfHb|xWbFnmp=Dvaz^>|L0bP3|TQgBC-b90X%XafPh0Z^hMP z+t1pBp`|uH>5eJR&9c@mz+8l1S8!i)<0x(ktUW8(+~_;0@j7!~)9+-ZsF_P5c`ClE zi~q6_9;cP-y|vI+ra@ZZo6;>hl6dqbsLfA&&Gz`gh1?g@E`-y{a9SSc*)f^!&y=gn zYcP6)p8ILYxIvz%HN4tJt}>4#qG^&jbMbOXF!;dRBk|H|S&K}R=$NJ;DT_N6@nsz} zQGk0*M?Fa>eLa-s%V=EJT&p3E&=(GnreCYsjAji0);7+w;jLwKDc6W!oF!;&Kl_0O z9GxW3AYW9WWw+&6zhhqe^qfoycU1ZtA-^)J_GouGGPN>abv|2XC+dB+-+Xp|A&G(j zz|J@pdP?cFL2ToFnhsEbT#pdow9h=N$Bzql(ZI%794Wug{9@mMIX$(1E1L)UxU}0# zITEK6upjn*U+8$+P@sgW`U0Y!u}6TvsC$Vk1Df#2#8rvVHO(av|DYNa#bYifPqCe{Mc&!;JeS9T1mO4)l)7b&e) zikqFmf4>(nI>I1J*grGjd4sXtcOu$a&$)p^<#<5)R03mcosm8pSJqo}k%;z9<=wX6 zl8=CeDF3{9l6Qoc-9>MlXoxp?YNvGub!SebX+8A zH68OQvY1vjk(E?(!xjAw$w%2=##OevJ-&|KxHw#xvwK1iV=Y8iRHd?gX3=+6};k zRwX5f%dqn0R>Cm1%8OFxZkG9@jT(w}DI8S184!+vW*@E9(J+gjvtoloFT&xo_*h8K z(GvH$dcx~(Va5Eg)-)v(K&^$_SgXp1*YYYEz7N&(WZw<#aWD=y>^<|a`STobgoT(= z9SEu?0!!=0Xyu>PG+_#*kfJA-kq?#tmOILD)FuiWdiVB|g6p<2H29vW+!gq-r1n@h zo$zlMT6)iJof9i0vSdk3B|-*i)6iW^jgFy z2ouyESLxNyqT;ubJmJ{6wsWE06+DQ6B;`X9hd*zsXq~CSMy7qQo#BEV6rfz>iDm4s$%-w{yc?6|af}C7TSm#57gOE_3 z`iAmDav*?O83dDlG}t3gko_zm(^8%-ebw_Var^as6rBb!IXhRc4thLi*JLj>vOSLp zS+qRf`qA6#F5BnuA(I%{^u6Ks5#sJHpzqh^nf$n$&~PLfq5RYE#x&KfX@o2RhUAP@ z$OWf1pWOY(Th0eZfjMmBDdTC5STnAeVw230N|2T(>0i6P2ack`^cG=R8c2F5SoF|! zOw{BGyl*sDB1#1;zzbgk(=N}TaAC0!5Qy;%bKk9xKEx5$Bp@j@3V)71*w<%FKnlw@ z<)_L(4wa&dv&?f<+?|D>opnfiQ}DS6`x`q1O7L2KW$#3zc12Ax_h-l?iOAzo+r}lA z)A$D&D^9oJ5&y!&HI9MZiqiFi8MEe%4UU1e5~~{-B|1xWg70`Hr?nhj1+OgBcv1EI zjie{{@OVOpYUMd3a6Yi)1narCs_YZhINe~vSW_3~MX z5!7!EUt>cm4VwxrVS*{c0k_aS@XafUU0iZG`1FTOP;Rb3=x8`;VH}T5 zhP-nWsCKAF=eZnN7AcBZ7^U|wm-3?3W^w(*mqi_C?x#Wzbr~+la^>z8iB47CZ!(Z% zV2ry&Cj1n`PV$?{8oC9Ivn1xg@X~9N+=Y;lv$V{?!m$HR0hcI6bl{t?6XX4WGrVM} z*c;U=C6OZ^Vp80@u)~qt@jjP;09gfQQ{mSEfv1B@TWb|@Uk}Cw?kxoKFM7lsrSb*R zB!DdV^JY`(VbPz0kD}P?Dv5zKidZmIvftMFKb4_hqIwAJ^*OJS&PiQgy|l;YDX^K0 zCfOej^K|q;VGC|=DbS}PUtVY#K|WbMxv%TlzZ%&pZ!YoG-@iW(jEBn(cv4o z1L(S-z5tWakI^Jf9ckY2DcPud)}Gdvrs`a3e8OK3Y;oCECzM4r3h2Sa>F?|i`rxfesdoX~rZ9VLtl8~zDAMy&(29M`JPsu6> z1%I~xNMs1V;X3-|glU}F6b4LmzqLt_%$wyQtMWu`-tA8xcj@Vh81@pehu4i*mb+Ys zi^YM4m-S_=sn81@?qM&vu7x@5H=*dyWQYMXWi0{?RxK07ag45zuCW@Bb*Z0N&8dQ1jV7#xiYgSuI-Q)>YLR}H}FQr3fy6qW8mT4j<_af)zJ?suV__fbkp z&L1<$=S$oBmSB02GKh{8_p%&TLbCwJ~_ugr(*VzJDYa>d{}eGsu^0qmC1iKyxt zT`Cts>yS~@Rn(n4bA1E>VS@vQ6_1u_y``RECWxG zbEqSY>8+9EOZEwBqNIE+5#&+^`o{qPygr8fUSH=8w z1W)+k%hIWVa1(XL#p~O%&w7!KRBn#+S|@SUWGIPQm8Q5i5z!*?OA&~fS>lD_NnJ)( zJn+FYD|O;b`YKOZEq3zA;v6$rQ|@qp6KSdj)OG+psV=LMemr}2)_A>ekz%Zs znIUVzDDJbI<&W_+M7D7b?#2TjjqTQx;(2t@{p&rk95A;Y?HE~=XI8jNZI zS${YAVX~Jh`kbv>>dZF=J5g1qsG)Cx1(awXU$k8r2H6}VZQd<)X!5__&=fe2$iaoS z=Xe(K@=FY11k%&`E7Sm=3Nr!%mxQMHb;zSuQUBE}{O>sC=FOY1?V^!*E^-Lu6g84W z*j4!$EG~q0mKcZT$F&ypJk&&Mt5Jd>sT0%qVa6|r!j_BJfY~Ky9r}G_patEP^81@H zk6wx4MBT&2t&r$fW@d>4(KU2!?hMBP>;tl;qw9nQCilvS`1cPty=K)nb-LdC`oa&~ijcg) z!JaF8+@QPDKYTpCXWbstV9!uh4FUq?uchnkVQu%as)U5uY306+ znNT)o+~9Cse{&eCt$3Y!#Mh!lvpMSl8f{eYJoq-z5p}G><7_pfz7O5Y2Je#P8X# z8r}YGn3}`HVk@OPeXl{Zgo0R`?DpH$Yh;8GCbB=vE zm?iL!vp52Hy=U#UQ6?dmFox@rAteY3i>XrB62 zDKF=lyvoW7UIbiU2eFi{8{b#$DkA-8Ki-P#wQPWl?*w5zoaIt{8-?!ORjpOr;-uBq zjRb|))ku9`Ip`J5O_qY!P91pynNng!@)kb&_mg3X&L_`enga9kZDDa7X|gEd;PY%% zF|R6-2(AxiU*i{1-4?{=t-Nn2I1X|(Tgk|h*ES!ZDnPLQ$Ow5I@DlF=g(9iOk9DFCMTJ8b_~y#yxHo2?TCK=Md;-z zh{%IBT0P6FklpTG1qJ@Ppd&X;)z|aG00BnyVX4Hps4q} z9A0hJ+wj&t9k8Zx&gw&{sgTC2d1Y+KMyr6b#qMKk#Wxm|NAeP zNmB`_9y6vX{ZcvQn^o?eqg%P8uY)*@J15ODmD$*H^vFhaRS`{+o>6jR6f&Su4J0Uu zwRl#kj)2Id#|yqiXUR5~>SoTGU^c(wh4 zxu-Xu&q$qDgP0pgTZTKGoYGgWKN*YXg{ukpMIFrXXZOAhu3NtP_?l3QS<`2fLULI~ zuYAJR2)8IjqgGaGgaRpapEXW`%e z_DGiMQ+&qAN9n51b-082GKo?5wE-UDx)7R*udIID;0}U94f8k6o)?`o>Y=F<=h=(P zDH+BR=q#={mbRhg7>}(8lC-yZO7;zvpEN^p?aptv@v;+g(Mw=WFl7ap%4lX;4?a98 zWqw)05#sBX#P?i!;F519usHg_L6LisYxcs|A)#i3;Lf%Ionw~q{?N~+tF%3uzXFer zzM+sau$tT^?mmiWU`aBMW_vE4GBLP|U3{g%_lYY0P47Iep|`>1;Teg1n>ztcF8$!< ztzvsFutEO7q_A}MQd+m7xVB@*W90qenzZCDLmg)PivS=%A09(^6de#MJ~yE5aJ~Sf zKA#7|JA$uzGkxj2L20BcMBS2rAir$`M!AL2Msi4*oyo0Q7x^~em*=qb(Ni3Z=F&_t z30<=5=iY52OPkfx@F||V{LT#hjZ(?C#9ucV1LQgP2`(o_ap$JQT-82|aBrbgg1Wmi zo6%FP?UEu|1qn1o=SmDc+LkGJ`J3!5VHVjUz9H1{EF-Z+R+tbG@$|zE6ioWFDf*_> zTHpZFR)Jp)5>~$ItnPnvj#P*FqeMeEG616T4~J`caOJV3>z$?Z_OFf=-D zD}hVP|K^v8SG!?Ug6?F|U(PKObjBs@Jj6WVDqMr7VW&olq1WL<^?BebNErV3Z%4X=jVA zG2SV1iO31p?;EViRv{8SqUh0R5a3a(Ndsh5K|DA2md=7rSFtQh7qQ{m?c{^GZ4po~ z%-#j!@dybZ9b3PsOAr+4hJmiNfoSrh4M~0h*=1x|gjpXH z&g^R_Tr0)^OEaw@BvZHqGlMCSia*g2j;mJKI*GMoKj?yqm`Bk^F)M_lE>qsi7#p7{ zs}q8__|?9F-g+?ypo1BX^eW_IyuFSh0|w*FMjgNAFu3E|=(X|u7!U63d)_Zz88Cpm zH6Tv?QRk~?^+&=Ovuh1EYPwME&s1fw9LgGO&^}jzyS^_Ai|MR-iD>bA6NuhN%1B=) zl|YkpmnKz!r6)ewgTkog5|Cn>VhwT>p%1%-`H#Flq4ED$%Of9Krw zcYVIK$~&! z8TwwQi$G*_pMhPOYN@J=cY^7B-Y)BvOkW^W6hIsbqx7 zqu@AViAjhJV04>sY%cP&D0}X~Nbba}k}^A}(d}&Q_UmjUfIFA$leu4{ub6fw!0p}D z-tBw>4%(RB+tU?~=yYc#T>fSDj9BjPv-(W(tC7&rD*!T|5Iy0R(Tsc3^OWm?cEPl_ zH}$}XudC>~r?&wC`BRbdOac$0V!~8W7$M`|cOnI!e95PZ^ssQYOqfs)yn*kLa`4Dy zD+_~i2V8X0xrgrg=YW} zIT}iZ4Dvnv;NDIp77+$>H2}bUcQITY%z_Y!kjReyK~|7E>0xhT>*0j*`dD7@8zBFS z14hgDbaq-Fuh96>uOHoux>D00E}Y+-uSyamQFozY7+Ie0YTfhcbEuM%Q)Z;~j$N25 z2AVf;-Oj%+P%y$ILMlc_ieVBE1oi87+-wbYzmF8;1AQq#t~;H7GD>NPSrTU_Nnt^W zPejKYiy@|zF&5O17RCW>ZFw<&n&{W*;}hPI%EhEcq?!B?(&P<=nW%&_vT>(GO!UpC zuZYIoo2UXpq|8)PbYUn2q&JpET=|ulI7IeP{X)Po*$QS(J~IwdGq%>QxzmA}fPs-m z7BUSSfQC<8LzN|;*}A8<->%7fpWc&oJo2i^FH|Yg)W9JSne=J zm^Cl9ssrJzo6xJ1^bD=tKkbWrGJ9lb`)KZB8wBFQvphZx z>bF({&i|N+V~NPtPY&(80aH=e-G#d?q-1Af@1=S;uglUlZr6M5vyu2u5$!Uom%h8f z3au8a4&FoA6xEwA2AaKuHHLZ4SD$wdyPeX7^EXp~oa=S%jt}uHi|O$&6Tf z7O2kf9;FfHXerU9xskALIpw5CguZQ5c%z>D#q4xmX>P1yH-!vN;C?T#FKB4hWcC#+ z55hDR?km_@e^3#|7o~gd=_3%-V?6ZFnNV1;`>XG0YW?RKrYDzc3kdw*Dmc1D`Zo>Z zBV}3im~;;_dfy4Slw!M0&J7!5-kAw-C}-mBlPC)sr+gZ%b=1}>tVBQE1Q(ffyPdM? zWzvklOrpni%@@1CNFJr@ zr993W%u5qvF|ntrD3rm=Azr{OXiVnM*=nn3J9PfCFM~)?j<0ux7U%bM*a%*Q- zd@#DkpOhmy#zwcL8kOc^{Q*17-z#UX9sN=q7M6R=(M4eR#7#Q5w9JeFMO-H^Q6+Tg zi%z=(eNw-UJaH&R=E$wk)YMK_XVipt&9Ed-07dozh@7>*XDi-AfJ0x>@tmQ=?SIDd zudMPv!71(zbh!h=I1N5l!UJEy$%3C`kB7+r3PgXP+Zxkp+0Bd`bmHIUKjG~VZEG6K z(;6mRp?w8GskAZPgBoAQVJ8?PoFX#Fn1$2Lv5PQUnNd%@XdcLc?I%4#6zDLM z<8tKv>7K_rg0MMx<||?u(=T({!Kui3{c5OlH6D7>B;k$u@XCeS>X|$dTj3O_Ftw*9JkSx5d@@U%B|JSmyAa6{+A5JZ3SSsvBYPQ5fP z0qXL-pXon(cei%tK>QYLNuEGr{m6Iyth@SCOJGGoJb@qq_qSyKsI#8}{%2$KDBx!a zmkQ}G)AakGe;TJpj-P|N{hQ~w{Fzw&B_|2=O87Is^Gky2v!4?F zo$dMGzq=Ij57vL38UFr-{CR5lYef6Mv;8_l{Bz2G<|uy&5Ctcf!Akl&Z2xW2kHtwp z+oOhqe`@%*Ql;N#{%5h$BkxbGRsRR?uhOMIr~hZ!#4jm!;3BBMrvF#5)Q`)LB8vaL h6dka^_y;LJPUjV6U>>~~@FwvTA_hF?G>XT&{{!sN#u@+s literal 0 HcmV?d00001 diff --git a/bonus-modules/pom.xml b/bonus-modules/pom.xml index ca1ca661..e7cf8d83 100644 --- a/bonus-modules/pom.xml +++ b/bonus-modules/pom.xml @@ -12,6 +12,8 @@ bonus-smart-canteen + bonus-shared-station + bonus-shared-station bonus-modules