Selaa lähdekoodia

DOCKE-COMPOSE编辑

klzhangweiya 1 kuukausi sitten
vanhempi
commit
3a3fe89cdf
28 muutettua tiedostoa jossa 2765 lisäystä ja 1000161 poistoa
  1. 2 0
      .gitignore
  2. 158 0
      SERVER/ChickenFarmV3/.script/docker/docker-compose-copy.yml
  3. 79 133
      SERVER/ChickenFarmV3/.script/docker/docker-compose.yml
  4. 1 1
      SERVER/ChickenFarmV3/.script/docker/redis/conf/redis.conf
  5. 0 1
      SERVER/ChickenFarmV3/.script/docker/redis/data/README.md
  6. 2233 0
      SERVER/ChickenFarmV3/.script/docker/sql/init.sql
  7. 6 0
      SERVER/ChickenFarmV3/.script/docker/sql/init3.sql
  8. 10 10
      SERVER/ChickenFarmV3/.script/run/DF_VberJob.run.xml
  9. 10 10
      SERVER/ChickenFarmV3/.script/run/DF_VberMonitor.run.xml
  10. 0 13
      SERVER/ChickenFarmV3/.script/run/DF_VberServer.run.xml
  11. 2 999980
      SERVER/ChickenFarmV3/.script/sql/ChickenFarmDB_DEV.sql
  12. 50 0
      SERVER/ChickenFarmV3/.script/sql/wing_tag.sql
  13. 18 3
      SERVER/ChickenFarmV3/vb-admin/Dockerfile
  14. 2 0
      SERVER/ChickenFarmV3/vb-admin/src/main/resources/application-dev.yml
  15. 1 1
      SERVER/ChickenFarmV3/vb-admin/src/main/resources/application.yml
  16. 1 1
      SERVER/ChickenFarmV3/vb-admin/src/main/resources/logback-plus.xml
  17. 25 1
      SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/controller/CoopEggDayController.java
  18. 2 0
      SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/vo/ChickenWeightVo.java
  19. 21 0
      SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/vo/excel/Demo.java
  20. 1 2
      SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/listener/IncubationImportListener.java
  21. 2 2
      SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/listener/PullOutImportListener.java
  22. BIN
      SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/resources/excel/test.xlsx
  23. 6 1
      UI/VB.VUE/src/api/breeding/_coopEggDay.ts
  24. 3 0
      UI/VB.VUE/src/api/breeding/index.ts
  25. 1 1
      UI/VB.VUE/src/layouts/main/header/navbar/UserAccountMenu.vue
  26. 8 0
      UI/VB.VUE/src/views/breeding/chickenWeight/index.vue
  27. 122 0
      UI/VB.VUE/src/views/breeding/sta/coopEgg/index.vue
  28. 1 1
      UI/VB.VUE/src/views/home.vue

+ 2 - 0
.gitignore

@@ -68,3 +68,5 @@ build/
 *.flattened-pom.xml
 /SERVER/**/vber/profile/
 UI/VAP_V3.VUE/pnpm-lock.yaml
+
+.data/

+ 158 - 0
SERVER/ChickenFarmV3/.script/docker/docker-compose-copy.yml

@@ -0,0 +1,158 @@
+services:
+  #  mysql:
+  #    image: mysql:8.0.42
+  #    container_name: mysql
+  #    environment:
+  #      # 时区上海
+  #      TZ: Asia/Shanghai
+  #      # root 密码
+  #      MYSQL_ROOT_PASSWORD: root
+  #      # 初始化数据库(后续的初始化sql会在这个库执行)
+  #      MYSQL_DATABASE: ChickenFarmDB
+  #    ports:
+  #      - "3326:3306"
+  #    volumes:
+  #      # 数据挂载
+  #      - /docker/mysql/data/:/var/lib/mysql/
+  #      # 配置挂载
+  #      - /docker/mysql/conf/:/etc/mysql/conf.d/
+  #    command:
+  #      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
+  #      --default-authentication-plugin=mysql_native_password
+  #      --character-set-server=utf8mb4
+  #      --collation-server=utf8mb4_general_ci
+  #      --explicit_defaults_for_timestamp=true
+  #      --lower_case_table_names=1
+  #    privileged: true
+  #    network_mode: "host"
+  #
+  #  nginx-web:
+  #    image: nginx:1.23.4
+  #    container_name: nginx-web
+  #    environment:
+  #      # 时区上海
+  #      TZ: Asia/Shanghai
+  #    ports:
+  #      - "80:80"
+  #      - "443:443"
+  #    volumes:
+  #      # 证书映射
+  #      - /docker/nginx/cert:/etc/nginx/cert
+  #      # 配置文件映射
+  #      - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
+  #      # 页面目录
+  #      - /docker/nginx/html:/usr/share/nginx/html
+  #      # 日志目录
+  #      - /docker/nginx/log:/var/log/nginx
+  #    privileged: true
+  #    network_mode: "host"
+  #
+  #  redis:
+  #    image: redis:7.2.8
+  #    container_name: redis
+  #    ports:
+  #      - "6389:6379"
+  #    environment:
+  #      # 时区上海
+  #      TZ: Asia/Shanghai
+  #    volumes:
+  #      # 配置文件
+  #      - /docker/redis/conf:/redis/config:rw
+  #      # 数据文件
+  #      - /docker/redis/data/:/redis/data/:rw
+  #    command: "redis-server /redis/config/redis.conf"
+  #    privileged: true
+  #    network_mode: "host"
+
+  minio:
+    # minio 最后一个未阉割版本 不能再进行升级 在往上的版本功能被阉割
+    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
+    container_name: minio
+    ports:
+      # api 端口
+      - "9000:9000"
+      # 控制台端口
+      - "9001:9001"
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+      # 管理后台用户名
+      MINIO_ROOT_USER: vber
+      # 管理后台密码,最小8个字符
+      MINIO_ROOT_PASSWORD: vber123
+      # https需要指定域名
+      #MINIO_SERVER_URL: "https://xxx.com:9000"
+      #MINIO_BROWSER_REDIRECT_URL: "https://xxx.com:9001"
+      # 开启压缩 on 开启 off 关闭
+      MINIO_COMPRESS: "off"
+      # 扩展名 .pdf,.doc 为空 所有类型均压缩
+      MINIO_COMPRESS_EXTENSIONS: ""
+      # mime 类型 application/pdf 为空 所有类型均压缩
+      MINIO_COMPRESS_MIME_TYPES: ""
+    volumes:
+      # 映射当前目录下的data目录至容器内/data目录
+      - /docker/minio/data:/data
+      # 映射配置目录
+      - /docker/minio/config:/root/.minio/
+    command: server --address ':9000' --console-address ':9001' /data  # 指定容器中的目录 /data
+    privileged: true
+    network_mode: "host"
+
+  chicken-farm-server1:
+    build: ../../vb-admin
+    image: vber/chicken-farm-server:3.0.0
+    container_name: chicken-farm-server1
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+      SERVER_PORT: 6080
+    volumes:
+      # 配置文件
+      - /docker/server1/logs/:/vber/server/logs/
+      # skywalking 探针
+    #      - /docker/skywalking/agent/:/vber/skywalking/agent
+    privileged: true
+    network_mode: "host"
+
+  vber-server2:
+    image: vber/vber-server:3.0.0
+    container_name: vber-server2
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+      SERVER_PORT: 6081
+    volumes:
+      # 配置文件
+      - /docker/server2/logs/:/vber/server/logs/
+      # skywalking 探针
+    #      - /docker/skywalking/agent/:/vber/skywalking/agent
+    privileged: true
+    network_mode: "host"
+
+  vber-monitor-admin:
+    image: vber/vber-monitor-admin:3.0.0
+    container_name: vber-monitor-admin
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+    volumes:
+      # 配置文件
+      - /docker/monitor/logs/:/vber/monitor/logs
+    privileged: true
+    network_mode: "host"
+
+  vber-job-server:
+    image: vber/vber-job-server:3.0.0
+    container_name: vber-job-server
+    environment:
+      # 时区上海
+      TZ: Asia/Shanghai
+    ports:
+      - "6076:6076"
+      - "10086:10086"
+      - "10010:10010"
+    volumes:
+      - /docker/job/logs/:/vber/job/logs
+    privileged: true
+    network_mode: "host"
+

+ 79 - 133
SERVER/ChickenFarmV3/.script/docker/docker-compose.yml

@@ -1,157 +1,103 @@
 services:
-  #  mysql:
-  #    image: mysql:8.0.42
-  #    container_name: mysql
-  #    environment:
-  #      # 时区上海
-  #      TZ: Asia/Shanghai
-  #      # root 密码
-  #      MYSQL_ROOT_PASSWORD: root
-  #      # 初始化数据库(后续的初始化sql会在这个库执行)
-  #      MYSQL_DATABASE: ChickenFarmDB
-  #    ports:
-  #      - "3326:3306"
-  #    volumes:
-  #      # 数据挂载
-  #      - /docker/mysql/data/:/var/lib/mysql/
-  #      # 配置挂载
-  #      - /docker/mysql/conf/:/etc/mysql/conf.d/
-  #    command:
-  #      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
-  #      --default-authentication-plugin=mysql_native_password
-  #      --character-set-server=utf8mb4
-  #      --collation-server=utf8mb4_general_ci
-  #      --explicit_defaults_for_timestamp=true
-  #      --lower_case_table_names=1
-  #    privileged: true
-  #    network_mode: "host"
-  #
-  #  nginx-web:
-  #    image: nginx:1.23.4
-  #    container_name: nginx-web
-  #    environment:
-  #      # 时区上海
-  #      TZ: Asia/Shanghai
-  #    ports:
-  #      - "80:80"
-  #      - "443:443"
-  #    volumes:
-  #      # 证书映射
-  #      - /docker/nginx/cert:/etc/nginx/cert
-  #      # 配置文件映射
-  #      - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-  #      # 页面目录
-  #      - /docker/nginx/html:/usr/share/nginx/html
-  #      # 日志目录
-  #      - /docker/nginx/log:/var/log/nginx
-  #    privileged: true
-  #    network_mode: "host"
-  #
-  #  redis:
-  #    image: redis:7.2.8
-  #    container_name: redis
-  #    ports:
-  #      - "6389:6379"
-  #    environment:
-  #      # 时区上海
-  #      TZ: Asia/Shanghai
-  #    volumes:
-  #      # 配置文件
-  #      - /docker/redis/conf:/redis/config:rw
-  #      # 数据文件
-  #      - /docker/redis/data/:/redis/data/:rw
-  #    command: "redis-server /redis/config/redis.conf"
-  #    privileged: true
-  #    network_mode: "host"
-
-  minio:
-    # minio 最后一个未阉割版本 不能再进行升级 在往上的版本功能被阉割
-    image: minio/minio:RELEASE.2025-04-22T22-12-26Z
-    container_name: minio
-    ports:
-      # api 端口
-      - "9000:9000"
-      # 控制台端口
-      - "9001:9001"
+  mysql:
+    image: mysql:8.0.39
+    container_name: cf-mysql
     environment:
       # 时区上海
-      TZ: Asia/Shanghai
-      # 管理后台用户名
-      MINIO_ROOT_USER: vber
-      # 管理后台密码,最小8个字符
-      MINIO_ROOT_PASSWORD: vber123
-      # https需要指定域名
-      #MINIO_SERVER_URL: "https://xxx.com:9000"
-      #MINIO_BROWSER_REDIRECT_URL: "https://xxx.com:9001"
-      # 开启压缩 on 开启 off 关闭
-      MINIO_COMPRESS: "off"
-      # 扩展名 .pdf,.doc 为空 所有类型均压缩
-      MINIO_COMPRESS_EXTENSIONS: ""
-      # mime 类型 application/pdf 为空 所有类型均压缩
-      MINIO_COMPRESS_MIME_TYPES: ""
+      - TZ=Asia/Shanghai
+      # root 密码
+      - MYSQL_ROOT_PASSWORD=root
+      # 初始化数据库(后续的初始化sql会在这个库执行)
+      #MYSQL_DATABASE: ChickenFarmDB_DEV
+    ports:
+      - "3326:3306"
     volumes:
-      # 映射当前目录下的data目录至容器内/data目录
-      - /docker/minio/data:/data
-      # 映射配置目录
-      - /docker/minio/config:/root/.minio/
-    command: server --address ':9000' --console-address ':9001' /data  # 指定容器中的目录 /data
+      # 数据挂载
+      #- ../../.data/mysql/data/:/var/lib/mysql/
+      # 配置挂载
+      #- ./mysql/conf/:/etc/mysql/conf.d/
+      #- ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql # 挂载 init.sql 文件
+      - /home/docker/chicken_farm/mysql/data/:/var/lib/mysql/
+      - /home/docker/chicken_farm/mysql/conf/:/etc/mysql/conf.d/
+      - /home/docker/chicken_farm/sql/init.sql:/docker-entrypoint-initdb.d/init.sql
+    command:
+      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
+      --default-authentication-plugin=mysql_native_password
+      --character-set-server=utf8mb4
+      --collation-server=utf8mb4_general_ci
+      --explicit_defaults_for_timestamp=true
+      --lower_case_table_names=1
     privileged: true
-    network_mode: "host"
+    networks:
+      - chicken-net
 
-  vber-server1:
-    image: vber/vber-server:3.0.0
-    container_name: vber-server1
+  redis:
+    image: redis:6.2.6
+    container_name: cf-redis
+    ports:
+      - "6399:6379"
     environment:
       # 时区上海
       TZ: Asia/Shanghai
-      SERVER_PORT: 6080
     volumes:
       # 配置文件
-      - /docker/server1/logs/:/vber/server/logs/
-      # skywalking 探针
-    #      - /docker/skywalking/agent/:/vber/skywalking/agent
+      #- ./redis/conf/redis.conf:/redis/config/redis.conf
+      # 数据文件
+      #- ../../.data/redis/data:/redis/data/:rw
+      #配置文件
+      - /home/docker/chicken_farm/redis/conf/redis.conf:/redis/config/redis.conf
+      #数据文件
+      - /home/docker/chicken_farm/redis/data:/redis/data/:rw
+    command: "redis-server /redis/config/redis.conf"
     privileged: true
-    network_mode: "host"
+    networks:
+      - chicken-net
 
-  vber-server2:
-    image: vber/vber-server:3.0.0
-    container_name: vber-server2
+  chicken-farm-admin-server1:
+    #build: ../../vb-admin
+    image: chicken-farm-admin-server:1.0.0
+    container_name: cf-admin-server1
     environment:
       # 时区上海
       TZ: Asia/Shanghai
-      SERVER_PORT: 6081
+      #SERVER_PORT: 6080
+      JAVA_OPTS: --spring.datasource.dynamic.datasource.master.url=jdbc:mysql://cf-mysql:3306/ChickenFarmDB_DEV?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true --spring.datasource.dynamic.datasource.master.username=root --spring.datasource.dynamic.datasource.master.password=root --spring.data.redis.host=cf-redis --spring.data.redis.port=6379 --spring.data.redis.password=123456cf
     volumes:
       # 配置文件
-      - /docker/server2/logs/:/vber/server/logs/
+      - /home/docker/chicken_farm/server/:/vber/server/
       # skywalking 探针
     #      - /docker/skywalking/agent/:/vber/skywalking/agent
     privileged: true
-    network_mode: "host"
+    ports:
+      - "6080:8080"
+    depends_on:
+      - mysql
+      - redis
+    networks:
+      - chicken-net
+
+#    vber-job-server:
+#      build: ../../vb-extend/vb-job-server
+#      image: vber/chicken-farm-job-server:3.0.0
+#      container_name: cf-job-server
+#      environment:
+#        # 时区上海
+#        TZ: Asia/Shanghai
+#      ports:
+#        - "6076:6076"
+#        - "10086:10086"
+#        - "10010:10010"
+#      volumes:
+#        - /docker/job/logs/:/vber/job/logs
+#      privileged: true
+#      depends_on:
+#        - mysql
+#      networks:
+#        - chicken-net
+
+networks:
+  chicken-net:
+    external: false
 
-  vber-monitor-admin:
-    image: vber/vber-monitor-admin:3.0.0
-    container_name: vber-monitor-admin
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-    volumes:
-      # 配置文件
-      - /docker/monitor/logs/:/vber/monitor/logs
-    privileged: true
-    network_mode: "host"
 
-  vber-job-server:
-    image: vber/vber-job-server:3.0.0
-    container_name: vber-job-server
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-    ports:
-      - "6076:6076"
-      - "10086:10086"
-      - "10010:10010"
-    volumes:
-      - /docker/job/logs/:/vber/job/logs
-    privileged: true
-    network_mode: "host"
 

+ 1 - 1
SERVER/ChickenFarmV3/.script/docker/redis/conf/redis.conf

@@ -1,5 +1,5 @@
 # redis 密码
-requirepass vber123
+requirepass 123456cf
 
 # key 监听器配置
 # notify-keyspace-events Ex

+ 0 - 1
SERVER/ChickenFarmV3/.script/docker/redis/data/README.md

@@ -1 +0,0 @@
-数据目录 请执行 `chmod 777 /docker/redis/data` 赋予读写权限 否则将无法写入数据

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2233 - 0
SERVER/ChickenFarmV3/.script/docker/sql/init.sql


+ 6 - 0
SERVER/ChickenFarmV3/.script/docker/sql/init3.sql

@@ -0,0 +1,6 @@
+-- 建库
+CREATE
+DATABASE /*!32312 IF NOT EXISTS */ `ChickenFarmDB_DEV` /*!40100 DEFAULT CHARACTER SET utf8 */;
+USE `ChickenFarmDB_DEV`;
+
+

+ 10 - 10
SERVER/ChickenFarmV3/.script/run/DF_VberJob.run.xml

@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DF_VberJob" type="docker-deploy" factoryName="dockerfile">
-        <deployment type="dockerfile">
-            <settings>
-                <option name="imageTag" value="vber/vber-job-server:3.0.0"/>
-                <option name="buildOnly" value="true"/>
-                <option name="sourceFilePath" value="vber-extend/vber-job-server/Dockerfile"/>
-            </settings>
-        </deployment>
-        <method v="2"/>
-    </configuration>
+  <configuration default="false" name="DF_VberJob" type="docker-deploy" factoryName="dockerfile">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="cf-job-server:1.0.0" />
+        <option name="buildOnly" value="true" />
+        <option name="sourceFilePath" value="vb-extend/vb-job-admin/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
 </component>

+ 10 - 10
SERVER/ChickenFarmV3/.script/run/DF_VberMonitor.run.xml

@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DF_VberMonitor" type="docker-deploy" factoryName="dockerfile">
-        <deployment type="dockerfile">
-            <settings>
-                <option name="imageTag" value="vber/vber-monitor-admin:3.0.0"/>
-                <option name="buildOnly" value="true"/>
-                <option name="sourceFilePath" value="vber-extend/vber-monitor-admin/Dockerfile"/>
-            </settings>
-        </deployment>
-        <method v="2"/>
-    </configuration>
+  <configuration default="false" name="DF_VberMonitor" type="docker-deploy" factoryName="dockerfile">
+    <deployment type="dockerfile">
+      <settings>
+        <option name="imageTag" value="cf-monitor-admin:3.0.0" />
+        <option name="buildOnly" value="true" />
+        <option name="sourceFilePath" value="vb-extend/vb-monitor-admin/Dockerfile" />
+      </settings>
+    </deployment>
+    <method v="2" />
+  </configuration>
 </component>

+ 0 - 13
SERVER/ChickenFarmV3/.script/run/DF_VberServer.run.xml

@@ -1,13 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="DF_VberServer" type="docker-deploy" factoryName="dockerfile"
-                   server-name="Docker">
-        <deployment type="dockerfile">
-            <settings>
-                <option name="imageTag" value="vber/vber-server:3.0.0"/>
-                <option name="buildOnly" value="true"/>
-                <option name="sourceFilePath" value="vber-admin/Dockerfile"/>
-            </settings>
-        </deployment>
-        <method v="2"/>
-    </configuration>
-</component>

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 999980
SERVER/ChickenFarmV3/.script/sql/ChickenFarmDB_DEV.sql


+ 50 - 0
SERVER/ChickenFarmV3/.script/sql/wing_tag.sql

@@ -0,0 +1,50 @@
+-- 分批插入数据,每批10万条
+DELIMITER $$
+
+CREATE PROCEDURE generate_wing_tags_batched()
+BEGIN
+    DECLARE batch_start INT DEFAULT 21;
+    DECLARE batch_end INT DEFAULT 999999;
+    DECLARE tag_id VARCHAR(20);
+    DECLARE i INT;
+
+    WHILE batch_start <= 999999 DO
+            SET i = batch_start;
+
+            WHILE i <= batch_end AND i <= 999999 DO
+                    SET tag_id = LPAD(i, 6, '0');
+
+                    INSERT INTO f_wing_tag VALUES (
+                                                      tag_id,
+                                                      NULL,
+                                                      0,
+                                                      100,
+                                                      1,
+                                                      NOW(),
+                                                      1,
+                                                      NOW(),
+                                                      NULL,
+                                                      '0'
+                                                  );
+
+                    SET i = i + 1;
+                END WHILE;
+
+            -- 输出进度
+            SELECT CONCAT('Inserted records from ', batch_start, ' to ', LEAST(batch_end, 999999)) as progress;
+
+            SET batch_start = batch_end + 1;
+            SET batch_end = batch_end + 100000;
+
+            COMMIT;
+        END WHILE;
+
+END$$
+
+DELIMITER ;
+
+-- 调用存储过程
+CALL generate_wing_tags_batched();
+
+-- 删除存储过程(可选)
+DROP PROCEDURE generate_wing_tags_batched;

+ 18 - 3
SERVER/ChickenFarmV3/vb-admin/Dockerfile

@@ -14,13 +14,28 @@ WORKDIR /vber/server
 ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
 
 EXPOSE ${SERVER_PORT}
-
-ADD ./target/vber-admin.jar ./app.jar
+# 检查构建上下文中的文件
+#RUN echo "检查target目录内容:"
+#RUN ls -la ./target/ || echo "target目录不存在"
+
+ADD ./target/vb-admin.jar /app.jar
+# 验证jar文件是否存在和完整性
+#RUN echo "验证app.jar文件:"
+#RUN ls -la ./app.jar
+#RUN file ./app.jar
+#RUN java -jar ./app.jar --version || echo "无法运行jar文件,但继续构建"
+
+# 设置文件权限
+RUN chmod +x /app.jar
+# 最终验证
+#RUN echo "最终验证:"
+#RUN ls -la ./app.jar
+#RUN md5sum ./app.jar || echo "md5sum命令不可用"
 
 ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
            # 应用名称 如果想区分集群节点监控 改成不同的名称即可
            #-Dskywalking.agent.service_name=vber-server \
            #-javaagent:/vber/skywalking/agent/skywalking-agent.jar \
-           -jar app.jar \
+           -jar /app.jar \
            -XX:+HeapDumpOnOutOfMemoryError -Xlog:gc*,:time,tags,level -XX:+UseZGC ${JAVA_OPTS}
 

+ 2 - 0
SERVER/ChickenFarmV3/vb-admin/src/main/resources/application-dev.yml

@@ -23,8 +23,10 @@ spring:
           driverClassName: com.mysql.cj.jdbc.Driver
           # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
           # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
+          # url: jdbc:mysql://127.0.0.1:3326/ChickenFarmDB_DEV?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
           url: jdbc:mysql://192.168.0.104:3316/ChickenFarmDB_DEV?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
           username: root
+          # password: root
           password: 123456
         #        # 从库数据源
         #        slave:

+ 1 - 1
SERVER/ChickenFarmV3/vb-admin/src/main/resources/application.yml

@@ -6,7 +6,7 @@ vb:
   version: ${revision}
   # 版权年份
   copyrightYear: 2023
-  profile: ./vber/profile/
+  profile: ./vber/server/profile/
   workflowEnabled: false
   registerEnabled: false
 vb-msg:

+ 1 - 1
SERVER/ChickenFarmV3/vb-admin/src/main/resources/logback-plus.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <property name="log.path" value="./vber/logs"/>
+    <property name="log.path" value="./vber/server/logs"/>
     <property name="console.log.pattern"
               value="%cyan(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
     <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>

+ 25 - 1
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/controller/CoopEggDayController.java

@@ -2,8 +2,11 @@
 
 package cn.vber.breeding.controller;
 
-import java.util.List;
+import java.util.*;
 
+import cn.hutool.core.date.DateUtil;
+import cn.vber.breeding.domain.vo.excel.Demo;
+import cn.vber.common.core.utils.DateUtils;
 import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
@@ -58,6 +61,27 @@ public class CoopEggDayController extends BaseController {
         ExcelUtil.exportExcel(list, "鸡舍日产蛋记录", CoopEggDayVo.class, response);
     }
 
+    @SaCheckPermission("breeding:coopEggDay")
+    @PostMapping(value = "export2")
+    public void export2(CoopEggDayBo bo, HttpServletResponse response) {
+//       List<Demo> list = new ArrayList<Demo>();
+//        for (int i = 0; i < 10; i++) {
+//            Demo demo = new Demo();
+//            demo.setCoopName("鸡舍"+ i);
+//            demo.setCount1(10+i);
+//            demo.setCount2(20+i);
+//            demo.setCount3(30+i);
+//            demo.setCount4(40+i);
+//            demo.setCount(demo.getCount1()+demo.getCount2()+demo.getCount3()+demo.getCount4());
+//            list.add(demo);
+//        }
+//        Map<String, Object> data = new HashMap<>();
+//        data.put("egg", list);
+//        data.put("date", DateUtil.format(new Date(), "yyyy-MM-dd"));
+//        ExcelUtil.exportTemplateMultiList(data, "鸡舍日产蛋记录", "excel/test.xlsx", response);
+
+    }
+
     /**
      * 获取鸡舍日产蛋记录详细信息
      *

+ 2 - 0
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/vo/ChickenWeightVo.java

@@ -70,6 +70,8 @@ public class ChickenWeightVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    private Date createTime;
+
 
 }
 

+ 21 - 0
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/vo/excel/Demo.java

@@ -0,0 +1,21 @@
+package cn.vber.breeding.domain.vo.excel;
+
+import lombok.Data;
+
+@Data
+public class Demo {
+
+    private String coopName;
+
+    private Integer count1;
+
+    private Integer count2;
+
+    private Integer count3;
+
+    private Integer count4;
+
+    private Integer count;
+
+
+}

+ 1 - 2
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/listener/IncubationImportListener.java

@@ -97,7 +97,6 @@ public class IncubationImportListener extends AnalysisEventListener<IncubationIm
             incubationImportVo.setOtherDiscardCount(0);
         }
 
-
     }
     int countNum = 0;
     int batchSize = 50;
@@ -122,7 +121,7 @@ public class IncubationImportListener extends AnalysisEventListener<IncubationIm
                         totalRows == countNum + 1 ? totalRows-(countNum%batchSize):(countNum-batchSize)+1;
                 try {
                     //开始插入的行数
-                    System.out.println("startRowNum:"+startRowNum+"---countNum:"+countNum);
+                    //System.out.println("startRowNum:"+startRowNum+"---countNum:"+countNum);
                     this.incubationMapper.insertBatch(importList);
                 }catch (Exception e){
                     System.out.println(StrUtil.format("第{}行开始插入数据库失败:{})",startRowNum,e.getMessage()));

+ 2 - 2
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/listener/PullOutImportListener.java

@@ -77,10 +77,10 @@ public class PullOutImportListener extends AnalysisEventListener<PullOutImportVo
             throw new ServiceException("数量不能小于0!");
         }
         if(pullOutImportVo.getPullOutType() == null || pullOutImportVo.getPullOutType() < 0){
-             throw new ServiceException("外拉类型不能异常!");
+            throw new ServiceException("外拉类型不能异常!");
         }
         if(pullOutImportVo.getEggType() == null || pullOutImportVo.getEggType() < 0){
-             throw new ServiceException("蛋的类型不能异常!");
+            throw new ServiceException("蛋的类型不能异常!");
         }
     }
     int countNum = 0;

BIN
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/resources/excel/test.xlsx


+ 6 - 1
UI/VB.VUE/src/api/breeding/_coopEggDay.ts

@@ -55,7 +55,12 @@ class coopEggDayApi {
 			successAlert: false
 		})
 	}
-
+	test = () => {
+		// download("/breeding/coopEggDay/export2", `测试-${new Date().getTime()}.xlsx`, {
+		// 	method: "POST",
+		// 	params: {}
+		// })
+	}
 	// 删除鸡舍日产蛋记录
 	del = (id: string | string[]) => {
 		return Rs.del({

+ 3 - 0
UI/VB.VUE/src/api/breeding/index.ts

@@ -16,6 +16,7 @@ import chickenWeight from "./_chickenWeight"
 import breedingEgg from "./_breedingEgg"
 import incubation from "./_incubation"
 import pullOut from "./_pullOut"
+import coopEggDay from "./_coopEggDay"
 import common from "./_common"
 
 export interface IBreedingApi {
@@ -37,6 +38,7 @@ export interface IBreedingApi {
 	breedingEggApi: breedingEgg
 	incubationApi: incubation
 	pullOutApi: pullOut
+	coopEggDayApi: coopEggDay
 	commonApi: common
 }
 
@@ -59,6 +61,7 @@ export const apis: IBreedingApi = {
 	breedingEggApi: new breedingEgg(),
 	incubationApi: new incubation(),
 	pullOutApi: new pullOut(),
+	coopEggDayApi: new coopEggDay(),
 	commonApi: new common()
 }
 

+ 1 - 1
UI/VB.VUE/src/layouts/main/header/navbar/UserAccountMenu.vue

@@ -70,7 +70,7 @@ function signOut() {
 					<span class="menu-title">个人中心</span>
 				</router-link>
 			</div>
-			<VbWorkflow />
+			<!-- <VbWorkflow /> -->
 			<div class="separator my-2"></div>
 			<div class="menu-item">
 				<span @click="clearCache" class="menu-link px-5">

+ 8 - 0
UI/VB.VUE/src/views/breeding/chickenWeight/index.vue

@@ -26,6 +26,14 @@ const opts = reactive({
 			width: "auto",
 			tooltip: true
 		},
+		{
+			field: "createTime",
+			name: "上传日期",
+			visible: true,
+			isSort: false,
+			width: "auto",
+			tooltip: true
+		},
 		{ field: "remark", name: "备注", visible: false, isSort: false, tooltip: true }
 		//{ field: "actions", name: `操作`, width: 150 }
 	] as any[],

+ 122 - 0
UI/VB.VUE/src/views/breeding/sta/coopEgg/index.vue

@@ -0,0 +1,122 @@
+<template>
+	<div class="coop-egg-statistics">
+		<!-- 查询条件 -->
+		<el-card class="search-card" shadow="never">
+			<el-button type="primary" @click="handleSearch">查询</el-button>
+		</el-card>
+	</div>
+</template>
+
+<script setup lang="ts" name="CoopEggStatistics">
+import apis from "@/api"
+
+// 鸡舍列表
+const coopList = ref([])
+
+function handleSearch() {
+	apis.breeding.coopEggDayApi.test()
+}
+</script>
+
+<style scoped lang="scss">
+.coop-egg-statistics {
+	padding: 20px;
+
+	.search-card {
+		margin-bottom: 20px;
+	}
+
+	.statistics-overview {
+		margin-bottom: 20px;
+
+		.overview-card {
+			height: 120px;
+
+			.overview-item {
+				display: flex;
+				align-items: center;
+				height: 100%;
+
+				.overview-icon {
+					width: 60px;
+					height: 60px;
+					border-radius: 50%;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+					margin-right: 15px;
+					font-size: 24px;
+					color: white;
+
+					&.total {
+						background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+					}
+
+					&.average {
+						background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
+					}
+
+					&.peak {
+						background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
+					}
+
+					&.weight {
+						background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
+					}
+				}
+
+				.overview-content {
+					flex: 1;
+
+					.overview-title {
+						font-size: 14px;
+						color: #666;
+						margin-bottom: 5px;
+					}
+
+					.overview-value {
+						font-size: 24px;
+						font-weight: bold;
+						color: #333;
+						line-height: 1;
+					}
+
+					.overview-unit {
+						font-size: 12px;
+						color: #999;
+						margin-top: 2px;
+					}
+				}
+			}
+		}
+	}
+
+	.chart-section {
+		margin-bottom: 20px;
+
+		.chart-card {
+			height: 400px;
+
+			.chart-container {
+				height: 320px;
+				width: 100%;
+			}
+		}
+	}
+
+	.table-card {
+		.card-header {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			font-weight: bold;
+		}
+
+		.pagination-container {
+			display: flex;
+			justify-content: center;
+			margin-top: 20px;
+		}
+	}
+}
+</style>

+ 1 - 1
UI/VB.VUE/src/views/home.vue

@@ -1,5 +1,5 @@
 <script setup lang="ts">
-const name = ref("中科轼峰")
+const name = ref("广明弥勒养殖")
 onMounted(() => {
 	document.querySelector("body")?.classList.add("is-home")
 })

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä