ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -104,8 +104,6 @@ @Value("${syCar.password}") private String password; private Timer lockStateTimer; @PostConstruct public void init(){ ardSyCarController = this; @@ -155,7 +153,7 @@ //å é¤ç»ææ¶é´ä¸ºnullçè®°å½ int result = ardTankAbnormalParkAlarmService.deleteArdTankAbnormalParkAlarmByEndTime(); this.lockStateTimer = new Timer();//宿¶è·åå个éçç¶æ Timer lockStateTimer = new Timer();//宿¶è·åå个éçç¶æ TimerTask lockStateTask =new TimerTask(){ @Override public void run(){ @@ -180,7 +178,7 @@ List<ArdTankLock> result = ardTankLockService.getArdTankLockAll();//æ¥è¯¢å ¨é¨çµç£é for(ArdTankLock ardTankLock : result){ Thread LockThread = new Thread(finalSyURL){ Thread lockThread = new Thread(finalSyURL){ @Override public void run() { String lockNumHead = ardTankLock.getLockNum().substring(0,2); @@ -197,9 +195,13 @@ String paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + ardTankLock.getLockNum() + "01" + checkNum + "%22%7D"; sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); PositionContainer.getCarThreadMap().remove(ardTankLock.getCarId());//åéå®ï¼ä»å®¹å¨å»é¤ } }; LockThread.start(); if(PositionContainer.getCarThreadMap().get(ardTankLock.getCarId()) != null){//容å¨ä¸æ 线ç¨ï¼æ¾å ¥å®¹å¨ PositionContainer.getCarThreadMap().put(ardTankLock.getCarId(),lockThread); } lockThread.start(); } } }; @@ -214,80 +216,84 @@ TimerTask lockCheckTimeTask =new TimerTask(){ @Override public void run() { SysConfig config = new SysConfig(); config.setConfigKey("syCarPT"); List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config); String syURL = ""; SysConfig config = new SysConfig(); config.setConfigKey("syCarPT"); List<SysConfig> sysConfigResult = sysConfigService.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"); 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; String finalSyURL = syURL; List<ArdTankLock> result = ardTankLockService.getArdTankLockAll();//æ¥è¯¢å ¨é¨çµç£é for(ArdTankLock ardTankLock : result){ Thread LockThread = new Thread(finalSyURL){ @Override public void run() { //è·åæ¶é´å¹¶æåå¹´ææ¥æ¶åç§ String nowTime = sdf.format(new Date()); String nowYear = nowTime.substring(2,4); String nowMonth = nowTime.substring(5,7); String nowDay = nowTime.substring(8,10); String nowHour = nowTime.substring(11,13); String nowMinute = nowTime.substring(14,16); String nowSecond = nowTime.substring(17,19); List<ArdTankLock> result = ardTankLockService.getArdTankLockAll();//æ¥è¯¢å ¨é¨çµç£é for(ArdTankLock ardTankLock : result){ Thread lockThread = new Thread(finalSyURL){ @Override public void run() { //è·åæ¶é´å¹¶æåå¹´ææ¥æ¶åç§ String nowTime = sdf.format(new Date()); String nowYear = nowTime.substring(2,4); String nowMonth = nowTime.substring(5,7); String nowDay = nowTime.substring(8,10); String nowHour = nowTime.substring(11,13); String nowMinute = nowTime.substring(14,16); String nowSecond = nowTime.substring(17,19); String nowYearHex = Integer.toHexString(Integer.parseInt(nowYear)); if(nowYearHex.length() == 1){ nowYearHex = "0" + nowYearHex; } String nowMonthHex = Integer.toHexString(Integer.parseInt(nowMonth)); if(nowMonthHex.length() == 1){ nowMonthHex = "0" + nowMonthHex; } String nowDayHex = Integer.toHexString(Integer.parseInt(nowDay)); if(nowDayHex.length() == 1){ nowDayHex = "0" + nowDayHex; } String nowHourHex = Integer.toHexString(Integer.parseInt(nowHour)); if(nowHourHex.length() == 1){ nowHourHex = "0" + nowHourHex; } String nowMinuteHex = Integer.toHexString(Integer.parseInt(nowMinute)); if(nowMinuteHex.length() == 1){ nowMinuteHex = "0" + nowMinuteHex; } String nowSecondHex = Integer.toHexString(Integer.parseInt(nowSecond)); if(nowSecondHex.length() == 1){ nowSecondHex = "0" + nowSecondHex; } //16è¿å¶æ¶é´ String timeHex = nowYearHex + nowMonthHex + nowDayHex + nowHourHex + nowMinuteHex + nowSecondHex; 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("08", 16) + Integer.parseInt(nowYearHex, 16) + Integer.parseInt(nowMonthHex, 16) + Integer.parseInt(nowDayHex, 16) + Integer.parseInt(nowHourHex, 16) + Integer.parseInt(nowMinuteHex, 16) + Integer.parseInt(nowSecondHex, 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() + "08" + timeHex + checkNum + "%22%7D"; sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); String nowYearHex = Integer.toHexString(Integer.parseInt(nowYear)); if(nowYearHex.length() == 1){ nowYearHex = "0" + nowYearHex; } }; LockThread.start(); String nowMonthHex = Integer.toHexString(Integer.parseInt(nowMonth)); if(nowMonthHex.length() == 1){ nowMonthHex = "0" + nowMonthHex; } String nowDayHex = Integer.toHexString(Integer.parseInt(nowDay)); if(nowDayHex.length() == 1){ nowDayHex = "0" + nowDayHex; } String nowHourHex = Integer.toHexString(Integer.parseInt(nowHour)); if(nowHourHex.length() == 1){ nowHourHex = "0" + nowHourHex; } String nowMinuteHex = Integer.toHexString(Integer.parseInt(nowMinute)); if(nowMinuteHex.length() == 1){ nowMinuteHex = "0" + nowMinuteHex; } String nowSecondHex = Integer.toHexString(Integer.parseInt(nowSecond)); if(nowSecondHex.length() == 1){ nowSecondHex = "0" + nowSecondHex; } //16è¿å¶æ¶é´ String timeHex = nowYearHex + nowMonthHex + nowDayHex + nowHourHex + nowMinuteHex + nowSecondHex; 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("08", 16) + Integer.parseInt(nowYearHex, 16) + Integer.parseInt(nowMonthHex, 16) + Integer.parseInt(nowDayHex, 16) + Integer.parseInt(nowHourHex, 16) + Integer.parseInt(nowMinuteHex, 16) + Integer.parseInt(nowSecondHex, 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() + "08" + timeHex + checkNum + "%22%7D"; sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); PositionContainer.getCarThreadMap().remove(ardTankLock.getCarId());//åéå®ï¼ä»å®¹å¨å»é¤ } }; if(PositionContainer.getCarThreadMap().get(ardTankLock.getCarId()) != null){//容å¨ä¸æ 线ç¨ï¼æ¾å ¥å®¹å¨ PositionContainer.getCarThreadMap().put(ardTankLock.getCarId(),lockThread); } lockThread.start(); } } }; lockCheckTimeTimer.scheduleAtFixedRate(lockCheckTimeTask,date,7000); @@ -316,7 +322,7 @@ } Timer alarmTimer = new Timer();//宿¶è·åæ¥è¦ /*Timer alarmTimer = new Timer();//宿¶è·åæ¥è¦ TimerTask alarmTask = new TimerTask(){ @Override public void run() { @@ -329,7 +335,7 @@ alarmThread.start(); } }; alarmTimer.scheduleAtFixedRate(alarmTask,date,3000); alarmTimer.scheduleAtFixedRate(alarmTask,date,3000);*/ } ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java
@@ -9,9 +9,7 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdTankWall; import com.ruoyi.sy.service.IArdTankLockProcessLogService; import com.ruoyi.sy.service.IArdTankWallLockService; import com.ruoyi.sy.service.IArdTankWallService; import com.ruoyi.sy.service.*; import com.ruoyi.utils.result.Results; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -30,7 +28,6 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.sy.domain.ArdTankLock; import com.ruoyi.sy.service.IArdTankLockService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; @@ -55,6 +52,9 @@ @Autowired private IArdTankLockProcessLogService ardTankLockProcessLogService; @Autowired private IArdTankLockAlarmService ardTankLockAlarmService; /** * æ¥è¯¢çµç£éå表 @@ -335,4 +335,21 @@ String username = SecurityUtils.getUsername(); return ardTankLockProcessLogService.processArdTankLockByLockId(userId,username,para); } @ApiOperation("æ¥è¯¢çµç£éæ¥è¦") @PreAuthorize("@ss.hasPermi('sy:lock:getAlarm')") @PostMapping("/getAlarm") public TableDataInfo getAlarm(@RequestBody Map<String,Object> para) { PageHelper.startPage((Integer) para.get("pageNum"), (Integer) para.get("pageSize")); String userId = SecurityUtils.getUserId(); Map<String,Object> result = ardTankLockAlarmService.getAlarm(userId,para); TableDataInfo dataTable = new TableDataInfo(); dataTable.setRows((List<Map<String,Object>>) result.get("list")); dataTable.setTotal((Long) result.get("total")); dataTable.setCode(200); dataTable.setMsg("æ¥è¯¢æå"); return dataTable; } } ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockAlarm.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_tank_lock_alarm * * @author ard * @date 2024-07-26 */ public class ArdTankLockAlarm extends BaseEntity { private static final long serialVersionUID = 1L; /** éç¼å· */ @Excel(name = "éç¼å·") private String lockNum; /** æ¥è¦ä¿¡æ¯ */ @Excel(name = "æ¥è¦ä¿¡æ¯") private String alarmInfo; /** ä¸»é® */ private String id; /** éä¸»é® */ @Excel(name = "é主é®") private String lockId; /** æ¥è¦æ¶é´ */ @Excel(name = "æ¥è¦æ¶é´") private String alarmTime; public void setLockNum(String lockNum) { this.lockNum = lockNum; } public String getLockNum() { return lockNum; } public void setAlarmInfo(String alarmInfo) { this.alarmInfo = alarmInfo; } public String getAlarmInfo() { return alarmInfo; } public void setId(String id) { this.id = id; } public String getId() { return id; } public void setLockId(String lockId) { this.lockId = lockId; } public String getLockId() { return lockId; } public void setAlarmTime(String alarmTime) { this.alarmTime = alarmTime; } public String getAlarmTime() { return alarmTime; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("lockNum", getLockNum()) .append("alarmInfo", getAlarmInfo()) .append("id", getId()) .append("lockId", getLockId()) .append("alarmTime", getAlarmTime()) .toString(); } } ard-work/src/main/java/com/ruoyi/sy/gps31/PositionContainer.java
@@ -16,6 +16,8 @@ private static Map<String,Thread> tankCarParkingAlarmTHread = new HashMap();//ä¾è½¦è¾åæ¾å¼å¸¸å车线ç¨:carIdï¼å¼å¸¸åè½¦çº¿ç¨ private static Map<String,Thread> carThreadMap = new HashMap();//车è¾ä¸»é®,线ç¨å®¹å¨ public static Map<String, List<ArdSyCarLock>> getTopicSubscribe() { return topicSubscribe; } @@ -58,4 +60,12 @@ public static void setTankCarParkingAlarmTHread(Map<String, Thread> tankCarParkingAlarmTHread) { PositionContainer.tankCarParkingAlarmTHread = tankCarParkingAlarmTHread; } public static Map<String, Thread> getCarThreadMap() { return carThreadMap; } public static void setCarThreadMap(Map<String, Thread> carThreadMap) { PositionContainer.carThreadMap = carThreadMap; } } ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java
@@ -121,9 +121,14 @@ for(int i = 0;i <= data.length() - 4;i = i + 2){ String str = data.substring(i, i + 2); sum = sum + Integer.parseInt(str, 16); } }//æ±å String checkNum = data.substring(data.length() - 2, data.length()); if(!checkNum.equals(Integer.toHexString(sum).toUpperCase())){//æ ¡éªä¸éè¿ï¼å°±è¿å String checkNumComputed = Integer.toHexString(sum).toUpperCase();//è®¡ç®æ ¡éª //彿 ¡éªæ°æ®å¤§äº2个åç¬¦ï¼æªåæåä¸¤ä½ if(checkNumComputed.length() != 2){ checkNumComputed = checkNumComputed.substring(checkNumComputed.length() - 2,checkNumComputed.length()); } if(!checkNum.equals(checkNumComputed)){//æ ¡éªä¸éè¿ï¼å°±è¿å return; } @@ -196,9 +201,6 @@ } long cha = now.getTime() - sdf.parse(time).getTime(); /*System.out.println("////////////////"); System.out.println(time); System.out.println(cha);*/ if(Math.abs(cha) >= 5 * 1000){ //æ¶é´æ ¡å /*String url = "http://" + ip + ":9999"; @@ -328,9 +330,9 @@ ardTankLockState.setUniqueMark(uniqueMark); ((ArdTankLockStateServiceImpl)SpringUtils.getBean("ardTankLockStateServiceImpl")).insertOrUpdateArdTankLockState(ardTankLockState); } }else if(code.equals("06")){//åè½ç 06为éå岿¥è¦ }/*else if(code.equals("06")){//åè½ç 06为éå岿¥è¦ } }*/ }catch (Exception e){ e.printStackTrace(); return;//强转失败è¿å ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockAlarmMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.ruoyi.sy.mapper; import java.util.List; import java.util.Map; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.sy.domain.ArdTankLockAlarm; import org.apache.ibatis.annotations.Param; /** * çµç£éæ¥è¦Mapperæ¥å£ * * @author ard * @date 2024-07-26 */ public interface ArdTankLockAlarmMapper { /** * æ¥è¯¢çµç£éæ¥è¦ * * @param lockNum çµç£éæ¥è¦ä¸»é® * @return çµç£éæ¥è¦ */ public ArdTankLockAlarm selectArdTankLockAlarmByLockNum(String lockNum); /** * æ¥è¯¢çµç£éæ¥è¦å表 * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return çµç£éæ¥è¦éå */ public List<ArdTankLockAlarm> selectArdTankLockAlarmList(ArdTankLockAlarm ardTankLockAlarm); /** * æ°å¢çµç£éæ¥è¦ * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return ç»æ */ public int insertArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm); /** * ä¿®æ¹çµç£éæ¥è¦ * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return ç»æ */ public int updateArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm); /** * å é¤çµç£éæ¥è¦ * * @param lockNum çµç£éæ¥è¦ä¸»é® * @return ç»æ */ public int deleteArdTankLockAlarmByLockNum(String lockNum); /** * æ¹éå é¤çµç£éæ¥è¦ * * @param lockNums éè¦å é¤çæ°æ®ä¸»é®éå * @return ç»æ */ public int deleteArdTankLockAlarmByLockNums(String[] lockNums); public List<Map<String, Object>> selectArdTankLockAlarmBylockIdAndTime(@Param("carId") String carId,@Param("lockId") String lockId,@Param("beginTime") String beginTime,@Param("endTime") String endTime); public Long selectArdTankLockAlarmTotalBylockIdAndTime(@Param("carId") String carId,@Param("lockId") String lockId,@Param("beginTime") String beginTime,@Param("endTime") String endTime); public List<Map<String, Object>> selectArdTankLockAlarmByDeptIdAndTime(@Param("deptId") Long deptId,@Param("beginTime") String beginTime,@Param("endTime") String endTime); public Long selectArdTankLockAlarmTotalByDeptIdAndTime(@Param("deptId") Long deptId,@Param("beginTime") String beginTime,@Param("endTime") String endTime); } ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockAlarmService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.ruoyi.sy.service; import java.util.List; import java.util.Map; import com.ruoyi.sy.domain.ArdTankLockAlarm; /** * çµç£éæ¥è¦Serviceæ¥å£ * * @author ard * @date 2024-07-26 */ public interface IArdTankLockAlarmService { /** * æ¥è¯¢çµç£éæ¥è¦ * * @param lockNum çµç£éæ¥è¦ä¸»é® * @return çµç£éæ¥è¦ */ public ArdTankLockAlarm selectArdTankLockAlarmByLockNum(String lockNum); /** * æ¥è¯¢çµç£éæ¥è¦å表 * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return çµç£éæ¥è¦éå */ public List<ArdTankLockAlarm> selectArdTankLockAlarmList(ArdTankLockAlarm ardTankLockAlarm); /** * æ°å¢çµç£éæ¥è¦ * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return ç»æ */ public int insertArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm); /** * ä¿®æ¹çµç£éæ¥è¦ * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return ç»æ */ public int updateArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm); /** * æ¹éå é¤çµç£éæ¥è¦ * * @param lockNums éè¦å é¤ççµç£éæ¥è¦ä¸»é®éå * @return ç»æ */ public int deleteArdTankLockAlarmByLockNums(String[] lockNums); /** * å é¤çµç£éæ¥è¦ä¿¡æ¯ * * @param lockNum çµç£éæ¥è¦ä¸»é® * @return ç»æ */ public int deleteArdTankLockAlarmByLockNum(String lockNum); public Map<String,Object> getAlarm(String userId,Map<String,Object> para); } ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockAlarmServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,172 @@ package com.ruoyi.sy.service.impl; import java.util.HashMap; import java.util.List; import com.github.pagehelper.PageHelper; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyUser; import com.ruoyi.sy.mapper.ArdSyCarMapper; import com.ruoyi.sy.mapper.ArdSyUserMapper; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.utils.forest.SYClient; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Map; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.sy.mapper.ArdTankLockAlarmMapper; import com.ruoyi.sy.domain.ArdTankLockAlarm; import com.ruoyi.sy.service.IArdTankLockAlarmService; import javax.annotation.Resource; /** * çµç£éæ¥è¦Serviceä¸å¡å±å¤ç * * @author ard * @date 2024-07-26 */ @Service public class ArdTankLockAlarmServiceImpl implements IArdTankLockAlarmService { @Resource private ArdTankLockAlarmMapper ardTankLockAlarmMapper; @Resource private SysConfigMapper sysConfigMapper; @Resource private ArdSyUserMapper ardSyUserMapper; @Resource private SYClient sYClient; /** * æ¥è¯¢çµç£éæ¥è¦ * * @param lockNum çµç£éæ¥è¦ä¸»é® * @return çµç£éæ¥è¦ */ @Override public ArdTankLockAlarm selectArdTankLockAlarmByLockNum(String lockNum) { return ardTankLockAlarmMapper.selectArdTankLockAlarmByLockNum(lockNum); } /** * æ¥è¯¢çµç£éæ¥è¦å表 * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return çµç£éæ¥è¦ */ @Override public List<ArdTankLockAlarm> selectArdTankLockAlarmList(ArdTankLockAlarm ardTankLockAlarm) { return ardTankLockAlarmMapper.selectArdTankLockAlarmList(ardTankLockAlarm); } /** * æ°å¢çµç£éæ¥è¦ * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return ç»æ */ @Override public int insertArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm) { ardTankLockAlarm.setId(IdUtils.simpleUUID()); return ardTankLockAlarmMapper.insertArdTankLockAlarm(ardTankLockAlarm); } /** * ä¿®æ¹çµç£éæ¥è¦ * * @param ardTankLockAlarm çµç£éæ¥è¦ * @return ç»æ */ @Override public int updateArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm) { return ardTankLockAlarmMapper.updateArdTankLockAlarm(ardTankLockAlarm); } /** * æ¹éå é¤çµç£éæ¥è¦ * * @param lockNums éè¦å é¤ççµç£éæ¥è¦ä¸»é® * @return ç»æ */ @Override public int deleteArdTankLockAlarmByLockNums(String[] lockNums) { return ardTankLockAlarmMapper.deleteArdTankLockAlarmByLockNums(lockNums); } /** * å é¤çµç£éæ¥è¦ä¿¡æ¯ * * @param lockNum çµç£éæ¥è¦ä¸»é® * @return ç»æ */ @Override public int deleteArdTankLockAlarmByLockNum(String lockNum) { return ardTankLockAlarmMapper.deleteArdTankLockAlarmByLockNum(lockNum); } @Override public Map<String, Object> getAlarm(String userId,Map<String, Object> para) { //æ¡ä»¶å±æ§ String carId = (String) para.get("carId"); String lockId = (String) para.get("lockId"); String beginTime = (String) para.get("beginTime"); String endTime = (String) para.get("endTime"); //å页屿§ Integer pageNum = (Integer) para.get("pageNum"); Integer pageSize = (Integer) para.get("pageSize"); ArdSyUser ardSyUser = ardSyUserMapper.userById(userId); if(ardSyUser == null){ return new HashMap(); } List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT"); String syURL = ""; if(syURLResult.size() != 0){ syURL = syURLResult.get(0).getConfigValue(); }else{ return new HashMap(); } String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword()); Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); PageHelper.startPage(pageNum, pageSize);//å页 List<Map<String, Object>> resultList = new ArrayList(); Long total = Long.valueOf(0); Map<String,Object> resultMap = new HashMap(); if(!carId.equals("") || !lockId.equals("")){//carIælockId为空å符串 resultList = ardTankLockAlarmMapper.selectArdTankLockAlarmBylockIdAndTime(carId,lockId,beginTime,endTime); total = ardTankLockAlarmMapper.selectArdTankLockAlarmTotalBylockIdAndTime(carId,lockId,beginTime,endTime); }else{//carIålockIdé½ä¸ºç©ºåç¬¦ä¸²ï¼æ¥è¯¢æéä¸å ¨é¨è½¦è¾æ¥è¦ try{ resultList = ardTankLockAlarmMapper.selectArdTankLockAlarmByDeptIdAndTime(SecurityUtils.getDeptId(),beginTime,endTime); }catch(Exception e){ e.printStackTrace(); } try{ total = ardTankLockAlarmMapper.selectArdTankLockAlarmTotalByDeptIdAndTime(SecurityUtils.getDeptId(),beginTime,endTime); }catch(Exception e){ e.printStackTrace(); } } for(Map<String, Object> map : resultList){ Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, (String) map.get("carId"), ardSyUser.getUserId(), sessionId); if(((String)syResult.get("rspCode")).equals("1")){ Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0); map.put("carPlate",carMap.get("carPlate")); } } resultMap.put("list",resultList); resultMap.put("total",total); return resultMap; } } ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java
@@ -592,6 +592,9 @@ lockMap.put("ardTankLockState",ardTankLockState);*/ String alarmInfo = ""; lockMap.put("lockState",ardTankLockStateResult.getLockState()); if(ardTankLockStateResult.getLockState().equals("å¼å¸¸ç¶æ")){ alarmInfo = alarmInfo + "éè¯å¼å¸¸;"; } lockMap.put("lockPositionState",ardTankLockStateResult.getLockPositionState()); if(ardTankLockStateResult.getLockPositionState().equals("å¼å¸¸")){ alarmInfo = alarmInfo + "ä½ç½®å¼å¸¸;"; ard-work/src/main/resources/mapper/sy/ArdTankLockAlarmMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,141 @@ <?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.ArdTankLockAlarmMapper"> <resultMap type="ArdTankLockAlarm" id="ArdTankLockAlarmResult"> <result property="lockNum" column="lock_num" /> <result property="alarmInfo" column="alarm_info" /> <result property="id" column="id" /> <result property="lockId" column="lock_id" /> <result property="alarmTime" column="alarm_time" /> </resultMap> <sql id="selectArdTankLockAlarmVo"> select lock_num, alarm_info, id, lock_id, alarm_time from ard_tank_lock_alarm </sql> <select id="selectArdTankLockAlarmList" parameterType="ArdTankLockAlarm" resultMap="ArdTankLockAlarmResult"> <include refid="selectArdTankLockAlarmVo"/> <where> <if test="lockNum != null and lockNum != ''"> and lock_num = #{lockNum}</if> <if test="alarmInfo != null and alarmInfo != ''"> and alarm_info = #{alarmInfo}</if> <if test="lockId != null and lockId != ''"> and lock_id = #{lockId}</if> <if test="alarmTime != null and alarmTime != ''"> and alarm_time = #{alarmTime}</if> </where> </select> <select id="selectArdTankLockAlarmByLockNum" parameterType="String" resultMap="ArdTankLockAlarmResult"> <include refid="selectArdTankLockAlarmVo"/> where lock_num = #{lockNum} </select> <insert id="insertArdTankLockAlarm" parameterType="ArdTankLockAlarm"> insert into ard_tank_lock_alarm <trim prefix="(" suffix=")" suffixOverrides=","> <if test="lockNum != null">lock_num,</if> <if test="alarmInfo != null">alarm_info,</if> <if test="id != null">id,</if> <if test="lockId != null">lock_id,</if> <if test="alarmTime != null">alarm_time,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="lockNum != null">#{lockNum},</if> <if test="alarmInfo != null">#{alarmInfo},</if> <if test="id != null">#{id},</if> <if test="lockId != null">#{lockId},</if> <if test="alarmTime != null">#{alarmTime},</if> </trim> </insert> <update id="updateArdTankLockAlarm" parameterType="ArdTankLockAlarm"> update ard_tank_lock_alarm <trim prefix="SET" suffixOverrides=","> <if test="alarmInfo != null">alarm_info = #{alarmInfo},</if> <if test="id != null">id = #{id},</if> <if test="lockId != null">lock_id = #{lockId},</if> <if test="alarmTime != null">alarm_time = #{alarmTime},</if> </trim> where lock_num = #{lockNum} </update> <delete id="deleteArdTankLockAlarmByLockNum" parameterType="String"> delete from ard_tank_lock_alarm where lock_num = #{lockNum} </delete> <delete id="deleteArdTankLockAlarmByLockNums" parameterType="String"> delete from ard_tank_lock_alarm where lock_num in <foreach item="lockNum" collection="array" open="(" separator="," close=")"> #{lockNum} </foreach> </delete> <select id="selectArdTankLockAlarmBylockIdAndTime" parameterType="java.lang.String" resultType="java.util.Map"> select atlm.id,atlm.lock_id as "lockId",atlm.lock_num as "lockNum", atlm.alarm_info as "alarmInfo",atlm.alarm_time as "alarmTime", atl.lock_name as "lockName",atl.car_id as "carId" from ard_tank_lock_alarm atlm inner join ard_tank_lock atl on atlm.lock_id = atl."id" <where> <if test="carId != null and carId != ''"> and car_id = #{carId}</if> <if test="lockId != null and lockId != ''"> and lock_id = #{lockId}</if> <if test="beginTime != null and beginTime != ''"> and alarm_time >= #{beginTime}</if> <if test="endTime != null and endTime != ''"> and alarm_time <= #{endTime}</if> </where> order by atlm.alarm_time desc </select> <select id="selectArdTankLockAlarmTotalBylockIdAndTime" parameterType="java.lang.String" resultType="java.lang.Long"> select count(*) from ard_tank_lock_alarm atlm inner join ard_tank_lock atl on atlm.lock_id = atl."id" <where> <if test="carId != null and carId != ''"> and car_id = #{carId}</if> <if test="lockId != null and lockId != ''"> and lock_id = #{lockId}</if> <if test="beginTime != null and beginTime != ''"> and alarm_time >= #{beginTime}</if> <if test="endTime != null and endTime != ''"> and alarm_time <= #{endTime}</if> </where> </select> <select id="selectArdTankLockAlarmByDeptIdAndTime" resultType="java.util.Map"> select atlm.id,atlm.lock_id as "lockId",atlm.lock_num as "lockNum", atlm.alarm_info as "alarmInfo",atlm.alarm_time as "alarmTime", atl.lock_name as "lockName",atl.car_id as "carId" from ard_tank_lock_alarm atlm inner join ard_tank_lock atl on atlm.lock_id = atl."id" <where> <if test="beginTime != null and beginTime != ''"> and alarm_time >= #{beginTime}</if> <if test="endTime != null and endTime != ''"> and alarm_time <= #{endTime}</if> <if test="deptId != null"> and atl.car_id in (select car_id from ard_sy_car "asc" where "asc".dept_id in ( with recursive rsd as ( select sd.dept_id from sys_dept sd where sd.dept_id = #{deptId} union select csd.dept_id from sys_dept csd inner join rsd on rsd.dept_id = csd.parent_id ) select * from rsd)) </if> </where> order by atlm.alarm_time desc </select> <select id="selectArdTankLockAlarmTotalByDeptIdAndTime" resultType="java.lang.Long"> select count(*) from ard_tank_lock_alarm atlm inner join ard_tank_lock atl on atlm.lock_id = atl."id" <where> <if test="beginTime != null and beginTime != ''"> and alarm_time >= #{beginTime}</if> <if test="endTime != null and endTime != ''"> and alarm_time <= #{endTime}</if> <if test="deptId != null"> and atl.car_id in (select car_id from ard_sy_car "asc" where "asc".dept_id in ( with recursive rsd as ( select sd.dept_id from sys_dept sd where sd.dept_id = #{deptId} union select csd.dept_id from sys_dept csd inner join rsd on rsd.dept_id = csd.parent_id ) select * from rsd)) </if> </where> </select> </mapper>