package com.ruoyi.sy.service.impl;
|
|
import java.util.HashMap;
|
import java.util.List;
|
|
import com.github.pagehelper.PageHelper;
|
import com.ruoyi.common.core.domain.entity.SysConfig;
|
import com.ruoyi.common.utils.uuid.IdUtils;
|
import com.ruoyi.sy.domain.ArdSyUser;
|
import com.ruoyi.sy.mapper.ArdSyCarMapper;
|
import com.ruoyi.sy.mapper.ArdSyUserMapper;
|
import com.ruoyi.system.mapper.SysConfigMapper;
|
import com.ruoyi.utils.forest.SYClient;
|
import org.apache.commons.codec.digest.DigestUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import java.util.ArrayList;
|
import java.util.Map;
|
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.sy.mapper.ArdTankLockAlarmMapper;
|
import com.ruoyi.sy.domain.ArdTankLockAlarm;
|
import com.ruoyi.sy.service.IArdTankLockAlarmService;
|
|
import javax.annotation.Resource;
|
|
/**
|
* 电磁锁报警Service业务层处理
|
*
|
* @author ard
|
* @date 2024-07-26
|
*/
|
@Service
|
public class ArdTankLockAlarmServiceImpl implements IArdTankLockAlarmService {
|
@Resource
|
private ArdTankLockAlarmMapper ardTankLockAlarmMapper;
|
|
@Resource
|
private SysConfigMapper sysConfigMapper;
|
|
@Resource
|
private ArdSyUserMapper ardSyUserMapper;
|
|
@Resource
|
private SYClient sYClient;
|
|
/**
|
* 查询电磁锁报警
|
*
|
* @param lockNum 电磁锁报警主键
|
* @return 电磁锁报警
|
*/
|
@Override
|
public ArdTankLockAlarm selectArdTankLockAlarmByLockNum(String lockNum) {
|
return ardTankLockAlarmMapper.selectArdTankLockAlarmByLockNum(lockNum);
|
}
|
|
/**
|
* 查询电磁锁报警列表
|
*
|
* @param ardTankLockAlarm 电磁锁报警
|
* @return 电磁锁报警
|
*/
|
@Override
|
public List<ArdTankLockAlarm> selectArdTankLockAlarmList(ArdTankLockAlarm ardTankLockAlarm) {
|
return ardTankLockAlarmMapper.selectArdTankLockAlarmList(ardTankLockAlarm);
|
}
|
|
/**
|
* 新增电磁锁报警
|
*
|
* @param ardTankLockAlarm 电磁锁报警
|
* @return 结果
|
*/
|
@Override
|
public int insertArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm) {
|
ardTankLockAlarm.setId(IdUtils.simpleUUID());
|
return ardTankLockAlarmMapper.insertArdTankLockAlarm(ardTankLockAlarm);
|
}
|
|
/**
|
* 修改电磁锁报警
|
*
|
* @param ardTankLockAlarm 电磁锁报警
|
* @return 结果
|
*/
|
@Override
|
public int updateArdTankLockAlarm(ArdTankLockAlarm ardTankLockAlarm) {
|
return ardTankLockAlarmMapper.updateArdTankLockAlarm(ardTankLockAlarm);
|
}
|
|
/**
|
* 批量删除电磁锁报警
|
*
|
* @param lockNums 需要删除的电磁锁报警主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdTankLockAlarmByLockNums(String[] lockNums) {
|
return ardTankLockAlarmMapper.deleteArdTankLockAlarmByLockNums(lockNums);
|
}
|
|
/**
|
* 删除电磁锁报警信息
|
*
|
* @param lockNum 电磁锁报警主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdTankLockAlarmByLockNum(String lockNum) {
|
return ardTankLockAlarmMapper.deleteArdTankLockAlarmByLockNum(lockNum);
|
}
|
|
@Override
|
public Map<String, Object> getAlarm(String userId,Map<String, Object> para) {
|
//条件属性
|
String carId = (String) para.get("carId");
|
String lockId = (String) para.get("lockId");
|
String beginTime = (String) para.get("beginTime");
|
String endTime = (String) para.get("endTime");
|
//分页属性
|
Integer pageNum = (Integer) para.get("pageNum");
|
Integer pageSize = (Integer) para.get("pageSize");
|
|
ArdSyUser ardSyUser = ardSyUserMapper.userById(userId);
|
if(ardSyUser == null){
|
return new HashMap();
|
}
|
List<SysConfig> syURLResult = sysConfigMapper.selectByType("syCarPT");
|
String syURL = "";
|
if(syURLResult.size() != 0){
|
syURL = syURLResult.get(0).getConfigValue();
|
}else{
|
return new HashMap();
|
}
|
String passwordMd5 = DigestUtils.md5Hex(ardSyUser.getPassword());
|
Map<String, Object> LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId());
|
String sessionId = (String) LogInResult.get("sessionId");
|
|
PageHelper.startPage(pageNum, pageSize);//分页
|
List<Map<String, Object>> resultList = new ArrayList();
|
Long total = Long.valueOf(0);
|
Map<String,Object> resultMap = new HashMap();
|
if(!carId.equals("") || !lockId.equals("")){//carI或lockId为空字符串
|
resultList = ardTankLockAlarmMapper.selectArdTankLockAlarmBylockIdAndTime(carId,lockId,beginTime,endTime);
|
total = ardTankLockAlarmMapper.selectArdTankLockAlarmTotalBylockIdAndTime(carId,lockId,beginTime,endTime);
|
}else{//carI和lockId都为空字符串,查询权限下全部车辆报警
|
try{
|
resultList = ardTankLockAlarmMapper.selectArdTankLockAlarmByDeptIdAndTime(SecurityUtils.getDeptId(),beginTime,endTime);
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
try{
|
total = ardTankLockAlarmMapper.selectArdTankLockAlarmTotalByDeptIdAndTime(SecurityUtils.getDeptId(),beginTime,endTime);
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
for(Map<String, Object> map : resultList){
|
Map<String,Object> syResult = sYClient.getCarNearPositionByCarId(syURL, (String) map.get("carId"), ardSyUser.getUserId(), sessionId);
|
if(((String)syResult.get("rspCode")).equals("1")){
|
Map<String,Object> carMap = ((List<Map<String,Object>>)syResult.get("list")).get(0);
|
map.put("carPlate",carMap.get("carPlate"));
|
}
|
}
|
resultMap.put("list",resultList);
|
resultMap.put("total",total);
|
return resultMap;
|
}
|
}
|