Przeglądaj źródła

Merge branch 'master' of http://git.xt.wenhq.top:8083/wenhongquan/khyznh

liwei19941102 2 lat temu
rodzic
commit
c0c1c9236f
40 zmienionych plików z 913 dodań i 70 usunięć
  1. 3 0
      ruoyi-admin/pom.xml
  2. 1 1
      ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
  3. 7 0
      ruoyi-admin/src/main/resources/application-dev.yml
  4. 6 0
      ruoyi-admin/src/main/resources/application.yml
  5. 7 4
      ruoyi-admin/src/main/resources/router/t.xml
  6. 8 0
      ruoyi-common/ruoyi-common-core/pom.xml
  7. 36 0
      ruoyi-modules/ruoyi-khy/pom.xml
  8. 2 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/config/CamelRouterConfig.java
  9. 15 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/CodecDecoderFactory.java
  10. 15 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/CodecEncoderFactory.java
  11. 53 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/Decode.java
  12. 59 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/Encode.java
  13. 10 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/NettyChannelHandlerContextMapCache.java
  14. 18 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/pojo/NettyChannelHandlerContext.java
  15. 113 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/CommonController.java
  16. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarDriveWarningController.java
  17. 8 8
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarInfoController.java
  18. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarPathController.java
  19. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarScheduleController.java
  20. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarServiceController.java
  21. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblGoodsLossController.java
  22. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblGoodsOrderController.java
  23. 55 3
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblGpsDataController.java
  24. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblTaxiOrderController.java
  25. 6 6
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblUserVacateController.java
  26. 24 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/CountData.java
  27. 4 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/TblCarSchedule.java
  28. 20 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/bo/CountDataBo.java
  29. 4 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/bo/TblCarScheduleBo.java
  30. 34 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/vo/CountDataVo.java
  31. 4 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/vo/TblCarScheduleVo.java
  32. 17 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/mapper/TblCountDataMapper.java
  33. 51 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/ITblCountDataService.java
  34. 10 2
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblCarInfoServiceImpl.java
  35. 123 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblCountDataServiceImpl.java
  36. 6 3
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblGoodsOrderServiceImpl.java
  37. 120 1
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/util/CamelDataUtil.java
  38. 15 0
      ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/util/YingshiHttp.java
  39. 13 0
      ruoyi-modules/ruoyi-khy/src/main/resources/mapper/system/TblCountDataMapper.xml
  40. 4 0
      script/sql/taos.sql

+ 3 - 0
ruoyi-admin/pom.xml

@@ -15,6 +15,8 @@
         web服务入口
         web服务入口
     </description>
     </description>
 
 
+
+
     <dependencies>
     <dependencies>
 
 
 
 
@@ -101,6 +103,7 @@
 
 
 
 
 
 
+
         <!-- skywalking 整合 logback -->
         <!-- skywalking 整合 logback -->
 <!--        <dependency>-->
 <!--        <dependency>-->
 <!--            <groupId>org.apache.skywalking</groupId>-->
 <!--            <groupId>org.apache.skywalking</groupId>-->

+ 1 - 1
ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java

@@ -1,5 +1,6 @@
 package org.dromara;
 package org.dromara;
 
 
+import com.dtflys.forest.springboot.annotation.ForestScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
 import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
@@ -11,7 +12,6 @@ import org.springframework.context.annotation.ComponentScan;
  * @author Lion Li
  * @author Lion Li
  */
  */
 
 
-//@ComponentScan(basePackages={"cn.hutool.extra.spring"})
 @SpringBootApplication
 @SpringBootApplication
 public class DromaraApplication {
 public class DromaraApplication {
 
 

+ 7 - 0
ruoyi-admin/src/main/resources/application-dev.yml

@@ -247,3 +247,10 @@ justauth:
       redirect-uri: ${justauth.address}/social-callback?source=gitlab
       redirect-uri: ${justauth.address}/social-callback?source=gitlab
 
 
 camelxmlpath: ${XML_PATH:./router/t.xml}
 camelxmlpath: ${XML_PATH:./router/t.xml}
+
+ruoyi:
+  deviceenable: false
+
+yingshi:
+  appkey: 41d1a7a41baa4981a352ab76ff1e652c
+  appsecret: 8ba28044d0c063a79316d3a18a3d3397

+ 6 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -269,3 +269,9 @@ camel:
     name: SampleCamel
     name: SampleCamel
 
 
 
 
+forest:
+  max-connections: 1000        # 连接池最大连接数
+  connect-timeout: 3000        # 连接超时时间,单位为毫秒
+  read-timeout: 3000           # 数据读取超时时间,单位为毫秒
+
+

+ 7 - 4
ruoyi-admin/src/main/resources/router/t.xml

@@ -3,24 +3,27 @@
     <route>
     <route>
         <from uri="timer://myTimer?repeatCount=1"></from>
         <from uri="timer://myTimer?repeatCount=1"></from>
         <to uri="bean:jt809.JT809Server?method=initServer(20004)"/>
         <to uri="bean:jt809.JT809Server?method=initServer(20004)"/>
-
     </route>
     </route>
 
 
     <!--同步服务配置-->
     <!--同步服务配置-->
 
 
     <route>
     <route>
-        <from uri="paho:/dev/gps/#?brokerUrl=tcp://122.51.118.117:1883&amp;userName=iot2yun&amp;password=123456&amp;clientId=khy_redclient"></from>
+        <from uri="paho:/dev/gps/#?brokerUrl=tcp://xt.wenhq.top:8581&amp;userName=iot2yun&amp;password=123456&amp;clientId=khy_redclient"></from>
         <to uri="bean:org.dromara.util.CamelDataUtil?method=ReciveData(${body})"></to>
         <to uri="bean:org.dromara.util.CamelDataUtil?method=ReciveData(${body})"></to>
     </route>
     </route>
 
 
 
 
 
 
     <route>
     <route>
+        <from uri="netty:tcp://0.0.0.0:24000?encoders=#bean:nettyencode&amp;decoders=#bean:nettydecode&amp;exchangePattern=InOnly"/>
+        <to uri="bean:org.dromara.util.CamelDataUtil?method=ReciveTcpData(${body})"></to>
+    </route>
+
+    <route>
         <from uri="direct:sendMessage"/>
         <from uri="direct:sendMessage"/>
         <to uri="bean:org.dromara.util.CamelDataUtil?method=processdata(${body})"></to>
         <to uri="bean:org.dromara.util.CamelDataUtil?method=processdata(${body})"></to>
-        <to uri="paho:/dev/?brokerUrl=tcp://122.51.118.117:1883&amp;userName=iot2yun&amp;password=123456&amp;clientId=khy_writeclient"/>
+        <to uri="paho:/dev/?brokerUrl=tcp://xt.wenhq.top:8581&amp;userName=iot2yun&amp;password=123456&amp;clientId=khy_writeclient"/>
     </route>
     </route>
 
 
 
 
-
 </routes>
 </routes>

+ 8 - 0
ruoyi-common/ruoyi-common-core/pom.xml

@@ -71,6 +71,14 @@
             <artifactId>lombok</artifactId>
             <artifactId>lombok</artifactId>
         </dependency>
         </dependency>
 
 
+
+        <dependency>
+            <groupId>com.dtflys.forest</groupId>
+            <artifactId>forest-spring-boot3-starter</artifactId>
+            <version>1.5.36</version>
+        </dependency>
+
+
         <!--  自动生成YML配置关联JSON文件  -->
         <!--  自动生成YML配置关联JSON文件  -->
         <dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <groupId>org.springframework.boot</groupId>

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

@@ -15,6 +15,11 @@
         khy模块
         khy模块
     </description>
     </description>
 
 
+    <properties>
+
+        <iotucy.version>3.1.0</iotucy.version>
+    </properties>
+
     <dependencies>
     <dependencies>
 
 
         <!-- 通用工具-->
         <!-- 通用工具-->
@@ -146,12 +151,43 @@
             <artifactId>camel-xml-jaxb-dsl-starter</artifactId>
             <artifactId>camel-xml-jaxb-dsl-starter</artifactId>
             <version>${camel.version}</version>
             <version>${camel.version}</version>
         </dependency>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel.springboot</groupId>
+            <artifactId>camel-netty-starter</artifactId>
+            <version>${camel.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.iteaj</groupId>
+            <artifactId>iot-boot-starter</artifactId>
+            <version>${iotucy.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.iteaj</groupId>
+            <artifactId>iot-server</artifactId>
+            <version>${iotucy.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.iteaj</groupId>
+            <artifactId>iot-client</artifactId>
+            <version>${iotucy.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.iteaj</groupId>
+            <version>${iotucy.version}</version>
+            <artifactId>iot-modbus</artifactId>
+        </dependency>
         <dependency>
         <dependency>
             <groupId>org.dromara</groupId>
             <groupId>org.dromara</groupId>
             <artifactId>ruoyi-system</artifactId>
             <artifactId>ruoyi-system</artifactId>
         </dependency>
         </dependency>
 
 
 
 
+
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 2 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/config/CamelRouterConfig.java

@@ -8,10 +8,12 @@ import org.apache.camel.support.ResourceHelper;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.apache.camel.*;
 import org.apache.camel.*;
 
 
 @Component
 @Component
+@Order(2)
 public class CamelRouterConfig implements InitializingBean {
 public class CamelRouterConfig implements InitializingBean {
 
 
     @Value("${camelxmlpath}")
     @Value("${camelxmlpath}")

+ 15 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/CodecDecoderFactory.java

@@ -0,0 +1,15 @@
+package org.dromara.netty;
+
+import io.netty.channel.ChannelHandler;
+import org.apache.camel.component.netty.DefaultChannelHandlerFactory;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Component(value = "nettydecode")
+@Order(1)
+public class CodecDecoderFactory extends DefaultChannelHandlerFactory {
+    @Override
+    public ChannelHandler newChannelHandler() {
+        return new Decode();
+    }
+}

+ 15 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/CodecEncoderFactory.java

@@ -0,0 +1,15 @@
+package org.dromara.netty;
+
+import io.netty.channel.ChannelHandler;
+import org.apache.camel.component.netty.DefaultChannelHandlerFactory;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Component(value = "nettyencode")
+@Order(1)
+public class CodecEncoderFactory  extends DefaultChannelHandlerFactory {
+    @Override
+    public ChannelHandler newChannelHandler() {
+        return new Encode();
+    }
+}

+ 53 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/Decode.java

@@ -0,0 +1,53 @@
+package org.dromara.netty;
+
+import cn.hutool.json.JSONUtil;
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.socket.DatagramPacket;
+import io.netty.channel.socket.nio.NioDatagramChannel;
+import io.netty.handler.codec.MessageToMessageDecoder;
+import org.dromara.netty.pojo.NettyChannelHandlerContext;
+
+import java.util.List;
+
+
+public class Decode extends MessageToMessageDecoder {
+
+    @Override
+    protected void decode(ChannelHandlerContext ctx, Object msg, List out) throws Exception {
+        //收到的消息转成String
+
+        try{
+
+
+            byte[] bytes = null;
+            if(ctx.channel() instanceof NioDatagramChannel){
+
+                ByteBuf byteBuf = ((DatagramPacket) msg).content();
+                bytes= new byte[byteBuf.readableBytes()];
+                byteBuf.readBytes(bytes);
+            }else{
+                bytes = new byte[((ByteBuf) msg).readableBytes()];
+                ((ByteBuf) msg).readBytes(bytes);
+            }
+            if(bytes.length>0){
+                String msgdata =  JSONUtil.toJsonStr(bytes);
+//                System.out.println("收到消息:"+msgdata);
+                out.add(msgdata);
+            }
+        }catch (Exception e){}
+    }
+
+    @Override
+    public void channelActive(ChannelHandlerContext ctx) throws Exception {
+        super.channelActive(ctx);
+        NettyChannelHandlerContextMapCache.ChannelMapCache.put(ctx.channel().toString(),new NettyChannelHandlerContext(ctx));
+    }
+
+    @Override
+    public void channelInactive(ChannelHandlerContext ctx) throws Exception {
+        super.channelInactive(ctx);
+        NettyChannelHandlerContextMapCache.ChannelMapCache.remove(ctx.channel().toString());
+    }
+
+}

+ 59 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/Encode.java

@@ -0,0 +1,59 @@
+package org.dromara.netty;
+
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.StrUtil;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelPromise;
+import io.netty.channel.DefaultAddressedEnvelope;
+import io.netty.handler.codec.MessageToMessageEncoder;
+
+import java.net.SocketAddress;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+
+
+public class Encode extends MessageToMessageEncoder {
+
+    @Override
+    public void connect(ChannelHandlerContext ctx, SocketAddress remoteAddress, SocketAddress localAddress, ChannelPromise promise) throws Exception {
+        super.connect(ctx, remoteAddress, localAddress, promise);
+    }
+
+    @Override
+    public void disconnect(ChannelHandlerContext ctx, ChannelPromise promise) throws Exception {
+        super.disconnect(ctx, promise);
+    }
+
+    @Override
+    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
+        super.write(ctx, msg, promise);
+    }
+
+    @Override
+    protected void encode(ChannelHandlerContext ctx, Object msg, List out) throws Exception {
+        //该处返回空 改由主动发送
+
+        if(msg==null || StrUtil.isEmptyIfStr(msg)){
+            ByteBuf buf = Unpooled.copiedBuffer("".getBytes(CharsetUtil.UTF_8));
+            out.add(buf);
+            return;
+        }
+        if(msg instanceof DefaultAddressedEnvelope){
+            if(((DefaultAddressedEnvelope<?, ?>) msg).content() instanceof byte[]){
+                out.add(Unpooled.copiedBuffer((byte[]) ((DefaultAddressedEnvelope<?, ?>) msg).content()));
+            }else{
+                out.add(Unpooled.copiedBuffer(((DefaultAddressedEnvelope<?, ?>) msg).content().toString().getBytes(StandardCharsets.UTF_8)));
+            }
+        } else if(msg instanceof ByteBuf){
+            out.add(Unpooled.copiedBuffer((ByteBuf) msg));
+        }else{
+            ByteBuf buf = Unpooled.copiedBuffer("".getBytes(CharsetUtil.UTF_8));
+            out.add(buf);
+        }
+
+    }
+}
+
+

+ 10 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/NettyChannelHandlerContextMapCache.java

@@ -0,0 +1,10 @@
+package org.dromara.netty;
+
+import org.dromara.netty.pojo.NettyChannelHandlerContext;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class NettyChannelHandlerContextMapCache {
+    public static Map<String, NettyChannelHandlerContext> ChannelMapCache = new HashMap<>();
+}

+ 18 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/netty/pojo/NettyChannelHandlerContext.java

@@ -0,0 +1,18 @@
+package org.dromara.netty.pojo;
+
+import io.netty.channel.ChannelHandlerContext;
+import lombok.Data;
+
+@Data
+public class NettyChannelHandlerContext {
+    public NettyChannelHandlerContext(ChannelHandlerContext channelHandlerContext){
+        this.channelHandlerContext = channelHandlerContext;
+    }
+    public NettyChannelHandlerContext(ChannelHandlerContext channelHandlerContext, String tag){
+        this.channelHandlerContext = channelHandlerContext;
+        this.tag = tag;
+    }
+    private ChannelHandlerContext channelHandlerContext;
+    private String tag;
+
+}

+ 113 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/CommonController.java

@@ -0,0 +1,113 @@
+package org.dromara.system.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.dtflys.forest.backend.okhttp3.OkHttp3;
+import jakarta.annotation.Resource;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.system.domain.bo.TblCarInfoBo;
+import org.dromara.system.domain.vo.TblCarInfoVo;
+import org.dromara.system.service.ITblCarDriveWarningService;
+import org.dromara.util.MessageUtils;
+import org.dromara.util.YingshiHttp;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Validated
+@RequiredArgsConstructor
+@RestController
+@Slf4j
+@RequestMapping("/system/common")
+public class CommonController extends BaseController {
+
+    @Value("${yingshi.appkey}")
+    String appkey;
+    @Value("${yingshi.appsecret}")
+    String appsecret;
+
+    private final YingshiHttp yingshiHttp;
+//    @Resource
+//    YingshiHttp yingshiHttp;
+    final  static String ACCESTOKEN = "yingshi_token";
+    private final OkHttpClient client = new OkHttpClient();
+    @GetMapping("/{code}/getPlayConfig")
+    public Object getPlayurl(@PathVariable String code) {
+
+        //获取token
+        String accesstoken = RedisUtils.getCacheObject(ACCESTOKEN);
+        if (accesstoken == null) {
+            //登录获取
+            Map resdata =  yingshiHttp.getAccessToken(appkey,appsecret);
+            accesstoken =  ((Map<String,Object>)resdata.get("data")).get("accessToken").toString();
+            Long expire = Long.valueOf(((Map<String,Object>)resdata.get("data")).get("expireTime").toString());
+            RedisUtils.setCacheObject(ACCESTOKEN,accesstoken, Duration.ofMillis(expire- DateUtil.current()));
+        }
+        Map resdata =  yingshiHttp.getLiveAddress(accesstoken,code);
+        String msg = "系统错误";
+        try{
+            msg= (String) resdata.get("msg");
+            Integer codei = Integer.parseInt(resdata.get("code").toString());
+            if(codei!=200) throw new Exception();
+            String playurl =  ((Map<String,Object>)resdata.get("data")).get("url").toString();
+
+            Map<String,Object> ret = new HashMap<>();
+            ret.put("url",playurl);
+            ret.put("accessToken",accesstoken);
+
+            return R.ok(ret);
+
+        }catch (Exception e){
+           return R.fail(msg);
+        }
+//        log.info("{}",resdata);
+
+//        return R.ok();
+
+    }
+
+    @PostMapping("/play")
+    public Object playtts(@RequestBody Map<String,Object> data) {
+
+        String message = data.get("message").toString();
+        List<String> codes = (List<String>) data.get("devicelist");
+        List<String> tts = new ArrayList<>();
+        List<String> leds = new ArrayList<>();
+        for (String code : codes) {
+            if(code.contains("tts")){
+                tts.add(code.split("_")[2]);
+            }if(code.contains("led")){
+                leds.add(code.split("_")[2]);
+            }
+
+        }
+        try {
+            for (String ttsi : tts){
+                MessageUtils.sendTTs(ttsi,message);
+            }
+            for (String led : leds){
+                MessageUtils.sendLed(led,message);
+            }
+
+        }catch (Exception e){
+            R.fail("发送失败");
+        }
+
+        return R.ok();
+
+
+    }
+}

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarDriveWarningController.java

@@ -39,7 +39,7 @@ public class TblCarDriveWarningController extends BaseController {
     /**
     /**
      * 查询驾驶监管列表
      * 查询驾驶监管列表
      */
      */
-    @SaCheckPermission("system:carDriveWarning:list")
+    //@SaCheckPermission("system:carDriveWarning:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblCarDriveWarningVo> list(TblCarDriveWarningBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblCarDriveWarningVo> list(TblCarDriveWarningBo bo, PageQuery pageQuery) {
         return tblCarDriveWarningService.queryPageList(bo, pageQuery);
         return tblCarDriveWarningService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblCarDriveWarningController extends BaseController {
     /**
     /**
      * 导出驾驶监管列表
      * 导出驾驶监管列表
      */
      */
-    @SaCheckPermission("system:carDriveWarning:export")
+    //@SaCheckPermission("system:carDriveWarning:export")
     @Log(title = "驾驶监管", businessType = BusinessType.EXPORT)
     @Log(title = "驾驶监管", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblCarDriveWarningBo bo, HttpServletResponse response) {
     public void export(TblCarDriveWarningBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblCarDriveWarningController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:carDriveWarning:query")
+    //@SaCheckPermission("system:carDriveWarning:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblCarDriveWarningVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblCarDriveWarningVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblCarDriveWarningController extends BaseController {
     /**
     /**
      * 新增驾驶监管
      * 新增驾驶监管
      */
      */
-    @SaCheckPermission("system:carDriveWarning:add")
+    //@SaCheckPermission("system:carDriveWarning:add")
     @Log(title = "驾驶监管", businessType = BusinessType.INSERT)
     @Log(title = "驾驶监管", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblCarDriveWarningController extends BaseController {
     /**
     /**
      * 修改驾驶监管
      * 修改驾驶监管
      */
      */
-    @SaCheckPermission("system:carDriveWarning:edit")
+    //@SaCheckPermission("system:carDriveWarning:edit")
     @Log(title = "驾驶监管", businessType = BusinessType.UPDATE)
     @Log(title = "驾驶监管", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblCarDriveWarningController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:carDriveWarning:remove")
+    //@SaCheckPermission("system:carDriveWarning:remove")
     @Log(title = "驾驶监管", businessType = BusinessType.DELETE)
     @Log(title = "驾驶监管", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

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

@@ -40,7 +40,7 @@ public class TblCarInfoController extends BaseController {
     /**
     /**
      * 查询车辆信息列表
      * 查询车辆信息列表
      */
      */
-    @SaCheckPermission("system:carInfo:list")
+    //@SaCheckPermission("system:carInfo:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblCarInfoVo> list(TblCarInfoBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblCarInfoVo> list(TblCarInfoBo bo, PageQuery pageQuery) {
         return tblCarInfoService.queryPageList(bo, pageQuery);
         return tblCarInfoService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class TblCarInfoController extends BaseController {
     /**
     /**
      * 导出车辆信息列表
      * 导出车辆信息列表
      */
      */
-    @SaCheckPermission("system:carInfo:export")
+    //@SaCheckPermission("system:carInfo:export")
     @Log(title = "车辆信息", businessType = BusinessType.EXPORT)
     @Log(title = "车辆信息", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblCarInfoBo bo, HttpServletResponse response) {
     public void export(TblCarInfoBo bo, HttpServletResponse response) {
@@ -62,12 +62,12 @@ public class TblCarInfoController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @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 ,TblCarInfoBo bo) {
                                      @PathVariable Long id ,TblCarInfoBo bo) {
-        MessageUtils.sendLed("0001",bo.getCarNum());
-        MessageUtils.sendTTs("0001",bo.getCarNum());
+//        MessageUtils.sendLed("0001",bo.getCarNum());
+//        MessageUtils.sendTTs("0001",bo.getCarNum());
 
 
         return R.ok(tblCarInfoService.queryById(id));
         return R.ok(tblCarInfoService.queryById(id));
     }
     }
@@ -75,7 +75,7 @@ public class TblCarInfoController extends BaseController {
     /**
     /**
      * 新增车辆信息
      * 新增车辆信息
      */
      */
-    @SaCheckPermission("system:carInfo:add")
+    //@SaCheckPermission("system:carInfo:add")
     @Log(title = "车辆信息", businessType = BusinessType.INSERT)
     @Log(title = "车辆信息", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -86,7 +86,7 @@ public class TblCarInfoController extends BaseController {
     /**
     /**
      * 修改车辆信息
      * 修改车辆信息
      */
      */
-    @SaCheckPermission("system:carInfo:edit")
+    //@SaCheckPermission("system:carInfo:edit")
     @Log(title = "车辆信息", businessType = BusinessType.UPDATE)
     @Log(title = "车辆信息", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -99,7 +99,7 @@ public class TblCarInfoController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:carInfo:remove")
+    //@SaCheckPermission("system:carInfo:remove")
     @Log(title = "车辆信息", businessType = BusinessType.DELETE)
     @Log(title = "车辆信息", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarPathController.java

@@ -39,7 +39,7 @@ public class TblCarPathController extends BaseController {
     /**
     /**
      * 查询车辆路线列表
      * 查询车辆路线列表
      */
      */
-    @SaCheckPermission("system:carPath:list")
+    //@SaCheckPermission("system:carPath:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblCarPathVo> list(TblCarPathBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblCarPathVo> list(TblCarPathBo bo, PageQuery pageQuery) {
         return tblCarPathService.queryPageList(bo, pageQuery);
         return tblCarPathService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblCarPathController extends BaseController {
     /**
     /**
      * 导出车辆路线列表
      * 导出车辆路线列表
      */
      */
-    @SaCheckPermission("system:carPath:export")
+    //@SaCheckPermission("system:carPath:export")
     @Log(title = "车辆路线", businessType = BusinessType.EXPORT)
     @Log(title = "车辆路线", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblCarPathBo bo, HttpServletResponse response) {
     public void export(TblCarPathBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblCarPathController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:carPath:query")
+    //@SaCheckPermission("system:carPath:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblCarPathVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblCarPathVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblCarPathController extends BaseController {
     /**
     /**
      * 新增车辆路线
      * 新增车辆路线
      */
      */
-    @SaCheckPermission("system:carPath:add")
+    //@SaCheckPermission("system:carPath:add")
     @Log(title = "车辆路线", businessType = BusinessType.INSERT)
     @Log(title = "车辆路线", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblCarPathController extends BaseController {
     /**
     /**
      * 修改车辆路线
      * 修改车辆路线
      */
      */
-    @SaCheckPermission("system:carPath:edit")
+    //@SaCheckPermission("system:carPath:edit")
     @Log(title = "车辆路线", businessType = BusinessType.UPDATE)
     @Log(title = "车辆路线", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblCarPathController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:carPath:remove")
+    //@SaCheckPermission("system:carPath:remove")
     @Log(title = "车辆路线", businessType = BusinessType.DELETE)
     @Log(title = "车辆路线", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarScheduleController.java

@@ -39,7 +39,7 @@ public class TblCarScheduleController extends BaseController {
     /**
     /**
      * 查询车及人员排班列表
      * 查询车及人员排班列表
      */
      */
-    @SaCheckPermission("system:carSchedule:list")
+    //@SaCheckPermission("system:carSchedule:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblCarScheduleVo> list(TblCarScheduleBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblCarScheduleVo> list(TblCarScheduleBo bo, PageQuery pageQuery) {
         return tblCarScheduleService.queryPageList(bo, pageQuery);
         return tblCarScheduleService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblCarScheduleController extends BaseController {
     /**
     /**
      * 导出车及人员排班列表
      * 导出车及人员排班列表
      */
      */
-    @SaCheckPermission("system:carSchedule:export")
+    //@SaCheckPermission("system:carSchedule:export")
     @Log(title = "车及人员排班", businessType = BusinessType.EXPORT)
     @Log(title = "车及人员排班", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblCarScheduleBo bo, HttpServletResponse response) {
     public void export(TblCarScheduleBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblCarScheduleController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:carSchedule:query")
+    //@SaCheckPermission("system:carSchedule:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblCarScheduleVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblCarScheduleVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblCarScheduleController extends BaseController {
     /**
     /**
      * 新增车及人员排班
      * 新增车及人员排班
      */
      */
-    @SaCheckPermission("system:carSchedule:add")
+    //@SaCheckPermission("system:carSchedule:add")
     @Log(title = "车及人员排班", businessType = BusinessType.INSERT)
     @Log(title = "车及人员排班", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblCarScheduleController extends BaseController {
     /**
     /**
      * 修改车及人员排班
      * 修改车及人员排班
      */
      */
-    @SaCheckPermission("system:carSchedule:edit")
+    //@SaCheckPermission("system:carSchedule:edit")
     @Log(title = "车及人员排班", businessType = BusinessType.UPDATE)
     @Log(title = "车及人员排班", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblCarScheduleController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:carSchedule:remove")
+    //@SaCheckPermission("system:carSchedule:remove")
     @Log(title = "车及人员排班", businessType = BusinessType.DELETE)
     @Log(title = "车及人员排班", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblCarServiceController.java

@@ -39,7 +39,7 @@ public class TblCarServiceController extends BaseController {
     /**
     /**
      * 查询车务信息列表
      * 查询车务信息列表
      */
      */
-    @SaCheckPermission("system:carService:list")
+    //@SaCheckPermission("system:carService:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblCarServiceVo> list(TblCarServiceBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblCarServiceVo> list(TblCarServiceBo bo, PageQuery pageQuery) {
         return tblCarServiceService.queryPageList(bo, pageQuery);
         return tblCarServiceService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblCarServiceController extends BaseController {
     /**
     /**
      * 导出车务信息列表
      * 导出车务信息列表
      */
      */
-    @SaCheckPermission("system:carService:export")
+    //@SaCheckPermission("system:carService:export")
     @Log(title = "车务信息", businessType = BusinessType.EXPORT)
     @Log(title = "车务信息", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblCarServiceBo bo, HttpServletResponse response) {
     public void export(TblCarServiceBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblCarServiceController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:carService:query")
+    //@SaCheckPermission("system:carService:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblCarServiceVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblCarServiceVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblCarServiceController extends BaseController {
     /**
     /**
      * 新增车务信息
      * 新增车务信息
      */
      */
-    @SaCheckPermission("system:carService:add")
+    //@SaCheckPermission("system:carService:add")
     @Log(title = "车务信息", businessType = BusinessType.INSERT)
     @Log(title = "车务信息", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblCarServiceController extends BaseController {
     /**
     /**
      * 修改车务信息
      * 修改车务信息
      */
      */
-    @SaCheckPermission("system:carService:edit")
+    //@SaCheckPermission("system:carService:edit")
     @Log(title = "车务信息", businessType = BusinessType.UPDATE)
     @Log(title = "车务信息", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblCarServiceController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:carService:remove")
+    //@SaCheckPermission("system:carService:remove")
     @Log(title = "车务信息", businessType = BusinessType.DELETE)
     @Log(title = "车务信息", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblGoodsLossController.java

@@ -39,7 +39,7 @@ public class TblGoodsLossController extends BaseController {
     /**
     /**
      * 查询丢失货物列表
      * 查询丢失货物列表
      */
      */
-    @SaCheckPermission("system:goodsLoss:list")
+    //@SaCheckPermission("system:goodsLoss:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblGoodsLossVo> list(TblGoodsLossBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblGoodsLossVo> list(TblGoodsLossBo bo, PageQuery pageQuery) {
         return tblGoodsLossService.queryPageList(bo, pageQuery);
         return tblGoodsLossService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblGoodsLossController extends BaseController {
     /**
     /**
      * 导出丢失货物列表
      * 导出丢失货物列表
      */
      */
-    @SaCheckPermission("system:goodsLoss:export")
+    //@SaCheckPermission("system:goodsLoss:export")
     @Log(title = "丢失货物", businessType = BusinessType.EXPORT)
     @Log(title = "丢失货物", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblGoodsLossBo bo, HttpServletResponse response) {
     public void export(TblGoodsLossBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblGoodsLossController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:goodsLoss:query")
+    //@SaCheckPermission("system:goodsLoss:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblGoodsLossVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblGoodsLossVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblGoodsLossController extends BaseController {
     /**
     /**
      * 新增丢失货物
      * 新增丢失货物
      */
      */
-    @SaCheckPermission("system:goodsLoss:add")
+    //@SaCheckPermission("system:goodsLoss:add")
     @Log(title = "丢失货物", businessType = BusinessType.INSERT)
     @Log(title = "丢失货物", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblGoodsLossController extends BaseController {
     /**
     /**
      * 修改丢失货物
      * 修改丢失货物
      */
      */
-    @SaCheckPermission("system:goodsLoss:edit")
+    //@SaCheckPermission("system:goodsLoss:edit")
     @Log(title = "丢失货物", businessType = BusinessType.UPDATE)
     @Log(title = "丢失货物", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblGoodsLossController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:goodsLoss:remove")
+    //@SaCheckPermission("system:goodsLoss:remove")
     @Log(title = "丢失货物", businessType = BusinessType.DELETE)
     @Log(title = "丢失货物", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblGoodsOrderController.java

@@ -39,7 +39,7 @@ public class TblGoodsOrderController extends BaseController {
     /**
     /**
      * 查询寄货订单列表
      * 查询寄货订单列表
      */
      */
-    @SaCheckPermission("system:goodsOrder:list")
+    //@SaCheckPermission("system:goodsOrder:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblGoodsOrderVo> list(TblGoodsOrderBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblGoodsOrderVo> list(TblGoodsOrderBo bo, PageQuery pageQuery) {
         return tblGoodsOrderService.queryPageList(bo, pageQuery);
         return tblGoodsOrderService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblGoodsOrderController extends BaseController {
     /**
     /**
      * 导出寄货订单列表
      * 导出寄货订单列表
      */
      */
-    @SaCheckPermission("system:goodsOrder:export")
+    //@SaCheckPermission("system:goodsOrder:export")
     @Log(title = "寄货订单", businessType = BusinessType.EXPORT)
     @Log(title = "寄货订单", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblGoodsOrderBo bo, HttpServletResponse response) {
     public void export(TblGoodsOrderBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblGoodsOrderController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:goodsOrder:query")
+    //@SaCheckPermission("system:goodsOrder:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblGoodsOrderVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblGoodsOrderVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblGoodsOrderController extends BaseController {
     /**
     /**
      * 新增寄货订单
      * 新增寄货订单
      */
      */
-    @SaCheckPermission("system:goodsOrder:add")
+    //@SaCheckPermission("system:goodsOrder:add")
     @Log(title = "寄货订单", businessType = BusinessType.INSERT)
     @Log(title = "寄货订单", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblGoodsOrderController extends BaseController {
     /**
     /**
      * 修改寄货订单
      * 修改寄货订单
      */
      */
-    @SaCheckPermission("system:goodsOrder:edit")
+    //@SaCheckPermission("system:goodsOrder:edit")
     @Log(title = "寄货订单", businessType = BusinessType.UPDATE)
     @Log(title = "寄货订单", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblGoodsOrderController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:goodsOrder:remove")
+    //@SaCheckPermission("system:goodsOrder:remove")
     @Log(title = "寄货订单", businessType = BusinessType.DELETE)
     @Log(title = "寄货订单", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 55 - 3
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblGpsDataController.java

@@ -15,18 +15,25 @@ import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.common.web.core.BaseController;
+import org.dromara.system.domain.CountData;
 import org.dromara.system.domain.GpsData;
 import org.dromara.system.domain.GpsData;
+import org.dromara.system.domain.bo.CountDataBo;
 import org.dromara.system.domain.bo.GpsDataBo;
 import org.dromara.system.domain.bo.GpsDataBo;
 import org.dromara.system.domain.bo.TblCarInfoBo;
 import org.dromara.system.domain.bo.TblCarInfoBo;
+import org.dromara.system.domain.vo.CountDataVo;
 import org.dromara.system.domain.vo.GpsDataVo;
 import org.dromara.system.domain.vo.GpsDataVo;
 import org.dromara.system.domain.vo.TblCarInfoVo;
 import org.dromara.system.domain.vo.TblCarInfoVo;
 import org.dromara.system.service.ITblCarInfoService;
 import org.dromara.system.service.ITblCarInfoService;
+import org.dromara.system.service.ITblCountDataService;
 import org.dromara.system.service.ITblGpsDataService;
 import org.dromara.system.service.ITblGpsDataService;
 import org.dromara.util.MessageUtils;
 import org.dromara.util.MessageUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * 车辆信息
  * 车辆信息
@@ -37,19 +44,64 @@ import java.util.List;
 @Validated
 @Validated
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 @RestController
 @RestController
-@RequestMapping("/system/gpsdata")
+@RequestMapping("/system")
 public class TblGpsDataController extends BaseController {
 public class TblGpsDataController extends BaseController {
 
 
     private final ITblGpsDataService gpsDataService;
     private final ITblGpsDataService gpsDataService;
 
 
+    private final ITblCountDataService countDataService;
+
     /**
     /**
      * 查询车辆信息列表
      * 查询车辆信息列表
      */
      */
-    @SaCheckPermission("system:carInfo:list")
-    @GetMapping("/list")
+    //@SaCheckPermission("system:carInfo:list")
+    @GetMapping("/gpsdata/list")
     public TableDataInfo<GpsDataVo> list(GpsDataBo bo, PageQuery pageQuery) {
     public TableDataInfo<GpsDataVo> list(GpsDataBo bo, PageQuery pageQuery) {
         return gpsDataService.queryPageList(bo, pageQuery);
         return gpsDataService.queryPageList(bo, pageQuery);
     }
     }
 
 
 
 
+    @GetMapping("/peoplecount/list")
+    public Object list(CountDataBo bo) {
+        if(bo.getParams()!=null && bo.getParams().get("times")!=null){
+            List<Map> ret = new ArrayList<>();
+           String [] times = bo.getParams().get("times").toString().split("\\$");
+            for (int i = 0; i <times.length ; i++) {
+               String [] dates = times[i].split("\\|");
+               bo.getParams().put("starttime",dates[0]);
+               bo.getParams().put("endtime",dates[1]);
+                List<CountDataVo> dataVos = countDataService.queryList(bo);
+                Map<String,Object> data = new HashMap<>();
+                int totalin = 0;
+                int totalout = 0;
+                for (int j = 0; j < dataVos.size(); j++) {
+                    totalin+=dataVos.get(j).getIncount();
+                    totalout+=dataVos.get(j).getOutcount();
+                }
+                data.put("totalin",totalin);
+                data.put("totalout",totalout);
+
+                ret.add(data);
+
+            }
+            return R.ok(ret);
+
+        }else{
+            List<CountDataVo> dataVos = countDataService.queryList(bo);
+            Map<String,Object> data = new HashMap<>();
+            int totalin = 0;
+            int totalout = 0;
+            for (int i = 0; i < dataVos.size(); i++) {
+                totalin+=dataVos.get(i).getIncount();
+                totalout+=dataVos.get(i).getOutcount();
+            }
+            data.put("totalin",totalin);
+            data.put("totalout",totalout);
+            return R.ok(data);
+        }
+
+
+
+    }
+
 }
 }

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblTaxiOrderController.java

@@ -39,7 +39,7 @@ public class TblTaxiOrderController extends BaseController {
     /**
     /**
      * 查询打车订单列表
      * 查询打车订单列表
      */
      */
-    @SaCheckPermission("system:taxiOrder:list")
+    //@SaCheckPermission("system:taxiOrder:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblTaxiOrderVo> list(TblTaxiOrderBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblTaxiOrderVo> list(TblTaxiOrderBo bo, PageQuery pageQuery) {
         return tblTaxiOrderService.queryPageList(bo, pageQuery);
         return tblTaxiOrderService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblTaxiOrderController extends BaseController {
     /**
     /**
      * 导出打车订单列表
      * 导出打车订单列表
      */
      */
-    @SaCheckPermission("system:taxiOrder:export")
+    //@SaCheckPermission("system:taxiOrder:export")
     @Log(title = "打车订单", businessType = BusinessType.EXPORT)
     @Log(title = "打车订单", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblTaxiOrderBo bo, HttpServletResponse response) {
     public void export(TblTaxiOrderBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblTaxiOrderController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:taxiOrder:query")
+    //@SaCheckPermission("system:taxiOrder:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblTaxiOrderVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblTaxiOrderVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblTaxiOrderController extends BaseController {
     /**
     /**
      * 新增打车订单
      * 新增打车订单
      */
      */
-    @SaCheckPermission("system:taxiOrder:add")
+    //@SaCheckPermission("system:taxiOrder:add")
     @Log(title = "打车订单", businessType = BusinessType.INSERT)
     @Log(title = "打车订单", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblTaxiOrderController extends BaseController {
     /**
     /**
      * 修改打车订单
      * 修改打车订单
      */
      */
-    @SaCheckPermission("system:taxiOrder:edit")
+    //@SaCheckPermission("system:taxiOrder:edit")
     @Log(title = "打车订单", businessType = BusinessType.UPDATE)
     @Log(title = "打车订单", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblTaxiOrderController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:taxiOrder:remove")
+    //@SaCheckPermission("system:taxiOrder:remove")
     @Log(title = "打车订单", businessType = BusinessType.DELETE)
     @Log(title = "打车订单", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 6 - 6
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/controller/TblUserVacateController.java

@@ -39,7 +39,7 @@ public class TblUserVacateController extends BaseController {
     /**
     /**
      * 查询人员请假列表
      * 查询人员请假列表
      */
      */
-    @SaCheckPermission("system:userVacate:list")
+    //@SaCheckPermission("system:userVacate:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo<TblUserVacateVo> list(TblUserVacateBo bo, PageQuery pageQuery) {
     public TableDataInfo<TblUserVacateVo> list(TblUserVacateBo bo, PageQuery pageQuery) {
         return tblUserVacateService.queryPageList(bo, pageQuery);
         return tblUserVacateService.queryPageList(bo, pageQuery);
@@ -48,7 +48,7 @@ public class TblUserVacateController extends BaseController {
     /**
     /**
      * 导出人员请假列表
      * 导出人员请假列表
      */
      */
-    @SaCheckPermission("system:userVacate:export")
+    //@SaCheckPermission("system:userVacate:export")
     @Log(title = "人员请假", businessType = BusinessType.EXPORT)
     @Log(title = "人员请假", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(TblUserVacateBo bo, HttpServletResponse response) {
     public void export(TblUserVacateBo bo, HttpServletResponse response) {
@@ -61,7 +61,7 @@ public class TblUserVacateController extends BaseController {
      *
      *
      * @param id 主键
      * @param id 主键
      */
      */
-    @SaCheckPermission("system:userVacate:query")
+    //@SaCheckPermission("system:userVacate:query")
     @GetMapping("/{id}")
     @GetMapping("/{id}")
     public R<TblUserVacateVo> getInfo(@NotNull(message = "主键不能为空")
     public R<TblUserVacateVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable Long id) {
                                      @PathVariable Long id) {
@@ -71,7 +71,7 @@ public class TblUserVacateController extends BaseController {
     /**
     /**
      * 新增人员请假
      * 新增人员请假
      */
      */
-    @SaCheckPermission("system:userVacate:add")
+    //@SaCheckPermission("system:userVacate:add")
     @Log(title = "人员请假", businessType = BusinessType.INSERT)
     @Log(title = "人员请假", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @RepeatSubmit()
     @PostMapping()
     @PostMapping()
@@ -82,7 +82,7 @@ public class TblUserVacateController extends BaseController {
     /**
     /**
      * 修改人员请假
      * 修改人员请假
      */
      */
-    @SaCheckPermission("system:userVacate:edit")
+    //@SaCheckPermission("system:userVacate:edit")
     @Log(title = "人员请假", businessType = BusinessType.UPDATE)
     @Log(title = "人员请假", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @RepeatSubmit()
     @PutMapping()
     @PutMapping()
@@ -95,7 +95,7 @@ public class TblUserVacateController extends BaseController {
      *
      *
      * @param ids 主键串
      * @param ids 主键串
      */
      */
-    @SaCheckPermission("system:userVacate:remove")
+    //@SaCheckPermission("system:userVacate:remove")
     @Log(title = "人员请假", businessType = BusinessType.DELETE)
     @Log(title = "人员请假", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     @DeleteMapping("/{ids}")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")
     public R<Void> remove(@NotEmpty(message = "主键不能为空")

+ 24 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/CountData.java

@@ -0,0 +1,24 @@
+package org.dromara.system.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("count_data")
+public class CountData implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private String devicecode;
+    private Integer incount;
+    private Integer outcount;
+    private Date ts;
+
+    @TableField(exist = false)
+    private Long tslong;
+}

+ 4 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/TblCarSchedule.java

@@ -42,5 +42,9 @@ public class TblCarSchedule extends BaseEntity {
 
 
     private String carNum;
     private String carNum;
 
 
+    private String ext1;
+
+    private String ext2;
+
 
 
 }
 }

+ 20 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/bo/CountDataBo.java

@@ -0,0 +1,20 @@
+package org.dromara.system.domain.bo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.system.domain.CountData;
+import org.dromara.system.domain.GpsData;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = CountData.class, reverseConvertGenerate = false)
+public class CountDataBo extends BaseEntity {
+    private String devicecode;
+    private Integer incount;
+    private Integer outcount;
+    private Date ts;
+}

+ 4 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/bo/TblCarScheduleBo.java

@@ -42,5 +42,9 @@ public class TblCarScheduleBo extends BaseEntity {
      */
      */
     private String carNum;
     private String carNum;
 
 
+    private String ext1;
+
+    private String ext2;
+
 
 
 }
 }

+ 34 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/vo/CountDataVo.java

@@ -0,0 +1,34 @@
+package org.dromara.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.system.domain.CountData;
+import org.dromara.system.domain.GpsData;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 车辆信息视图对象 tbl_car_info
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = CountData.class)
+public class CountDataVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    private String devicecode;
+    private Integer incount;
+    private Integer outcount;
+    private Date ts;
+
+
+}

+ 4 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/domain/vo/TblCarScheduleVo.java

@@ -54,4 +54,8 @@ public class TblCarScheduleVo implements Serializable {
 
 
     private String stationInfo;
     private String stationInfo;
 
 
+    private String ext1;
+
+    private String ext2;
+
 }
 }

+ 17 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/mapper/TblCountDataMapper.java

@@ -0,0 +1,17 @@
+package org.dromara.system.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.system.domain.CountData;
+import org.dromara.system.domain.vo.CountDataVo;
+
+/**
+ * 人员请假Mapper接口
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+public interface TblCountDataMapper extends BaseMapperPlus<CountData,CountDataVo> {
+
+    public void insertdata(CountData data);
+
+}

+ 51 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/ITblCountDataService.java

@@ -0,0 +1,51 @@
+package org.dromara.system.service;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.CountData;
+import org.dromara.system.domain.bo.CountDataBo;
+import org.dromara.system.domain.vo.CountDataVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * CountService接口
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+public interface ITblCountDataService {
+
+    /**
+     * 查询丢失货物
+     */
+    CountDataVo queryById(Long id);
+
+    /**
+     * 查询丢失货物列表
+     */
+    TableDataInfo<CountDataVo> queryPageList(CountDataBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询丢失货物列表
+     */
+    List<CountDataVo> queryList(CountDataBo bo);
+
+    /**
+     * 新增丢失货物
+     */
+    Boolean insertByBo(CountData bo);
+
+    Boolean insertData(CountData bo);
+
+    /**
+     * 修改丢失货物
+     */
+    Boolean updateByBo(CountData bo);
+
+    /**
+     * 校验并批量删除丢失货物信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 10 - 2
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblCarInfoServiceImpl.java

@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.system.domain.GpsData;
 import org.dromara.system.domain.GpsData;
+import org.dromara.system.domain.TblCarSchedule;
 import org.dromara.system.mapper.TblGpsDataMapper;
 import org.dromara.system.mapper.TblGpsDataMapper;
 import org.dromara.util.CamelDataUtil;
 import org.dromara.util.CamelDataUtil;
 import org.dromara.util.MessageUtils;
 import org.dromara.util.MessageUtils;
@@ -105,8 +106,15 @@ public class TblCarInfoServiceImpl implements ITblCarInfoService {
         lqw.eq(StringUtils.isNotBlank(bo.getTrafficAccidentInfo()), TblCarInfo::getTrafficAccidentInfo, bo.getTrafficAccidentInfo());
         lqw.eq(StringUtils.isNotBlank(bo.getTrafficAccidentInfo()), TblCarInfo::getTrafficAccidentInfo, bo.getTrafficAccidentInfo());
         lqw.eq(StringUtils.isNotBlank(bo.getViolationInfo()), TblCarInfo::getViolationInfo, bo.getViolationInfo());
         lqw.eq(StringUtils.isNotBlank(bo.getViolationInfo()), TblCarInfo::getViolationInfo, bo.getViolationInfo());
         lqw.eq(StringUtils.isNotBlank(bo.getChangeInfo()), TblCarInfo::getChangeInfo, bo.getChangeInfo());
         lqw.eq(StringUtils.isNotBlank(bo.getChangeInfo()), TblCarInfo::getChangeInfo, bo.getChangeInfo());
-        lqw.eq(StringUtils.isNotBlank(bo.getExt1()), TblCarInfo::getExt1, bo.getExt1());
-        lqw.eq(StringUtils.isNotBlank(bo.getExt2()), TblCarInfo::getExt2, bo.getExt2());
+        //lqw.eq(StringUtils.isNotBlank(bo.getExt1()), TblCarInfo::getExt1, bo.getExt1());
+        //lqw.eq(StringUtils.isNotBlank(bo.getExt2()), TblCarInfo::getExt2, bo.getExt2());
+
+        if(bo.getParams().get("driverInfo")!=null && bo.getParams().get("driverInfo")!=null){
+            lqw.apply(StringUtils.format("ext2->'$.driverInfo'={}",bo.getParams().get("driverInfo")));
+//            lqw.like(bo.getParams().get("driverInfo")!=null, TblCarInfo::getExt2, bo.getParams().get("driverInfo"));
+        }
+
+
         return lqw;
         return lqw;
     }
     }
 
 

+ 123 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblCountDataServiceImpl.java

@@ -0,0 +1,123 @@
+package org.dromara.system.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.CountData;
+import org.dromara.system.domain.bo.CountDataBo;
+import org.dromara.system.domain.vo.CountDataVo;
+import org.dromara.system.mapper.TblCountDataMapper;
+import org.dromara.system.service.ITblCountDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 丢失货物Service业务层处理
+ *
+ * @author Lion Li
+ * @date 2024-02-22
+ */
+@RequiredArgsConstructor
+@DS("slave")
+@Slf4j
+@Service
+public class TblCountDataServiceImpl implements ITblCountDataService {
+
+    private final TblCountDataMapper baseMapper;
+
+    /**
+     * 查询丢失货物
+     */
+    @Override
+    public CountDataVo queryById(Long id){
+        return baseMapper.selectVoById(id);
+    }
+
+    /**
+     * 查询丢失货物列表
+     */
+    @Override
+    public TableDataInfo<CountDataVo> queryPageList(CountDataBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<CountData> lqw = buildQueryWrapper(bo);
+        Page<CountDataVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+//        log.info(JSONUtil.toJsonStr(result.getRecords()));
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询丢失货物列表
+     */
+    @Override
+    public List<CountDataVo> queryList(CountDataBo bo) {
+        LambdaQueryWrapper<CountData> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<CountData> buildQueryWrapper(CountDataBo bo) {
+        LambdaQueryWrapper<CountData> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getDevicecode()!=null,CountData::getDevicecode, bo.getDevicecode());
+        if(bo.getParams()!=null && bo.getParams().keySet().size()>0) {
+            if (bo.getParams().get("starttime") != null && bo.getParams().get("endtime") != null) {
+                lqw.gt(bo.getParams().get("starttime") != null, CountData::getTs, bo.getParams().get("starttime"));
+                lqw.lt(bo.getParams().get("endtime") != null, CountData::getTs, bo.getParams().get("endtime"));
+            }
+        }
+        return lqw;
+    }
+
+    /**
+     * 新增丢失货物
+     */
+    @Override
+    public Boolean insertByBo(CountData bo) {
+//        CountData add = MapstructUtils.convert(bo, CountData.class);
+        validEntityBeforeSave(bo);
+        boolean flag = baseMapper.insert(bo) > 0;
+        if (flag) {
+
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean insertData(CountData bo) {
+        baseMapper.insertdata(bo);
+        return true;
+    }
+
+    /**
+     * 修改丢失货物
+     */
+    @Override
+    public Boolean updateByBo(CountData bo) {
+        CountData update = MapstructUtils.convert(bo, CountData.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(CountData entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除丢失货物
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 6 - 3
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/system/service/impl/TblGoodsOrderServiceImpl.java

@@ -1,5 +1,7 @@
 package org.dromara.system.service.impl;
 package org.dromara.system.service.impl;
 
 
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONUtil;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -88,9 +90,10 @@ public class TblGoodsOrderServiceImpl implements ITblGoodsOrderService {
 
 
         if(bo.getParams() != null&& bo.getParams().size()>0){
         if(bo.getParams() != null&& bo.getParams().size()>0){
             if(bo.getParams().get("scheduleId")!=null){
             if(bo.getParams().get("scheduleId")!=null){
-
-
-                lqw.apply(StringUtils.format("ext1->'$.schedule_id'={}",bo.getParams().get("scheduleId")));
+                String datasql = (JSONUtil.toJsonStr(bo.getParams().get("scheduleId").toString().split(","))).replaceAll("\"","'");
+                datasql = datasql.replaceAll("\\[","(");
+                datasql = datasql.replaceAll("]",")");
+                lqw.apply(StringUtils.format(" ext1->'$.schedule_id' in {}", datasql));
 
 
             }
             }
         }
         }

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

@@ -1,8 +1,14 @@
 package org.dromara.util;
 package org.dromara.util;
 
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSON;
 import cn.hutool.json.JSON;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelHandlerContext;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Exchange;
@@ -12,11 +18,15 @@ import org.dromara.common.core.constant.Constants;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.netty.pojo.NettyChannelHandlerContext;
 import org.dromara.sms4j.api.universal.RedisUtil;
 import org.dromara.sms4j.api.universal.RedisUtil;
+import org.dromara.system.domain.CountData;
 import org.dromara.system.domain.GpsData;
 import org.dromara.system.domain.GpsData;
 import org.dromara.system.domain.SysDictData;
 import org.dromara.system.domain.SysDictData;
 import org.dromara.system.domain.TblCarInfo;
 import org.dromara.system.domain.TblCarInfo;
+import org.dromara.system.domain.bo.CountDataBo;
 import org.dromara.system.domain.bo.SysDictDataBo;
 import org.dromara.system.domain.bo.SysDictDataBo;
 import org.dromara.system.domain.bo.TblCarInfoBo;
 import org.dromara.system.domain.bo.TblCarInfoBo;
 import org.dromara.system.domain.bo.TblCarScheduleBo;
 import org.dromara.system.domain.bo.TblCarScheduleBo;
@@ -33,6 +43,9 @@ import java.nio.charset.Charset;
 import java.time.Duration;
 import java.time.Duration;
 import java.util.*;
 import java.util.*;
 
 
+import static org.dromara.netty.NettyChannelHandlerContextMapCache.ChannelMapCache;
+import static org.dromara.netty.NettyChannelHandlerContextMapCache.ChannelMapCache;
+
 @Slf4j
 @Slf4j
 @Component("camelDataUtil")
 @Component("camelDataUtil")
 public class CamelDataUtil {
 public class CamelDataUtil {
@@ -42,6 +55,9 @@ public class CamelDataUtil {
     @Autowired
     @Autowired
     ITblGpsDataService gpsDataService;
     ITblGpsDataService gpsDataService;
 
 
+    @Autowired
+    ITblCountDataService countDataService;
+
 
 
     @Autowired
     @Autowired
     ITblCarInfoService tblCarInfoService;
     ITblCarInfoService tblCarInfoService;
@@ -67,6 +83,7 @@ public class CamelDataUtil {
 //        exchange.getMessage().setBody(body);
 //        exchange.getMessage().setBody(body);
     }
     }
 
 
+
     public void processGpsData(GpsData gpsData){
     public void processGpsData(GpsData gpsData){
 
 
         log.info("body:{}",JSONUtil.toJsonStr(gpsData));
         log.info("body:{}",JSONUtil.toJsonStr(gpsData));
@@ -129,7 +146,27 @@ public class CamelDataUtil {
                                                 //靠近站点 还得计算当前是否跨站点
                                                 //靠近站点 还得计算当前是否跨站点
                                                 String stationName =  RedisUtils.getCacheObject(StringUtils.format("car_{}_{}_tip",carInfoVo1.getCarNum(),DateFormatUtils.format( scheduleVo.getScheduleDate(),DateUtils.YYYYMMDDHHMMSS) ));
                                                 String stationName =  RedisUtils.getCacheObject(StringUtils.format("car_{}_{}_tip",carInfoVo1.getCarNum(),DateFormatUtils.format( scheduleVo.getScheduleDate(),DateUtils.YYYYMMDDHHMMSS) ));
                                                 if(stationName!=null && stationName.contains(jsonObject.getStr("stationName"))){
                                                 if(stationName!=null && stationName.contains(jsonObject.getStr("stationName"))){
-                                                    //提报过的不再提报
+                                                    //提报过的不再提报  //离开站记录时间
+
+                                                    try {
+                                                        if (scheduleVo.getExt1() != null) {
+                                                            //进站点 记录时间
+                                                            JSONObject datainout = new JSONObject();
+                                                            datainout = JSONUtil.parseObj(scheduleVo.getExt1());
+                                                            if (datainout.get(jsonObject.getStr("stationName")) != null) {
+                                                                JSONObject inout = datainout.getJSONObject(jsonObject.getStr("stationName"));
+                                                                if (inout.getStr("outtime") == null) {
+                                                                    inout.set("outtime", DateUtil.now());
+                                                                }
+                                                                datainout.set(jsonObject.getStr("stationName"), inout);
+                                                                scheduleVo.setExt1(JSONUtil.toJsonStr(datainout));
+                                                                TblCarScheduleBo scheduleVo1 = new TblCarScheduleBo();
+                                                                scheduleVo1.setId(scheduleVo.getId());
+                                                                scheduleVo1.setExt1(scheduleVo.getExt1());
+                                                                tblCarScheduleService.updateByBo(scheduleVo1);
+                                                            }
+                                                        }
+                                                    }catch (Exception e){}
                                                 }else{
                                                 }else{
                                                    lines1.add(jsonObject);
                                                    lines1.add(jsonObject);
                                                 }
                                                 }
@@ -155,6 +192,23 @@ public class CamelDataUtil {
                                             sysDictData.setDictType("tbl_sites");
                                             sysDictData.setDictType("tbl_sites");
                                             List<SysDictDataVo> stations = sysDictDataService.selectDictDataList(sysDictData);
                                             List<SysDictDataVo> stations = sysDictDataService.selectDictDataList(sysDictData);
                                             if(stations.size()>0){
                                             if(stations.size()>0){
+                                                try{
+                                                    //进站点 记录时间
+                                                    JSONObject datainout = new JSONObject();
+                                                    if(scheduleVo.getExt1()!=null){
+                                                        datainout = JSONUtil.parseObj(scheduleVo.getExt1());
+                                                    }
+                                                    JSONObject inout = new JSONObject();
+                                                    inout.set("intime", DateUtil.now());
+                                                    datainout.set(stations.get(0).getDictLabel(),inout);
+                                                    scheduleVo.setExt1(JSONUtil.toJsonStr(datainout));
+                                                    TblCarScheduleBo scheduleVo1 = new TblCarScheduleBo();
+                                                    scheduleVo1.setId(scheduleVo.getId());
+                                                    scheduleVo1.setExt1(scheduleVo.getExt1());
+                                                    tblCarScheduleService.updateByBo(scheduleVo1);
+                                                }catch (Exception e){}
+
+
                                                 //满足条件播报(led or 广播)
                                                 //满足条件播报(led or 广播)
                                                 String message = StringUtils.format("{}即将到达{},即将到达,请准备接货。", carInfoVo1.getCarNum(),stations.get(0).getDictLabel());
                                                 String message = StringUtils.format("{}即将到达{},即将到达,请准备接货。", carInfoVo1.getCarNum(),stations.get(0).getDictLabel());
                                                 if(StringUtils.isNotEmpty(stations.get(0).getRemark())){
                                                 if(StringUtils.isNotEmpty(stations.get(0).getRemark())){
@@ -210,6 +264,71 @@ public class CamelDataUtil {
     }
     }
 
 
 
 
+
+    public void ReciveTcpData(String body, Exchange exchange) throws UnsupportedEncodingException {
+        StringBuilder countdatastr= new StringBuilder("");
+        JSONArray data= JSONUtil.parseArray(body);
+        for (int i = 0; i < data.size(); i++) {
+            if( data.get(i) instanceof Integer){
+                countdatastr.append((char)(((Integer) data.get(i)).byteValue()&0xff));
+            }
+        }
+        if(StrUtil.isNotEmpty(countdatastr.toString())){
+            log.info("body:{}",countdatastr);
+            JSONObject countdata = JsonUtils.parseObject(countdatastr.toString(), JSONObject.class);
+            String sn = countdata.getStr("sn");
+            String type = countdata.getStr("type");
+            Long time = countdata.getLong("time");
+            Integer in = 0;
+            Integer out = 0;
+            Long iCreatedTime = 0L;
+            if(type.equals("count")){
+                //获取数据in out
+               JSONArray inoutarry =  ((JSONObject)(countdata.getJSONArray("data").get(0))).getJSONArray("count");
+                for (int i = 0; i < inoutarry.size(); i++) {
+                    if(((JSONObject)inoutarry.get(i)).getStr("name").equals("d1")){
+                        in = ((JSONObject)inoutarry.get(i)).getInt("in");
+                        out = ((JSONObject)inoutarry.get(i)).getInt("out");
+                        break;
+                    }
+                }
+                iCreatedTime = ((JSONObject)(countdata.getJSONArray("data").get(0))).getLong("iCreatedTime");
+                if(iCreatedTime*1000>DateUtil.current()-24*3600*1000  && iCreatedTime*1000<DateUtil.current()+24*3600*1000){
+                    //正确的时间
+                    CountData countData = new CountData();
+                    countData.setIncount(in);
+                    countData.setOutcount(out);
+                    countData.setDevicecode(sn);
+                    countData.setTslong(iCreatedTime*1000);
+                    countDataService.insertData(countData);
+                }else{
+                    log.error("{}:时间错误",iCreatedTime);
+
+                }
+                //存储数据
+//                log.info("{},{},{},{},{}",sn,type,in,out,iCreatedTime);
+            }
+
+
+            //组织返回数据
+            JSONObject result = new JSONObject();
+            result.put( "sn" , sn) ;
+            result.put("type", type) ;
+            if(type.equals("heart")){
+                JSONObject sub = new JSONObject() ;
+                sub.put("time", time) ;
+                result.put("data", sub ) ;
+            }else{
+                result.put("time", time  ) ;
+            }
+
+            NettyChannelHandlerContext ctx = ChannelMapCache.get(((ChannelHandlerContext)exchange.getIn().getHeader("CamelNettyChannelHandlerContext")).channel().toString());
+            ByteBuf buf = Unpooled.copiedBuffer(JsonUtils.toJsonString(result).getBytes(CharsetUtil.UTF_8));
+            ctx.getChannelHandlerContext().writeAndFlush(buf);
+        }
+
+
+    }
 //    public static void main(String[] args) {
 //    public static void main(String[] args) {
 //        String ss = "{\"pathLine\": [{\"order\": 1, \"location\": \"119.807462,26.958413\", \"planInTime\": \"00:15:00\", \"planOutTime\": \"01:15:00\", \"stationName\": \"松罗乡\"}, {\"order\": 2, \"location\": \"119.723653,26.841206\", \"planInTime\": \"00:30:00\", \"planOutTime\": \"01:15:00\", \"stationName\": \"福安客运站\"}, {\"order\": 3, \"location\": \"119.852881,26.817088\", \"planInTime\": \"01:15:00\", \"planOutTime\": \"04:15:00\", \"stationName\": \"姚澳村\"}], \"driverInfo\": 2, \"attendantInfo\": \"1763485590079639554\"}";
 //        String ss = "{\"pathLine\": [{\"order\": 1, \"location\": \"119.807462,26.958413\", \"planInTime\": \"00:15:00\", \"planOutTime\": \"01:15:00\", \"stationName\": \"松罗乡\"}, {\"order\": 2, \"location\": \"119.723653,26.841206\", \"planInTime\": \"00:30:00\", \"planOutTime\": \"01:15:00\", \"stationName\": \"福安客运站\"}, {\"order\": 3, \"location\": \"119.852881,26.817088\", \"planInTime\": \"01:15:00\", \"planOutTime\": \"04:15:00\", \"stationName\": \"姚澳村\"}], \"driverInfo\": 2, \"attendantInfo\": \"1763485590079639554\"}";
 //        JSONArray lines = JSONUtil.parseObj(ss).getJSONArray("pathLine");
 //        JSONArray lines = JSONUtil.parseObj(ss).getJSONArray("pathLine");

+ 15 - 0
ruoyi-modules/ruoyi-khy/src/main/java/org/dromara/util/YingshiHttp.java

@@ -0,0 +1,15 @@
+package org.dromara.util;
+
+import com.dtflys.forest.annotation.Post;
+import com.dtflys.forest.annotation.Query;
+
+import java.util.Map;
+
+public interface YingshiHttp {
+
+    @Post("https://open.ys7.com/api/lapp/token/get")
+    Map<String,Object> getAccessToken(@Query("appKey") String accessKey, @Query("appSecret") String secretKey);
+
+    @Post("https://open.ys7.com/api/lapp/v2/live/address/get")
+    Map<String,Object> getLiveAddress(@Query("accessToken") String accessToken, @Query("deviceSerial") String deviceSerial);
+}

+ 13 - 0
ruoyi-modules/ruoyi-khy/src/main/resources/mapper/system/TblCountDataMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.system.mapper.TblCountDataMapper">
+
+
+    <insert id="insertdata" parameterType="org.dromara.system.domain.CountData">
+        INSERT INTO "${devicecode}" USING count_data TAGS (#{devicecode}, 1) VALUES (#{tslong}, #{incount}, #{outcount});
+    </insert>
+
+
+</mapper>

+ 4 - 0
script/sql/taos.sql

@@ -0,0 +1,4 @@
+create database khyznh;
+use khyznh;
+CREATE STABLE `gps_data` (`ts` TIMESTAMP, `speed` DOUBLE, `lat` DOUBLE, `lng` DOUBLE, `alt` DOUBLE) TAGS (`devicecode` VARCHAR(64), `groupid` INT);
+CREATE STABLE `count_data` (`ts` TIMESTAMP, `incount` INT, `outcount` INT) TAGS (`devicecode` VARCHAR(64), `groupid` INT);