From aed7e2e6ba8da5b7931a0a97293ba57f57d1a8cd Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Tue, 03 Apr 2018 10:31:38 +0800
Subject: [PATCH] 报表 优化
---
src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java | 85 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 80 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index e979b68..5ae279f 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -1,5 +1,6 @@
package com.moral.service.impl;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -8,15 +9,22 @@
import javax.annotation.Resource;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Service;
+
import com.github.pagehelper.PageHelper;
import com.moral.common.bean.Constants;
import com.moral.common.bean.PageBean;
-import com.moral.common.util.*;
-import org.springframework.stereotype.Service;
-
+import com.moral.common.util.ExampleUtil;
+import com.moral.common.util.RedisUtils;
+import com.moral.common.util.StringUtils;
+import com.moral.common.util.ValidateUtil;
+import com.moral.entity.Device;
import com.moral.entity.MonitorPoint;
+import com.moral.mapper.DeviceMapper;
import com.moral.mapper.MonitorPointMapper;
import com.moral.service.MonitorPointService;
+
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;
@@ -24,6 +32,8 @@
public class MonitorPointServiceImpl implements MonitorPointService {
@Resource
private MonitorPointMapper monitorPointMapper;
+ @Resource
+ private DeviceMapper deviceMapper;
@Resource
RedisUtils redisUtils;
private static Class ENTITY_CLASS = MonitorPoint.class;
@@ -84,15 +94,43 @@
monitorPoint.setIsDelete(Constants.IS_DELETE_FALSE);
monitorPointMapper.insertSelective(monitorPoint);
}else{
- // TODO ������������id������������������redis���������������
monitorPointMapper.updateByPrimaryKeySelective(monitorPoint);
+ // ������������������������������ ���redis���������������
+ refreshDevicesInRedis(monitorPoint.getId());
}
}
catch (Exception ex){
throw ex;
}
}
+ /*
+ ������������������������������ ���redis���������������
+ */
+ private void refreshDevicesInRedis(int monitorPointId){
+ Device device = new Device();
+ device.setMonitorPointId(monitorPointId);
+ List<Device> deviceList = deviceMapper.select(device);
+ if (!CollectionUtils.isEmpty(deviceList)){
+ List<Integer> orgIds = monitorPointMapper.selectOrganizationIds(monitorPointId);
+ if (!CollectionUtils.isEmpty(orgIds)){
+ deviceList.stream().forEach(dev ->{
+ if(!StringUtils.isNullOrEmpty(dev.getMac())){
+ String key = "device_"+dev.getMac();
+ // ��������������������� ������������redis
+ Device simpleDevice = new Device();
+ simpleDevice.setId(dev.getId());
+ simpleDevice.setDeviceVersion(dev.getDeviceVersion());
+ simpleDevice.setMac(dev.getMac());
+ simpleDevice.setMonitorPointId(dev.getMonitorPointId());
+ // ������������������������������������������������������������������
+ simpleDevice.setOrganizationIds(orgIds);
+ redisUtils.set(key,simpleDevice);
+ }
+ });
+ }
+ }
+ }
@Override
public void deleteByIds(Integer... ids) {
MonitorPoint monitorPoint = new MonitorPoint();
@@ -116,10 +154,25 @@
Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE).andLike("name", "%" + name + "%");
- example.or().andEqualTo("isDelete", Constants.IS_DELETE_FALSE).andCondition("getPY(name) like ", "%" + name + "%");
+ example.or().andEqualTo("isDelete", Constants.IS_DELETE_FALSE)
+ .andCondition("getPY(" + getReplaceStr("name") + ") like ", "%" + name + "%");
List<MonitorPoint> monitorPoints = monitorPointMapper.selectByExample(example);
return monitorPoints;
+ }
+
+ private String getReplaceStr(String name){
+ List<String[]> list = new ArrayList<String[]>();
+ list.add(new String[]{"���",""});
+ list.add(new String[]{"���",""});
+ for (String[] string : list) {
+ name = replace(name,string[0],string[1]);
+ }
+ return name;
+ }
+
+ private String replace(String name,String fromStr,String toStr){
+ return "REPLACE (" + name + ",'" + fromStr + "','" + toStr + "')";
}
/**
@@ -138,4 +191,26 @@
}).collect(Collectors.toList());
return list;
}
+
+ @Override
+ public List<MonitorPoint> getMonitorPointsByOrganizationId(Integer orgId) {
+ Example example = new Example(MonitorPoint.class);
+ Criteria criteria = example.createCriteria();
+
+ criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
+ if (Constants.isNotSpecialOrgId(orgId)) {
+ criteria.andEqualTo("organizationId", orgId);
+ }
+ example.orderBy("name").asc();
+ return monitorPointMapper.selectByExample(example);
+ }
+ @Override
+ public List<MonitorPoint> getMonitorPointsByRegion(Map<String, Object> parameters) {
+ Example example = new Example(MonitorPoint.class);
+ Criteria criteria = example.createCriteria();
+
+ criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
+ criteria.andEqualTo(parameters.get("name").toString(), parameters.get("value"));
+ return monitorPointMapper.selectByExample(example);
+ }
}
--
Gitblit v1.8.0