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 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 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 LogInResult = sYClient.logIn(syURL, passwordMd5, ardSyUser.getUserId()); String sessionId = (String) LogInResult.get("sessionId"); List ardTankLockList = ardTankLockMapper.getAll(); List> result = new ArrayList(); for(ArdTankLock ardTankLock : ardTankLockList){ Map 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 syResult = sYClient.getCarNearPositionByCarId(syURL, ardTankLock.getCarId(), ardSyUser.getUserId(), sessionId); if(((String)syResult.get("rspCode")).equals("1")){ Map carMap = ((List>)syResult.get("list")).get(0); map.put("carPlate",carMap.get("carPlate")); } result.add(map); } return Results.succeed(result); } }