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 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 getAlarm(String userId,Map 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 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 LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); PageHelper.startPage(pageNum, pageSize);//分页 List> resultList = new ArrayList(); Long total = Long.valueOf(0); Map 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 map : resultList){ Map syResult = sYClient.getCarNearPositionByCarId(syURL, (String) map.get("carId"), ardSyUser.getUserId(), sessionId); if(((String)syResult.get("rspCode")).equals("1")){ Map carMap = ((List>)syResult.get("list")).get(0); map.put("carPlate",carMap.get("carPlate")); } } resultMap.put("list",resultList); resultMap.put("total",total); return resultMap; } }