From 56b6e1d795e9a4badee9229d8a6ccd6e0d56d4c1 Mon Sep 17 00:00:00 2001
From: zhangnaisong <2434969829@qq.com>
Date: 星期四, 04 七月 2024 10:22:25 +0800
Subject: [PATCH] 电磁锁电子围栏概要提交

---
 ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdTankLockServiceImpl.java |  247 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 241 insertions(+), 6 deletions(-)

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 06593f7..d7980f6 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
@@ -1,27 +1,56 @@
 package com.ruoyi.sy.service.impl;
 
-import java.util.List;
+import java.util.*;
 
+import com.dtflys.forest.annotation.Var;
+import com.ruoyi.common.core.domain.entity.SysConfig;
 import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.sy.domain.ArdSyUser;
+import com.ruoyi.sy.mapper.ArdSyUserMapper;
+import com.ruoyi.sy.mapper.ArdTankWallLockMapper;
+import com.ruoyi.sy.mapper.ArdTankWallLockTemporaryMapper;
+import com.ruoyi.system.mapper.SysConfigMapper;
+import com.ruoyi.utils.forest.SYClient;
+import com.ruoyi.utils.result.Results;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.ArrayList;
+
+import java.util.stream.Collectors;
+
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.sy.mapper.ArdTankLockMapper;
 import com.ruoyi.sy.domain.ArdTankLock;
 import com.ruoyi.sy.service.IArdTankLockService;
 
+import javax.annotation.Resource;
+
 /**
  * 鐢电閿丼ervice涓氬姟灞傚鐞�
  *
  * @author ard
- * @date 2024-06-29
+ * @date 2024-07-01
  */
 @Service
 public class ArdTankLockServiceImpl implements IArdTankLockService {
-    @Autowired
+    @Resource
     private ArdTankLockMapper ardTankLockMapper;
+
+    @Resource
+    private ArdTankWallLockMapper ardTankWallLockMapper;
+
+    @Resource
+    private ArdTankWallLockTemporaryMapper ardTankWallLockTemporaryMapper;
+
+    @Resource
+    private ArdSyUserMapper ardSyUserMapper;
+
+    @Resource
+    private SysConfigMapper sysConfigMapper;
+
+    @Resource
+    private SYClient sYClient;
 
     /**
      * 鏌ヨ鐢电閿�
@@ -52,10 +81,28 @@
      * @return 缁撴灉
      */
     @Override
+    public int insertArdTankLock(Map<String,Object> para) {
+        String carId = (String) para.get("carId");
+        List<Map<String,String>> lockList = (List<Map<String,String>>)para.get("lockList");
+        List<ArdTankLock> ardTankLocks = new ArrayList();
+        for(Map<String,String> map : lockList){
+            ArdTankLock ardTankLock = new ArdTankLock();
+            ardTankLock.setId(IdUtils.simpleUUID());
+            ardTankLock.setLockNum(map.get("lockNum"));
+            ardTankLock.setLockName(map.get("lockName"));
+            ardTankLock.setImgPositionTop(map.get("imgPositionTop"));
+            ardTankLock.setImgPositionLeft(map.get("imgPositionLeft"));
+            ardTankLock.setCarId(carId);
+            ardTankLock.setEnable(map.get("enable"));
+            ardTankLocks.add(ardTankLock);
+        }
+        return ardTankLockMapper.insertArdTankLocks(ardTankLocks);
+    }
+    /*@Override
     public int insertArdTankLock(ArdTankLock ardTankLock) {
                 ardTankLock.setId(IdUtils.simpleUUID());
             return ardTankLockMapper.insertArdTankLock(ardTankLock);
-    }
+    }*/
 
     /**
      * 淇敼鐢电閿�
@@ -87,6 +134,194 @@
      */
     @Override
     public int deleteArdTankLockById(String id) {
-        return ardTankLockMapper.deleteArdTankLockById(id);
+        try{
+            return ardTankLockMapper.deleteArdTankLockById(id);
+        } finally {
+            ardTankWallLockMapper.deleteArdTankWallLockByLockId(id);//鍒犻櫎姘镐箙鐢靛瓙鍥存爮涓棿琛�
+            ardTankWallLockTemporaryMapper.deleteArdTankWallLockTemporaryByLockId(id);//鍒犻櫎涓存椂鐢靛瓙鍥存爮涓棿琛�
+        }
+    }
+
+    @Override
+    //public Results List<Map<String,Object>> getAll(String usersId) {
+    public List<Map<String,Object>> getAll(String usersId) {
+        ArdSyUser ardSyUser = ardSyUserMapper.userById(usersId);
+        /*if(ardSyUser == null){
+            return Results.error("娌℃湁鎸傛帴涓変竴杞﹁締鐢ㄦ埛");
+        }*/
+        List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
+        String syURL = "";
+        if(syURLResult.size() != 0){
+            syURL = syURLResult.get(0).getConfigValue();
+        }/*else{
+            return Results.error("涓変竴杞﹁締鍦板潃鏈綍鍏�");
+        }*/
+        String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword());
+        Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId());
+        String sessionId = (String) LogInResult.get("sessionId");
+        List<ArdTankLock> ardTankLockList = ardTankLockMapper.getAll();
+        List<Map<String,Object>> result = new ArrayList();
+        for(ArdTankLock ardTankLock : ardTankLockList){
+            Map<String,Object> map = new HashMap();
+            map.put("id",ardTankLock.getId());
+            map.put("lockNum",ardTankLock.getLockNum());
+            map.put("lockName",ardTankLock.getLockName());
+            map.put("imgPositionTop",ardTankLock.getImgPositionTop());
+            map.put("imgPositionLeft",ardTankLock.getImgPositionLeft());
+            map.put("carId",ardTankLock.getCarId());
+            map.put("enable",ardTankLock.getEnable());
+            if(ardTankLock.getRestartState() == null){
+                map.put("restartState","");
+            }else{
+                map.put("restartState",ardTankLock.getRestartState());
+            }
+            if(ardTankLock.getOnlineTime() == null){
+                map.put("onlineTime","");
+            }else{
+                map.put("onlineTime",ardTankLock.getOnlineTime());
+            }
+            Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, ardTankLock.getCarId(), ardSyUser.getUserId(), sessionId);
+            if(((String)syResult.get("rspCode")).equals("1")){
+                Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
+                map.put("carPlate",carMap.get("carPlate"));
+            }
+            result.add(map);
+        }
+        List<Map<String,Object>> result0 = new ArrayList();//鎷兼帴carId鍜宑arPlate
+        Set<String> carIdSet = new HashSet();
+        for(Map<String,Object> map : result){
+            if(!carIdSet.contains((String) map.get("carId"))){
+                Map<String,Object> mapr = new HashMap();
+                mapr.put("carId",map.get("carId"));
+                mapr.put("carPlate",map.get("carPlate"));
+                mapr.put("lockList",new ArrayList());
+                result0.add(mapr);
+            }
+            carIdSet.add((String) map.get("carId"));
+        }
+        for(Map<String,Object> map : result0){
+            for(Map<String,Object> map0 : result){
+                if(((String)map.get("carId")).equals((String)map0.get("carId"))){
+                    ((List)map.get("lockList")).add(map0);
+                }
+            }
+        }
+        //return Results.succeed(result0);
+        return result0;
+    }
+
+    @Override
+    public Map<String, Object> getLockByCarId(String carId, String usersId) {
+        ArdSyUser ardSyUser = ardSyUserMapper.userById(usersId);
+        /*if(ardSyUser == null){
+            return Results.error("娌℃湁鎸傛帴涓変竴杞﹁締鐢ㄦ埛");
+        }*/
+        List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
+        String syURL = "";
+        if(syURLResult.size() != 0){
+            syURL = syURLResult.get(0).getConfigValue();
+        }/*else{
+            return Results.error("涓変竴杞﹁締鍦板潃鏈綍鍏�");
+        }*/
+        String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword());
+        Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId());
+        String sessionId = (String) LogInResult.get("sessionId");
+        List<ArdTankLock> ardTankLockList = ardTankLockMapper.getLockByCarId(carId);
+        Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, carId, ardSyUser.getUserId(), sessionId);
+
+        Map<String,Object> resultMap = new HashMap();
+        if(ardTankLockList.size() != 0){
+            resultMap.put("carId",carId);
+            if(((String)syResult.get("rspCode")).equals("1")){
+                Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
+                resultMap.put("carPlate",carMap.get("carPlate"));
+            }
+        }else{
+            resultMap.put("carId",carId);
+            if(((String)syResult.get("rspCode")).equals("1")){
+                Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
+                resultMap.put("carPlate",carMap.get("carPlate"));
+            }
+            resultMap.put("lockList",new ArrayList());
+        }
+
+        List<Map<String,Object>> result = new ArrayList();
+        for(ArdTankLock ardTankLock : ardTankLockList){
+            Map<String,Object> map = new HashMap();
+            map.put("id",ardTankLock.getId());
+            map.put("lockNum",ardTankLock.getLockNum());
+            map.put("lockName",ardTankLock.getLockName());
+            map.put("imgPositionTop",ardTankLock.getImgPositionTop());
+            map.put("imgPositionLeft",ardTankLock.getImgPositionLeft());
+            map.put("carId",ardTankLock.getCarId());
+            map.put("enable",ardTankLock.getEnable());
+            if(ardTankLock.getRestartState() == null){
+                map.put("restartState","");
+            }else{
+                map.put("restartState",ardTankLock.getRestartState());
+            }
+            if(ardTankLock.getOnlineTime() == null){
+                map.put("onlineTime","");
+            }else{
+                map.put("onlineTime",ardTankLock.getOnlineTime());
+            }
+            Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
+            map.put("carPlate",carMap.get("carPlate"));
+            result.add(map);
+        }
+        resultMap.put("lockList",result);
+        return resultMap;
+    }
+
+    @Override
+    public int deleteLockByCarId(String carId) {
+        int result = ardTankLockMapper.deleteLockByCarId(carId);
+        return result;
+    }
+
+    @Override
+    public int updateLockByCarId(Map<String, Object> para) {
+        int result = 0;
+        String carId = (String) para.get("carId");
+        List<ArdTankLock> ardTankLockOldList = ardTankLockMapper.getLockByCarId(carId);
+        Set<String> idSet = new HashSet();//涔嬪墠鐨勪富閿�
+        for(ArdTankLock ardTankLock : ardTankLockOldList){
+            idSet.add(ardTankLock.getId());
+        }
+        //Set<String> newIdSet = new HashSet();//浼犲弬鐨勪富閿�
+        List<Map<String,Object>> lockList = (List<Map<String, Object>>) para.get("lockList");
+        List<ArdTankLock> ardTankLocks = new ArrayList();
+        for(Map<String,Object> map : lockList){
+            if(map.get("id") != null){//鏈変富閿紝鍋氫慨鏀规搷浣�
+                //newIdSet.add((String) map.get("id"));
+                idSet.remove((String) map.get("id"));
+                ArdTankLock ardTankLock = new ArdTankLock();
+                ardTankLock.setId((String) map.get("id"));
+                ardTankLock.setLockNum((String) map.get("lockNum"));
+                ardTankLock.setLockName((String) map.get("lockName"));
+                ardTankLock.setImgPositionTop((String) map.get("imgPositionTop"));
+                ardTankLock.setImgPositionLeft((String) map.get("imgPositionLeft"));
+                ardTankLock.setCarId((String) map.get("carId"));
+                ardTankLock.setEnable((String) map.get("enable"));
+                result = result + ardTankLockMapper.updateArdTankLock(ardTankLock);
+            }else{//鏃犱富閿紝鍋氫慨鏀规搷浣�
+                ArdTankLock ardTankLock = new ArdTankLock();
+                ardTankLock.setId(IdUtils.simpleUUID());
+                ardTankLock.setLockNum((String) map.get("lockNum"));
+                ardTankLock.setLockName((String) map.get("lockName"));
+                ardTankLock.setImgPositionTop((String) map.get("imgPositionTop"));
+                ardTankLock.setImgPositionLeft((String) map.get("imgPositionLeft"));
+                ardTankLock.setCarId(carId);
+                ardTankLock.setEnable((String) map.get("enable"));
+                ardTankLocks.add(ardTankLock);
+            }
+        }
+        if(ardTankLocks.size() != 0){
+            result = result + ardTankLockMapper.insertArdTankLocks(ardTankLocks);
+        }
+        if(!idSet.isEmpty()){
+            result = result + ardTankLockMapper.deleteArdTankLockByIdSet(idSet);
+        }
+        return result;
     }
 }

--
Gitblit v1.9.3