浏览代码

机车行驶日志

wyyay 2 年之前
父节点
当前提交
92e1ed43bf

+ 1 - 1
.idea/compiler.xml

@@ -8,8 +8,8 @@
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
         <module name="vehicle-admin" />
-        <module name="business-service" />
         <module name="hazard-admin" />
+        <module name="business-service" />
       </profile>
     </annotationProcessing>
     <bytecodeTargetLevel>

+ 15 - 15
.idea/jarRepositories.xml

@@ -2,8 +2,8 @@
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
     <remote-repository>
-      <option name="id" value="public" />
-      <option name="name" value="aliyun nexus" />
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
       <option name="url" value="https://maven.aliyun.com/repository/public" />
     </remote-repository>
     <remote-repository>
@@ -11,6 +11,16 @@
       <option name="name" value="Central Repository" />
       <option name="url" value="https://repo.maven.apache.org/maven2" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="public" />
+      <option name="name" value="aliyun nexus" />
+      <option name="url" value="https://maven.aliyun.com/repository/public" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
       <option name="name" value="Central Repository" />
@@ -26,25 +36,15 @@
       <option name="name" value="Central Repository" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
     </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="jboss.community" />
-      <option name="name" value="JBoss Community repository" />
-      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
-    </remote-repository>
     <remote-repository>
       <option name="id" value="custom_group" />
       <option name="name" value="Nexus Repository" />
       <option name="url" value="http://124.71.171.71:18881/repository/custom_group/" />
     </remote-repository>
     <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://maven.aliyun.com/repository/public" />
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
     </remote-repository>
   </component>
 </project>

+ 58 - 13
business-service/src/main/java/com/ozs/entity/VehiclePosition.java

@@ -1,11 +1,16 @@
 package com.ozs.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ozs.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.*;
 
 /**
  * <p>
@@ -16,7 +21,10 @@ import lombok.EqualsAndHashCode;
  * @since 2023-04-11
  */
 @Data
-@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel("机车行驶日志表")
 public class VehiclePosition implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -24,48 +32,85 @@ public class VehiclePosition implements Serializable {
     /**
      * 主键ID
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
      * 机车编码
      */
+    @Excel(name = "机车编码")
     private String vehicleCode;
 
     /**
-     * 终端编码
+     *终端编码
      */
+    @Excel(name = "终端编码")
     private String terminalCode;
 
     /**
-     * 车辆行驶位置
+     *车辆行驶位置
      */
     private Integer travelMile;
 
     /**
-     * 行别
+     *行别
      */
     private Integer lineDir;
 
     /**
-     * 线路编码
+     *线路编码
      */
     private String railwayCode;
 
     /**
-     * 当前时间
+     *当前时间
      */
-    private LocalDateTime currentTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date currentTime;
 
     /**
-     * 创建时间
+     *创建时间
      */
-    private LocalDateTime createTime;
+    @Excel(name = "解除时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
 
     /**
-     * 备注
+     *备注
      */
     private String remark;
 
+    /**
+     * 机车名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "机车名称")
+    private String vehicleName;
 
+    /**
+     *车辆行驶位置K+
+     */
+    @TableField(exist = false)
+    @Excel(name = "车辆行驶位置")
+    private String travelMileFormat;
+    /**
+     *行别名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "行别名称")
+    private String lineDirName;
+
+    /**
+     *线路名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "线路名称")
+    private String railwayName;
+
+    /**
+     *车载状态
+     */
+    @TableField(exist = false)
+    @Excel(name = "车载状态",readConverterExp = "1=在线,2=离线")
+    private String status;
 }

+ 26 - 0
business-service/src/main/java/com/ozs/entity/vo/VehiclePositionResp.java

@@ -0,0 +1,26 @@
+package com.ozs.entity.vo;
+
+import com.ozs.common.vo.PageVo;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**机车行驶日志页面请求参数
+ * @author wyy
+ * @subject
+ * @creat 2023/4/12
+ */
+@Data
+public class VehiclePositionResp extends PageVo implements Serializable {
+    //机车编码
+    private String vehicleCode;
+
+    //线路编码
+    private String railwayCode;
+
+    //行别
+    private Integer lineDir;
+
+    //车载状态
+    private Integer status;
+}

+ 11 - 0
business-service/src/main/java/com/ozs/mapper/VehiclePositionMapper.java

@@ -2,6 +2,9 @@ package com.ozs.mapper;
 
 import com.ozs.entity.VehiclePosition;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +15,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2023-04-11
  */
 public interface VehiclePositionMapper extends BaseMapper<VehiclePosition> {
+    /**
+     * 查询机车行驶日志列表
+     *@param vehicleCode 机车编码
+     *@param railwayCode 线路编码
+     *@param lineDir 行别
+     *@param status 车载状态
+     */
+    List<VehiclePosition> list(@Param("vehicleCode") String vehicleCode, @Param("railwayCode") String railwayCode, @Param("lineDir") Integer lineDir, @Param("status") Integer status);
 
 }

+ 8 - 0
business-service/src/main/java/com/ozs/service/VehiclePositionService.java

@@ -1,7 +1,11 @@
 package com.ozs.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ozs.entity.VehiclePosition;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ozs.entity.vo.VehiclePositionResp;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +16,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2023-04-11
  */
 public interface VehiclePositionService extends IService<VehiclePosition> {
+    //查询机车行驶日志列表分页
+    List<VehiclePosition> selectVehiclePositionList(VehiclePositionResp vehiclePositionResp);
+
+    public IPage listToPage(List list, int pageNum, int pageSize);
 
 }

+ 29 - 0
business-service/src/main/java/com/ozs/service/impl/VehiclePositionServiceImpl.java

@@ -1,11 +1,18 @@
 package com.ozs.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.entity.VehiclePosition;
+import com.ozs.entity.vo.VehiclePositionResp;
 import com.ozs.mapper.VehiclePositionMapper;
 import com.ozs.service.VehiclePositionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  * 机车行驶表 服务实现类
@@ -17,4 +24,26 @@ import org.springframework.stereotype.Service;
 @Service
 public class VehiclePositionServiceImpl extends ServiceImpl<VehiclePositionMapper, VehiclePosition> implements VehiclePositionService {
 
+    @Autowired
+    private VehiclePositionMapper vehiclePositionMapper;
+
+    @Override
+    public List<VehiclePosition> selectVehiclePositionList(VehiclePositionResp vehiclePositionResp) {
+        List<VehiclePosition> list = vehiclePositionMapper.list(vehiclePositionResp.getVehicleCode(),vehiclePositionResp.getRailwayCode(),
+                vehiclePositionResp.getLineDir(),vehiclePositionResp.getStatus());
+        return list;
+    }
+
+    @Override
+    public IPage listToPage(List list, int pageNum, int pageSize) {
+        List pageList = new ArrayList<>();
+        int curIdx = pageNum > 1 ? (pageNum - 1) * pageSize : 0;
+        for (int i = 0; i < pageSize && curIdx + i < list.size(); i++) {
+            pageList.add(list.get(curIdx + i));
+        }
+        IPage page = new Page<>(pageNum, pageSize);
+        page.setRecords(pageList);
+        page.setTotal(list.size());
+        return page;
+    }
 }

+ 49 - 0
business-service/src/main/resources/mapper/VehiclePositionMapper.xml

@@ -1,5 +1,54 @@
 <?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.ozs.mapper.VehiclePositionMapper">
+    <resultMap id="VehiclePositionResult" type="com.ozs.entity.VehiclePosition">
+        <id column="id" property="id"/>
+        <result column="vehicle_code" property="vehicleCode"/>
+        <result column="terminal_code" property="terminalCode"/>
+        <result column="travel_mile" property="travelMile"/>
+        <result column="line_dir" property="lineDir"/>
+        <result column="railway_code" property="railwayCode"/>
+        <result column="current_time" property="currentTime"/>
+        <result column="create_time" property="createTime"/>
+        <result column="remark" property="remark"/>
+        <result column="vehicle_name" property="vehicleName"/>
+        <result column="railway_name" property="railwayName"/>
+        <result column="status" property="terminalStatus"/>
+    </resultMap>
+    <select id="list" resultMap="VehiclePositionResult" >
+        SELECT
+        a.id,
+        a.vehicle_code,
+        a.terminal_code,
+        a.travel_mile,
+        a.line_dir,
+        a.railway_code,
+        a.current_time,
+        a.create_time,
+        a.remark,
+        b.vehicle_name,
+        d.railway_name,
+        c.status
+        FROM vehicle_position AS a INNER JOIN
+        base_vehicle AS b ON a.vehicle_code = b.vehicle_code INNER JOIN
+        base_vehicle_terminal c ON a.terminal_code = c.terminal_code INNER JOIN
+        base_railway_management d ON a.railway_code = d.railway_code
+
+        <where>
+            <if test="vehicleCode != null and vehicleCode != ''">
+                and a.vehicle_code = #{vehicleCode}
+            </if>
+            <if test="railwayCode != null and railwayCode != ''">
+                and a.railway_code = #{railwayCode}
+            </if>
+            <if test="lineDir != null and lineDir != 0">
+                and a.line_dir = #{currentYear}
+            </if>
+            <if test="status != null and status != 0">
+                and c.status = #{status}
+            </if>
+        </where>
+    </select>
+
 
 </mapper>

+ 62 - 10
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/VehiclePositionController.java

@@ -1,20 +1,72 @@
 package com.ozs.web.controller.accountmanagment;
 
-
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ozs.common.annotation.Log;
+import com.ozs.common.core.controller.BaseController;
+import com.ozs.common.core.domain.AjaxResult;
+import com.ozs.common.enums.BusinessType;
+import com.ozs.common.utils.AppendUtils;
+import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.entity.VehiclePosition;
+import com.ozs.entity.vo.VehiclePositionResp;
+import com.ozs.framework.manager.factory.AsyncFactory;
+import com.ozs.service.VehiclePositionService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
 /**
- * <p>
- * 机车行驶表 前端控制器
- * </p>
- *
- * @author ozs
- * @since 2023-04-11
+ * @author wyy
+ * @subject
+ * @creat 2023/4/12
  */
 @RestController
-@RequestMapping("/vehicle-position")
-public class VehiclePositionController {
+@RequestMapping("/monitor/vehicleposition")
+public class VehiclePositionController extends BaseController {
+    @Autowired
+    private VehiclePositionService vehiclePositionService;
 
-}
 
+    /**
+     * 获取机车行驶日志分页列表
+     *
+     * @param vehiclePositionResp
+     * @return
+     */
+    @ApiOperation(value = "获取机车日志分页列表")
+    @PostMapping("/list")
+    @Log(title = "报警信息管理", businessType = BusinessType.SELECT)
+    public AjaxResult list(@RequestBody VehiclePositionResp vehiclePositionResp) {
+        Integer pageNum = vehiclePositionResp.getPageNum().intValue();
+        Integer pageSize = vehiclePositionResp.getPageSize().intValue();
+        List<VehiclePosition> list = vehiclePositionService.selectVehiclePositionList(vehiclePositionResp);
+        if(!ObjectUtils.isEmpty(list)){
+            list.forEach(l -> {
+                if (!ObjectUtils.isEmpty(l.getTravelMile())) {
+                    l.setTravelMileFormat(AppendUtils.stringAppend(Integer.valueOf(l.getTravelMile())));
+                }
+                if(!ObjectUtils.isEmpty(l.getLineDir())){
+                    l.setLineDirName(l.getLineDir() == 1 ? "上行" : "下行");
+                }
+            });
+        }
+        IPage page = vehiclePositionService.listToPage(list, pageNum, pageSize);
+        return AjaxResult.success(page);
+    }
+
+    @Log(title = "机车行驶日志", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation(value = "机车行驶日志导出")
+    public void export(HttpServletResponse response, @RequestBody VehiclePositionResp vehiclePositionResp) {
+        List<VehiclePosition> list = vehiclePositionService.selectVehiclePositionList(vehiclePositionResp);
+        ExcelUtil<VehiclePosition> util = new ExcelUtil<VehiclePosition>(VehiclePosition.class);
+        util.exportExcel(response, list, "机车行驶日志");
+    }
+}