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