From 6bc1206774770deb0b2df12ab24b4628e1f399eb Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期一, 22 七月 2024 10:56:36 +0800 Subject: [PATCH] 电磁锁状态查询修改及若依生成文件提交 --- ard-work/src/main/resources/mapper/sy/ArdTankLockStateMapper.xml | 113 ++++ ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockStateServiceImpl.java | 100 +++ ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockAutoProcessLog.java | 219 ++++++++ ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockAutoProcessLogServiceImpl.java | 92 +++ ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockMapper.java | 2 ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLock.java | 10 ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml | 48 + ard-work/src/main/resources/mapper/sy/ArdTankLockAutoProcessLogMapper.xml | 118 ++++ ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java | 44 + ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockState.java | 187 ++++++ ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java | 2 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java | 18 ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java | 370 +++++++++++-- ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockAutoProcessLogMapper.java | 61 ++ ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockStateService.java | 63 ++ ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java | 42 + ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockStateMapper.java | 63 ++ ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockAutoProcessLogService.java | 61 ++ 18 files changed, 1,539 insertions(+), 74 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 5a992eb..28f36b3 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 @@ -1,5 +1,6 @@ package com.ruoyi.sy.controller; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.*; @@ -18,6 +19,7 @@ import com.ruoyi.sy.gps31.PushClientImplSerialPort; import com.ruoyi.sy.param.ArdSyCarParam; import com.ruoyi.sy.service.IArdTankAbnormalParkAlarmService; +import com.ruoyi.sy.service.IArdTankLockService; import com.ruoyi.sy.service.impl.ArdTankLockServiceImpl; import com.ruoyi.sy.vo.ArdSyCarVo; import com.ruoyi.sy.domain.ArdSyUser; @@ -34,6 +36,9 @@ import com.ruoyi.utils.result.Results; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; @@ -79,6 +84,9 @@ @Autowired private IArdTankAbnormalParkAlarmService ardTankAbnormalParkAlarmService; + + @Autowired + private IArdTankLockService ardTankLockService; @Resource private SYClient sYClient; @@ -154,7 +162,7 @@ public void run() { SysConfig config = new SysConfig(); config.setConfigKey("syCarPT"); - List<SysConfig> sysConfigResult = ((SysConfigServiceImpl) SpringUtils.getBean("sysConfigServiceImpl")).selectConfigList(config); + List<SysConfig> sysConfigResult = sysConfigService.selectConfigList(config); String syURL = ""; if(sysConfigResult.size() == 0){ @@ -168,7 +176,7 @@ String finalSyURL = syURL; - List<ArdTankLock> result = ((ArdTankLockServiceImpl)SpringUtils.getBean("ardTankLockServiceImpl")).getArdTankLockAll();//鏌ヨ鍏ㄩ儴鐢电閿� + List<ArdTankLock> result = ardTankLockService.getArdTankLockAll();//鏌ヨ鍏ㄩ儴鐢电閿� for(ArdTankLock ardTankLock : result){ Thread LockThread = new Thread(finalSyURL){ @Override @@ -186,7 +194,7 @@ 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); + sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); } }; LockThread.start(); @@ -196,7 +204,7 @@ thread.start(); } }; - //lockStateTimer.scheduleAtFixedRate(lockStateTask,date,1000); + lockStateTimer.scheduleAtFixedRate(lockStateTask,date,2500); } /** @@ -570,4 +578,32 @@ } } + public Map<String,Object> sendCmd(String syURL,String userId,String carId,Integer cmdId,String cmd,String paramsStr,String sessionId){ + OkHttpClient okHttpClient = new OkHttpClient(); + + Request request = new Request.Builder() + .url(syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId) + .build(); + //System.out.println("url = " + syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId); + Response response = null; + try { + response = okHttpClient.newCall(request).execute(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + okhttp3.ResponseBody responseBody = response.body(); + + try { + String message = responseBody.string();// 鍝嶅簲浣� + Map<String,Object> map = (Map<String, Object>) JSON.parse(message); + return map; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return new HashMap(); + } + } + } diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLock.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLock.java index ca03718..9e808f3 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLock.java +++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLock.java @@ -50,6 +50,8 @@ @Excel(name = "鍦ㄧ嚎鏃堕棿") private String onlineTime; + private ArdTankLockState ardTankLockState; + public void setId(String id) { this.id = id; @@ -132,6 +134,14 @@ return onlineTime; } + public ArdTankLockState getArdTankLockState() { + return ardTankLockState; + } + + public void setArdTankLockState(ArdTankLockState ardTankLockState) { + this.ardTankLockState = ardTankLockState; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockAutoProcessLog.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockAutoProcessLog.java new file mode 100644 index 0000000..d6bee21 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockAutoProcessLog.java @@ -0,0 +1,219 @@ +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_auto_process_log + * + * @author ard + * @date 2024-07-12 + */ +public class ArdTankLockAutoProcessLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 涓婚敭 */ + private String id; + + /** 閿佷富閿� */ + @Excel(name = "閿佷富閿�") + private String lockId; + + /** 閿佺紪鍙� */ + @Excel(name = "閿佺紪鍙�") + private String lockNum; + + /** 涓変竴杞﹁締涓婚敭 */ + @Excel(name = "涓変竴杞﹁締涓婚敭") + private String carId; + + /** 杞︾墝鍙� */ + @Excel(name = "杞︾墝鍙�") + private String carPlate; + + /** 鐢靛瓙鍥存爮涓婚敭 */ + @Excel(name = "鐢靛瓙鍥存爮涓婚敭") + private String wallId; + + /** 鐢靛瓙鍥存爮鍚嶇О */ + @Excel(name = "鐢靛瓙鍥存爮鍚嶇О") + private String wallName; + + /** 鐢靛瓙鍥存爮绫诲瀷 */ + @Excel(name = "鐢靛瓙鍥存爮绫诲瀷") + private String wallType; + + /** 鎿嶄綔 */ + @Excel(name = "鎿嶄綔") + private String process; + + /** 鎿嶄綔鍘熷洜 */ + @Excel(name = "鎿嶄綔鍘熷洜") + private String processReason; + + /** 缁忓害 */ + @Excel(name = "缁忓害") + private String longitude; + + /** 绾害 */ + @Excel(name = "绾害") + private String latitude; + + /** 閫熷害 */ + @Excel(name = "閫熷害") + private String velocity; + + /** 鎿嶄綔鏃堕棿 */ + @Excel(name = "鎿嶄綔鏃堕棿") + private String processTime; + + 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 setLockNum(String lockNum) + { + this.lockNum = lockNum; + } + + public String getLockNum() + { + return lockNum; + } + public void setCarId(String carId) + { + this.carId = carId; + } + + public String getCarId() + { + return carId; + } + public void setCarPlate(String carPlate) + { + this.carPlate = carPlate; + } + + public String getCarPlate() + { + return carPlate; + } + public void setWallId(String wallId) + { + this.wallId = wallId; + } + + public String getWallId() + { + return wallId; + } + public void setWallName(String wallName) + { + this.wallName = wallName; + } + + public String getWallName() + { + return wallName; + } + public void setWallType(String wallType) + { + this.wallType = wallType; + } + + public String getWallType() + { + return wallType; + } + public void setProcess(String process) + { + this.process = process; + } + + public String getProcess() + { + return process; + } + public void setProcessReason(String processReason) + { + this.processReason = processReason; + } + + public String getProcessReason() + { + return processReason; + } + public void setLongitude(String longitude) + { + this.longitude = longitude; + } + + public String getLongitude() + { + return longitude; + } + public void setLatitude(String latitude) + { + this.latitude = latitude; + } + + public String getLatitude() + { + return latitude; + } + public void setVelocity(String velocity) + { + this.velocity = velocity; + } + + public String getVelocity() + { + return velocity; + } + public void setProcessTime(String processTime) + { + this.processTime = processTime; + } + + public String getProcessTime() + { + return processTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("lockId", getLockId()) + .append("lockNum", getLockNum()) + .append("carId", getCarId()) + .append("carPlate", getCarPlate()) + .append("wallId", getWallId()) + .append("wallName", getWallName()) + .append("wallType", getWallType()) + .append("process", getProcess()) + .append("processReason", getProcessReason()) + .append("longitude", getLongitude()) + .append("latitude", getLatitude()) + .append("velocity", getVelocity()) + .append("processTime", getProcessTime()) + .toString(); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockState.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockState.java new file mode 100644 index 0000000..2b69583 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockState.java @@ -0,0 +1,187 @@ +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_state + * + * @author ard + * @date 2024-07-18 + */ +public class ArdTankLockState extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 涓婚敭 */ + private String id; + + /** 閿佷富閿� */ + @Excel(name = "閿佷富閿�") + private String lockId; + + /** 閿佺紪鍙� */ + @Excel(name = "閿佺紪鍙�") + private String lockNum; + + /** 閿佺姸鎬� */ + @Excel(name = "閿佺姸鎬�") + private String lockState; + + /** 浣嶇疆鐘舵�� */ + @Excel(name = "浣嶇疆鐘舵��") + private String lockPositionState; + + /** 澶栧3鐘舵�� */ + @Excel(name = "澶栧3鐘舵��") + private String lockShellState; + + /** 閲嶅惎鐘舵�侊細寮�鎴栧叧 */ + @Excel(name = "閲嶅惎鐘舵�侊細寮�鎴栧叧") + private String restartState; + + /** 鐢垫睜鐢靛帇 */ + @Excel(name = "鐢垫睜鐢靛帇") + private String batterVoltage; + + /** 鐢垫簮鐢靛帇 */ + @Excel(name = "鐢垫簮鐢靛帇") + private String powerVoltage; + + /** 涓婁紶鏃堕棿 */ + @Excel(name = "涓婁紶鏃堕棿") + private String uploadTime; + + /** 鍞竴鏍囪 */ + @Excel(name = "鍞竴鏍囪") + private String uniqueMark; + + private Boolean lockStateMark; + + 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 setLockNum(String lockNum) + { + this.lockNum = lockNum; + } + + public String getLockNum() + { + return lockNum; + } + public void setLockState(String lockState) + { + this.lockState = lockState; + } + + public String getLockState() + { + return lockState; + } + public void setLockPositionState(String lockPositionState) + { + this.lockPositionState = lockPositionState; + } + + public String getLockPositionState() + { + return lockPositionState; + } + public void setLockShellState(String lockShellState) + { + this.lockShellState = lockShellState; + } + + public String getLockShellState() + { + return lockShellState; + } + public void setRestartState(String restartState) + { + this.restartState = restartState; + } + + public String getRestartState() + { + return restartState; + } + public void setBatterVoltage(String batterVoltage) + { + this.batterVoltage = batterVoltage; + } + + public String getBatterVoltage() + { + return batterVoltage; + } + public void setPowerVoltage(String powerVoltage) + { + this.powerVoltage = powerVoltage; + } + + public String getPowerVoltage() + { + return powerVoltage; + } + public void setUploadTime(String uploadTime) + { + this.uploadTime = uploadTime; + } + + public String getUploadTime() + { + return uploadTime; + } + public void setUniqueMark(String uniqueMark) + { + this.uniqueMark = uniqueMark; + } + + public String getUniqueMark() + { + return uniqueMark; + } + + public Boolean getLockStateMark() { + return lockStateMark; + } + + public void setLockStateMark(Boolean lockStateMark) { + this.lockStateMark = lockStateMark; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("lockId", getLockId()) + .append("lockNum", getLockNum()) + .append("lockState", getLockState()) + .append("lockPositionState", getLockPositionState()) + .append("lockShellState", getLockShellState()) + .append("restartState", getRestartState()) + .append("batterVoltage", getBatterVoltage()) + .append("powerVoltage", getPowerVoltage()) + .append("uploadTime", getUploadTime()) + .append("uniqueMark", getUniqueMark()) + .toString(); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java index 82412a2..4a90e08 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java +++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplPosition.java @@ -383,7 +383,7 @@ ((ArdTankAbnormalParkAlarmServiceImpl)SpringUtils.getBean("ardTankAbnormalParkAlarmServiceImpl")).insertArdTankAbnormalParkAlarm(gpsMap); } }; - tankCarParkingAlarmThread.start(); + //tankCarParkingAlarmThread.start(); /*Thread autoProcessThread = new Thread(){//鑷姩鎿嶆帶绾跨▼ @Override diff --git a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java index 180acbe..ce166a3 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java +++ b/ard-work/src/main/java/com/ruoyi/sy/gps31/PushClientImplSerialPort.java @@ -14,24 +14,30 @@ import com.gps31.push.util.MapUtil; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyCarLock; import com.ruoyi.sy.domain.ArdSyCarRtu; import com.ruoyi.sy.domain.ArdTankLock; +import com.ruoyi.sy.domain.ArdTankLockState; import com.ruoyi.sy.service.ArdSyCarLockService; import com.ruoyi.sy.service.ArdSyCarRtuService; -import com.ruoyi.sy.service.impl.ArdSyCarDayServiceImpl; -import com.ruoyi.sy.service.impl.ArdSyCarServiceImpl; -import com.ruoyi.sy.service.impl.ArdTankAbnormalParkAlarmServiceImpl; -import com.ruoyi.sy.service.impl.ArdTankLockServiceImpl; +import com.ruoyi.sy.service.impl.*; import com.ruoyi.system.service.impl.SysConfigServiceImpl; import com.ruoyi.utils.forest.SYClient; import com.ruoyi.utils.qymqtt.newM.EmqClient; import com.ruoyi.utils.qymqtt.newM.QosEnum; import lombok.extern.slf4j.Slf4j; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.eclipse.paho.client.mqttv3.MqttException; +import java.io.IOException; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -41,73 +47,20 @@ * @author chencq * @version 1.0 */ -@Slf4j(topic = "mqttCar") public class PushClientImplSerialPort extends PushClient implements Runnable { -// private static final Log log = LogFactory.getLog(PushClientImplPosition.class); + private static final Log log = LogFactory.getLog(PushClientImplSerialPort.class); - private String ip; + private static String ip; - private String userId; + private static String userId; - private String password; - - private Timer lockStateTimer; + private static String password; public PushClientImplSerialPort(String ip, String userId, String password) { this.ip = ip; this.userId = userId; this.password = password; - - /*Date date = new Date(); - this.lockStateTimer = new Timer();//瀹氭椂鑾峰彇鍚勪釜閿佺殑鐘舵�� - TimerTask lockStateTask =new TimerTask(){ - @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)SpringUtils.getBean("sYClient")).logIn(syURL, passwordMd5, userId); - String sessionId = (String) LogInResult.get("sessionId"); - - String finalSyURL = syURL; - Thread thread = new Thread(finalSyURL){ - @Override - public void run() { - List<ArdTankLock> result = ((ArdTankLockServiceImpl)SpringUtils.getBean("ardTankLockServiceImpl")).getArdTankLockAll();//鏌ヨ鍏ㄩ儴鐢电閿� - for(ArdTankLock ardTankLock : result){ - //Thread LockThread = new Thread(finalSyURL){ - 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"; - - //Map<String,Object> result = ((SYClient)SpringUtils.getBean("sYClient")).sendCmd(finalSyURL,userId,ardTankLock.getCarId(),199,"DataDownTransfer", paramsStr,sessionId); - //}; - //LockThread.start(); - } - } - }; - thread.start(); - } - }; - lockStateTimer.scheduleAtFixedRate(lockStateTask,date,1000);*/ } public PushClientImplSerialPort() { @@ -151,8 +104,238 @@ */ }else if("0401".equals(pushMsg.getCmd())) {//閫忎紶娑堟伅 Map<String,Object> dataMap = pushMsg.getJsonMap(); - String carName = MapUtil.getStrVal(dataMap, "carName","");//鑾峰彇杞︾墝鍙� + //String carName = MapUtil.getStrVal(dataMap, "carName","");//鑾峰彇杞︾墝鍙� //log.error(String.format(" ---->鏀跺埌閫忎紶鏁版嵁:%s",JSON.toJSONString(dataMap))); + Thread thread = new Thread(){ + @Override + public void run() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date now = new Date(); + try { + String data = (String) dataMap.get("data"); + String lockNum = data.substring(0, 4); + String code = data.substring(4, 6); + if(code.equals("01")){//鍔熻兘鐮�01涓洪攣瀹炴椂鐘舵�� + String lockState = data.substring(6, 8); + String lockPositionState = data.substring(8, 10); + String lockShellState = data.substring(10, 12); + String restartState = data.substring(12, 14); + String batterVoltage = data.substring(14, 18); + String powerVoltage = data.substring(18, 22); + String time = data.substring(22, 34); + //璁$畻鏃堕棿 + String year = time.substring(0, 2); + String month = time.substring(2, 4); + String day = time.substring(4, 6); + String hour = time.substring(6, 8); + String minute = time.substring(8, 10); + String second = time.substring(10, 12); + + Integer yearNum = Integer.parseInt(year, 16); + if(yearNum <= 9){ + time = "200" + yearNum + "-"; + }else{ + time = "20" + yearNum + "-"; + } + + Integer monthNum = Integer.parseInt(month, 16); + if(monthNum <= 9){ + time = time + "0" + monthNum + "-"; + }else{ + time = time + monthNum + "-"; + } + + Integer dayNum = Integer.parseInt(day, 16); + if(dayNum <= 9){ + time = time + "0" + dayNum + " "; + }else{ + time = time + dayNum + " "; + } + + Integer hourNum = Integer.parseInt(hour, 16); + if(hourNum <= 9){ + time = time + "0" + hourNum + ":"; + }else{ + time = time + hourNum + ":"; + } + + Integer minuteNum = Integer.parseInt(minute, 16); + if(minuteNum <= 9){ + time = time + "0" + minuteNum + ":"; + }else{ + time = time + minuteNum + ":"; + } + + Integer secondNum = Integer.parseInt(second, 16); + if(secondNum <= 9){ + time = time + "0" + secondNum; + }else{ + time = time + secondNum; + } + + ArdTankLock ardTankLock = new ArdTankLock(); + ardTankLock.setLockNum(lockNum); + List<ArdTankLock> ardTankLockResult = ((ArdTankLockServiceImpl)SpringUtils.getBean("ardTankLockServiceImpl")).selectArdTankLockList(ardTankLock); + + if(ardTankLockResult.isEmpty()){//閿佹病鏈夊綍鍏ュ垯杩斿洖 + return; + } + + 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"; + String passwordMd5 = DigestUtils.md5Hex(password); + Map<String, Object> LogInResult = loginIn(url, userId, passwordMd5); + String sessionId = (String) LogInResult.get("sessionId"); + //鑾峰彇鏃堕棿骞舵媶鍒嗗勾鏈堟棩鏃跺垎绉� + String nowTime = sdf.format(now); + String nowYear = nowTime.substring(2,4); + System.out.println(nowYear); + String nowMonth = nowTime.substring(5,7); + System.out.println(nowMonth); + String nowDay = nowTime.substring(8,10); + System.out.println(nowDay); + String nowHour = nowTime.substring(11,13); + System.out.println(nowHour); + String nowMinute = nowTime.substring(14,16); + System.out.println(nowMinute); + String nowSecond = nowTime.substring(17,19); + System.out.println(nowSecond); + + String nowYearHex = Integer.toHexString(Integer.parseInt(nowYear)); + if(nowYearHex.length() == 1){ + nowYearHex = "0" + nowYearHex; + } + System.out.println(nowYearHex); + String nowMonthHex = Integer.toHexString(Integer.parseInt(nowMonth)); + if(nowMonthHex.length() == 1){ + nowMonthHex = "0" + nowMonthHex; + } + System.out.println(nowMonthHex); + String nowDayHex = Integer.toHexString(Integer.parseInt(nowDay)); + if(nowDayHex.length() == 1){ + nowDayHex = "0" + nowDayHex; + } + System.out.println(nowDayHex); + String nowHourHex = Integer.toHexString(Integer.parseInt(nowHour)); + if(nowHourHex.length() == 1){ + nowHourHex = "0" + nowHourHex; + } + System.out.println(nowHourHex); + String nowMinuteHex = Integer.toHexString(Integer.parseInt(nowMinute)); + if(nowMinuteHex.length() == 1){ + nowMinuteHex = "0" + nowMinuteHex; + } + System.out.println(nowMinuteHex); + String nowSecondHex = Integer.toHexString(Integer.parseInt(nowSecond)); + if(nowSecondHex.length() == 1){ + nowSecondHex = "0" + nowSecondHex; + } + System.out.println(nowSecondHex); + //16杩涘埗鏃堕棿 + String timeHex = nowYearHex + nowMonthHex + nowDayHex + nowHourHex + nowMinuteHex + nowSecondHex; + System.out.println(timeHex); + String lockNumHead = ardTankLockResult.get(0).getLockNum().substring(0,2); + String lockNumTail = ardTankLockResult.get(0).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)); + System.out.println(checkNum); + if(checkNum.length() == 1){ + checkNum = "0" + checkNum; + }else if(checkNum.length() > 2){ + checkNum = checkNum.substring(checkNum.length() - 2,checkNum.length()); + } + System.out.println(checkNum); + String paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + ardTankLock.getLockNum() + "08" + timeHex + checkNum + "%22%7D"; + System.out.println(ardTankLock.getLockNum() + "08" + timeHex + checkNum); + sendCmd(url,userId,ardTankLockResult.get(0).getCarId(),199,"DataDownTransfer", paramsStr,sessionId); + }else{*/ + ArdTankLockState ardTankLockState = new ArdTankLockState(); + ardTankLockState.setId(IdUtils.simpleUUID()); + ardTankLockState.setLockId(ardTankLockResult.get(0).getId()); + ardTankLockState.setLockNum(lockNum); + switch (lockState) {//閿佽姱鐘舵�� + case "01": ardTankLockState.setLockState("寮�閿佺姸鎬�");break; + case "02": ardTankLockState.setLockState("鍏抽攣鐘舵��");break; + case "03": ardTankLockState.setLockState("寮傚父鐘舵��");break; + default: + break; + } + switch (lockPositionState) {//浣嶇疆鐘舵�� + case "01": ardTankLockState.setLockPositionState("姝e父");break; + case "02": ardTankLockState.setLockPositionState("寮傚父");break; + default: + break; + } + switch (lockShellState) {//澶栧3鐘舵�� + case "01": ardTankLockState.setLockShellState("姝e父");break; + case "02": ardTankLockState.setLockShellState("寮傚父");break; + default: + break; + } + switch (restartState) {//澶嶄綅鐘舵�� + case "01": ardTankLockState.setRestartState("寮�閿佺姸鎬�");break; + case "02": ardTankLockState.setRestartState("鍏抽攣鐘舵��");break; + default: + break; + } + Number batterVoltageNum = Integer.parseInt(batterVoltage,16) * 0.1; + String batterVoltageStr = String.valueOf(batterVoltageNum); + if(batterVoltageStr.length() > 4){ + batterVoltageStr = batterVoltageStr.substring(0,4); + } + if(batterVoltageStr.contains(".")){//鍥涜垗浜斿叆 + String decimalPart = batterVoltageStr.split("\\.")[1]; + if(Integer.parseInt(decimalPart) > 5){ + batterVoltageStr = batterVoltageStr.split("\\.")[0] + ".5"; + }else if(Integer.parseInt(decimalPart) <= 5){ + batterVoltageStr = batterVoltageStr.split("\\.")[0] + ".0"; + } + }else{ + batterVoltageStr = batterVoltageStr + ".0"; + } + ardTankLockState.setBatterVoltage(batterVoltageStr); + + + Number powerVoltageNum = Integer.parseInt(powerVoltage,16) * 0.1; + String powerVoltageStr = String.valueOf(powerVoltageNum); + if(powerVoltageStr.length() > 4){ + powerVoltageStr = powerVoltageStr.substring(0,4); + } + if(powerVoltageStr.contains(".")){//鍥涜垗浜斿叆 + String decimalPart = powerVoltageStr.split("\\.")[1]; + if(Integer.parseInt(decimalPart) > 5){ + powerVoltageStr = powerVoltageStr.split("\\.")[0] + ".5"; + }else if(Integer.parseInt(decimalPart) <= 5){ + powerVoltageStr = powerVoltageStr.split("\\.")[0] + ".0"; + } + }else{ + powerVoltageStr = powerVoltageStr + ".0"; + } + ardTankLockState.setPowerVoltage(powerVoltageStr); + + String uniqueMark = lockNum + "," + lockState + "," + lockPositionState + "," + lockShellState + + "," + restartState + "," + batterVoltageStr + "," + powerVoltageStr; + + ardTankLockState.setUploadTime(time); + ardTankLockState.setUniqueMark(uniqueMark); + ((ArdTankLockStateServiceImpl)SpringUtils.getBean("ardTankLockStateServiceImpl")).insertOrUpdateArdTankLockState(ardTankLockState); + + //} + } + }catch (Exception e){ + e.printStackTrace(); + return;//寮鸿浆澶辫触杩斿洖 + } + } + }; + thread.start(); /** * * 璇峰姞鍏ヤ笁鏂归泦鎴愭柟鐨勪笟鍔¢�昏緫 @@ -164,7 +347,7 @@ public void sendMassage() { try { PushClientImplSerialPort client = new PushClientImplSerialPort(); - client.setLog(true);//鏄惁鎵撳嵃鏄庢枃 + client.setLog(false);//鏄惁鎵撳嵃鏄庢枃 client.setHost(this.ip);//鏈嶅姟鍣↖P client.setPort(10100);//鏈嶅姟鍣ㄧ鍙� client.setUserName(this.userId);//绯荤粺鐢ㄦ埛鍚� @@ -185,4 +368,65 @@ sendMassage(); } + public static Map<String,Object> loginIn(String syURL,String userId,String password){//鐧诲綍 + OkHttpClient okHttpClient = new OkHttpClient(); + + String passwordMd5 = DigestUtils.md5Hex(password); + + Request request = new Request.Builder() + .url(syURL + "/gps-web/api/login.jsp?"+"password="+passwordMd5+"&userId="+userId+"&loginType=user&loginWay=interface&loginLang=zh_CN") + .build(); + Response response = null; + try { + response = okHttpClient.newCall(request).execute(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + response.headers(); //鍝嶅簲澶� + + okhttp3.ResponseBody responseBody = response.body(); + + try { + String message = responseBody.string();// 鍝嶅簲浣� + Map<String,Object> map = (Map<String, Object>) JSON.parse(message); + map.put("passwordMd5", passwordMd5); + //System.out.println(message); + return map; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return new HashMap(); + } + } + + public Map<String,Object> sendCmd(String syURL,String userId,String carId,Integer cmdId,String cmd,String paramsStr,String sessionId){ + OkHttpClient okHttpClient = new OkHttpClient(); + + Request request = new Request.Builder() + .url(syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId) + .build(); + //System.out.println("url = " + syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId); + Response response = null; + try { + response = okHttpClient.newCall(request).execute(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + okhttp3.ResponseBody responseBody = response.body(); + + try { + String message = responseBody.string();// 鍝嶅簲浣� + Map<String,Object> map = (Map<String, Object>) JSON.parse(message); + return map; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return new HashMap(); + } + } + } diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockAutoProcessLogMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockAutoProcessLogMapper.java new file mode 100644 index 0000000..0e8ad68 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockAutoProcessLogMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.sy.mapper; + +import java.util.List; +import com.ruoyi.sy.domain.ArdTankLockAutoProcessLog; + +/** + * 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇桵apper鎺ュ彛 + * + * @author ard + * @date 2024-07-12 + */ +public interface ArdTankLockAutoProcessLogMapper +{ + /** + * 鏌ヨ缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param id 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + */ + public ArdTankLockAutoProcessLog selectArdTankLockAutoProcessLogById(String id); + + /** + * 鏌ヨ缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇楀垪琛� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇楅泦鍚� + */ + public List<ArdTankLockAutoProcessLog> selectArdTankLockAutoProcessLogList(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog); + + /** + * 鏂板缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缁撴灉 + */ + public int insertArdTankLockAutoProcessLog(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog); + + /** + * 淇敼缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缁撴灉 + */ + public int updateArdTankLockAutoProcessLog(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog); + + /** + * 鍒犻櫎缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param id 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缁撴灉 + */ + public int deleteArdTankLockAutoProcessLogById(String id); + + /** + * 鎵归噺鍒犻櫎缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdTankLockAutoProcessLogByIds(String[] ids); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockMapper.java index 52df18d..50b2c27 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockMapper.java +++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockMapper.java @@ -81,4 +81,6 @@ public Long selectArdTankLockTotalByCarIdList(@Param("carIdList") List<String> carIdList); public int deleteArdTankLockAndWallByCarIds(@Param("carIds") List<String> carIds); + + public String getIdByLockNum(String lockNum); } diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockStateMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockStateMapper.java new file mode 100644 index 0000000..f84c4a9 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockStateMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.sy.mapper; + +import java.util.List; +import com.ruoyi.sy.domain.ArdTankLockState; + +/** + * 缃愯溅閿佺姸鎬丮apper鎺ュ彛 + * + * @author ard + * @date 2024-07-18 + */ +public interface ArdTankLockStateMapper +{ + /** + * 鏌ヨ缃愯溅閿佺姸鎬� + * + * @param id 缃愯溅閿佺姸鎬佷富閿� + * @return 缃愯溅閿佺姸鎬� + */ + public ArdTankLockState selectArdTankLockStateById(String id); + + /** + * 鏌ヨ缃愯溅閿佺姸鎬佸垪琛� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缃愯溅閿佺姸鎬侀泦鍚� + */ + public List<ArdTankLockState> selectArdTankLockStateList(ArdTankLockState ardTankLockState); + + /** + * 鏂板缃愯溅閿佺姸鎬� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缁撴灉 + */ + public int insertArdTankLockState(ArdTankLockState ardTankLockState); + + /** + * 淇敼缃愯溅閿佺姸鎬� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缁撴灉 + */ + public int updateArdTankLockState(ArdTankLockState ardTankLockState); + + /** + * 鍒犻櫎缃愯溅閿佺姸鎬� + * + * @param id 缃愯溅閿佺姸鎬佷富閿� + * @return 缁撴灉 + */ + public int deleteArdTankLockStateById(String id); + + /** + * 鎵归噺鍒犻櫎缃愯溅閿佺姸鎬� + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteArdTankLockStateByIds(String[] ids); + + public int insertOrUpdateArdTankLockState(ArdTankLockState ardTankLockState); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockAutoProcessLogService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockAutoProcessLogService.java new file mode 100644 index 0000000..0256faa --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockAutoProcessLogService.java @@ -0,0 +1,61 @@ +package com.ruoyi.sy.service; + +import java.util.List; +import com.ruoyi.sy.domain.ArdTankLockAutoProcessLog; + +/** + * 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇桽ervice鎺ュ彛 + * + * @author ard + * @date 2024-07-12 + */ +public interface IArdTankLockAutoProcessLogService +{ + /** + * 鏌ヨ缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param id 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + */ + public ArdTankLockAutoProcessLog selectArdTankLockAutoProcessLogById(String id); + + /** + * 鏌ヨ缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇楀垪琛� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇楅泦鍚� + */ + public List<ArdTankLockAutoProcessLog> selectArdTankLockAutoProcessLogList(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog); + + /** + * 鏂板缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缁撴灉 + */ + public int insertArdTankLockAutoProcessLog(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog); + + /** + * 淇敼缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缁撴灉 + */ + public int updateArdTankLockAutoProcessLog(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog); + + /** + * 鎵归噺鍒犻櫎缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ids 闇�瑕佸垹闄ょ殑缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿泦鍚� + * @return 缁撴灉 + */ + public int deleteArdTankLockAutoProcessLogByIds(String[] ids); + + /** + * 鍒犻櫎缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾俊鎭� + * + * @param id 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缁撴灉 + */ + public int deleteArdTankLockAutoProcessLogById(String id); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockStateService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockStateService.java new file mode 100644 index 0000000..036b643 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockStateService.java @@ -0,0 +1,63 @@ +package com.ruoyi.sy.service; + +import java.util.List; +import com.ruoyi.sy.domain.ArdTankLockState; + +/** + * 缃愯溅閿佺姸鎬丼ervice鎺ュ彛 + * + * @author ard + * @date 2024-07-18 + */ +public interface IArdTankLockStateService +{ + /** + * 鏌ヨ缃愯溅閿佺姸鎬� + * + * @param id 缃愯溅閿佺姸鎬佷富閿� + * @return 缃愯溅閿佺姸鎬� + */ + public ArdTankLockState selectArdTankLockStateById(String id); + + /** + * 鏌ヨ缃愯溅閿佺姸鎬佸垪琛� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缃愯溅閿佺姸鎬侀泦鍚� + */ + public List<ArdTankLockState> selectArdTankLockStateList(ArdTankLockState ardTankLockState); + + /** + * 鏂板缃愯溅閿佺姸鎬� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缁撴灉 + */ + public int insertArdTankLockState(ArdTankLockState ardTankLockState); + + /** + * 淇敼缃愯溅閿佺姸鎬� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缁撴灉 + */ + public int updateArdTankLockState(ArdTankLockState ardTankLockState); + + /** + * 鎵归噺鍒犻櫎缃愯溅閿佺姸鎬� + * + * @param ids 闇�瑕佸垹闄ょ殑缃愯溅閿佺姸鎬佷富閿泦鍚� + * @return 缁撴灉 + */ + public int deleteArdTankLockStateByIds(String[] ids); + + /** + * 鍒犻櫎缃愯溅閿佺姸鎬佷俊鎭� + * + * @param id 缃愯溅閿佺姸鎬佷富閿� + * @return 缁撴灉 + */ + public int deleteArdTankLockStateById(String id); + + public int insertOrUpdateArdTankLockState(ArdTankLockState ardTankLockState); +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockAutoProcessLogServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockAutoProcessLogServiceImpl.java new file mode 100644 index 0000000..12a03f6 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockAutoProcessLogServiceImpl.java @@ -0,0 +1,92 @@ +package com.ruoyi.sy.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.uuid.IdUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.sy.mapper.ArdTankLockAutoProcessLogMapper; +import com.ruoyi.sy.domain.ArdTankLockAutoProcessLog; +import com.ruoyi.sy.service.IArdTankLockAutoProcessLogService; + +/** + * 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇桽ervice涓氬姟灞傚鐞� + * + * @author ard + * @date 2024-07-12 + */ +@Service +public class ArdTankLockAutoProcessLogServiceImpl implements IArdTankLockAutoProcessLogService { + @Autowired + private ArdTankLockAutoProcessLogMapper ardTankLockAutoProcessLogMapper; + + /** + * 鏌ヨ缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param id 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + */ + @Override + public ArdTankLockAutoProcessLog selectArdTankLockAutoProcessLogById(String id) { + return ardTankLockAutoProcessLogMapper.selectArdTankLockAutoProcessLogById(id); + } + + /** + * 鏌ヨ缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇楀垪琛� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + */ + @Override + public List<ArdTankLockAutoProcessLog> selectArdTankLockAutoProcessLogList(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog) { + return ardTankLockAutoProcessLogMapper.selectArdTankLockAutoProcessLogList(ardTankLockAutoProcessLog); + } + + /** + * 鏂板缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缁撴灉 + */ + @Override + public int insertArdTankLockAutoProcessLog(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog) { + ardTankLockAutoProcessLog.setId(IdUtils.simpleUUID()); + return ardTankLockAutoProcessLogMapper.insertArdTankLockAutoProcessLog(ardTankLockAutoProcessLog); + } + + /** + * 淇敼缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ardTankLockAutoProcessLog 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * @return 缁撴灉 + */ + @Override + public int updateArdTankLockAutoProcessLog(ArdTankLockAutoProcessLog ardTankLockAutoProcessLog) { + return ardTankLockAutoProcessLogMapper.updateArdTankLockAutoProcessLog(ardTankLockAutoProcessLog); + } + + /** + * 鎵归噺鍒犻櫎缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇� + * + * @param ids 闇�瑕佸垹闄ょ殑缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缁撴灉 + */ + @Override + public int deleteArdTankLockAutoProcessLogByIds(String[] ids) { + return ardTankLockAutoProcessLogMapper.deleteArdTankLockAutoProcessLogByIds(ids); + } + + /** + * 鍒犻櫎缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾俊鎭� + * + * @param id 缃愯溅閿佽嚜鍔ㄦ搷鎺ф棩蹇椾富閿� + * @return 缁撴灉 + */ + @Override + public int deleteArdTankLockAutoProcessLogById(String id) { + return ardTankLockAutoProcessLogMapper.deleteArdTankLockAutoProcessLogById(id); + } +} diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java index 99aacaa..396fc26 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java @@ -1,9 +1,11 @@ package com.ruoyi.sy.service.impl; import java.awt.geom.Point2D; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; +import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.domain.entity.SysConfig; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.sy.domain.ArdSyUser; @@ -15,6 +17,9 @@ import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.utils.forest.SYClient; import com.ruoyi.utils.gps.GeoTools; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -200,10 +205,11 @@ String paramsStr = lockNum + "02" + process + checkNum; paramsStr = "%7B%22type%22%3A%22ff%22%2C%22dataCnt%22%3A%22" + paramsStr + "%22%7D"; - Map<String,Object> result = sYClient.sendCmd(syURL, ardSyUser.getUserId(), carId, 199, "DataDownTransfer", paramsStr, sessionId); - + Map<String,Object> result = sendCmd(syURL, ardSyUser.getUserId(), carId, 199, "DataDownTransfer", paramsStr, sessionId); + System.out.println("111111111111"); + System.out.println(result); if(((String)result.get("rspCode")).equals("0")){ - ArdTankLockProcessLog ardTankLockProcessLog = new ArdTankLockProcessLog(); + /*ArdTankLockProcessLog ardTankLockProcessLog = new ArdTankLockProcessLog(); ardTankLockProcessLog.setId(IdUtils.simpleUUID()); ardTankLockProcessLog.setLockId(lockId); ardTankLockProcessLog.setLockNum(lockNum); @@ -220,7 +226,7 @@ ardTankLockProcessLog.setLongitude(lng); ardTankLockProcessLog.setLatitude(lat); ardTankLockProcessLog.setProcessTime(this.sdf.format(new Date())); - ardTankLockProcessLogMapper.insertArdTankLockProcessLog(ardTankLockProcessLog); + ardTankLockProcessLogMapper.insertArdTankLockProcessLog(ardTankLockProcessLog);*/ return "鍙戦�佹垚鍔�"; }else{ return "鍙戦�佸け璐�"; @@ -231,4 +237,32 @@ } } } + + public Map<String,Object> sendCmd(String syURL,String userId,String carId,Integer cmdId,String cmd,String paramsStr,String sessionId){ + OkHttpClient okHttpClient = new OkHttpClient(); + + Request request = new Request.Builder() + .url(syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId) + .build(); + //System.out.println("url = " + syURL + "/gps-web/api/send_cmd.jsp?params="+paramsStr+"&userId="+userId+"&carId="+carId+"&cmdId="+cmdId+"&cmd="+cmd+"&sessionId="+sessionId); + Response response = null; + try { + response = okHttpClient.newCall(request).execute(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + okhttp3.ResponseBody responseBody = response.body(); + + try { + String message = responseBody.string();// 鍝嶅簲浣� + Map<String,Object> map = (Map<String, Object>) JSON.parse(message); + return map; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return new HashMap(); + } + } } diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java index b84a53c..d7728e8 100644 --- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java @@ -6,6 +6,7 @@ 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.domain.ArdTankLockState; import com.ruoyi.sy.mapper.ArdSyUserMapper; import com.ruoyi.sy.mapper.ArdTankWallLockMapper; import com.ruoyi.sy.mapper.ArdTankWallLockTemporaryMapper; @@ -264,6 +265,23 @@ }else{ map.put("onlineTime",ardTankLock.getOnlineTime()); } + if(ardTankLock.getArdTankLockState() != null){//鐢电閿佺姸鎬� + map.put("ardTankLockState",ardTankLock.getArdTankLockState()); + }else{ + ArdTankLockState ardTankLockState = new ArdTankLockState(); + ardTankLockState.setId(""); + ardTankLockState.setLockId(""); + ardTankLockState.setLockNum(""); + ardTankLockState.setLockState(""); + ardTankLockState.setLockPositionState(""); + ardTankLockState.setLockShellState(""); + ardTankLockState.setRestartState(""); + ardTankLockState.setBatterVoltage(""); + ardTankLockState.setPowerVoltage(""); + ardTankLockState.setUploadTime(""); + ardTankLockState.setUniqueMark(""); + map.put("ardTankLockState",ardTankLockState); + } Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0); map.put("carPlate",carMap.get("carPlate")); result.add(map); diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockStateServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockStateServiceImpl.java new file mode 100644 index 0000000..2d0d907 --- /dev/null +++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockStateServiceImpl.java @@ -0,0 +1,100 @@ +package com.ruoyi.sy.service.impl; + +import java.util.List; + +import com.ruoyi.common.utils.uuid.IdUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.sy.mapper.ArdTankLockStateMapper; +import com.ruoyi.sy.domain.ArdTankLockState; +import com.ruoyi.sy.service.IArdTankLockStateService; + +import javax.annotation.Resource; + +/** + * 缃愯溅閿佺姸鎬丼ervice涓氬姟灞傚鐞� + * + * @author ard + * @date 2024-07-18 + */ +@Service +public class ArdTankLockStateServiceImpl implements IArdTankLockStateService { + @Resource + private ArdTankLockStateMapper ardTankLockStateMapper; + + /** + * 鏌ヨ缃愯溅閿佺姸鎬� + * + * @param id 缃愯溅閿佺姸鎬佷富閿� + * @return 缃愯溅閿佺姸鎬� + */ + @Override + public ArdTankLockState selectArdTankLockStateById(String id) { + return ardTankLockStateMapper.selectArdTankLockStateById(id); + } + + /** + * 鏌ヨ缃愯溅閿佺姸鎬佸垪琛� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缃愯溅閿佺姸鎬� + */ + @Override + public List<ArdTankLockState> selectArdTankLockStateList(ArdTankLockState ardTankLockState) { + return ardTankLockStateMapper.selectArdTankLockStateList(ardTankLockState); + } + + /** + * 鏂板缃愯溅閿佺姸鎬� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缁撴灉 + */ + @Override + public int insertArdTankLockState(ArdTankLockState ardTankLockState) { + ardTankLockState.setId(IdUtils.simpleUUID()); + return ardTankLockStateMapper.insertArdTankLockState(ardTankLockState); + } + + /** + * 淇敼缃愯溅閿佺姸鎬� + * + * @param ardTankLockState 缃愯溅閿佺姸鎬� + * @return 缁撴灉 + */ + @Override + public int updateArdTankLockState(ArdTankLockState ardTankLockState) { + return ardTankLockStateMapper.updateArdTankLockState(ardTankLockState); + } + + /** + * 鎵归噺鍒犻櫎缃愯溅閿佺姸鎬� + * + * @param ids 闇�瑕佸垹闄ょ殑缃愯溅閿佺姸鎬佷富閿� + * @return 缁撴灉 + */ + @Override + public int deleteArdTankLockStateByIds(String[] ids) { + return ardTankLockStateMapper.deleteArdTankLockStateByIds(ids); + } + + /** + * 鍒犻櫎缃愯溅閿佺姸鎬佷俊鎭� + * + * @param id 缃愯溅閿佺姸鎬佷富閿� + * @return 缁撴灉 + */ + @Override + public int deleteArdTankLockStateById(String id) { + return ardTankLockStateMapper.deleteArdTankLockStateById(id); + } + + @Override + public int insertOrUpdateArdTankLockState(ArdTankLockState ardTankLockState) { + int result = ardTankLockStateMapper.insertOrUpdateArdTankLockState(ardTankLockState); + return result; + } +} diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankLockAutoProcessLogMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankLockAutoProcessLogMapper.xml new file mode 100644 index 0000000..0aef00f --- /dev/null +++ b/ard-work/src/main/resources/mapper/sy/ArdTankLockAutoProcessLogMapper.xml @@ -0,0 +1,118 @@ +<?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.ArdTankLockAutoProcessLogMapper"> + + <resultMap type="ArdTankLockAutoProcessLog" id="ArdTankLockAutoProcessLogResult"> + <result property="id" column="id" /> + <result property="lockId" column="lock_id" /> + <result property="lockNum" column="lock_num" /> + <result property="carId" column="car_id" /> + <result property="carPlate" column="car_plate" /> + <result property="wallId" column="wall_id" /> + <result property="wallName" column="wall_name" /> + <result property="wallType" column="wall_type" /> + <result property="process" column="process" /> + <result property="processReason" column="process_reason" /> + <result property="longitude" column="longitude" /> + <result property="latitude" column="latitude" /> + <result property="velocity" column="velocity" /> + <result property="processTime" column="process_time" /> + </resultMap> + + <sql id="selectArdTankLockAutoProcessLogVo"> + select id, lock_id, lock_num, car_id, car_plate, wall_id, wall_name, wall_type, process, process_reason, longitude, latitude, velocity, process_time from ard_tank_lock_auto_process_log + </sql> + + <select id="selectArdTankLockAutoProcessLogList" parameterType="ArdTankLockAutoProcessLog" resultMap="ArdTankLockAutoProcessLogResult"> + <include refid="selectArdTankLockAutoProcessLogVo"/> + <where> + <if test="lockId != null and lockId != ''"> and lock_id = #{lockId}</if> + <if test="lockNum != null and lockNum != ''"> and lock_num = #{lockNum}</if> + <if test="carId != null and carId != ''"> and car_id = #{carId}</if> + <if test="carPlate != null and carPlate != ''"> and car_plate = #{carPlate}</if> + <if test="wallId != null and wallId != ''"> and wall_id = #{wallId}</if> + <if test="wallName != null and wallName != ''"> and wall_name like '%'||#{wallName}||'%'</if> + <if test="wallType != null and wallType != ''"> and wall_type = #{wallType}</if> + <if test="process != null and process != ''"> and process = #{process}</if> + <if test="processReason != null and processReason != ''"> and process_reason = #{processReason}</if> + <if test="longitude != null and longitude != ''"> and longitude = #{longitude}</if> + <if test="latitude != null and latitude != ''"> and latitude = #{latitude}</if> + <if test="velocity != null and velocity != ''"> and velocity = #{velocity}</if> + <if test="processTime != null and processTime != ''"> and process_time = #{processTime}</if> + </where> + </select> + + <select id="selectArdTankLockAutoProcessLogById" parameterType="String" resultMap="ArdTankLockAutoProcessLogResult"> + <include refid="selectArdTankLockAutoProcessLogVo"/> + where id = #{id} + </select> + + <insert id="insertArdTankLockAutoProcessLog" parameterType="ArdTankLockAutoProcessLog"> + insert into ard_tank_lock_auto_process_log + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="lockId != null">lock_id,</if> + <if test="lockNum != null">lock_num,</if> + <if test="carId != null">car_id,</if> + <if test="carPlate != null">car_plate,</if> + <if test="wallId != null">wall_id,</if> + <if test="wallName != null">wall_name,</if> + <if test="wallType != null">wall_type,</if> + <if test="process != null">process,</if> + <if test="processReason != null">process_reason,</if> + <if test="longitude != null">longitude,</if> + <if test="latitude != null">latitude,</if> + <if test="velocity != null">velocity,</if> + <if test="processTime != null">process_time,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="lockId != null">#{lockId},</if> + <if test="lockNum != null">#{lockNum},</if> + <if test="carId != null">#{carId},</if> + <if test="carPlate != null">#{carPlate},</if> + <if test="wallId != null">#{wallId},</if> + <if test="wallName != null">#{wallName},</if> + <if test="wallType != null">#{wallType},</if> + <if test="process != null">#{process},</if> + <if test="processReason != null">#{processReason},</if> + <if test="longitude != null">#{longitude},</if> + <if test="latitude != null">#{latitude},</if> + <if test="velocity != null">#{velocity},</if> + <if test="processTime != null">#{processTime},</if> + </trim> + </insert> + + <update id="updateArdTankLockAutoProcessLog" parameterType="ArdTankLockAutoProcessLog"> + update ard_tank_lock_auto_process_log + <trim prefix="SET" suffixOverrides=","> + <if test="lockId != null">lock_id = #{lockId},</if> + <if test="lockNum != null">lock_num = #{lockNum},</if> + <if test="carId != null">car_id = #{carId},</if> + <if test="carPlate != null">car_plate = #{carPlate},</if> + <if test="wallId != null">wall_id = #{wallId},</if> + <if test="wallName != null">wall_name = #{wallName},</if> + <if test="wallType != null">wall_type = #{wallType},</if> + <if test="process != null">process = #{process},</if> + <if test="processReason != null">process_reason = #{processReason},</if> + <if test="longitude != null">longitude = #{longitude},</if> + <if test="latitude != null">latitude = #{latitude},</if> + <if test="velocity != null">velocity = #{velocity},</if> + <if test="processTime != null">process_time = #{processTime},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteArdTankLockAutoProcessLogById" parameterType="String"> + delete from ard_tank_lock_auto_process_log where id = #{id} + </delete> + + <delete id="deleteArdTankLockAutoProcessLogByIds" parameterType="String"> + delete from ard_tank_lock_auto_process_log where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml index 88139de..6608f8d 100644 --- a/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml +++ b/ard-work/src/main/resources/mapper/sy/ArdTankLockMapper.xml @@ -16,6 +16,32 @@ <result property="onlineTime" column="online_time" /> </resultMap> + <resultMap type="ArdTankLock" id="ArdTankLockWithStateResult"> + <result property="id" column="id" /> + <result property="lockNum" column="lock_num" /> + <result property="lockName" column="lock_name" /> + <result property="imgPositionTop" column="img_position_top" /> + <result property="imgPositionLeft" column="img_position_left" /> + <result property="carId" column="car_id" /> + <result property="enable" column="enable" /> + <result property="restartState" column="restart_state" /> + <result property="onlineTime" column="online_time" /> + <association property="ardTankLockState" javaType="com.ruoyi.sy.domain.ArdTankLockState"> + <result property="id" column="sid" /> + <result property="lockId" column="lock_id" /> + <result property="lockNum" column="slock_num" /> + <result property="lockState" column="lock_state" /> + <result property="lockPositionState" column="lock_position_state" /> + <result property="lockShellState" column="lock_shell_state" /> + <result property="restartState" column="srestart_state" /> + <result property="batterVoltage" column="batter_voltage" /> + <result property="powerVoltage" column="power_voltage" /> + <result property="uploadTime" column="upload_time" /> + <result property="uniqueMark" column="unique_mark" /> + <result property="lockStateMark" column="lock_state_mark" /> + </association> + </resultMap> + <sql id="selectArdTankLockVo"> select id, lock_num, lock_name, img_position_top, img_position_left, car_id, enable, restart_state, online_time from ard_tank_lock </sql> @@ -108,8 +134,22 @@ </foreach > </insert> - <select id="getLockByCarId" resultMap="ArdTankLockResult" parameterType="java.lang.String"> - select * from ard_tank_lock atl where car_id = #{carId} order by atl.lock_num + <select id="getLockByCarId" resultMap="ArdTankLockWithStateResult" parameterType="java.lang.String"> + select atl.id,atl.lock_num,atl.lock_name,atl.img_position_top, + atl.img_position_left,atl.car_id,atl.enable,atl.restart_state, + atl.online_time,atls.id as sid,atls.lock_id,atls.lock_num as slock_num, + atls.lock_state,atls.lock_position_state,atls.lock_shell_state, + atls.restart_state as srestart_state,atls.batter_voltage, + atls.power_voltage,atls.upload_time,atls.unique_mark, + case atls.lock_state + when '鍏抽攣鐘舵��' then false + when '寮傚父鐘舵��' then false + when '寮�閿佺姸鎬�' then true + end as lock_state_mark + from ard_tank_lock atl + left join ard_tank_lock_state atls on atl."id" = atls.lock_id + where car_id = #{carId} order by atls.upload_time desc,atl.lock_num + limit 1 </select> <delete id="deleteLockByCarId" parameterType="java.lang.String"> @@ -160,4 +200,8 @@ #{carId} </foreach> </delete> + + <select id="getIdByLockNum" resultType="java.lang.String" parameterType="java.lang.String"> + select id from ard_tank_lock atl where atl.lock_num = #{lockNum} + </select> </mapper> \ No newline at end of file diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankLockStateMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankLockStateMapper.xml new file mode 100644 index 0000000..180db6b --- /dev/null +++ b/ard-work/src/main/resources/mapper/sy/ArdTankLockStateMapper.xml @@ -0,0 +1,113 @@ +<?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.ArdTankLockStateMapper"> + + <resultMap type="ArdTankLockState" id="ArdTankLockStateResult"> + <result property="id" column="id" /> + <result property="lockId" column="lock_id" /> + <result property="lockNum" column="lock_num" /> + <result property="lockState" column="lock_state" /> + <result property="lockPositionState" column="lock_position_state" /> + <result property="lockShellState" column="lock_shell_state" /> + <result property="restartState" column="restart_state" /> + <result property="batterVoltage" column="batter_voltage" /> + <result property="powerVoltage" column="power_voltage" /> + <result property="uploadTime" column="upload_time" /> + <result property="uniqueMark" column="unique_mark" /> + </resultMap> + + <sql id="selectArdTankLockStateVo"> + select id, lock_id, lock_num, lock_state, lock_position_state, lock_shell_state, restart_state, batter_voltage, power_voltage, upload_time, unique_mark from ard_tank_lock_state + </sql> + + <select id="selectArdTankLockStateList" parameterType="ArdTankLockState" resultMap="ArdTankLockStateResult"> + <include refid="selectArdTankLockStateVo"/> + <where> + <if test="lockId != null and lockId != ''"> and lock_id = #{lockId}</if> + <if test="lockNum != null and lockNum != ''"> and lock_num = #{lockNum}</if> + <if test="lockState != null and lockState != ''"> and lock_state = #{lockState}</if> + <if test="lockPositionState != null and lockPositionState != ''"> and lock_position_state = #{lockPositionState}</if> + <if test="lockShellState != null and lockShellState != ''"> and lock_shell_state = #{lockShellState}</if> + <if test="restartState != null and restartState != ''"> and restart_state = #{restartState}</if> + <if test="batterVoltage != null and batterVoltage != ''"> and batter_voltage = #{batterVoltage}</if> + <if test="powerVoltage != null and powerVoltage != ''"> and power_voltage = #{powerVoltage}</if> + <if test="uploadTime != null and uploadTime != ''"> and upload_time = #{uploadTime}</if> + <if test="uniqueMark != null and uniqueMark != ''"> and unique_mark = #{uniqueMark}</if> + </where> + </select> + + <select id="selectArdTankLockStateById" parameterType="String" resultMap="ArdTankLockStateResult"> + <include refid="selectArdTankLockStateVo"/> + where id = #{id} + </select> + + <insert id="insertArdTankLockState" parameterType="ArdTankLockState"> + insert into ard_tank_lock_state + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="lockId != null">lock_id,</if> + <if test="lockNum != null">lock_num,</if> + <if test="lockState != null">lock_state,</if> + <if test="lockPositionState != null">lock_position_state,</if> + <if test="lockShellState != null">lock_shell_state,</if> + <if test="restartState != null">restart_state,</if> + <if test="batterVoltage != null">batter_voltage,</if> + <if test="powerVoltage != null">power_voltage,</if> + <if test="uploadTime != null">upload_time,</if> + <if test="uniqueMark != null">unique_mark,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="lockId != null">#{lockId},</if> + <if test="lockNum != null">#{lockNum},</if> + <if test="lockState != null">#{lockState},</if> + <if test="lockPositionState != null">#{lockPositionState},</if> + <if test="lockShellState != null">#{lockShellState},</if> + <if test="restartState != null">#{restartState},</if> + <if test="batterVoltage != null">#{batterVoltage},</if> + <if test="powerVoltage != null">#{powerVoltage},</if> + <if test="uploadTime != null">#{uploadTime},</if> + <if test="uniqueMark != null">#{uniqueMark},</if> + </trim> + </insert> + + <update id="updateArdTankLockState" parameterType="ArdTankLockState"> + update ard_tank_lock_state + <trim prefix="SET" suffixOverrides=","> + <if test="lockId != null">lock_id = #{lockId},</if> + <if test="lockNum != null">lock_num = #{lockNum},</if> + <if test="lockState != null">lock_state = #{lockState},</if> + <if test="lockPositionState != null">lock_position_state = #{lockPositionState},</if> + <if test="lockShellState != null">lock_shell_state = #{lockShellState},</if> + <if test="restartState != null">restart_state = #{restartState},</if> + <if test="batterVoltage != null">batter_voltage = #{batterVoltage},</if> + <if test="powerVoltage != null">power_voltage = #{powerVoltage},</if> + <if test="uploadTime != null">upload_time = #{uploadTime},</if> + <if test="uniqueMark != null">unique_mark = #{uniqueMark},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteArdTankLockStateById" parameterType="String"> + delete from ard_tank_lock_state where id = #{id} + </delete> + + <delete id="deleteArdTankLockStateByIds" parameterType="String"> + delete from ard_tank_lock_state where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + + <insert id="insertOrUpdateArdTankLockState" parameterType="ArdTankLockState" > + insert into ard_tank_lock_state (id, lock_id, lock_num, lock_state, lock_position_state, lock_shell_state, + restart_state, batter_voltage, power_voltage, upload_time, unique_mark) + values (#{id,jdbcType=VARCHAR},#{lockId,jdbcType=VARCHAR},#{lockNum,jdbcType=VARCHAR},#{lockState,jdbcType=VARCHAR}, + #{lockPositionState,jdbcType=VARCHAR},#{lockShellState,jdbcType=VARCHAR},#{restartState,jdbcType=VARCHAR}, + #{batterVoltage,jdbcType=VARCHAR},#{powerVoltage,jdbcType=VARCHAR},#{uploadTime,jdbcType=VARCHAR}, + #{uniqueMark,jdbcType=VARCHAR}) + on conflict(unique_mark) do update set upload_time=#{uploadTime,jdbcType=VARCHAR} + </insert> +</mapper> \ No newline at end of file -- Gitblit v1.9.3