wenhongquan 2 年 前
コミット
dbf278a9ff

+ 7 - 0
ruoyi-modules/ruoyi-khy/pom.xml

@@ -30,6 +30,13 @@
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+
+
+        <dependency>
             <groupId>org.dromara</groupId>
             <groupId>org.dromara</groupId>
             <artifactId>ruoyi-common-doc</artifactId>
             <artifactId>ruoyi-common-doc</artifactId>
         </dependency>
         </dependency>

+ 36 - 3
ruoyi-modules/ruoyi-khy/src/main/java/jt809/handle/JT809Packet0x1202Handle.java

@@ -1,15 +1,20 @@
 package jt809.handle;
 package jt809.handle;
 
 
+import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
 import jt809.common.util.CommonUtils;
 import jt809.common.util.CommonUtils;
 import  jt809.packet.JT809Packet0x1202;
 import  jt809.packet.JT809Packet0x1202;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.SimpleChannelInboundHandler;
 import io.netty.channel.SimpleChannelInboundHandler;
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 import org.dromara.system.domain.GpsData;
 import org.dromara.system.domain.GpsData;
 import org.dromara.util.CamelDataUtil;
 import org.dromara.util.CamelDataUtil;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Import;
 
 
 /**
 /**
  * @Author: Xiuming Lee
  * @Author: Xiuming Lee
@@ -17,26 +22,54 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @Version 1.0
  * @Version 1.0
  * @Describe:
  * @Describe:
  */
  */
+@Import(cn.hutool.extra.spring.SpringUtil.class)
 public class JT809Packet0x1202Handle extends SimpleChannelInboundHandler<JT809Packet0x1202> {
 public class JT809Packet0x1202Handle extends SimpleChannelInboundHandler<JT809Packet0x1202> {
     private static Logger log = LoggerFactory.getLogger(JT809Packet0x1202Handle.class);
     private static Logger log = LoggerFactory.getLogger(JT809Packet0x1202Handle.class);
 
 
-    @Autowired
-    private CamelDataUtil camelDataUtil;
 
 
     @Override
     @Override
     protected void channelRead0(ChannelHandlerContext ctx, JT809Packet0x1202 msg) {
     protected void channelRead0(ChannelHandlerContext ctx, JT809Packet0x1202 msg) {
         log.info("车辆定位信息:{}", msg.toString());
         log.info("车辆定位信息:{}", msg.toString());
         if (msg.getVec1() > 0 || msg.getVec2() > 0) {
         if (msg.getVec1() > 0 || msg.getVec2() > 0) {
             GpsData gpsData = new GpsData();
             GpsData gpsData = new GpsData();
-            gpsData.setDevicecode(msg.getVehicleNo().trim());
+            gpsData.setDevicecode(convertToPinyin(msg.getVehicleNo().trim()));
             gpsData.setLat((double) (msg.getLat()/1000000));
             gpsData.setLat((double) (msg.getLat()/1000000));
             gpsData.setLng((double) (msg.getLon()/1000000));
             gpsData.setLng((double) (msg.getLon()/1000000));
             gpsData.setAlt(0.0);
             gpsData.setAlt(0.0);
             gpsData.setSpeed((double) (msg.getVec1() > 0?msg.getVec1():msg.getVec2()));
             gpsData.setSpeed((double) (msg.getVec1() > 0?msg.getVec1():msg.getVec2()));
+
+            final  CamelDataUtil camelDataUtil = SpringUtil.getBean("camelDataUtil");
             camelDataUtil.processGpsData(gpsData);
             camelDataUtil.processGpsData(gpsData);
         }
         }
 
 
 
 
 
 
     }
     }
+
+
+    public static String convertToPinyin(String chinese)  {
+        try {
+            StringBuilder pinyin = new StringBuilder();
+            char[] chars = chinese.toCharArray();
+            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+            format.setToneType(net.sourceforge.pinyin4j.format.HanyuPinyinToneType.WITHOUT_TONE);
+
+            for (char c : chars) {
+                String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format);
+
+                if (pinyinArray != null) {
+                    pinyin.append(pinyinArray[0]);
+                } else {
+                    pinyin.append(c);
+                }
+            }
+            return pinyin.toString().trim();
+        }catch (Exception e){
+
+        }
+        return "car_";
+
+    }
+
+
 }
 }

+ 2 - 0
ruoyi-modules/ruoyi-khy/src/main/java/jt809/protocol/decoder/JT809Packet0x1202Decoder.java

@@ -7,6 +7,7 @@ import  jt809.packet.JT809Packet0x1202;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBuf;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Import;
 
 
 import java.nio.charset.Charset;
 import java.nio.charset.Charset;
 import java.time.LocalDate;
 import java.time.LocalDate;
@@ -20,6 +21,7 @@ import static  jt809.common.util.CommonUtils.PACKET_CACHE;
  * @Version 1.0
  * @Version 1.0
  * @Describe:
  * @Describe:
  */
  */
+
 public class JT809Packet0x1202Decoder implements Decoder {
 public class JT809Packet0x1202Decoder implements Decoder {
     private static Logger log = LoggerFactory.getLogger(JT809Packet0x1202Decoder.class);
     private static Logger log = LoggerFactory.getLogger(JT809Packet0x1202Decoder.class);
     @Override
     @Override

+ 5 - 1
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarInfoController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.util.MessageUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -64,7 +65,10 @@ public class TblCarInfoController extends BaseController {
     @SaCheckPermission("system:carInfo:query")
     @SaCheckPermission("system:carInfo:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblCarInfoVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblCarInfoVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long id) {
+                                     @PathVariable Long id ,TblCarInfoBo bo) {
+        MessageUtils.sendLed("0001",bo.getCarNum());
+        MessageUtils.sendTTs("0001",bo.getCarNum());
+
         return R.ok(tblCarInfoService.queryById(id));
         return R.ok(tblCarInfoService.queryById(id));
     }
     }
 
 

+ 1 - 1
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/TblUserVacate.java

@@ -47,7 +47,7 @@ public class TblUserVacate extends BaseEntity {
     /**
     /**
      * 内容描述
      * 内容描述
      */
      */
-    private String desc;
+    private String des;
 
 
     /**
     /**
      * 状态( 1-通过  2-拒绝  0-待处理)
      * 状态( 1-通过  2-拒绝  0-待处理)

+ 1 - 1
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/bo/TblUserVacateBo.java

@@ -45,7 +45,7 @@ public class TblUserVacateBo extends BaseEntity {
     /**
     /**
      * 内容描述
      * 内容描述
      */
      */
-    private String desc;
+    private String des;
 
 
     /**
     /**
      * 状态( 1-通过  2-拒绝  0-待处理)
      * 状态( 1-通过  2-拒绝  0-待处理)

+ 1 - 1
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/vo/TblUserVacateVo.java

@@ -58,7 +58,7 @@ public class TblUserVacateVo implements Serializable {
      * 内容描述
      * 内容描述
      */
      */
     @ExcelProperty(value = "内容描述")
     @ExcelProperty(value = "内容描述")
-    private String desc;
+    private String des;
 
 
     /**
     /**
      * 状态( 1-通过  2-拒绝  0-待处理)
      * 状态( 1-通过  2-拒绝  0-待处理)

+ 1 - 1
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblUserVacateServiceImpl.java

@@ -64,7 +64,7 @@ public class TblUserVacateServiceImpl implements ITblUserVacateService {
         lqw.eq(StringUtils.isNotBlank(bo.getUserInfo()), TblUserVacate::getUserInfo, bo.getUserInfo());
         lqw.eq(StringUtils.isNotBlank(bo.getUserInfo()), TblUserVacate::getUserInfo, bo.getUserInfo());
         lqw.eq(bo.getStartDate() != null, TblUserVacate::getStartDate, bo.getStartDate());
         lqw.eq(bo.getStartDate() != null, TblUserVacate::getStartDate, bo.getStartDate());
         lqw.eq(bo.getEndDate() != null, TblUserVacate::getEndDate, bo.getEndDate());
         lqw.eq(bo.getEndDate() != null, TblUserVacate::getEndDate, bo.getEndDate());
-        lqw.eq(StringUtils.isNotBlank(bo.getDesc()), TblUserVacate::getDesc, bo.getDesc());
+        lqw.eq(StringUtils.isNotBlank(bo.getDes()), TblUserVacate::getDes, bo.getDes());
         lqw.eq(bo.getStatus() != null, TblUserVacate::getStatus, bo.getStatus());
         lqw.eq(bo.getStatus() != null, TblUserVacate::getStatus, bo.getStatus());
         lqw.eq(bo.getCTime() != null, TblUserVacate::getCTime, bo.getCTime());
         lqw.eq(bo.getCTime() != null, TblUserVacate::getCTime, bo.getCTime());
         lqw.eq(bo.getUTime() != null, TblUserVacate::getUTime, bo.getUTime());
         lqw.eq(bo.getUTime() != null, TblUserVacate::getUTime, bo.getUTime());

+ 4 - 3
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/util/CamelDataUtil.java

@@ -29,6 +29,7 @@ import cn.hutool.json.JSONObject;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
 import java.time.Duration;
 import java.time.Duration;
 import java.util.Calendar;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Date;
@@ -64,9 +65,9 @@ public class CamelDataUtil {
 
 
     public void processdata(String body, Exchange exchange) throws UnsupportedEncodingException {
     public void processdata(String body, Exchange exchange) throws UnsupportedEncodingException {
         Map<String,String> o = exchange.getMessage().getHeader("mqheader", Map.class);
         Map<String,String> o = exchange.getMessage().getHeader("mqheader", Map.class);
-        exchange.getMessage().setHeader("CamelPahoOverrideTopic","/dev/"+o.get("devtype")+"/"+o.get("devcode"));
-//        exchange.getMessage().setBody(body.getBytes("gb2312"));
-        exchange.getMessage().setBody(body);
+        exchange.getMessage().setHeader("CamelPahoOverrideTopic","/dev/"+o.get("devtype")+"/"+o.get("devcode")+"/");
+        exchange.getMessage().setBody(body.getBytes(Charset.forName("utf8")));
+//        exchange.getMessage().setBody(body);
     }
     }
 
 
     public void processGpsData(GpsData gpsData){
     public void processGpsData(GpsData gpsData){

+ 1 - 1
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/util/MessageUtils.java

@@ -23,6 +23,6 @@ public class MessageUtils {
         data.put("devtype","tts");
         data.put("devtype","tts");
         data.put("devcode",devicecode);
         data.put("devcode",devicecode);
         final  CamelDataUtil camelDataUtil = SpringUtil.getBean("camelDataUtil");
         final  CamelDataUtil camelDataUtil = SpringUtil.getBean("camelDataUtil");
-        camelDataUtil.SendData("direct:sendMessage", StringUtils.format("{\"val\":\"{}\"}",message), "mqheader", data);
+        camelDataUtil.SendData("direct:sendMessage", StringUtils.format("{\"val\":\"{}\",\"vol\":7}",message), "mqheader", data);
     }
     }
 }
 }