Pārlūkot izejas kodu

增加running设置。

zhengqiang 4 gadi atpakaļ
vecāks
revīzija
f9673ccda1

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/dao/VehicleInfoDAO.java

@@ -23,4 +23,6 @@ public interface VehicleInfoDAO {
 	VehicleInfo findByCarNum(String carNum);
 
     List<VehicleInfo> findByCompanyId(String companyId);
+
+    List<VehicleInfo> getRunningList();
 }

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/VehicleInfoService.java

@@ -24,4 +24,6 @@ public interface VehicleInfoService {
 	void updateGps(VehicleInfo v);
 
     List<VehicleInfo> findByCompanyId(String companyId);
+
+    List<VehicleInfo> getRunningList();
 }

+ 5 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/VehicleInfoServiceImpl.java

@@ -91,4 +91,9 @@ public class VehicleInfoServiceImpl implements VehicleInfoService {
 	public VehicleInfo findByCarNum(String carNum){
 		return vehicleInfoDAO.findByCarNum(carNum);
 	}
+
+	@Override
+	public List<VehicleInfo> getRunningList() {
+		return vehicleInfoDAO.getRunningList();
+	}
 }

+ 6 - 1
common/src/main/resources/mapper/bus/VehicleInfo.xml

@@ -187,6 +187,7 @@
 		update bus_vehicle_info
 		<set>
 			update_time=now(),
+			running_=1,
 			<if test="longitude!=null">
 				longitude_=#{longitude,jdbcType=VARCHAR},
 			</if>
@@ -212,5 +213,9 @@
 		and company_id = #{companyId}
 		]]>
 	</select>
-
+	<select id="getRunningList" resultMap="VehicleInfoMap">
+		select * from bus_vehicle_info
+		where del_flag=0
+		and running_=1
+	</select>
 </mapper>

+ 56 - 0
web/src/main/java/com/jpsoft/bus/scheduled/CheckVehicleTask.java

@@ -0,0 +1,56 @@
+package com.jpsoft.bus.scheduled;
+
+import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
+import com.jpsoft.bus.modules.bus.service.VehicleInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.joda.time.DateTime;
+import org.joda.time.Minutes;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 检查车辆是否有gps传回
+ */
+@Component
+@Slf4j
+public class CheckVehicleTask {
+    @Autowired
+    private VehicleInfoService vehicleInfoService;
+
+    @Scheduled(cron = "0 0/5 * * * ?")
+    public  void run() {
+        List<VehicleInfo> vehicleInfoList = vehicleInfoService.getRunningList();
+
+        DateTime now = DateTime.now();
+
+        for (VehicleInfo vehicleInfo : vehicleInfoList) {
+            boolean running = false;
+
+            if (vehicleInfo.getUpdateTime()!=null) {
+                int minutes = Minutes.minutesBetween(new DateTime(vehicleInfo.getUpdateTime()), now).getMinutes();
+
+                if (minutes > 5) {
+                    //5分钟未更新
+                    running = false;
+                }
+                else{
+                    running = true;
+                }
+            }
+            else{
+                running = false;
+            }
+
+            if (!running) {
+                vehicleInfo.setRunning(false);
+                vehicleInfo.setUpdateTime(new Date());
+
+                vehicleInfoService.update(vehicleInfo);
+            }
+        }
+    }
+}