Browse Source

Merge remote-tracking branch 'origin/master'

czt 2 weeks ago
parent
commit
3ed9ea7282

+ 104 - 0
ruoyi-api/src/main/java/com/ruoyi/api/domain/vo/ExternalReadingRecordData.java

@@ -0,0 +1,104 @@
+package com.ruoyi.api.domain.vo;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * 第三方抄表记录数据
+ */
+@Data
+public class ExternalReadingRecordData {
+    
+    @JsonProperty("UsedWaterId")
+    @JSONField(name = "UsedWaterId")
+    private String usedWaterId;
+    
+    @JsonProperty("TaskCode")
+    @JSONField(name = "TaskCode")
+    private String taskCode;
+    
+    @JsonProperty("RouteCode")
+    @JSONField(name = "RouteCode")
+    private String routeCode;
+    
+    @JsonProperty("CardCode")
+    @JSONField(name = "CardCode")
+    private String cardCode;
+    
+    @JsonProperty("MeterCode")
+    @JSONField(name = "MeterCode")
+    private String meterCode;
+    
+    @JsonProperty("ThisMeterNumber")
+    @JSONField(name = "ThisMeterNumber")
+    private String thisMeterNumber;
+    
+    @JsonProperty("ThisMeterDate")
+    @JSONField(name = "ThisMeterDate")
+    private String thisMeterDate;
+    
+    @JsonProperty("ThisMeterStatus")
+    @JSONField(name = "ThisMeterStatus")
+    private String thisMeterStatus;
+    
+    @JsonProperty("LastUsedNumber")
+    @JSONField(name = "LastUsedNumber")
+    private String lastUsedNumber;
+    
+    @JsonProperty("LastMeteNumber")
+    @JSONField(name = "LastMeteNumber")
+    private String lastMeteNumber;
+    
+    @JsonProperty("LastMeterStatus")
+    @JSONField(name = "LastMeterStatus")
+    private String lastMeterStatus;
+    
+    @JsonProperty("LastMeterDate")
+    @JSONField(name = "LastMeterDate")
+    private String lastMeterDate;
+    
+    @JsonProperty("ReaderName")
+    @JSONField(name = "ReaderName")
+    private String readerName;
+    
+    @JsonProperty("EnterName")
+    @JSONField(name = "EnterName")
+    private String enterName;
+    
+    @JsonProperty("EnterDate")
+    @JSONField(name = "EnterDate")
+    private String enterDate;
+    
+    @JsonProperty("ReadingWay")
+    @JSONField(name = "ReadingWay")
+    private String readingWay;
+    
+    @JsonProperty("ReadingType")
+    @JSONField(name = "ReadingType")
+    private String readingType;
+    
+    @JsonProperty("Remark")
+    @JSONField(name = "Remark")
+    private String remark;
+    
+    @JsonProperty("AddReason")
+    @JSONField(name = "AddReason")
+    private String addReason;
+    
+    @JsonProperty("ProgressStatus")
+    @JSONField(name = "ProgressStatus")
+    private String progressStatus;
+    
+    @JsonProperty("OldMeterNumber")
+    @JSONField(name = "OldMeterNumber")
+    private String oldMeterNumber;
+    
+    @JsonProperty("NewMeterNumber")
+    @JSONField(name = "NewMeterNumber")
+    private String newMeterNumber;
+    
+    @JsonProperty("ChangeMeterDate")
+    @JSONField(name = "ChangeMeterDate")
+    private String changeMeterDate;
+}

+ 14 - 20
ruoyi-api/src/main/java/com/ruoyi/api/service/impl/WwkjReadingRecordServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.api.service.impl;
 import com.alibaba.fastjson2.JSON;
 import com.ruoyi.api.domain.WwkjReadingRecord;
 import com.ruoyi.api.domain.WwkjReadingRecordHistory;
+import com.ruoyi.api.domain.vo.ExternalReadingRecordData;
 import com.ruoyi.api.domain.vo.ExternalReadingRecordResponse;
 import com.ruoyi.api.domain.vo.ReadingRecordQueryVo;
 import com.ruoyi.api.mapper.WwkjReadingRecordHistoryMapper;
@@ -48,23 +49,20 @@ public class WwkjReadingRecordServiceImpl implements IWwkjReadingRecordService {
         try {
             // 1. 调用第三方API获取数据
             String apiUrl = rootUrl + "/api/customer/readingrecord";
-            ExternalReadingRecordResponse externalResponse = httpClientUtil.doPost(
+            List<ExternalReadingRecordData> externalDataList = httpClientUtil.doPostList(
                     apiUrl,
                     queryVo,
-                    ExternalReadingRecordResponse.class
+                    ExternalReadingRecordData.class
             );
             // 2. 验证响应
-            if (!"200".equals(externalResponse.getCode()) || !"success".equals(externalResponse.getStatus())) {
-                throw new RuntimeException("第三方接口返回错误: " + externalResponse.getMsg());
-            }
-
-            if (externalResponse.getData() == null || externalResponse.getData().isEmpty()) {
-                return null;
+            if (externalDataList == null || externalDataList.isEmpty()) {
+                logger.info("未查询到抄表记录信息");
+                return Collections.emptyList();
             }
 
             // 3. 转换数据并保存
             List<WwkjReadingRecord> readingRecords = new ArrayList<>();
-            for (ExternalReadingRecordResponse.ExternalReadingRecordData externalData : externalResponse.getData()) {
+            for (ExternalReadingRecordData externalData : externalDataList) {
                 WwkjReadingRecord readingRecord = convertToReadingRecord(externalData);
                 readingRecords.add(readingRecord);
 
@@ -96,24 +94,20 @@ public class WwkjReadingRecordServiceImpl implements IWwkjReadingRecordService {
 
             // 2. 调用第三方API获取数据
             String apiUrl = rootUrl + "/api/customer/readingrecord";
-            ExternalReadingRecordResponse externalResponse = httpClientUtil.doPost(
+            List<ExternalReadingRecordData> externalDataList = httpClientUtil.doPostList(
                     apiUrl,
                     queryVo,
-                    ExternalReadingRecordResponse.class
+                    ExternalReadingRecordData.class
             );
 
-            // 3. 验证响应
-            if (!"200".equals(externalResponse.getCode()) || !"success".equals(externalResponse.getStatus())) {
-                throw new RuntimeException("第三方接口返回错误: " + externalResponse.getMsg());
-            }
-
-            if (externalResponse.getData() == null || externalResponse.getData().isEmpty()) {
-                logger.info("第三方接口返回空数据,定时任务结束");
+            // 2. 验证响应
+            if (externalDataList == null || externalDataList.isEmpty()) {
+                logger.info("未查询到抄表记录信息");
                 return;
             }
 
             // 4. 转换并处理每条数据
-            for (ExternalReadingRecordResponse.ExternalReadingRecordData externalData : externalResponse.getData()) {
+            for (ExternalReadingRecordData externalData : externalDataList) {
                 WwkjReadingRecord readingRecord = convertToReadingRecord(externalData);
 
                 // 跳过水表编号为空的数据
@@ -186,7 +180,7 @@ public class WwkjReadingRecordServiceImpl implements IWwkjReadingRecordService {
     /**
      * 转换第三方数据为实体对象
      */
-    private WwkjReadingRecord convertToReadingRecord(ExternalReadingRecordResponse.ExternalReadingRecordData externalData) {
+    private WwkjReadingRecord convertToReadingRecord(ExternalReadingRecordData externalData) {
         WwkjReadingRecord readingRecord = new WwkjReadingRecord();
         
         readingRecord.setUsedWaterId(externalData.getUsedWaterId());