Explorar el Código

1、增加报税口的上行/下行测试报文

liweimin hace 2 semanas
padre
commit
f313591db7

+ 25 - 3
ruoyi-device/src/test/java/com/ruoyi/device/EncoderDecoderTest.java

@@ -4,6 +4,8 @@ import com.alibaba.fastjson2.JSON;
 import com.ruoyi.device.mqtt.constants.MqttConstants;
 import com.ruoyi.device.mqtt.domain.decoder.DeviceLoginRequest;
 import com.ruoyi.device.mqtt.domain.decoder.DevicePtRequest;
+import com.ruoyi.device.mqtt.domain.decoder.TaxDataUp;
+import com.ruoyi.device.mqtt.domain.encoder.TaxDataDown;
 import com.ruoyi.device.mqtt.enums.CmdTypeEnum;
 import com.ruoyi.device.mqtt.enums.VersionEnum;
 import com.ruoyi.device.mqtt.util.CRC16Standard;
@@ -46,7 +48,7 @@ public class EncoderDecoderTest
     public void encoder()
     {
         completeMessageStructure();
-        String jsonString = JSON.toJSONString(buildDevicePtRequest());
+        String jsonString = JSON.toJSONString(buildTaxDataUp());
         System.out.println("【上行组帧】JSON序列化结果:");
         System.out.println(jsonString);
         // 模拟JSON字节数组构建(与AbstractJsonEncoder逻辑一致)
@@ -81,12 +83,27 @@ public class EncoderDecoderTest
         return request;
     }
 
+    public TaxDataUp buildTaxDataUp()
+    {
+        TaxDataUp up = new TaxDataUp();
+        up.setCmdType(CmdTypeEnum.COMMON_TAX.getCmdUpType());
+        up.setDeviceType("9102");
+        up.setDeviceSn(5L);
+
+        // 非必须字段(按照图片中的 mock 值填充)
+        up.setInterfaceNo("B");                                     // mock: A - 接口号
+        up.setGunNo(2);                                             // mock: 1 - 枪号
+        up.setNewNationalStandard(0);                               // mock: 0 - 是否开启新国标,1:开启,0:关闭
+
+        return up;
+    }
+
     @Test
     public void decoder()
     {
         completeMessageStructure();
-        System.out.println("【下行解析】完整报文:" + getDeviceLoginResponse());
-        byte[] bytes = hexStringToByte(getDeviceLoginResponse().replace(" ", ""));
+        System.out.println("【下行解析】完整报文:" + getTaxDataDown());
+        byte[] bytes = hexStringToByte(getTaxDataDown().replace(" ", ""));
         String decode = decode(bytes);
         System.out.println("【下行解析】报文体:" + decode);
     }
@@ -103,6 +120,11 @@ public class EncoderDecoderTest
         return "fefe 0301 0000 004a 0000 d200 7b22 636d 6454 7970 6522 3a22 7473 623a 7074 3a64 6f77 6e22 2c22 636f 6465 223a 312c 2264 6576 6963 6543 6f6e 6669 6722 3a7b 2264 6576 6963 6550 726f 6475 6365 4461 7465 223a 2232 3032 3630 3531 3322 2c22 6465 7669 6365 536e 223a 352c 2264 6576 6963 6554 7970 6522 3a22 3931 3032 227d 2c22 6465 7669 6365 536e 223a 3836 3437 3933 3038 3030 3835 3630 332c 2264 6576 6963 6554 7970 6522 3a22 3931 3032 222c 2269 6d65 6922 3a22 3836 3437 3933 3038 3030 3835 3630 3322 2c22 6d73 6722 3a22 e693 8de4 bd9c e688 90e5 8a9f 227d 22f2";
     }
 
+    public String getTaxDataDown()
+    {
+        // {"buttonType":"common:tax:query","cmdType":"common:tax:down","deviceSn":5,"deviceType":"9102","gunNo":1,"interfaceNo":"A","newNationalStandard":0,"newNationalStandardTaxNo":1,"queryDate":"2026-05-25"}
+        return "fefe 0301 0000 004a 0000 ca00 7b22 6275 7474 6f6e 5479 7065 223a 2263 6f6d 6d6f 6e3a 7461 783a 7175 6572 7922 2c22 636d 6454 7970 6522 3a22 636f 6d6d 6f6e 3a74 6178 3a64 6f77 6e22 2c22 6465 7669 6365 536e 223a 352c 2264 6576 6963 6554 7970 6522 3a22 3931 3032 222c 2267 756e 4e6f 223a 312c 2269 6e74 6572 6661 6365 4e6f 223a 2241 222c 226e 6577 4e61 7469 6f6e 616c 5374 616e 6461 7264 223a 302c 226e 6577 4e61 7469 6f6e 616c 5374 616e 6461 7264 5461 784e 6f22 3a31 2c22 7175 6572 7944 6174 6522 3a22 3230 3236 2d30 352d 3235 227d a57e";
+    }
 
     /**
      * 上行组帧测试(设备 → 平台)