From adc9b922c116463d626d8b7094933278ad89e6df Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期六, 20 七月 2024 13:10:25 +0800
Subject: [PATCH] 三一车辆车队查询bug修改提交
---
ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml | 7 +++
ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java | 2 +
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | 61 ++++++++++++++++++++++++++++++
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarServiceImpl.java | 17 +++++---
4 files changed, 80 insertions(+), 7 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 00c1e59..5a992eb 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
@@ -12,10 +12,13 @@
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.sy.domain.ArdTankLock;
import com.ruoyi.sy.gps31.PushClientImplSerialPort;
import com.ruoyi.sy.param.ArdSyCarParam;
import com.ruoyi.sy.service.IArdTankAbnormalParkAlarmService;
+import com.ruoyi.sy.service.impl.ArdTankLockServiceImpl;
import com.ruoyi.sy.vo.ArdSyCarVo;
import com.ruoyi.sy.domain.ArdSyUser;
import com.ruoyi.sy.gps31.PositionContainer;
@@ -26,6 +29,7 @@
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.impl.SysConfigServiceImpl;
import com.ruoyi.utils.forest.SYClient;
import com.ruoyi.utils.result.Results;
import io.swagger.annotations.Api;
@@ -90,6 +94,8 @@
@Value("${syCar.password}")
private String password;
+ private Timer lockStateTimer;
+
@PostConstruct
public void init(){
ardSyCarController = this;
@@ -131,13 +137,66 @@
PushClientImplAlarm pushClientImplAlarm = new PushClientImplAlarm(ip,userId,password);
Thread pushClientImplAlarmThread = new Thread(pushClientImplAlarm);
pushClientImplAlarmThread.start();
-
+ //涓插彛绾跨▼
PushClientImplSerialPort pushClientImplSerialPort = new PushClientImplSerialPort(ip,userId,password);
Thread pushClientImplSerialPortThread = new Thread(pushClientImplSerialPort);
pushClientImplSerialPortThread.start();
//鍒犻櫎缁撴潫鏃堕棿涓簄ull鐨勮褰�
int result = ardTankAbnormalParkAlarmService.deleteArdTankAbnormalParkAlarmByEndTime();
+
+ this.lockStateTimer = new Timer();//瀹氭椂鑾峰彇鍚勪釜閿佺殑鐘舵��
+ TimerTask lockStateTask =new TimerTask(){
+ @Override
+ public void run(){
+ Thread thread = new Thread(){
+ @Override
+ public void run() {
+ SysConfig config = new SysConfig();
+ config.setConfigKey("syCarPT");
+ List<SysConfig> sysConfigResult = ((SysConfigServiceImpl) SpringUtils.getBean("sysConfigServiceImpl")).selectConfigList(config);
+ String syURL = "";
+
+ if(sysConfigResult.size() == 0){
+ return;
+ }else{
+ syURL = sysConfigResult.get(0).getConfigValue();
+ }
+ String passwordMd5 = DigestUtils.md5Hex(password);
+ Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, userId);
+ String sessionId = (String) LogInResult.get("sessionId");
+
+ String finalSyURL = syURL;
+
+ List<ArdTankLock> result = ((ArdTankLockServiceImpl)SpringUtils.getBean("ardTankLockServiceImpl")).getArdTankLockAll();//鏌ヨ鍏ㄩ儴鐢电閿�
+ for(ArdTankLock ardTankLock : result){
+ Thread LockThread = new Thread(finalSyURL){
+ @Override
+ public void run() {
+ String lockNumHead = ardTankLock.getLockNum().substring(0,2);
+ String lockNumTail = ardTankLock.getLockNum().substring(2,4);
+ //璁$畻鏍¢獙
+ String checkNum = Integer.toHexString(Integer.parseInt(lockNumHead, 16) + Integer.parseInt(lockNumTail, 16) + Integer.parseInt("01", 16));
+
+ if(checkNum.length() == 1){
+ checkNum = "0" + checkNum;
+ }else if(checkNum.length() > 2){
+ checkNum = checkNum.substring(checkNum.length() - 2,checkNum.length());
+ }
+
+ String paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + ardTankLock.getLockNum() + "01" + checkNum + "%22%7D";
+
+ sYClient.sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId);
+ }
+ };
+ LockThread.start();
+ }
+ }
+ };
+ thread.start();
+ }
+ };
+ //lockStateTimer.scheduleAtFixedRate(lockStateTask,date,1000);
}
/**
diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java
index 22ae2e4..390ef5f 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdSyCarMapper.java
@@ -88,4 +88,6 @@
public List<String> selectArdSyCarByDeptIds(@Param("deptIdList") List<Long> deptIdList);
public ArdSyCar getArdSyTankCarByCarId(String carId);
+
+ public long getCountByCarIdList(@Param("carIdList") List<String> carIdList);
}
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 8197af4..31f5842 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
@@ -577,12 +577,17 @@
continue;
}
}
-// for (Map<String, Object> m : (List<Map<String, Object>>) result0.get("list")) {
-// if (((String) m.get("teamId")).equals(((String) map.get("teamId")))) {
-// map.put("count", Integer.parseInt((String) m.get("carNum")));
-// }
-// }
- map.put("count", carList.size());
+ List<String> carIdList = new ArrayList();//瀛樻斁杞﹂槦涓嬪叏閮ㄨ溅杈嗕富閿�
+ for(Map<String, Object> carMap : carList){
+ carIdList.add((String) carMap.get("carId"));
+ }
+ //map.put("count", carList.size());
+ if(carIdList.size() == 0){
+ map.put("count", 0);
+ }else{
+ Long count = ardSyCarMapper.getCountByCarIdList(carIdList);
+ map.put("count", count);
+ }
map.put("online", online);
online = 0;
}
diff --git a/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml
index b1e3574..cf822fd 100644
--- a/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml
+++ b/ard-work/src/main/resources/mapper/sy/ArdSyCarMapper.xml
@@ -126,4 +126,11 @@
inner join ard_tank_lock atl on "asc".car_id = atl.car_id
where "asc".car_id = #{carId}
</select>
+ <select id="getCountByCarIdList" resultType="java.lang.Long">
+ select count(*) from ard_sy_car "asc"
+ where "asc".car_id in
+ <foreach item="carId" collection="carIdList" open="(" separator="," close=")">
+ #{carId}
+ </foreach>
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3