From 76876a632f2dd61acefde9c4e75cb8242c658ca2 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: Mon, 07 Aug 2023 16:22:14 +0800
Subject: [PATCH] 三一车辆查询有历史轨迹日期提交
---
ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarDayService.java | 67 ++++++++
ard-work/src/main/resources/mapper/sy/ArdSyCarDayMapper.xml | 83 ++++++++++
ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarDayMapper.java | 74 +++++++++
ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarDay.java | 93 +++++++++++
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarDayServiceImpl.java | 120 +++++++++++++++
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | 3
ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | 2
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 17 ++
8 files changed, 455 insertions(+), 4 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
index 9fc5f1c..3ecae28 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -3,7 +3,6 @@
import java.util.*;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.core.domain.entity.SysUser;
@@ -34,8 +33,6 @@
import com.ruoyi.sy.service.IArdSyCarService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
/**
diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarDay.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarDay.java
new file mode 100644
index 0000000..43a855f
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdSyCarDay.java
@@ -0,0 +1,93 @@
+package com.ruoyi.sy.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 三一车辆上报时间对象 ard_sy_car_day
+ *
+ * @author ard
+ * @date 2023-08-07
+ */
+public class ArdSyCarDay extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private String id;
+
+ /** 车辆主键 */
+ @Excel(name = "车辆主键")
+ private String carId;
+
+ /** 上报日(年月日) */
+ @Excel(name = "上报日", readConverterExp = "年=月日")
+ private String day;
+
+ /** 首次上报时间 */
+ @Excel(name = "首次上报时间")
+ private String firstTime;
+
+ /** 最后上报时间 */
+ @Excel(name = "最后上报时间")
+ private String endTime;
+
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+ public void setCarId(String carId)
+ {
+ this.carId = carId;
+ }
+
+ public String getCarId()
+ {
+ return carId;
+ }
+ public void setDay(String day)
+ {
+ this.day = day;
+ }
+
+ public String getDay()
+ {
+ return day;
+ }
+ public void setFirstTime(String firstTime)
+ {
+ this.firstTime = firstTime;
+ }
+
+ public String getFirstTime()
+ {
+ return firstTime;
+ }
+ public void setEndTime(String endTime)
+ {
+ this.endTime = endTime;
+ }
+
+ public String getEndTime()
+ {
+ return endTime;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("carId", getCarId())
+ .append("day", getDay())
+ .append("firstTime", getFirstTime())
+ .append("endTime", getEndTime())
+ .toString();
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
index 9025354..9be6f79 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java
@@ -13,6 +13,7 @@
import com.gps31.push.netty.client.TcpClient;
import com.gps31.push.util.MapUtil;
import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.sy.service.impl.ArdSyCarDayServiceImpl;
import com.ruoyi.sy.service.impl.ArdSyCarServiceImpl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -74,6 +75,7 @@
System.out.println(sdf.format(new Date()));
log.error(String.format(" ---->收到定位数据:%s",JSON.toJSONString(gpsMap)));*/
String carId = (String)gpsMap.get("carId");
+ ((ArdSyCarDayServiceImpl)SpringUtils.getBean("ardSyCarDayServiceImpl")).insertArdSyCarDay(carId);//新增车辆上报时间
Map<String,Object> result = ((ArdSyCarServiceImpl)SpringUtils.getBean("ardSyCarServiceImpl")).getArdSyCarAndDeptByCarId(carId);//查询车辆及部门
if(result != null){
gpsMap.putAll(result);
diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarDayMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarDayMapper.java
new file mode 100644
index 0000000..997f050
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarDayMapper.java
@@ -0,0 +1,74 @@
+package com.ruoyi.sy.mapper;
+
+import java.util.List;
+import com.ruoyi.sy.domain.ArdSyCarDay;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 三一车辆上报时间Mapper接口
+ *
+ * @author ard
+ * @date 2023-08-07
+ */
+public interface ArdSyCarDayMapper
+{
+ /**
+ * 查询三一车辆上报时间
+ *
+ * @param id 三一车辆上报时间主键
+ * @return 三一车辆上报时间
+ */
+ public ArdSyCarDay selectArdSyCarDayById(String id);
+
+ /**
+ * 查询三一车辆上报时间列表
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 三一车辆上报时间集合
+ */
+ public List<ArdSyCarDay> selectArdSyCarDayList(ArdSyCarDay ardSyCarDay);
+
+ /**
+ * 新增三一车辆上报时间
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 结果
+ */
+ public int insertArdSyCarDay(ArdSyCarDay ardSyCarDay);
+
+ /**
+ * 修改三一车辆上报时间
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 结果
+ */
+ public int updateArdSyCarDay(ArdSyCarDay ardSyCarDay);
+
+ /**
+ * 删除三一车辆上报时间
+ *
+ * @param id 三一车辆上报时间主键
+ * @return 结果
+ */
+ public int deleteArdSyCarDayById(String id);
+
+ /**
+ * 批量删除三一车辆上报时间
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteArdSyCarDayByIds(String[] ids);
+
+ /**
+ * 更改三一车辆上报时间信息
+ *
+ */
+ public int updateArdSyCarDayByCarIdAndDay(@Param("carId")String carId, @Param("day")String day, @Param("endTime")String endTime);
+
+ /**
+ * 根据车辆主键及上传日期查询三一车辆上报时间信息
+ *
+ */
+ public List<ArdSyCarDay> selectArdSyCarDayByCarIdAndDay(@Param("carId")String carId,@Param("day")String day);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarDayService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarDayService.java
new file mode 100644
index 0000000..c63994d
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdSyCarDayService.java
@@ -0,0 +1,67 @@
+package com.ruoyi.sy.service;
+
+import java.util.List;
+import com.ruoyi.sy.domain.ArdSyCarDay;
+
+/**
+ * 三一车辆上报时间Service接口
+ *
+ * @author ard
+ * @date 2023-08-07
+ */
+public interface IArdSyCarDayService
+{
+ /**
+ * 查询三一车辆上报时间
+ *
+ * @param id 三一车辆上报时间主键
+ * @return 三一车辆上报时间
+ */
+ public ArdSyCarDay selectArdSyCarDayById(String id);
+
+ /**
+ * 查询三一车辆上报时间列表
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 三一车辆上报时间集合
+ */
+ public List<ArdSyCarDay> selectArdSyCarDayList(ArdSyCarDay ardSyCarDay);
+
+ /**
+ * 新增三一车辆上报时间
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 结果
+ */
+ public int insertArdSyCarDay(ArdSyCarDay ardSyCarDay);
+
+ /**
+ * 修改三一车辆上报时间
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 结果
+ */
+ public int updateArdSyCarDay(ArdSyCarDay ardSyCarDay);
+
+ /**
+ * 批量删除三一车辆上报时间
+ *
+ * @param ids 需要删除的三一车辆上报时间主键集合
+ * @return 结果
+ */
+ public int deleteArdSyCarDayByIds(String[] ids);
+
+ /**
+ * 删除三一车辆上报时间信息
+ *
+ * @param id 三一车辆上报时间主键
+ * @return 结果
+ */
+ public int deleteArdSyCarDayById(String id);
+
+ /**
+ * 新增三一车辆上报时间信息
+ *
+ */
+ public int insertArdSyCarDay(String carId);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarDayServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarDayServiceImpl.java
new file mode 100644
index 0000000..cc06e5f
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarDayServiceImpl.java
@@ -0,0 +1,120 @@
+package com.ruoyi.sy.service.impl;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+import com.ruoyi.common.utils.uuid.IdUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.sy.mapper.ArdSyCarDayMapper;
+import com.ruoyi.sy.domain.ArdSyCarDay;
+import com.ruoyi.sy.service.IArdSyCarDayService;
+
+import javax.annotation.Resource;
+
+/**
+ * 三一车辆上报时间Service业务层处理
+ *
+ * @author ard
+ * @date 2023-08-07
+ */
+@Service
+public class ArdSyCarDayServiceImpl implements IArdSyCarDayService {
+ @Resource
+ private ArdSyCarDayMapper ardSyCarDayMapper;
+
+ /**
+ * 查询三一车辆上报时间
+ *
+ * @param id 三一车辆上报时间主键
+ * @return 三一车辆上报时间
+ */
+ @Override
+ public ArdSyCarDay selectArdSyCarDayById(String id) {
+ return ardSyCarDayMapper.selectArdSyCarDayById(id);
+ }
+
+ /**
+ * 查询三一车辆上报时间列表
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 三一车辆上报时间
+ */
+ @Override
+ public List<ArdSyCarDay> selectArdSyCarDayList(ArdSyCarDay ardSyCarDay) {
+ return ardSyCarDayMapper.selectArdSyCarDayList(ardSyCarDay);
+ }
+
+ /**
+ * 新增三一车辆上报时间
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 结果
+ */
+ @Override
+ public int insertArdSyCarDay(ArdSyCarDay ardSyCarDay) {
+ return ardSyCarDayMapper.insertArdSyCarDay(ardSyCarDay);
+ }
+
+ /**
+ * 修改三一车辆上报时间
+ *
+ * @param ardSyCarDay 三一车辆上报时间
+ * @return 结果
+ */
+ @Override
+ public int updateArdSyCarDay(ArdSyCarDay ardSyCarDay) {
+ return ardSyCarDayMapper.updateArdSyCarDay(ardSyCarDay);
+ }
+
+ /**
+ * 批量删除三一车辆上报时间
+ *
+ * @param ids 需要删除的三一车辆上报时间主键
+ * @return 结果
+ */
+ @Override
+ public int deleteArdSyCarDayByIds(String[] ids) {
+ return ardSyCarDayMapper.deleteArdSyCarDayByIds(ids);
+ }
+
+ /**
+ * 删除三一车辆上报时间信息
+ *
+ * @param id 三一车辆上报时间主键
+ * @return 结果
+ */
+ @Override
+ public int deleteArdSyCarDayById(String id) {
+ return ardSyCarDayMapper.deleteArdSyCarDayById(id);
+ }
+
+ /**
+ * 新增三一车辆上报时间信息
+ *
+ */
+ @Override
+ public int insertArdSyCarDay(String carId) {
+ String id = IdUtils.simpleUUID();
+ SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd");
+ String day = ymd.format(new Date());
+ ArdSyCarDay ardSyCarDay = new ArdSyCarDay();
+ ardSyCarDay.setCarId(carId);
+ ardSyCarDay.setDay(day);
+ List<ArdSyCarDay> ardSyCarDayList = ardSyCarDayMapper.selectArdSyCarDayList(ardSyCarDay);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ int result = 0;
+ if(ardSyCarDayList.size() == 0){
+ String time = sdf.format(new Date());
+ ardSyCarDay.setFirstTime(time);
+ ardSyCarDay.setEndTime(time);
+ ardSyCarDay.setId(id);
+ result = ardSyCarDayMapper.insertArdSyCarDay(ardSyCarDay);
+ }else{
+ String endTime = sdf.format(new Date());
+ result = ardSyCarDayMapper.updateArdSyCarDayByCarIdAndDay(carId,ardSyCarDayList.get(0).getDay(),endTime);
+ }
+ return result;
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
index bf45df9..ff4c707 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java
@@ -14,6 +14,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.sy.domain.ArdSyCarDay;
+import com.ruoyi.sy.mapper.ArdSyCarDayMapper;
import com.ruoyi.utils.websocket.util.WebSocketUtils;
import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
import com.ruoyi.storage.minio.utils.MinioUtils;
@@ -68,6 +70,9 @@
@Resource
private SYClient sYClient;
+
+ @Resource
+ private ArdSyCarDayMapper ardSyCarDayMapper;
private Map<Integer,Map<String,String>> logInMap = new HashMap();
@@ -798,7 +803,7 @@
}
}
- @Override
+ /*@Override
public Results getExistTraceByCarIdAndMonth(String userId, String carId, String time) {
SysConfig config = new SysConfig();
config.setConfigKey("syCarPT");
@@ -820,6 +825,16 @@
return Results.succeed(existTraceMap);
}
}
+ }*/
+
+ @Override
+ public Results getExistTraceByCarIdAndMonth(String userId, String carId, String time) {
+ List<ArdSyCarDay> result = ardSyCarDayMapper.selectArdSyCarDayByCarIdAndDay(carId,time + "%");
+ List<String> list = new ArrayList();
+ for(ArdSyCarDay ardSyCarDay : result){
+ list.add(ardSyCarDay.getDay().split("-")[2]);
+ }
+ return Results.succeed(list);
}
public Map<String,Integer> getExistTraceByCarIdAndMonth(String url,String usersId,String password,String carId,String time){
diff --git a/ard-work/src/main/resources/mapper/sy/ArdSyCarDayMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdSyCarDayMapper.xml
new file mode 100644
index 0000000..2d95fad
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/sy/ArdSyCarDayMapper.xml
@@ -0,0 +1,83 @@
+<?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="com.ruoyi.sy.mapper.ArdSyCarDayMapper">
+
+ <resultMap type="ArdSyCarDay" id="ArdSyCarDayResult">
+ <result property="id" column="id" />
+ <result property="carId" column="car_id" />
+ <result property="day" column="day" />
+ <result property="firstTime" column="first_time" />
+ <result property="endTime" column="end_time" />
+ </resultMap>
+
+ <sql id="selectArdSyCarDayVo">
+ select id, car_id, day, first_time, end_time from ard_sy_car_day
+ </sql>
+
+ <select id="selectArdSyCarDayList" parameterType="ArdSyCarDay" resultMap="ArdSyCarDayResult">
+ <include refid="selectArdSyCarDayVo"/>
+ <where>
+ <if test="carId != null and carId != ''"> and car_id = #{carId}</if>
+ <if test="day != null and day != ''"> and day = #{day}</if>
+ <if test="firstTime != null and firstTime != ''"> and first_time = #{firstTime}</if>
+ <if test="endTime != null and endTime != ''"> and end_time = #{endTime}</if>
+ </where>
+ </select>
+
+ <select id="selectArdSyCarDayById" parameterType="String" resultMap="ArdSyCarDayResult">
+ <include refid="selectArdSyCarDayVo"/>
+ where id = #{id}
+ </select>
+
+ <insert id="insertArdSyCarDay" parameterType="ArdSyCarDay">
+ insert into ard_sy_car_day
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">id,</if>
+ <if test="carId != null">car_id,</if>
+ <if test="day != null">day,</if>
+ <if test="firstTime != null">first_time,</if>
+ <if test="endTime != null">end_time,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">#{id},</if>
+ <if test="carId != null">#{carId},</if>
+ <if test="day != null">#{day},</if>
+ <if test="firstTime != null">#{firstTime},</if>
+ <if test="endTime != null">#{endTime},</if>
+ </trim>
+ </insert>
+
+ <update id="updateArdSyCarDay" parameterType="ArdSyCarDay">
+ update ard_sy_car_day
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="carId != null">car_id = #{carId},</if>
+ <if test="day != null">day = #{day},</if>
+ <if test="firstTime != null">first_time = #{firstTime},</if>
+ <if test="endTime != null">end_time = #{endTime},</if>
+ </trim>
+ where id = #{id}
+ </update>
+
+ <delete id="deleteArdSyCarDayById" parameterType="String">
+ delete from ard_sy_car_day where id = #{id}
+ </delete>
+
+ <delete id="deleteArdSyCarDayByIds" parameterType="String">
+ delete from ard_sy_car_day where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+
+ <update id="updateArdSyCarDayByCarIdAndDay" parameterType="java.lang.String">
+ update ard_sy_car_day set end_time = #{endTime} where car_id = #{carId} and day = #{day}
+ </update>
+
+ <select id="selectArdSyCarDayByCarIdAndDay" parameterType="java.lang.String" resultMap="ArdSyCarDayResult">
+ select * from ard_sy_car_day ascd
+ where ascd.car_id = #{carId} and ascd.day like #{day}
+ order by ascd.day desc
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3