Commit 38be575e authored by maoying's avatar maoying

修改预案初始化水资源接口;设备点位分页问题

parent 9ccbc8ee
...@@ -98,7 +98,7 @@ public class FireEquimtPointController extends BaseController { ...@@ -98,7 +98,7 @@ public class FireEquimtPointController extends BaseController {
@ApiParam(value = "监测点编号或者监测点名称模糊匹配") @RequestParam(required = false) String searchValue, @ApiParam(value = "监测点编号或者监测点名称模糊匹配") @RequestParam(required = false) String searchValue,
@ApiParam(value = "类型(模拟量:ANALOGUE;开关量:SWITCH)") @RequestParam(required = false) String type) { @ApiParam(value = "类型(模拟量:ANALOGUE;开关量:SWITCH)") @RequestParam(required = false) String type) {
Map<String, Object> queryMap = Maps.newHashMap(); Map<String, Object> queryMap = Maps.newHashMap();
queryMap.put("pageNumber", pageNumber); queryMap.put("offset", pageNumber*pageSize);
queryMap.put("pageSize", pageSize); queryMap.put("pageSize", pageSize);
if (isBindDevice != null && isBindDevice == 0) { if (isBindDevice != null && isBindDevice == 0) {
queryMap.put("fireEquipmentId", 0); queryMap.put("fireEquipmentId", 0);
......
package com.yeejoin.amos.fas.business.service.impl; package com.yeejoin.amos.fas.business.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.component.cache.enumeration.CacheType;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.yeejoin.amos.fas.business.bo.RpnCalculationBo; import com.yeejoin.amos.fas.business.bo.RpnCalculationBo;
import com.yeejoin.amos.fas.business.constants.FasConstant; import com.yeejoin.amos.fas.business.constants.FasConstant;
import com.yeejoin.amos.fas.business.dao.mapper.*; import com.yeejoin.amos.fas.business.dao.mapper.FireEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FireEquipPointMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FmeaEquipmentPointMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FmeaMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FmeaPointInputitemMapper;
import com.yeejoin.amos.fas.business.dao.mapper.ImpAndFireEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.RiskSourceMapper;
import com.yeejoin.amos.fas.business.dao.mongo.EquipCommunicationDao; import com.yeejoin.amos.fas.business.dao.mongo.EquipCommunicationDao;
import com.yeejoin.amos.fas.business.dao.repository.*; import com.yeejoin.amos.fas.business.dao.repository.IContingencyOriginalDataDao;
import com.yeejoin.amos.fas.business.dao.repository.IDictDao;
import com.yeejoin.amos.fas.business.dao.repository.IEvaluationModelDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentDataDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentPointDao;
import com.yeejoin.amos.fas.business.dao.repository.IFmeaDao;
import com.yeejoin.amos.fas.business.dao.repository.IPPointDao;
import com.yeejoin.amos.fas.business.dao.repository.IPreplanPictureDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskLevelDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskSourceDao;
import com.yeejoin.amos.fas.business.dao.repository.IRpnChangeLogDao;
import com.yeejoin.amos.fas.business.dao.repository.IUserDao;
import com.yeejoin.amos.fas.business.feign.RemoteRuleServer; import com.yeejoin.amos.fas.business.feign.RemoteRuleServer;
import com.yeejoin.amos.fas.business.feign.RemoteWebSocketServer; import com.yeejoin.amos.fas.business.feign.RemoteWebSocketServer;
import com.yeejoin.amos.fas.business.jpush.AppMessagePushService; import com.yeejoin.amos.fas.business.jpush.AppMessagePushService;
...@@ -21,7 +77,13 @@ import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance; ...@@ -21,7 +77,13 @@ import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance;
import com.yeejoin.amos.fas.business.service.intfc.IEquipmentService; import com.yeejoin.amos.fas.business.service.intfc.IEquipmentService;
import com.yeejoin.amos.fas.business.service.intfc.IRiskSourceService; import com.yeejoin.amos.fas.business.service.intfc.IRiskSourceService;
import com.yeejoin.amos.fas.business.service.intfc.Node3dVoService; import com.yeejoin.amos.fas.business.service.intfc.Node3dVoService;
import com.yeejoin.amos.fas.business.service.model.*; import com.yeejoin.amos.fas.business.service.model.CheckInputItemRo;
import com.yeejoin.amos.fas.business.service.model.ContingencyDeviceStatus;
import com.yeejoin.amos.fas.business.service.model.ContingencyRo;
import com.yeejoin.amos.fas.business.service.model.FireEquimentDataRo;
import com.yeejoin.amos.fas.business.service.model.ProtalDataRo;
import com.yeejoin.amos.fas.business.service.model.RiskSourceRo;
import com.yeejoin.amos.fas.business.service.model.RiskSourceRuleRo;
import com.yeejoin.amos.fas.business.util.DateUtils; import com.yeejoin.amos.fas.business.util.DateUtils;
import com.yeejoin.amos.fas.business.util.JexlUtil; import com.yeejoin.amos.fas.business.util.JexlUtil;
import com.yeejoin.amos.fas.business.util.RpnUtils; import com.yeejoin.amos.fas.business.util.RpnUtils;
...@@ -29,33 +91,25 @@ import com.yeejoin.amos.fas.business.vo.EquipCommunicationData; ...@@ -29,33 +91,25 @@ import com.yeejoin.amos.fas.business.vo.EquipCommunicationData;
import com.yeejoin.amos.fas.client.invoke.RsDataQueue; import com.yeejoin.amos.fas.client.invoke.RsDataQueue;
import com.yeejoin.amos.fas.core.common.request.CommonPageable; import com.yeejoin.amos.fas.core.common.request.CommonPageable;
import com.yeejoin.amos.fas.core.common.response.RiskSourceTreeResponse; import com.yeejoin.amos.fas.core.common.response.RiskSourceTreeResponse;
import com.yeejoin.amos.fas.dao.entity.*; import com.yeejoin.amos.fas.core.util.StringUtil;
import com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData;
import com.yeejoin.amos.fas.dao.entity.Dict;
import com.yeejoin.amos.fas.dao.entity.Equipment;
import com.yeejoin.amos.fas.dao.entity.EvaluationModel;
import com.yeejoin.amos.fas.dao.entity.FireEquipment;
import com.yeejoin.amos.fas.dao.entity.FireEquipmentData;
import com.yeejoin.amos.fas.dao.entity.FireEquipmentPoint;
import com.yeejoin.amos.fas.dao.entity.Fmea;
import com.yeejoin.amos.fas.dao.entity.FmeaEquipmentPoint;
import com.yeejoin.amos.fas.dao.entity.FmeaPointInputitem;
import com.yeejoin.amos.fas.dao.entity.PPoint;
import com.yeejoin.amos.fas.dao.entity.PreplanPicture;
import com.yeejoin.amos.fas.dao.entity.RiskLevel;
import com.yeejoin.amos.fas.dao.entity.RiskSource;
import com.yeejoin.amos.fas.dao.entity.RpnChangeLog;
import com.yeejoin.amos.fas.dao.entity.SUser;
import com.yeejoin.amos.fas.exception.YeeException; import com.yeejoin.amos.fas.exception.YeeException;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.component.cache.enumeration.CacheType;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service("riskSourceService") @Service("riskSourceService")
public class RiskSourceServiceImpl implements IRiskSourceService { public class RiskSourceServiceImpl implements IRiskSourceService {
...@@ -968,26 +1022,26 @@ public class RiskSourceServiceImpl implements IRiskSourceService { ...@@ -968,26 +1022,26 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
List<Map> list = riskSourceMapper.queryContingencyWater(); List<Map> list = riskSourceMapper.queryContingencyWater();
HashOperations hashOperations = redisTemplate.opsForHash(); HashOperations hashOperations = redisTemplate.opsForHash();
for (Map map : list) { for (Map map : list) {
double area = 0;
if (!ObjectUtils.isEmpty(map.get("area"))) {
area = Double.valueOf(map.get("area").toString());
}
String maxlevel = map.get("max_level") !=null?map.get("max_level").toString():"0.0";
String level = map.get("value") !=null&& StringUtil.isNumeric(map.get("value").toString())?String.format("%.2f", (Double.valueOf(map.get("value").toString()))):maxlevel;
String volume = String.format("%.2f", Double.valueOf(level) * area);
if (hashOperations.size("Analogue") > 0) { if (hashOperations.size("Analogue") > 0) {
if (ObjectUtils.isEmpty(map.get("CODE")) || !hashOperations.hasKey("Analogue", map.get("CODE"))) { if (ObjectUtils.isEmpty(map.get("CODE")) || !hashOperations.hasKey("Analogue", map.get("CODE"))) {
map.put("level", 0); map.put("level", level);
map.put("volume", 0); map.put("volume", volume);
continue; continue;
} }
EquipCommunicationData data = (EquipCommunicationData) hashOperations.get("Analogue", map.get("CODE")); EquipCommunicationData data = (EquipCommunicationData) hashOperations.get("Analogue", map.get("CODE"));
map.put("level", String.format("%.2f", StringUtils.isNumeric(data.getState())?Double.valueOf(data.getState()):0)); map.put("level", StringUtil.isNumeric(data.getState())?data.getState():level);
if (!ObjectUtils.isEmpty(map.get("level"))) { map.put("volume", String.format("%.2f", (Double.valueOf(map.get("level").toString())* area)));
double area = 0;
if (!ObjectUtils.isEmpty(map.get("area"))) {
area = Double.valueOf(map.get("area").toString());
}
map.put("volume", String.format("%.2f", Double.valueOf(map.get("level").toString()) * area));
} else {
map.put("volume", 0);
}
} else { } else {
map.put("level", 0); map.put("level", level);
map.put("volume", 0); map.put("volume", volume);
} }
} }
return list; return list;
......
...@@ -61,20 +61,21 @@ public class StringUtil { ...@@ -61,20 +61,21 @@ public class StringUtil {
* @return 是否数字的标志 * @return 是否数字的标志
*/ */
public static boolean isNumeric(String str) { public static boolean isNumeric(String str) {
// 该正则表达式可以匹配所有的数字 包括负数 // 该正则表达式可以匹配所有的数字 包括负数
String bigStr; Pattern pattern = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
try { String bigStr;
bigStr = new BigDecimal(str).toString(); try {
} catch (Exception e) { bigStr = new BigDecimal(str).toString();
return false;// 异常 说明包含非数字。 } catch (Exception e) {
} return false;//异常 说明包含非数字。
}
Matcher isNum = numericPattern.matcher(bigStr); // matcher是全匹配 Matcher isNum = pattern.matcher(bigStr); // matcher是全匹配
if (!isNum.matches()) { if (!isNum.matches()) {
return false; return false;
} }
return true; return true;
} }
public static int toInt(String s) { public static int toInt(String s) {
if (s != null && !"".equals(s.trim())) { if (s != null && !"".equals(s.trim())) {
......
...@@ -152,8 +152,8 @@ ...@@ -152,8 +152,8 @@
</if> </if>
</where> </where>
order by a.create_date desc order by a.create_date desc
<if test="pageSize!=null and pageSize!=-1 and pageNumber!=null"> <if test="pageSize!=null and pageSize!=-1 and offset!=null">
limit #{pageNumber},#{pageSize} limit #{offset},#{pageSize}
</if> </if>
</select> </select>
......
...@@ -612,7 +612,8 @@ ...@@ -612,7 +612,8 @@
wr.max_level, wr.max_level,
wr.area, wr.area,
ep.CODE, ep.CODE,
wr.`name` wr.`name`,
ep.value
FROM FROM
f_fire_equipment_point ep f_fire_equipment_point ep
INNER JOIN f_water_resource_equipment wre ON wre.fire_equipment_id = ep.fire_equipment_id AND ep.type = 'ANALOGUE' INNER JOIN f_water_resource_equipment wre ON wre.fire_equipment_id = ep.fire_equipment_id AND ep.type = 'ANALOGUE'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment