| | |
| | | package com.moral.api.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.moral.api.entity.Device; |
| | | import com.moral.api.entity.ManageAccount; |
| | | import com.moral.api.entity.MonitorPoint; |
| | | import com.moral.api.entity.Organization; |
| | | import com.moral.api.entity.User; |
| | | import com.moral.api.entity.SysDictData; |
| | | import com.moral.api.entity.SysDictType; |
| | | import com.moral.api.entity.Version; |
| | | import com.moral.api.mapper.DeviceMapper; |
| | | import com.moral.api.mapper.ManageAccountMapper; |
| | | import com.moral.api.mapper.MonitorPointMapper; |
| | | import com.moral.api.mapper.OrganizationMapper; |
| | | import com.moral.api.mapper.SysDictDataMapper; |
| | | import com.moral.api.mapper.SysDictTypeMapper; |
| | | import com.moral.api.pojo.vo.device.DeviceVO; |
| | | import com.moral.api.service.DeviceService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.redis.RedisUtil; |
| | | import com.moral.util.ConvertUtils; |
| | | import com.moral.util.DateUtils; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.ArrayList; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | @Autowired |
| | | private OrganizationMapper organizationMapper; |
| | | |
| | | @Autowired |
| | | private MonitorPointMapper monitorPointMapper; |
| | | |
| | | @Autowired |
| | | private SysDictTypeMapper sysDictTypeMapper; |
| | | |
| | | @Autowired |
| | | private SysDictDataMapper sysDictDataMapper; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void insert(Device device) { |
| | | deviceMapper.insert(device); |
| | | Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId()); |
| | | RedisUtil.set("device_" + device.getMac(), deviceInfo); |
| | | } |
| | | |
| | | @Override |
| | | public List<ManageAccount> selectAllOperator() { |
| | | QueryWrapper<ManageAccount> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("id", "user_name").eq("is_delete", Constants.NOT_DELETE); |
| | | return manageAccountMapper.selectList(queryWrapper); |
| | | @Transactional |
| | | public void delete(Integer deviceId) { |
| | | UpdateWrapper<Device> updateWrapper = new UpdateWrapper<>(); |
| | | updateWrapper.eq("id", deviceId).set("is_delete", Constants.DELETE); |
| | | deviceMapper.update(null, updateWrapper); |
| | | String mac = deviceMapper.selectById(deviceId).getMac(); |
| | | //清除redis |
| | | RedisUtil.del("device_" + mac); |
| | | } |
| | | |
| | | @Override |
| | | public List<Organization> selectAllOrganization() { |
| | | QueryWrapper<Organization> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("id", "name").ge("expire_time", new Date()).eq("is_delete", Constants.NOT_DELETE); |
| | | return organizationMapper.selectList(queryWrapper); |
| | | @Transactional |
| | | public void update(Device device) { |
| | | deviceMapper.updateById(device); |
| | | //更新redis |
| | | Map<String, Object> deviceInfo = selectDeviceInfoById(device.getId()); |
| | | RedisUtil.set("device_" + deviceInfo.get("mac"), deviceInfo); |
| | | } |
| | | |
| | | @Override |
| | | public Page<DeviceVO> selectDevices(Map<String, Object> parameters) { |
| | | QueryWrapper<DeviceVO> queryWrapper = new QueryWrapper<>(); |
| | | public List<Map<String, Object>> selectAllOperators() { |
| | | //维护人列表 |
| | | QueryWrapper<ManageAccount> operatorWrapper = new QueryWrapper<>(); |
| | | operatorWrapper.select("id", "user_name").eq("is_delete", Constants.NOT_DELETE); |
| | | return manageAccountMapper.selectMaps(operatorWrapper); |
| | | } |
| | | |
| | | //根据字典类型获取字典数据 |
| | | @Override |
| | | public List<Map<String, Object>> selectDeviceDictData(String dictType) { |
| | | QueryWrapper<SysDictType> typeQueryWrapper = new QueryWrapper<>(); |
| | | typeQueryWrapper.select("id").eq("name", dictType); |
| | | SysDictType sysDictType = sysDictTypeMapper.selectOne(typeQueryWrapper); |
| | | QueryWrapper<SysDictData> dataQueryWrapper = new QueryWrapper<>(); |
| | | dataQueryWrapper.select("dataKey", "dataValue").eq("dict_type_id", sysDictType.getId()).eq("is_delete", Constants.NOT_DELETE); |
| | | return sysDictDataMapper.selectMaps(dataQueryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectMonitorsByOrgId(Integer orgId) { |
| | | QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("id", "name").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE); |
| | | return monitorPointMapper.selectMaps(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectDevicesByOrgId(Integer orgId) { |
| | | QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("is_delete", Constants.NOT_DELETE).eq("organization_id", orgId); |
| | | return deviceMapper.selectMaps(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectDevicesByMpId(Integer mpId) { |
| | | QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("is_delete", Constants.NOT_DELETE).eq("monitor_point_id", mpId); |
| | | return deviceMapper.selectMaps(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<Device> selectDevices(Map<String, Object> parameters) { |
| | | QueryWrapper<Device> queryWrapper = new QueryWrapper<>(); |
| | | Integer page = (Integer) parameters.get("page"); |
| | | Integer size = (Integer) parameters.get("size"); |
| | | Page<DeviceVO> pageData = new Page<>(page, size); |
| | | deviceMapper.selectAllDeviceInfo(pageData, queryWrapper); |
| | | return pageData; |
| | | Object order = parameters.get("order"); |
| | | Object orderType = parameters.get("orderType"); |
| | | Object name = parameters.get("name"); |
| | | Object mac = parameters.get("mac"); |
| | | if (name != null) { |
| | | queryWrapper.like("name", name); |
| | | } |
| | | if (mac != null) { |
| | | queryWrapper.like("mac", mac); |
| | | } |
| | | |
| | | //排序参数,默认create_time降序 |
| | | if (order != null && orderType != null) { |
| | | if (Constants.ORDER_ASC.equals(orderType)) { |
| | | queryWrapper.orderByAsc(ConvertUtils.toLine(order.toString())); |
| | | } else { |
| | | queryWrapper.orderByDesc(ConvertUtils.toLine(order.toString())); |
| | | } |
| | | } else { |
| | | queryWrapper.orderByDesc("create_time"); |
| | | } |
| | | queryWrapper.eq("is_delete", Constants.NOT_DELETE); |
| | | Page<Device> devicePage = new Page<>(page, size); |
| | | deviceMapper.selectPage(devicePage, queryWrapper); |
| | | return devicePage; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> selectDeviceInfoById(Integer deviceId) { |
| | | Map<String, Object> result = new LinkedHashMap<>(); |
| | | DeviceVO device = deviceMapper.selectDeviceInfoById(deviceId); |
| | | //设备 |
| | | result.put("id", device.getId()); |
| | | result.put("name", device.getName()); |
| | | result.put("mac", device.getMac()); |
| | | result.put("address", device.getAddress()); |
| | | result.put("longitude", device.getLongitude()); |
| | | result.put("latitude", device.getLatitude()); |
| | | result.put("createTime", DateUtils.dateToDateString(device.getCreateTime())); |
| | | |
| | | //行业 |
| | | result.put("profession", device.getProfession()); |
| | | result.put("professionName", device.getProfessionName()); |
| | | |
| | | //工艺 |
| | | result.put("tech", device.getTech()); |
| | | result.put("techName", device.getTechName()); |
| | | |
| | | //检测器 |
| | | result.put("detector", device.getDetector()); |
| | | result.put("detectorName", device.getDetectorName()); |
| | | |
| | | //采购商 |
| | | result.put("purchaser", device.getPurchaser()); |
| | | result.put("purchaserName", device.getPurchaserName()); |
| | | |
| | | //型号 |
| | | Map<String, Object> versionInfo = new LinkedHashMap<>(); |
| | | Version version = device.getVersion(); |
| | | versionInfo.put("id", version.getId()); |
| | | versionInfo.put("name", version.getName()); |
| | | result.put("version", versionInfo); |
| | | |
| | | //维护人 |
| | | List<Map<String, Object>> operatorsInfo = new ArrayList<>(); |
| | | List<ManageAccount> operators = device.getOperators(); |
| | | for (ManageAccount operator : operators) { |
| | | Map<String, Object> operatorMap = new LinkedHashMap<>(); |
| | | operatorMap.put("id", operator.getId()); |
| | | operatorMap.put("name", operator.getUserName()); |
| | | operatorsInfo.add(operatorMap); |
| | | } |
| | | result.put("operators", operatorsInfo); |
| | | |
| | | //组织 |
| | | Map<String, Object> orgInfo = new LinkedHashMap<>(); |
| | | Organization organization = device.getOrganization(); |
| | | orgInfo.put("id", organization.getId()); |
| | | orgInfo.put("name", organization.getName()); |
| | | result.put("organization", orgInfo); |
| | | |
| | | //站点 |
| | | Map<String, Object> mpInfo = new LinkedHashMap<>(); |
| | | MonitorPoint monitorPoint = device.getMonitorPoint(); |
| | | mpInfo.put("id", monitorPoint.getId()); |
| | | mpInfo.put("name", monitorPoint.getName()); |
| | | result.put("monitorPoint", mpInfo); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectAllOrganization() { |
| | | QueryWrapper<Organization> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("id", "name").eq("is_delete", Constants.NOT_DELETE); |
| | | return organizationMapper.selectMaps(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectAllMonitorPoint() { |
| | | QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("id", "name").eq("is_delete", Constants.NOT_DELETE); |
| | | return monitorPointMapper.selectMaps(queryWrapper); |
| | | } |
| | | |
| | | } |