From cbbea55a92b178b75f58e7c468f7e8d8ae417c9d Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期四, 11 七月 2024 13:18:38 +0800
Subject: [PATCH] 电磁锁手动操控提交

---
 ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java         |   65 +++++
 ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java              |   17 +
 ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockProcessLogMapper.java            |   61 +++++
 ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockProcessLog.java                  |  191 +++++++++++++++
 ard-work/src/main/resources/mapper/sy/ArdTankLockProcessLogMapper.xml                  |  108 +++++++++
 ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml                            |    6 
 ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java                      |    2 
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java |  236 +++++++++++++++++++
 8 files changed, 686 insertions(+), 0 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java
index 86cc3c3..fe15822 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/controller/ArdTankLockController.java
@@ -9,6 +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.utils.result.Results;
@@ -51,6 +52,9 @@
 
     @Autowired
     private IArdTankWallLockService ardTankWallLockService;
+
+    @Autowired
+    private IArdTankLockProcessLogService ardTankLockProcessLogService;
 
     /**
      * 鏌ヨ鐢电閿佸垪琛�
@@ -318,4 +322,17 @@
     public AjaxResult deleteArdTankWallLockByLockId(@PathVariable String id) {
         return toAjax(ardTankWallLockService.deleteArdTankWallLockByLockId(id));
     }
+
+    /**
+     * 鎿嶆帶鐢电閿�
+     */
+    @ApiOperation("鎿嶆帶鐢电閿�")
+    @PreAuthorize("@ss.hasPermi('sy:lock:processArdTankLockByLockId')")
+    @Log(title = "鐢电閿�" , businessType = BusinessType.INSERT)
+    @PostMapping("/processArdTankLockByLockId")
+    public AjaxResult processArdTankLockByLockId(@RequestBody Map<String,String> para) {
+        String userId = SecurityUtils.getUserId();
+        String username = SecurityUtils.getUsername();
+        return AjaxResult.success(ardTankLockProcessLogService.processArdTankLockByLockId(userId,username,para));
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockProcessLog.java b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockProcessLog.java
new file mode 100644
index 0000000..f3f7c8c
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/domain/ArdTankLockProcessLog.java
@@ -0,0 +1,191 @@
+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_process_log
+ * 
+ * @author ard
+ * @date 2024-07-10
+ */
+public class ArdTankLockProcessLog 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 userId;
+
+    /** 鎿嶄綔鐢ㄦ埛璐﹀彿 */
+    @Excel(name = "鎿嶄綔鐢ㄦ埛璐﹀彿")
+    private String userName;
+
+    /** 鎿嶄綔 */
+    @Excel(name = "鎿嶄綔")
+    private String process;
+
+    /** 鎿嶄綔鍘熷洜 */
+    @Excel(name = "鎿嶄綔鍘熷洜")
+    private String processReason;
+
+    /** 缁忓害 */
+    @Excel(name = "缁忓害")
+    private String longitude;
+
+    /** 绾害 */
+    @Excel(name = "绾害")
+    private String latitude;
+
+    /** 鎿嶄綔鏃堕棿 */
+    @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 setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+    public void setUserName(String userName) 
+    {
+        this.userName = userName;
+    }
+
+    public String getUserName() 
+    {
+        return userName;
+    }
+    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 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("userId", getUserId())
+            .append("userName", getUserName())
+            .append("process", getProcess())
+            .append("processReason", getProcessReason())
+            .append("longitude", getLongitude())
+            .append("latitude", getLatitude())
+            .append("processTime", getProcessTime())
+            .toString();
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockProcessLogMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockProcessLogMapper.java
new file mode 100644
index 0000000..7ff13ba
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankLockProcessLogMapper.java
@@ -0,0 +1,61 @@
+package com.ruoyi.sy.mapper;
+
+import java.util.List;
+import com.ruoyi.sy.domain.ArdTankLockProcessLog;
+
+/**
+ * 缃愯溅閿佹搷鎺ф棩蹇桵apper鎺ュ彛
+ * 
+ * @author ard
+ * @date 2024-07-10
+ */
+public interface ArdTankLockProcessLogMapper 
+{
+    /**
+     * 鏌ヨ缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param id 缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缃愯溅閿佹搷鎺ф棩蹇�
+     */
+    public ArdTankLockProcessLog selectArdTankLockProcessLogById(String id);
+
+    /**
+     * 鏌ヨ缃愯溅閿佹搷鎺ф棩蹇楀垪琛�
+     * 
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缃愯溅閿佹搷鎺ф棩蹇楅泦鍚�
+     */
+    public List<ArdTankLockProcessLog> selectArdTankLockProcessLogList(ArdTankLockProcessLog ardTankLockProcessLog);
+
+    /**
+     * 鏂板缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缁撴灉
+     */
+    public int insertArdTankLockProcessLog(ArdTankLockProcessLog ardTankLockProcessLog);
+
+    /**
+     * 淇敼缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缁撴灉
+     */
+    public int updateArdTankLockProcessLog(ArdTankLockProcessLog ardTankLockProcessLog);
+
+    /**
+     * 鍒犻櫎缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param id 缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缁撴灉
+     */
+    public int deleteArdTankLockProcessLogById(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdTankLockProcessLogByIds(String[] ids);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java
index f6ffff2..c88f8a1 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/mapper/ArdTankWallMapper.java
@@ -70,4 +70,6 @@
     public List<ArdTankWall> getDistinctArdTankWallByCarId(String carId);
 
     public int deleteArdTankAbnormalParkAlarmByCarId(String carId);
+
+    public List<ArdTankWall> getArdTankWallProcessByLockId(String lockId);
 }
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java
new file mode 100644
index 0000000..28cfcce
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/IArdTankLockProcessLogService.java
@@ -0,0 +1,65 @@
+package com.ruoyi.sy.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.ruoyi.sy.domain.ArdTankLockProcessLog;
+
+/**
+ * 缃愯溅閿佹搷鎺ф棩蹇桽ervice鎺ュ彛
+ * 
+ * @author ard
+ * @date 2024-07-10
+ */
+public interface IArdTankLockProcessLogService 
+{
+    /**
+     * 鏌ヨ缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param id 缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缃愯溅閿佹搷鎺ф棩蹇�
+     */
+    public ArdTankLockProcessLog selectArdTankLockProcessLogById(String id);
+
+    /**
+     * 鏌ヨ缃愯溅閿佹搷鎺ф棩蹇楀垪琛�
+     * 
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缃愯溅閿佹搷鎺ф棩蹇楅泦鍚�
+     */
+    public List<ArdTankLockProcessLog> selectArdTankLockProcessLogList(ArdTankLockProcessLog ardTankLockProcessLog);
+
+    /**
+     * 鏂板缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缁撴灉
+     */
+    public int insertArdTankLockProcessLog(ArdTankLockProcessLog ardTankLockProcessLog);
+
+    /**
+     * 淇敼缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缁撴灉
+     */
+    public int updateArdTankLockProcessLog(ArdTankLockProcessLog ardTankLockProcessLog);
+
+    /**
+     * 鎵归噺鍒犻櫎缃愯溅閿佹搷鎺ф棩蹇�
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑缃愯溅閿佹搷鎺ф棩蹇椾富閿泦鍚�
+     * @return 缁撴灉
+     */
+    public int deleteArdTankLockProcessLogByIds(String[] ids);
+
+    /**
+     * 鍒犻櫎缃愯溅閿佹搷鎺ф棩蹇椾俊鎭�
+     * 
+     * @param id 缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缁撴灉
+     */
+    public int deleteArdTankLockProcessLogById(String id);
+
+    public String processArdTankLockByLockId(String userId, String username, Map<String,String> para);
+}
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
new file mode 100644
index 0000000..3021d43
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockProcessLogServiceImpl.java
@@ -0,0 +1,236 @@
+package com.ruoyi.sy.service.impl;
+
+import java.awt.geom.Point2D;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+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.ArdTankLock;
+import com.ruoyi.sy.domain.ArdTankWall;
+import com.ruoyi.sy.mapper.ArdSyUserMapper;
+import com.ruoyi.sy.mapper.ArdTankLockMapper;
+import com.ruoyi.sy.mapper.ArdTankWallMapper;
+import com.ruoyi.system.mapper.SysConfigMapper;
+import com.ruoyi.utils.forest.SYClient;
+import com.ruoyi.utils.gps.GeoTools;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.sy.mapper.ArdTankLockProcessLogMapper;
+import com.ruoyi.sy.domain.ArdTankLockProcessLog;
+import com.ruoyi.sy.service.IArdTankLockProcessLogService;
+
+import javax.annotation.Resource;
+
+/**
+ * 缃愯溅閿佹搷鎺ф棩蹇桽ervice涓氬姟灞傚鐞�
+ *
+ * @author ard
+ * @date 2024-07-10
+ */
+@Service
+public class ArdTankLockProcessLogServiceImpl implements IArdTankLockProcessLogService {
+    @Resource
+    private ArdTankLockProcessLogMapper ardTankLockProcessLogMapper;
+
+    @Resource
+    private ArdTankWallMapper ardTankWallMapper;
+
+    @Resource
+    private ArdSyUserMapper ardSyUserMapper;
+
+    @Resource
+    private SysConfigMapper sysConfigMapper;
+
+    @Resource
+    private ArdTankLockMapper ardTankLockMapper;
+
+    @Resource
+    private SYClient sYClient;
+
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    /**
+     * 鏌ヨ缃愯溅閿佹搷鎺ф棩蹇�
+     *
+     * @param id 缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缃愯溅閿佹搷鎺ф棩蹇�
+     */
+    @Override
+    public ArdTankLockProcessLog selectArdTankLockProcessLogById(String id) {
+        return ardTankLockProcessLogMapper.selectArdTankLockProcessLogById(id);
+    }
+
+    /**
+     * 鏌ヨ缃愯溅閿佹搷鎺ф棩蹇楀垪琛�
+     *
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缃愯溅閿佹搷鎺ф棩蹇�
+     */
+    @Override
+    public List<ArdTankLockProcessLog> selectArdTankLockProcessLogList(ArdTankLockProcessLog ardTankLockProcessLog) {
+        return ardTankLockProcessLogMapper.selectArdTankLockProcessLogList(ardTankLockProcessLog);
+    }
+
+    /**
+     * 鏂板缃愯溅閿佹搷鎺ф棩蹇�
+     *
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertArdTankLockProcessLog(ArdTankLockProcessLog ardTankLockProcessLog) {
+                ardTankLockProcessLog.setId(IdUtils.simpleUUID());
+                ardTankLockProcessLog.setUserId(SecurityUtils.getUserId());
+            return ardTankLockProcessLogMapper.insertArdTankLockProcessLog(ardTankLockProcessLog);
+    }
+
+    /**
+     * 淇敼缃愯溅閿佹搷鎺ф棩蹇�
+     *
+     * @param ardTankLockProcessLog 缃愯溅閿佹搷鎺ф棩蹇�
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateArdTankLockProcessLog(ArdTankLockProcessLog ardTankLockProcessLog) {
+        return ardTankLockProcessLogMapper.updateArdTankLockProcessLog(ardTankLockProcessLog);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎缃愯溅閿佹搷鎺ф棩蹇�
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdTankLockProcessLogByIds(String[] ids) {
+        return ardTankLockProcessLogMapper.deleteArdTankLockProcessLogByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎缃愯溅閿佹搷鎺ф棩蹇椾俊鎭�
+     *
+     * @param id 缃愯溅閿佹搷鎺ф棩蹇椾富閿�
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdTankLockProcessLogById(String id) {
+        return ardTankLockProcessLogMapper.deleteArdTankLockProcessLogById(id);
+    }
+
+    @Override
+    public String processArdTankLockByLockId(String userId, String username, Map<String,String> para) {
+        String lockId = para.get("lockId");
+        String lockNum = para.get("lockNum");
+        String carId = para.get("carId");
+        String process = para.get("process");//01:寮�,02:鍏�
+        String processReason = para.get("processReason");//鎿嶆帶鍘熷洜
+
+        //鍒ゆ柇浣胯兘
+        ArdTankLock ardTankLock = ardTankLockMapper.selectArdTankLockById(lockId);
+        if(ardTankLock.getEnable().equals("false")){
+            return "璇ラ攣浣胯兘鍏抽棴锛屾棤娉曟搷鎺�";
+        }
+
+
+        ArdSyUser ardSyUser = ardSyUserMapper.userById(userId);
+        if(ardSyUser == null){
+            return "鏈寕鎺ヤ笁涓�璐﹀彿";
+        }
+        List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
+        String syURL = "";
+        if(syURLResult.size() != 0){
+            syURL = syURLResult.get(0).getConfigValue();
+        }else{
+            return "涓変竴骞冲彴鏈綍鍏�";
+        }
+        String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword());
+        Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId());
+        String sessionId = (String) LogInResult.get("sessionId");
+
+        String lng = "";
+        String lat = "";
+        String carPlate = "";
+        Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, carId, ardSyUser.getUserId(), sessionId);
+        if(((String)syResult.get("rspCode")).equals("1")){
+            Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
+            lng = (String) carMap.get("lng");
+            lat = (String) carMap.get("lat");
+            carPlate = (String) carMap.get("carName");
+
+        }else{
+            return "涓変竴骞冲彴鎶ラ敊";
+        }
+
+        List<ArdTankWall> ardTankWallList = ardTankWallMapper.getArdTankWallProcessByLockId(lockId);//鏌ヨ閿佹寕鎺ョ殑鍏ㄩ儴闇�瑕佸姩浣滅殑鐢靛瓙鍥存爮
+        if(!ardTankWallList.isEmpty()){//鎸傛帴浜嗗姩浣滅數瀛愬洿鏍�
+            Point2D.Double point = new Point2D.Double(Double.parseDouble(lng), Double.parseDouble(lat));//杞﹁締褰撳墠浣嶇疆
+            List<Point2D.Double> pts = new ArrayList<Point2D.Double>();
+            for(ArdTankWall ardTankWall : ardTankWallList){
+                pts.clear();
+                String[] wallpoiArro = ardTankWall.getWallPoi().split(",");
+                for (int j = 0; j < wallpoiArro.length; j = j + 3) {//鏋勫缓澶氳竟褰�
+                    pts.add(new Point2D.Double(Double.parseDouble(wallpoiArro[j]), Double.parseDouble(wallpoiArro[j+1])));
+                }
+                if(GeoTools.IsPtInPoly(point, pts)){//鍦ㄤ换鎰忕數瀛愬洿鏍忓唴锛屼笉鎶ヨ
+                    return "褰撳墠杞﹁締姝e鍦�" + ardTankWall.getWallName() + "涓�";
+                }
+            }
+            return "褰撳墠杞﹁締姝e鍦ㄧ數瀛愬洿鏍忓";
+        }else{
+            try{
+                String lockNumHead = lockNum.substring(0,2);
+                String lockNumTail = lockNum.substring(2,4);
+                String checkNum = Integer.toHexString(Integer.parseInt(lockNumHead, 16)//閿佺紪鍙烽珮8浣�
+                                                        + Integer.parseInt(lockNumTail, 16)//閿佺紪鍙蜂綆8浣�
+                                                        + Integer.parseInt("02", 16)//璁剧疆閿佽姱鐘舵�佸姛鑳界爜02
+                                                        + Integer.parseInt(process, 16));//鎿嶄綔
+                if(checkNum.length() == 1){
+                    checkNum = "0" + checkNum;
+                }
+                if(checkNum.length() > 2){
+                    checkNum = checkNum.substring(checkNum.length() - 2,checkNum.length());
+                }
+
+                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);
+
+
+                if(((String)result.get("rspCode")).equals("0")){
+                    //鍏ュ簱鎿嶄綔
+                    ArdTankLockProcessLog ardTankLockProcessLog = new ArdTankLockProcessLog();
+                    ardTankLockProcessLog.setId(IdUtils.simpleUUID());
+                    ardTankLockProcessLog.setLockId(lockId);
+                    ardTankLockProcessLog.setLockNum(lockNum);
+                    ardTankLockProcessLog.setCarId(carId);
+                    ardTankLockProcessLog.setCarPlate(carPlate);
+                    ardTankLockProcessLog.setUserId(userId);
+                    ardTankLockProcessLog.setUserName(username);
+                    if(process.equals("01")){
+                        ardTankLockProcessLog.setProcess("寮�鍔ㄤ綔");
+                    }else if(process.equals("02")){
+                        ardTankLockProcessLog.setProcess("鍏冲姩浣�");
+                    }
+                    ardTankLockProcessLog.setProcessReason(processReason);
+                    ardTankLockProcessLog.setLongitude(lng);
+                    ardTankLockProcessLog.setLatitude(lat);
+                    ardTankLockProcessLog.setProcessTime(this.sdf.format(new Date()));
+                    ardTankLockProcessLogMapper.insertArdTankLockProcessLog(ardTankLockProcessLog);
+                    return "鍙戦�佹垚鍔�";
+                }else{
+                    return "鍙戦�佸け璐�";
+                }
+            }catch(Exception e){
+                e.printStackTrace();
+                return "鍙戦�佸け璐�";
+            }
+        }
+    }
+}
diff --git a/ard-work/src/main/resources/mapper/sy/ArdTankLockProcessLogMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankLockProcessLogMapper.xml
new file mode 100644
index 0000000..0e43b9b
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/sy/ArdTankLockProcessLogMapper.xml
@@ -0,0 +1,108 @@
+<?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.ArdTankLockProcessLogMapper">
+    
+    <resultMap type="ArdTankLockProcessLog" id="ArdTankLockProcessLogResult">
+        <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="userId"    column="user_id"    />
+        <result property="userName"    column="user_name"    />
+        <result property="process"    column="process"    />
+        <result property="processReason"    column="process_reason"    />
+        <result property="longitude"    column="longitude"    />
+        <result property="latitude"    column="latitude"    />
+        <result property="processTime"    column="process_time"    />
+    </resultMap>
+
+    <sql id="selectArdTankLockProcessLogVo">
+        select id, lock_id, lock_num, car_id, car_plate, user_id, user_name, process, process_reason, longitude, latitude, process_time from ard_tank_lock_process_log
+    </sql>
+
+    <select id="selectArdTankLockProcessLogList" parameterType="ArdTankLockProcessLog" resultMap="ArdTankLockProcessLogResult">
+        <include refid="selectArdTankLockProcessLogVo"/>
+        <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="userId != null  and userId != ''"> and user_id = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and user_name like '%'||#{userName}||'%'</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="processTime != null  and processTime != ''"> and process_time = #{processTime}</if>
+        </where>
+    </select>
+    
+    <select id="selectArdTankLockProcessLogById" parameterType="String" resultMap="ArdTankLockProcessLogResult">
+        <include refid="selectArdTankLockProcessLogVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertArdTankLockProcessLog" parameterType="ArdTankLockProcessLog">
+        insert into ard_tank_lock_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="userId != null">user_id,</if>
+            <if test="userName != null">user_name,</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="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="userId != null">#{userId},</if>
+            <if test="userName != null">#{userName},</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="processTime != null">#{processTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateArdTankLockProcessLog" parameterType="ArdTankLockProcessLog">
+        update ard_tank_lock_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="userId != null">user_id = #{userId},</if>
+            <if test="userName != null">user_name = #{userName},</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="processTime != null">process_time = #{processTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteArdTankLockProcessLogById" parameterType="String">
+        delete from ard_tank_lock_process_log where id = #{id}
+    </delete>
+
+    <delete id="deleteArdTankLockProcessLogByIds" parameterType="String">
+        delete from ard_tank_lock_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/ArdTankWallMapper.xml b/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml
index 94fe588..d582bc2 100644
--- a/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml
+++ b/ard-work/src/main/resources/mapper/sy/ArdTankWallMapper.xml
@@ -88,4 +88,10 @@
        inner join ard_tank_wall atw on atwl.wall_id = atw.id
        where atl.car_id = #{carId}
     </select>
+
+    <select id="getArdTankWallProcessByLockId" resultMap="ArdTankWallResult" parameterType="java.lang.String">
+        select atw.* from ard_tank_wall_lock atwl
+        inner join ard_tank_wall atw on atwl.wall_id = atw.id
+        where atwl.lock_id = #{lockId} and atwl.process_type != '0'
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3