From e66b0932eb782c6ec771ffaa9957e6d5d5361286 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Tue, 07 Aug 2018 12:49:06 +0800 Subject: [PATCH] 增加 年查询 --- src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 161 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 115 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java index d68aa2e..264ed65 100644 --- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java @@ -13,7 +13,10 @@ import com.moral.common.exception.BusinessException; import com.moral.common.util.ExampleUtil; import com.moral.common.util.RedisUtils; +import com.moral.entity.DeviceVersion; +import com.moral.mapper.DeviceVersionMapper; import com.moral.mapper.MonitorPointMapper; +import com.moral.mapper.OrganizationMapper; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; @@ -32,7 +35,7 @@ @Service public class DeviceServiceImpl implements DeviceService { - Logger log = Logger.getLogger(DeviceServiceImpl.class); + private static Logger log = Logger.getLogger(DeviceServiceImpl.class); //-----------------------redis key������-������--------------------------------- private static String AlARM = "alarm";//������������������key������ private static String ADJUST="adjust";//���������������key������ @@ -55,6 +58,10 @@ @Resource private AccountService accountService; private Class ENTITY_CLASS = Device.class; + @Resource + OrganizationMapper orgMapper; + @Resource + DeviceVersionMapper deviceVersionMapper; @Resource RedisUtils redisUtils; @Override @@ -105,7 +112,7 @@ deviceMapper.updateByPrimaryKeySelective(device); } //������redis������������ - refreshDeviceInRedis(device); + refreshDeviceInRedis(device.getMac()); } @Override @@ -117,6 +124,13 @@ List<Device> devices = deviceMapper.select(device); return devices; } + + /** + * + * @param mac + * @param fromCache + * @return ������������������ + */ @Override public Device getDeviceByMac (String mac ,boolean fromCache){ if(fromCache){ @@ -163,6 +177,7 @@ simpleDevice.setMac(device.getMac()); // mac simpleDevice.setMonitorPointId(device.getMonitorPointId());// ���������id simpleDevice.setOrganizationIds(device.getOrganizationIds());// ������������ + simpleDevice.setDeviceVersion(device.getDeviceVersion()); redisUtils.set(key,simpleDevice); } private Device getDeviceFromRedis(String mac) { @@ -172,31 +187,56 @@ /** * - * @param map + * @param params * map��� ������ ������id���4������������ - * @return + * @return ������������������������ */ @Override - public List<Device> query(Map<String, Object> map) { - List <Device> list = deviceMapper.selectByMap(map); - loadDeviceState(list); - return list; + public List<Device> query(Map<String, Object> params) { + Object orgIdObj = params.get("orgId"); + List<Device> deviceList = null; + if(orgIdObj != null) { + Integer orgId = Integer.parseInt(orgIdObj.toString()); + List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId); + params.put("orgIds", orgIds); + deviceList = deviceMapper.selectByMap(params); + loadDeviceState(deviceList); + } + return deviceList; } - /** * ������������id��������������� ������������������ * @param orgId * @param deviceName * @param pageSize * @param pageNo - * @return + * @return ��������������������� */ @Override public PageResult query(Integer orgId, String deviceName, Integer pageSize, Integer pageNo) { + List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId); if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){ PageHelper.startPage(pageNo,pageSize); } - List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,deviceName); + String state = null; + switch (deviceName){ + case "������": + state = "0"; + deviceName = null;break; + case "������": + state = "1"; + deviceName = null;break; + case "������": + state = "2"; + deviceName = null;break; + case "������": + state = "3"; + deviceName = null;break; + case "������": + state = "4"; + deviceName = null;break; + } + List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,orgIds,state,deviceName); //���redis������������ loadDeviceState(list); if(list instanceof Page){ @@ -211,14 +251,15 @@ * @param mpId * @param pageSize * @param pageNo - * @return + * @return ��������������������� */ @Override public PageResult query(Integer orgId, Integer mpId, Integer pageSize, Integer pageNo) { + List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId); if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){ PageHelper.startPage(pageNo,pageSize); } - List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,mpId); + List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,orgIds,mpId); //���redis������������ loadDeviceState(list); if(list instanceof Page){ @@ -266,26 +307,20 @@ } return device; } - /* - ������ redis ��������������� + + /** + * ������������������������������ + * ������ redis ��������������� + * @param mac */ - private void refreshDeviceInRedis(Device device){ - if(!StringUtils.isBlank(device.getMac())){ - Device simpleDevice = new Device(); - simpleDevice.setId(device.getId());// id - simpleDevice.setName(device.getName());// name - simpleDevice.setAddress(device.getAddress());// address - simpleDevice.setDeviceVersionId(device.getDeviceVersionId());// version - simpleDevice.setMac(device.getMac()); // mac - simpleDevice.setMonitorPointId(device.getMonitorPointId());// ���������id - simpleDevice.setOrganizationIds(device.getOrganizationIds());// ������������ - if(device.getMonitorPointId()!=null){ - List<Integer> orgIds = monitorPointMapper.selectOrganizationIds(device.getMonitorPointId()); - simpleDevice.setOrganizationIds(orgIds); - } - String key = "device_"+device.getMac(); - redisUtils.set(key,simpleDevice); - } + private void refreshDeviceInRedis(String mac){ + if(!StringUtils.isBlank(mac)){ + Device device = deviceMapper.selectWithOrgIdsByMac(mac); + setDeviceToRedis(mac,device); + }else + { + log.warn("param mac is null in method [refreshDeviceInRedis]"); + } } @Override public int countByExample(PageBean pageBean){ @@ -311,12 +346,12 @@ @Override public PageBean queryByPageBean(PageBean pageBean) { Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean); - addDeletesToExample(example); +// addDeletesToExample(example); if(pageBean.getPageSize()>0){ PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize()); } - List<Device> organizationList = deviceMapper.selectWithRelationData(example); - return new PageBean(organizationList); + List<Device> deviceList = deviceMapper.selectWithRelationData(example); + return new PageBean(deviceList); } @Override @@ -324,34 +359,56 @@ Device device = new Device(); device.setIsDelete(Constants.IS_DELETE_TRUE); if(ids!=null&&ids.length>0){ + Example example = new Example(ENTITY_CLASS); + example.or().andIn("id", Arrays.asList(ids)); if(ids.length==1){ device.setId(ids[0]); deviceMapper.updateByPrimaryKeySelective(device); }else{ - Example example = new Example(ENTITY_CLASS); - example.or().andIn("id", Arrays.asList(ids)); deviceMapper.updateByExampleSelective(device,example); } - + List<Device> deviceList = deviceMapper.selectByExample(example); + List<String> adjustAndDeviceKeys = deviceList.stream().collect( + ArrayList<String>::new, + (list,dev) -> { + if(!StringUtils.isBlank(dev.getMac())){ + list.add("device_"+dev.getMac()); + list.add("adjust_"+dev.getMac()); + } + }, + (oList,nList)-> { + oList.addAll(nList); + } + ); + redisUtils.remove(adjustAndDeviceKeys.toArray(new String [adjustAndDeviceKeys.size()])); } } @Override + @Transactional public void addOrModify(Device device){ try{ //mac ��������� - if(StringUtils.isBlank(device.getMac())){ + if(!StringUtils.isBlank(device.getMac())){ device.setMac(device.getMac().toLowerCase()); } - if(device.getId()==null){ - device.setState(Constants.DEVICE_STATE_OFFLINE); - device.setIsDelete(Constants.IS_DELETE_FALSE); - deviceMapper.insertSelective(device); - }else{ + if(device.getId()!=null){ deviceMapper.updateByPrimaryKeySelective(device); - //������redis��������������� - refreshDeviceInRedis(device); + }else{ + Device deviceQuery = new Device(); + deviceQuery.setMac(device.getMac()); + Device deviceResult = deviceMapper.selectOne(deviceQuery); + if(deviceResult !=null){ + device.setId(deviceResult.getId()); + deviceMapper.updateByPrimaryKeySelective(device); + }else { + device.setState(Constants.DEVICE_STATE_OFFLINE); + device.setIsDelete(Constants.IS_DELETE_FALSE); + deviceMapper.insertSelective(device); + } } + //������redis��������������� + refreshDeviceInRedis(device.getMac()); } catch (Exception ex){ throw ex; @@ -411,4 +468,16 @@ return deviceMapper.selectByPrimaryKey(id); } + @Override + public List<Device> getDevicesByProfessionId(Map<String, Object> parameters) { + + return deviceMapper.getDevicesByProfession(parameters); + } + + @Override + public List<Device> getDevicesByOrganizationId(Map<String, Object> parameters) { + ValidateUtil.notNull(parameters.get("organizationId"), "param.is.null"); + return deviceMapper.getDevicesByOrganizationId(parameters); + } + } -- Gitblit v1.8.0