| | |
| | | import java.io.ByteArrayInputStream;
|
| | | import java.io.InputStream;
|
| | | import java.io.InputStreamReader;
|
| | | import java.util.ArrayList;
|
| | | import java.util.HashMap;
|
| | | import java.util.LinkedHashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | | import java.util.*;
|
| | | import java.util.stream.Collectors;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
| | | import org.dom4j.Element;
|
| | | import org.dom4j.io.SAXReader;
|
| | | import org.springframework.beans.factory.annotation.Value;
|
| | | import org.springframework.cglib.beans.BeanMap;
|
| | | import org.springframework.data.redis.core.RedisTemplate;
|
| | | import org.springframework.security.access.prepost.PreAuthorize;
|
| | | import org.springframework.util.ObjectUtils;
|
| | |
| | | import org.springframework.web.servlet.ModelAndView;
|
| | | import org.xml.sax.InputSource;
|
| | |
|
| | | import com.alibaba.fastjson.JSON;
|
| | | import com.alibaba.fastjson.JSONArray;
|
| | | import com.alibaba.fastjson.JSONObject;
|
| | | import com.moral.common.bean.Constants;
|
| | |
| | | * @return the alarm levels
|
| | | */
|
| | | @GetMapping("alarm-levels")
|
| | | public Object getAlarmLevels(HttpServletRequest request, Integer orgId) {
|
| | | public Object getAlarmLevels(HttpServletRequest request, Optional<Integer> orgId, Optional<Integer> mpId) {
|
| | | List<Map<String,Object>> sensorAlarmList = null;
|
| | | try {
|
| | | AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId).get();
|
| | | Map<String,AlarmSensorLevel> alarmLevelMap = alarmConfigValue.getAlarmLevels();
|
| | | sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> {
|
| | | AlarmSensorLevel alarmSensorLevel = alarmLevelMap.get(key);
|
| | | JSONObject alarmSensorLevelMap = (JSONObject) JSON.toJSON(alarmSensorLevel);
|
| | | alarmSensorLevelMap.put("key",key);
|
| | | return alarmSensorLevelMap;
|
| | | }).collect(Collectors.toList());
|
| | | try {
|
| | | AlarmConfig alarmConfig = null;
|
| | | if(orgId.isPresent()){
|
| | | alarmConfig = alarmConfigService.queryValueByOrganizationId(orgId.get()).get();
|
| | | }else if(mpId.isPresent()){
|
| | | alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get();
|
| | | }
|
| | | //返回值处理
|
| | | if(alarmConfig.getValue()!=null&&alarmConfig.getValue().getAlarmLevels()!=null){
|
| | | Map<String, AlarmSensorLevel> alarmLevelMap = alarmConfig.getValue().getAlarmLevels();
|
| | | // 当前非取默认值,未设值将用默认值覆盖
|
| | | Map<String,AlarmSensorLevel> defaultSensorLevelMap = null;
|
| | | if(alarmConfig.getId()!=null){
|
| | | AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue();
|
| | | defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels();
|
| | | }
|
| | | Map<String, AlarmSensorLevel> finalDefaultSensorLevelMap = defaultSensorLevelMap;
|
| | | alarmLevelMap.entrySet().stream().forEach(entry -> {
|
| | | //当 increment都为0时,替换为默认值
|
| | | AlarmSensorLevel alarmSensorLevel = entry.getValue();
|
| | | if(alarmSensorLevel.getIncrement()!=null){
|
| | | boolean isAllZero = alarmSensorLevel.getIncrement().stream().allMatch(item -> item == 0);
|
| | | if(isAllZero){
|
| | | AlarmSensorLevel defaultAlarmSensorLevel = finalDefaultSensorLevelMap==null?null:finalDefaultSensorLevelMap.get(entry.getKey());
|
| | | if(defaultAlarmSensorLevel!=null){
|
| | | alarmSensorLevel.setIncrement(defaultAlarmSensorLevel.getIncrement());
|
| | | }else{
|
| | | List<Float> tempList = Arrays.asList(0.0f,200.0f,500.0f);
|
| | | alarmSensorLevel.setIncrement(tempList);
|
| | | }
|
| | | }
|
| | | }
|
| | | });
|
| | | //map to list
|
| | | Map<String, AlarmSensorLevel> finalAlarmLevelMap = alarmLevelMap;
|
| | | sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> {
|
| | | AlarmSensorLevel alarmSensorLevel = finalAlarmLevelMap.get(key);
|
| | | Map<String,Object> alarmSensorLevelMap = new HashMap<>(BeanMap.create(alarmSensorLevel));
|
| | | alarmSensorLevelMap.put("key",key);
|
| | | return alarmSensorLevelMap;
|
| | | }).collect(Collectors.toList());
|
| | | }else{
|
| | | return new ResultBean<>("提供参数有误,未查询到任何数据",ResultBean.FAIL);
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | Map<String, Object> err = new LinkedHashMap<String, Object>();
|
| | |
| | | @RequestMapping(value = "/map-page", method = RequestMethod.GET)
|
| | | public ModelAndView map(ModelAndView model, @RequestParam("areaCode")int code, @RequestParam("accountId")int accountId){
|
| | | Account account = accountService.getAccountById(accountId);
|
| | | String regionName = areaService.selectFullNameByCode(code);
|
| | | String regionName = areaService.queryFullNameByCode(code);
|
| | | if(account!=null&®ionName!=null){
|
| | | //去除空格
|
| | | regionName = regionName.replace(" ","");
|
| | |
| | | Map pieData = alarmDailyService.getPieData(parameters);
|
| | | List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
|
| | | return new ResultBean<List<Map<String, Object>>>(list);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 获取报警阀值
|
| | | * @param mpid
|
| | | * @return
|
| | | */
|
| | | @GetMapping("getalevels")
|
| | | public ResultBean<Map<String,AlarmSensorLevel>> getAlarmLevelByMonitorPointId(int mpid){
|
| | | AlarmConfig alarmConfig = alarmConfigService.queryByMonitorPointId(mpid).get();
|
| | | Map<String,AlarmSensorLevel> alarmSensorLevelMap = alarmConfig.getValue().getAlarmLevels();
|
| | | // 当前非取默认值,未设值将用默认值覆盖
|
| | | if(alarmConfig.getId()!=null){
|
| | | AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue();
|
| | | Map<String,AlarmSensorLevel> defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels();
|
| | | Map<String,AlarmSensorLevel> alarmSensorLevelMapNotZO = alarmSensorLevelMap.entrySet().stream().collect(
|
| | | HashMap::new,
|
| | | (map,entry) -> {
|
| | | AlarmSensorLevel alarmSensorLevel = entry.getValue();
|
| | | if(alarmSensorLevel.isEnable()||alarmSensorLevel.isDegressEnable()){
|
| | | map.put(entry.getKey(),entry.getValue());
|
| | | }
|
| | | },
|
| | | (oMap,nMap) -> {
|
| | | oMap.putAll(nMap);
|
| | | }
|
| | | );
|
| | | // 已设置的选项覆盖默认选项
|
| | | defaultSensorLevelMap.putAll(alarmSensorLevelMapNotZO);
|
| | | alarmSensorLevelMap = defaultSensorLevelMap;
|
| | | }
|
| | |
|
| | | ResultBean<Map<String,AlarmSensorLevel>> resultBean = new ResultBean();
|
| | | resultBean.setCode(ResultBean.SUCCESS);
|
| | | resultBean.setData(alarmSensorLevelMap);
|
| | | return resultBean;
|
| | | }
|
| | | }
|