Просмотр исходного кода

fixbug:解决信创错扣补款成功,但本地失败,系bean转换失败

xiari 1 год назад
Родитель
Сommit
59def35602

+ 9 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/SystemUseTypeEnum.java

@@ -69,6 +69,15 @@ public enum SystemUseTypeEnum {
         return this.name();
     }
 
+    public static SystemUseTypeEnum getEnumByCode(int code) {
+        for (SystemUseTypeEnum item : SystemUseTypeEnum.values()) {
+            if (item.code().equals(code)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
     /***
      * 校验重复的code值
      */

+ 15 - 1
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/yktOperation/SyncRemotePtCardCenterService.java

@@ -16,7 +16,9 @@ import org.dromara.common.core.config.DefaultConfig;
 import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.enums.CardOperateEnum;
 import org.dromara.common.core.enums.CardStatusEnum;
+import org.dromara.common.core.enums.SystemUseTypeEnum;
 import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.message.kafka.domain.KafkaMessage;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
@@ -56,11 +58,23 @@ public class SyncRemotePtCardCenterService {
      * 远程调用错扣补款
      */
     public void errFill(Object msg) throws ServiceException{
-        boolean flag = bagService.createErrFillRecord(JSONUtil.parseObj(msg).toBean(RemoteConsumptionBo.class));
+        JSONObject entries = JSONUtil.parseObj(msg);
+        entries.set("useType", SystemUseTypeEnum.CONSUME); //消费 避免转换bean出现异常
+        boolean flag = bagService.createErrFillRecord(entries.toBean(RemoteConsumptionBo.class));
         if (!flag){
             throw new ServiceException("错扣补款失败");
         }
     }
+
+    /*public static void main(String[] args) {
+        String json = "{\"body\":{\"bagType\":\"3\",\"cardNo\":36541,\"consumeDate\":\"2025-02-16 17:27:03\",\"consumeId\":\"3a420bcc490036000024450002dddd03\",\"consumeMoney\":20.00,\"factoryId\":2958312355,\"fillDate\":\"2025-02-17 09:42:38\",\"mealType\":3,\"operatorId\":100,\"operatorMoney\":20.00,\"operatorName\":\"超级管理员\",\"params\":{},\"realName\":\"李超\",\"recordId\":19615,\"recordStatus\":364,\"statusFlag\":4,\"tenantId\":\"25\",\"termNo\":54,\"termRecordId\":9285,\"useType\":\"100\",\"userId\":2348,\"userNumb\":\"15096307920\"},\"header\":{\"eventId\":\"e4f5256e274c4321b07f98c2ef47eac9\",\"eventType\":\"YKT_109_SUPPLY\",\"sender\":\"YKT_109\",\"tenantId\":\"25\",\"timestamp\":1739756508107}}";
+        KafkaMessage<?> receiveMsg = JSONUtil.toBean(json, KafkaMessage.class);
+        JSONObject entries = JSONUtil.parseObj(receiveMsg.getBody());
+        entries.set("useType", SystemUseTypeEnum.CONSUME);
+        RemoteConsumptionBo remoteConsumptionBo = entries.toBean(RemoteConsumptionBo.class);
+        System.err.println(remoteConsumptionBo);
+    }*/
+
     /**
      * 远程调用批量充值
      */