From 88a106141826b817a6d4b8e41c48160cef011f5e Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期一, 22 十二月 2025 13:48:23 +0800
Subject: [PATCH] 初始化

---
 src/main/java/com/hk/NumericalCollection/service/impl/NumericalServiceImpl.java   |   10 +
 .gitignore                                                                        |    1 
 AGENTS.md                                                                         |   34 +++++
 CLAUDE.md                                                                         |  168 ++++++++++++++++++++++++++++
 src/main/java/com/hk/NumericalCollection/config/DataAcquisitionConfiguration.java |    2 
 src/test/java/com/hk/NumericalCollection/DeviceReceivingApplicationTests.java     |   69 +++--------
 start.bat                                                                         |   46 +++++++
 src/main/resources/application.yml                                                |    2 
 8 files changed, 280 insertions(+), 52 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..85e7c1d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/.idea/
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..c00924f
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,34 @@
+# Repository Guidelines
+These notes explain how to contribute to NumericalCollection safely and consistently.
+
+## Project Structure & Module Organization
+The Spring Boot sources live in `src/main/java/com/hk/NumericalCollection`, split into `config`, `controller`, `service`, `mapper`, `entity`, `dto`, and `task`. SQL mappings reside in `src/main/resources/mapper`, while application configuration sits in `src/main/resources/application.yml`. Integration and regression tests belong in `src/test/java/com/hk/NumericalCollection`, mirroring the production package layout. Maven metadata and dependency management are handled in the root `pom.xml`.
+
+## Build, Test, and Development Commands
+Run `mvn clean install` to resolve dependencies and build the shaded JAR. Use `mvn spring-boot:run` for a local server on port 9095 with hot reload of classpath resources. Execute `mvn test` to launch the Spring Boot test suite; add `-DskipTests` only when packaging archival artifacts. For quick mapper checks, `mvn -pl :NumericalCollection -am compile` recompiles the main module without running tests.
+
+## Coding Style & Naming Conventions
+Target Java 8 with 4-space indentation and Unix line endings. Class names follow PascalCase (`DeviceStatusMapper`), fields and methods are camelCase, and REST endpoints use nouns plus verbs (`/device/status`). Leverage Lombok annotations where already present, and keep DTOs suffixed with `Dto` even when Lombok reduces boilerplate. Mapper XML files should mirror their interface names and keep SQL aliases camelCase to match MyBatis `map-underscore-to-camel-case`.
+
+## Testing Guidelines
+Extend `spring-boot-starter-test` defaults; new tests should end with `Tests` and live alongside the production package. Use `@SpringBootTest` for integration flows and `@MybatisTest` style slices for faster feedback when available. Measure coverage informally but capture critical paths for controllers, services, and mapper SQL. 娉細鎻愪氦鍓嶈鏈湴杩愯鍏ㄩ儴娴嬭瘯锛岄伩鍏嶅奖鍝嶅洟闃熻繘搴︺��
+
+## Commit & Pull Request Guidelines
+Write concise, descriptive commit messages such as `feat: add device throughput aggregation` or `fix(controller): handle empty status payload`. Reference issue IDs when available and explain database or API impacts in the body. Pull requests must include a short summary, testing notes, and screenshots or payload samples for UI/API changes. Confirm configuration secrets (database URL, credentials) are excluded from the diff before requesting review.
+
+## Security & Configuration Tips
+Override production database credentials in `application.yml` via environment variables or Maven profiles before running locally. Shared logs and SQL captures must redact customer identifiers. Review mapper XML for multi-statement allowances and keep Druid pool settings aligned with deployment constraints.
+
+寮�鍙戝伐浣滄祦绋�
+闂瑙e喅娴佺▼
+1.	棣栧厛鎬濊�冮棶棰橈紝闃呰浠g爜搴撲腑鐨勭浉鍏虫枃浠讹紝骞跺皢璁″垝鍐欏叆 tasks/todo.md
+2.	璁″垝搴斿寘鍚彲浠ュ嬀閫夊畬鎴愮殑寰呭姙浜嬮」鍒楄〃
+3.	寮�濮嬪伐浣滃墠锛屼笌鎴戠‘璁よ鍒�
+4.	鐒跺悗寮�濮嬪鐞嗗緟鍔炰簨椤癸紝瀹屾垚鏃舵爣璁颁负瀹屾垚
+5.	姣忎竴姝ラ兘鎻愪緵楂樺眰娆$殑鍙樺寲璇存槑
+6.	浣挎瘡涓换鍔″拰浠g爜鏇存敼灏藉彲鑳界畝鍗曪紝閬垮厤澶ц妯℃垨澶嶆潅鐨勬洿鏀�
+7.	姣忎釜鏇存敼搴斿敖鍙兘灏戝湴褰卞搷浠g爜锛屼竴鍒囦互绠�鍗曟�т负鏍稿績
+8.	鏈�鍚庯紝鍦� todo.md 鏂囦欢涓坊鍔犲鏌ラ儴鍒嗭紝鎬荤粨鎵�鍋氱殑鏇存敼鍜屽叾浠栫浉鍏充俊鎭�
+      寮�鍙戝師鍒�
+      猞�	涓嶆噿鎯�: 缁濅笉鎳掓儼銆傚鏋滄湁閿欒锛屾壘鍒版牴鏈師鍥犲苟淇瀹冦�備笉瑕佷娇鐢ㄤ复鏃朵慨澶嶃�備綘鏄竴鍚嶉珮绾у紑鍙戜汉鍛橈紝缁濅笉鎳掓儼銆�
+      猞�	绠�鍗曟��: 浣挎墍鏈変慨澶嶅拰浠g爜鏇存敼灏藉彲鑳界畝鍗曘�傚畠浠彧搴斿奖鍝嶄笌浠诲姟鐩稿叧鐨勫繀瑕佷唬鐮侊紝涓嶅簲褰卞搷鍏朵粬鍐呭銆傚簲灏藉彲鑳藉皯鍦板奖鍝嶄唬鐮併�備綘鐨勭洰鏍囨槸涓嶈寮曞叆浠讳綍閿欒銆備竴鍒囬兘鍏充箮绠�鍗曟�с��
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000..34cd238
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,168 @@
+# CLAUDE.md
+
+This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
+
+## Project Overview
+
+NumericalCollection is a Spring Boot 2.6.13 application that collects and synchronizes device metrics data from manufacturing equipment. It integrates with an Oracle database and external device APIs to fetch real-time device data, daily statistics, and production order information. The application runs scheduled tasks to poll device data and provides REST endpoints for manual synchronization.
+
+## Build and Run Commands
+
+**Build the project:**
+```bash
+mvn clean install
+```
+
+**Run the application locally:**
+```bash
+mvn spring-boot:run
+```
+The server starts on port 9095 (configured in application.yml).
+
+**Run tests:**
+```bash
+mvn test
+```
+
+**Compile without tests:**
+```bash
+mvn compile -DskipTests
+```
+
+**Package for deployment:**
+```bash
+mvn clean package -DskipTests
+```
+Produces `target/NumericalCollection.jar`.
+
+## Architecture
+
+### Core Package Structure
+
+- `config/` - Spring configuration classes, including DataAcquisitionConfiguration, MybatisPlusConfig, and result wrappers
+- `controller/` - REST controllers, primarily KMController which handles manual synchronization endpoints
+- `service/` and `service/impl/` - Business logic layer
+  - `INumericalService` - Core service for device data retrieval and synchronization
+  - `INumericalNoOrderService` - Service for device operations without order context (device list, real-time data, daily statistics)
+  - `DeviceMetricsService` - Handles manual synchronization operations and PDF conversion
+  - Entity-specific services follow naming pattern `{Entity}Service` (e.g., DeviceService, MesNumericalService)
+- `mapper/` - MyBatis-Plus mapper interfaces for database operations
+- `entity/` - JPA/MyBatis entities representing database tables
+- `dto/` - Data transfer objects for API requests/responses
+- `task/` - Scheduled task components, specifically ScheduledTasks for automated data collection
+
+### Data Flow Architecture
+
+1. **Scheduled Data Collection** (`ScheduledTasks.java`):
+   - Every 2 minutes: Fetches real-time device data for main devices and BYCL devices (offset by 30 seconds)
+   - Daily at 1 AM: Syncs production orders from Womdaa to MesOrderSelect
+   - Daily at 2 AM: Collects previous day's device statistics
+   - Weekly on Sunday: Cleans up old data (removes records older than 1 week)
+
+2. **External API Integration**:
+   - Uses OkHttp3 for HTTP calls to external device management systems
+   - ApiService handles request/response serialization with Gson/FastJSON
+   - Device data retrieved via `INumericalService` methods
+
+3. **Database Layer**:
+   - MyBatis-Plus with Oracle JDBC driver (ojdbc8)
+   - Druid connection pool (5-30 connections)
+   - XML-based SQL mappings in `src/main/resources/mapper/`
+   - Automatic camelCase mapping enabled (`map-underscore-to-camel-case: true`)
+
+4. **Manual Synchronization Endpoints** (`KMController`):
+   - `/Numerical/manualSynchronization` - Sync device metrics for a specific order
+   - `/Numerical/manualSynchronizationBycl` - Sync BYCL device metrics
+   - `/Numerical/RefreshDev` and `/Numerical/RefreshDevBycl` - Refresh device data
+   - `/Numerical/PdfToBase64` - Convert PDF reports to Base64
+
+### Key Dependencies
+
+- Spring Boot 2.6.13 (Java 8)
+- MyBatis-Plus 3.5.4 for database operations
+- Druid 1.2.16 for connection pooling
+- OkHttp 4.9.3 for HTTP client
+- Hutool 5.8.18 for utilities (date handling, etc.)
+- FastJSON 2.0.32 and Gson 2.8.9 for JSON processing
+- Apache POI 4.1.2 for Excel handling
+- PDFBox 2.0.27 for PDF operations
+- Lombok for boilerplate reduction
+
+## Development Notes
+
+### Database Configuration
+
+The application connects to Oracle database at 192.168.0.94:1521/orcl with credentials in `application.yml`. Override these for local development using environment variables or Spring profiles:
+```bash
+mvn spring-boot:run -Dspring-boot.run.arguments="--spring.datasource.url=jdbc:oracle:thin:@localhost:1521/orcl --spring.datasource.username=user --spring.datasource.password=pass"
+```
+
+### MyBatis Mapper Development
+
+- Mapper interfaces in `mapper/` package are auto-scanned via `@MapperScan` annotation
+- Corresponding XML files must be in `src/main/resources/mapper/` with matching names
+- SQL result columns use snake_case, automatically mapped to camelCase entity fields
+- Multi-statement execution is enabled in Druid configuration
+
+### Service Layer Pattern
+
+Services extend `IService<Entity>` from MyBatis-Plus for CRUD operations. Implementations follow the pattern:
+```java
+@Service
+@RequiredArgsConstructor
+public class EntityServiceImpl extends ServiceImpl<EntityMapper, Entity> implements EntityService
+```
+
+Use constructor injection via Lombok's `@RequiredArgsConstructor` for dependencies.
+
+### Scheduled Task Development
+
+Add new scheduled methods to `ScheduledTasks.java` component. Cron expressions follow standard format. Ensure error handling wraps API calls in try-catch blocks as shown in existing tasks.
+
+### Testing Considerations
+
+- Tests should extend Spring Boot test framework
+- Mock external API calls to avoid dependencies on external systems during testing
+- Test database operations using embedded H2 or test Oracle schema
+- Run full test suite before committing: `mvn clean test`
+
+## Common Operations
+
+### Adding a New Device Endpoint
+
+1. Add method to `INumericalService` interface
+2. Implement in corresponding `ServiceImpl` class
+3. Add REST endpoint in `KMController` if manual trigger needed
+4. Create/update mapper interface and XML for database operations
+5. Add entity/DTO classes if new data structures needed
+
+### Modifying Scheduled Tasks
+
+Edit `ScheduledTasks.java` and adjust cron expressions. Remember existing offsets:
+- Main device polling: every 2 minutes at :00 seconds
+- BYCL device polling: every 2 minutes at :30 seconds
+- Order sync: daily at 1 AM
+- Statistics collection: daily at 2 AM
+- Data cleanup: weekly Sunday at midnight
+
+### Database Schema Changes
+
+1. Apply schema changes to Oracle database
+2. Update entity classes with new fields (use Lombok annotations)
+3. Update mapper XML files with new column mappings
+4. Regenerate any affected DTOs
+5. Update service layer logic to handle new fields
+
+寮�鍙戝伐浣滄祦绋�
+闂瑙e喅娴佺▼
+1.	棣栧厛鎬濊�冮棶棰橈紝闃呰浠g爜搴撲腑鐨勭浉鍏虫枃浠讹紝骞跺皢璁″垝鍐欏叆 tasks/todo.md
+2.	璁″垝搴斿寘鍚彲浠ュ嬀閫夊畬鎴愮殑寰呭姙浜嬮」鍒楄〃
+3.	寮�濮嬪伐浣滃墠锛屼笌鎴戠‘璁よ鍒�
+4.	鐒跺悗寮�濮嬪鐞嗗緟鍔炰簨椤癸紝瀹屾垚鏃舵爣璁颁负瀹屾垚
+5.	姣忎竴姝ラ兘鎻愪緵楂樺眰娆$殑鍙樺寲璇存槑
+6.	浣挎瘡涓换鍔″拰浠g爜鏇存敼灏藉彲鑳界畝鍗曪紝閬垮厤澶ц妯℃垨澶嶆潅鐨勬洿鏀�
+7.	姣忎釜鏇存敼搴斿敖鍙兘灏戝湴褰卞搷浠g爜锛屼竴鍒囦互绠�鍗曟�т负鏍稿績
+8.	鏈�鍚庯紝鍦� todo.md 鏂囦欢涓坊鍔犲鏌ラ儴鍒嗭紝鎬荤粨鎵�鍋氱殑鏇存敼鍜屽叾浠栫浉鍏充俊鎭�
+      寮�鍙戝師鍒�
+      猞�	涓嶆噿鎯�: 缁濅笉鎳掓儼銆傚鏋滄湁閿欒锛屾壘鍒版牴鏈師鍥犲苟淇瀹冦�備笉瑕佷娇鐢ㄤ复鏃朵慨澶嶃�備綘鏄竴鍚嶉珮绾у紑鍙戜汉鍛橈紝缁濅笉鎳掓儼銆�
+      猞�	绠�鍗曟��: 浣挎墍鏈変慨澶嶅拰浠g爜鏇存敼灏藉彲鑳界畝鍗曘�傚畠浠彧搴斿奖鍝嶄笌浠诲姟鐩稿叧鐨勫繀瑕佷唬鐮侊紝涓嶅簲褰卞搷鍏朵粬鍐呭銆傚簲灏藉彲鑳藉皯鍦板奖鍝嶄唬鐮併�備綘鐨勭洰鏍囨槸涓嶈寮曞叆浠讳綍閿欒銆備竴鍒囬兘鍏充箮绠�鍗曟�с��
\ No newline at end of file
diff --git a/src/main/java/com/hk/NumericalCollection/config/DataAcquisitionConfiguration.java b/src/main/java/com/hk/NumericalCollection/config/DataAcquisitionConfiguration.java
index 8ae1139..5f57b83 100644
--- a/src/main/java/com/hk/NumericalCollection/config/DataAcquisitionConfiguration.java
+++ b/src/main/java/com/hk/NumericalCollection/config/DataAcquisitionConfiguration.java
@@ -12,7 +12,7 @@
     /**
      * API鍩虹URL
      */
-    public static final String API_BASE_URL = "http://172.16.2.238:8100/lantingNewB/open";
+    public static final String API_BASE_URL = "http://172.100.1.114:8100/lantingNewB/open";
 
     /**
      * 鑾峰彇绛惧悕瀛楁URL
diff --git a/src/main/java/com/hk/NumericalCollection/service/impl/NumericalServiceImpl.java b/src/main/java/com/hk/NumericalCollection/service/impl/NumericalServiceImpl.java
index b47612c..0fc71cf 100644
--- a/src/main/java/com/hk/NumericalCollection/service/impl/NumericalServiceImpl.java
+++ b/src/main/java/com/hk/NumericalCollection/service/impl/NumericalServiceImpl.java
@@ -82,12 +82,20 @@
 
         List<Device> deviceList = response.getList();
 
+        // 娓呯┖id锛岃鏁版嵁搴撹嚜鍔ㄧ敓鎴�
+        deviceList.forEach(d -> d.setId(null));
+
         List<String> uidList = deviceList.stream().map(Device::getDevNo).collect(Collectors.toList());
 
         LambdaUpdateWrapper<Device> wrapper = new LambdaUpdateWrapper<>();
         wrapper.in(Device::getDevNo, uidList);
         deviceService.remove(wrapper);
-        return deviceService.saveOrUpdateBatch(deviceList);
+        
+        // SQL Server 鎵归噺鎻掑叆鍏煎鎬ч棶棰橈紝鏀圭敤閫愭潯鎻掑叆
+        for (Device device : deviceList) {
+            deviceService.save(device);
+        }
+        return true;
     }
 
     //涓烘垜澶嶅埗涓�浠借繖涓柟娉曞嚭鏉ワ紝鎶婄敤鍒扮殑DEVICE_STATUS瀹炰綋绫绘敼涓篋EVICE_STATUS_BYCL锛孧ES_NUMERICAL瀹炰綋鏀逛负MES_NUMERICAL_BYCL锛屽叾浠栫殑閫昏緫涓嶅彉骞剁粰鎴戞敞閲�
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index bbba288..be962ee 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -32,7 +32,7 @@
 mybatis-plus:
   global-config:
     db-config:
-      id-type: INPUT
+      id-type: AUTO
   configuration:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     map-underscore-to-camel-case: true
diff --git a/src/test/java/com/hk/NumericalCollection/DeviceReceivingApplicationTests.java b/src/test/java/com/hk/NumericalCollection/DeviceReceivingApplicationTests.java
index a1c7395..c55c6a0 100644
--- a/src/test/java/com/hk/NumericalCollection/DeviceReceivingApplicationTests.java
+++ b/src/test/java/com/hk/NumericalCollection/DeviceReceivingApplicationTests.java
@@ -54,16 +54,16 @@
 
     @Test
     void getDeviceDayCount() throws IOException {
-        DateTime oneWeekAgo = DateUtil.offsetDay(DateUtil.date(), -1);
-        String format = DateUtil.format(oneWeekAgo, "yyyy-MM-dd");
-        try {
-            List<DevMachine> list = devMachineService.list();
-            for (DevMachine s : list) {
-                numericalService.getDeviceDayCount(s.getDevNo(), format);
-            }
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
+//        DateTime oneWeekAgo = DateUtil.offsetDay(DateUtil.date(), -1);
+//        String format = DateUtil.format(oneWeekAgo, "yyyy-MM-dd");
+//        try {
+//            List<DevMachine> list = devMachineService.list();
+//            for (DevMachine s : list) {
+//                numericalService.getDeviceDayCount(s.getDevNo(), format);
+//            }
+//        } catch (IOException e) {
+//            throw new RuntimeException(e);
+//        }
         //
        //numericalService.getDeviceDayCount("862858070704174_1", "2025-04-22");
     }
@@ -90,26 +90,17 @@
 
 
 //        numericalService.getDeviceRealTimeDataBycl("866042075016340");
-        List<DevMacBycl> list = devMacByclService.list();
-        list.forEach(s -> {
-            try {
-                numericalService.getDeviceRealTimeDataBycl(s.getDevNo());
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        });
+//        List<DevMachine> list = devMachineService.list();
+//        list.forEach(s -> {
+//            try {
+//                numericalNoOrderService.getDeviceRealTimeData(s.getDevNo());
+//            } catch (Exception e) {
+//                throw new RuntimeException(e);
+//            }
+//        });
     }
 
-    //deviceMetricsService.manualSynchronizationBycl(barcode)
-    @Test
-    public void get1() throws Exception {
-        NumbericalDto barcode = new NumbericalDto();
-        barcode.setMachineNo("C05");
-        barcode.setOrderId(7890268L);
-        deviceMetricsService.manualSynchronizationBycl(barcode);
-    }
-
-    @Test
+    //@Test
     public void SoDeviceList() {
         try {
             boolean b = numericalService.SoDeviceList();
@@ -127,29 +118,9 @@
     }
 
     /**
-     * 娴嬭瘯鑾峰彇璁惧鏁呴殰鍒楄〃
-     */
-    @Test
-    public void testGetDeviceErrorList() throws Exception {
-        // 璁剧疆娴嬭瘯鍙傛暟
-        String uid = "864606067274372"; // 璁惧缂栧彿
-        String startDate = "2024-01-01"; // 寮�濮嬫棩鏈�
-        String endDate = "2024-12-31"; // 缁撴潫鏃ユ湡
-
-        try {
-            // 璋冪敤鏂规硶鑾峰彇璁惧鏁呴殰鍒楄〃
-            numericalNoOrderService.getDeviceErrorList(uid, startDate, endDate);
-            System.out.println("璁惧鏁呴殰鍒楄〃鑾峰彇鎴愬姛");
-        } catch (Exception e) {
-            System.err.println("璁惧鏁呴殰鍒楄〃鑾峰彇澶辫触: " + e.getMessage());
-            throw e;
-        }
-    }
-
-    /**
      * 娴嬭瘯鎵归噺鑾峰彇鎵�鏈夎澶囩殑鏁呴殰鍒楄〃
      */
-    @Test
+    //@Test
     public void testGetAllDeviceErrorList() throws Exception {
         DateTime yesterday = DateUtil.yesterday();
         DateTime startDateTime = DateUtil.parse(DateUtil.format(yesterday, "yyyy-MM-dd") + " 07:30:00");
diff --git a/start.bat b/start.bat
new file mode 100644
index 0000000..b60df92
--- /dev/null
+++ b/start.bat
@@ -0,0 +1,46 @@
+@echo off
+chcp 65001 >nul
+setlocal enabledelayedexpansion
+
+echo ========================================
+echo    NumericalCollection 鍚姩鑴氭湰
+echo ========================================
+echo.
+
+echo 璇烽�夋嫨鏁版嵁婧愮幆澧�:
+echo [1] 娴嬭瘯鐜 (TEST_MES - 172.16.2.238)
+echo [2] 鐢熶骇鐜 (璇烽厤缃敓浜ф暟鎹簱淇℃伅)
+echo.
+
+set /p choice=璇疯緭鍏ラ�夐」 (1/2): 
+
+if "%choice%"=="1" (
+    set DB_URL=jdbc:sqlserver://172.16.2.238:12468;databaseName=TEST_MES;encrypt=false;trustServerCertificate=true
+    set DB_USER=sa
+    set DB_PASS=FuDa@2025
+    set ENV_NAME=娴嬭瘯鐜
+) else if "%choice%"=="2" (
+    set DB_URL=jdbc:sqlserver://鐢熶骇鏈嶅姟鍣↖P:绔彛;databaseName=PROD_MES;encrypt=false;trustServerCertificate=true
+    set DB_USER=prod_user
+    set DB_PASS=prod_password
+    set ENV_NAME=鐢熶骇鐜
+) else (
+    echo 鏃犳晥閫夐」锛屼娇鐢ㄩ粯璁ゆ祴璇曠幆澧�
+    set DB_URL=jdbc:sqlserver://172.16.2.238:12468;databaseName=TEST_MES;encrypt=false;trustServerCertificate=true
+    set DB_USER=sa
+    set DB_PASS=FuDa@2025
+    set ENV_NAME=娴嬭瘯鐜
+)
+
+echo.
+echo 褰撳墠鐜: %ENV_NAME%
+echo 鏁版嵁搴撳湴鍧�: %DB_URL%
+echo.
+
+echo 姝e湪鍚姩搴旂敤...
+java -jar target/NumericalCollection.jar ^
+    --spring.datasource.url="%DB_URL%" ^
+    --spring.datasource.username=%DB_USER% ^
+    --spring.datasource.password=%DB_PASS%
+
+pause

--
Gitblit v1.9.3