package com.ruoyi.sy.service.impl;
|
|
import java.util.HashMap;
|
import java.util.List;
|
|
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.Map;
|
|
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;
|
|
/**
|
* 电磁锁Service业务层处理
|
*
|
* @author ard
|
* @date 2024-07-01
|
*/
|
@Service
|
public class ArdTankLockServiceImpl implements IArdTankLockService {
|
@Resource
|
private ArdTankLockMapper ardTankLockMapper;
|
|
@Resource
|
private ArdTankWallLockMapper ardTankWallLockMapper;
|
|
@Resource
|
private ArdTankWallLockTemporaryMapper ardTankWallLockTemporaryMapper;
|
|
@Resource
|
private ArdSyUserMapper ardSyUserMapper;
|
|
@Resource
|
private SysConfigMapper sysConfigMapper;
|
|
@Resource
|
private SYClient sYClient;
|
|
/**
|
* 查询电磁锁
|
*
|
* @param id 电磁锁主键
|
* @return 电磁锁
|
*/
|
@Override
|
public ArdTankLock selectArdTankLockById(String id) {
|
return ardTankLockMapper.selectArdTankLockById(id);
|
}
|
|
/**
|
* 查询电磁锁列表
|
*
|
* @param ardTankLock 电磁锁
|
* @return 电磁锁
|
*/
|
@Override
|
public List<ArdTankLock> selectArdTankLockList(ArdTankLock ardTankLock) {
|
return ardTankLockMapper.selectArdTankLockList(ardTankLock);
|
}
|
|
/**
|
* 新增电磁锁
|
*
|
* @param ardTankLock 电磁锁
|
* @return 结果
|
*/
|
@Override
|
public int insertArdTankLock(ArdTankLock ardTankLock) {
|
ardTankLock.setId(IdUtils.simpleUUID());
|
return ardTankLockMapper.insertArdTankLock(ardTankLock);
|
}
|
|
/**
|
* 修改电磁锁
|
*
|
* @param ardTankLock 电磁锁
|
* @return 结果
|
*/
|
@Override
|
public int updateArdTankLock(ArdTankLock ardTankLock) {
|
return ardTankLockMapper.updateArdTankLock(ardTankLock);
|
}
|
|
/**
|
* 批量删除电磁锁
|
*
|
* @param ids 需要删除的电磁锁主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdTankLockByIds(String[] ids) {
|
return ardTankLockMapper.deleteArdTankLockByIds(ids);
|
}
|
|
/**
|
* 删除电磁锁信息
|
*
|
* @param id 电磁锁主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdTankLockById(String id) {
|
try{
|
return ardTankLockMapper.deleteArdTankLockById(id);
|
} finally {
|
ardTankWallLockMapper.deleteArdTankWallLockByLockId(id);//删除永久电子围栏中间表
|
ardTankWallLockTemporaryMapper.deleteArdTankWallLockTemporaryByLockId(id);//删除临时电子围栏中间表
|
}
|
}
|
|
@Override
|
public Results 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());
|
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);
|
}
|
return Results.succeed(result);
|
}
|
}
|