Merge remote-tracking branch 'origin/station' into station

# Conflicts:
#	jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java
This commit is contained in:
nieziyan 2023-06-20 15:15:14 +08:00
commit ab96c858fc
23 changed files with 321 additions and 59 deletions

View File

@ -0,0 +1,9 @@
package org.jeecg.common.constant;
/**
* 邮件服务常量
*/
public class EmailConstant {
public static final String EMAIL_STATUS_PREFIX = "email_status";
}

View File

@ -50,11 +50,9 @@ public class FTPUtil {
// 切换为本地被动模式可以解决FTP上传后文件为空的问题但需要服务器将FTP服务添加至防火墙白名单 // 切换为本地被动模式可以解决FTP上传后文件为空的问题但需要服务器将FTP服务添加至防火墙白名单
ftp.enterLocalPassiveMode(); ftp.enterLocalPassiveMode();
//连接 //连接
ftp.connect("182.92.183.230", 21); ftp.connect(host, port);
// ftp.connect(host, port);
//登录 //登录
ftp.login("xiao", "123456"); ftp.login(userName, password);
// ftp.login(userName, password);
//判断是否连接成功 //判断是否连接成功
int reply = ftp.getReplyCode(); int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) { if (!FTPReply.isPositiveCompletion(reply)) {

View File

@ -22,10 +22,10 @@ public class SysEmail implements Serializable {
private String id; private String id;
/** /**
* 邮箱名称 * email服务地址
*/ */
@TableField(value = "name") @TableField(value = "email_server_address")
private String name; private String emailServerAddress;
/** /**
* 邮箱类型1-收件地址2-发件地址 * 邮箱类型1-收件地址2-发件地址
@ -34,7 +34,7 @@ public class SysEmail implements Serializable {
private Integer emilType; private Integer emilType;
/** /**
* email地址 * 邮箱登录名称
*/ */
@TableField(value = "username") @TableField(value = "username")
private String username; private String username;
@ -49,7 +49,7 @@ public class SysEmail implements Serializable {
* 端口 * 端口
*/ */
@TableField(value = "port") @TableField(value = "port")
private String port; private Integer port;
/** /**
* 是否启用邮箱0-不启用1-启用 * 是否启用邮箱0-不启用1-启用
@ -58,10 +58,10 @@ public class SysEmail implements Serializable {
private Integer enabled; private Integer enabled;
/** /**
* 监测周期 * 定时获取邮件时间周期()
*/ */
@TableField(value = "monitoring_cycle") @TableField(value = "receive_mail_fixed_cycle")
private Integer monitoringCycle; private Integer receiveMailFixedCycle;
/** /**
* 创建日期 * 创建日期

View File

@ -12,6 +12,9 @@ import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
/**
* 邮件接收日志数据表
*/
@Data @Data
@TableName(value = "sys_email_log") @TableName(value = "sys_email_log")
public class SysEmailLog implements Serializable { public class SysEmailLog implements Serializable {
@ -19,23 +22,37 @@ public class SysEmailLog implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "id", type = IdType.ASSIGN_ID)
private String id; private String id;
/**
* 邮件id
*/
@TableField(value = "email_id") @TableField(value = "email_id")
private String emailId; private String emailId;
/**
* 邮件主题
*/
@TableField(value = "subject") @TableField(value = "subject")
private String subject; private String subject;
/**
* 邮件内容
*/
@TableField(value = "context") @TableField(value = "context")
private String context; private String context;
/**
* 接收时间
*/
@TableField(value = "receive_time") @TableField(value = "receive_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime receiveTime; private LocalDateTime receiveTime;
/**
* 创建时间
*/
@TableField(value = "create_time") @TableField(value = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
} }

View File

@ -23,13 +23,13 @@ public class AlarmContactGroupController {
@GetMapping("findInfo") @GetMapping("findInfo")
@ApiOperation(value = "查询报警联系人组信息详情", notes = "查询报警联系人组信息详情") @ApiOperation(value = "查询报警联系人组信息详情", notes = "查询报警联系人组信息详情")
public Result findPage(String id){ public Result findInfo(String id){
return alarmContactGroupService.findInfo(id); return alarmContactGroupService.findInfo(id);
} }
@PostMapping("create") @PostMapping("create")
@ApiOperation(value = "新增报警人联系人组", notes = "新增报警联系人组") @ApiOperation(value = "新增报警人联系人组", notes = "新增报警联系人组")
public Result findPage(@RequestBody AlarmContactGroup alarmContactGroup){ public Result create(@RequestBody AlarmContactGroup alarmContactGroup){
return alarmContactGroupService.create(alarmContactGroup); return alarmContactGroupService.create(alarmContactGroup);
} }

View File

@ -26,13 +26,13 @@ public class AlarmRuleController {
@GetMapping("findInfo") @GetMapping("findInfo")
@ApiOperation(value = "查看规则信息详情", notes = "查看规则信息详情") @ApiOperation(value = "查看规则信息详情", notes = "查看规则信息详情")
public Result findPage(String id){ public Result findInfo(String id){
return alarmRuleService.findInfo(id); return alarmRuleService.findInfo(id);
} }
@PostMapping("create") @PostMapping("create")
@ApiOperation(value = "新增规则信息", notes = "新增规则信息") @ApiOperation(value = "新增规则信息", notes = "新增规则信息")
public Result findPage(@RequestBody AlarmRule alarmRule){ public Result create(@RequestBody AlarmRule alarmRule){
return alarmRuleService.create(alarmRule); return alarmRuleService.create(alarmRule);
} }

View File

@ -8,7 +8,7 @@ public class CacheName {
public static final String scaleInterval = "Scale interval"; public static final String scaleInterval = "Scale interval";
public static final String timelineLength = "Timeline length "; public static final String timelineLength = "Timeline length";
public static final String updateIntervalTime = "Update interval time"; public static final String updateIntervalTime = "Update interval time";

View File

@ -0,0 +1,17 @@
package org.jeecg.common;
public class StationTypeUtil {
public static String getStationType(Integer stationId){
String stationType = "";
if (stationId<=200){
stationType = "IMS STATION(P)";
}else if(stationId>200 && stationId<=300){
stationType = "IMS STATION(G)";
}else if(stationId>300){
stationType = "NRL";
}
return stationType;
}
}

View File

@ -54,8 +54,8 @@ public class StationOperationController {
@GetMapping("getDataReceivingStatus") @GetMapping("getDataReceivingStatus")
@ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息") @ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息")
public void getDataReceivingStatus(List<String> stationIds){ public void getDataReceivingStatus(String userId){
stationOperationService.getDataReceivingStatus(stationIds); stationOperationService.getDataReceivingStatus(userId);
} }
} }

View File

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.config.valid.InsertGroup; import org.jeecg.config.valid.InsertGroup;
import org.jeecg.modules.entity.SysUserFocusStation; import org.jeecg.modules.entity.SysUserFocusStation;
import org.jeecg.modules.entity.UserFocusStation;
import org.jeecg.modules.service.ISysUserFocusStationService; import org.jeecg.modules.service.ISysUserFocusStationService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -27,10 +28,10 @@ public class SysUserFocusStationController {
return result; return result;
} }
@PostMapping("create") @PostMapping("saveUserFocusByUserId")
@ApiOperation(value = "新增关注", notes = "新增关注") @ApiOperation(value = "保存用户关注台站及缓存配置信息", notes = "保存用户关注台站及缓存配置信息")
public Result create(@RequestBody @Validated(value = InsertGroup.class) SysUserFocusStation sysUserFocusStation){ public Result create(@RequestBody UserFocusStation userFocusStation){
return sysUserFocusStationService.create(sysUserFocusStation); return sysUserFocusStationService.create(userFocusStation);
} }
@DeleteMapping("deleteById") @DeleteMapping("deleteById")
@ -39,4 +40,12 @@ public class SysUserFocusStationController {
return sysUserFocusStationService.deleteById(stationId); return sysUserFocusStationService.deleteById(stationId);
} }
@GetMapping("findUserFocusByUserId")
@ApiOperation(value = "根据用户id查询用户的缓存配置信息及关注台站信息", notes = "根据用户id查询用户的缓存配置信息及关注台站信息")
public Result findUserFocusByUserId(String userId){
return sysUserFocusStationService.findUserFocusByUserId(userId);
}
} }

View File

@ -0,0 +1,58 @@
package org.jeecg.modules.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
@TableName(value = "station_receiving_config")
public class StationReceivingConfig implements Serializable {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
/**
* 用户id
*/
@TableField(value = "user_id")
private String userId;
/**
* 缓存时间
*/
@TableField(value = "cache_time")
private Double cacheTime;
/**
* 间隔缩放
*/
@TableField(value = "scale_interval")
private Double scaleInterval;
/**
* 时间线长度
*/
@TableField(value = "timeline_length")
private Double timelineLength;
/**
* 更新间隔时间
*/
@TableField(value = "update_interval_time")
private Double updateIntervalTime;
/**
* 用户关注台站信息
*/
@TableField(exist = false)
List<SysUserFocusStation> sysUserFocusStations;
}

View File

@ -41,9 +41,9 @@ public class SysUserFocusStation implements Serializable {
/** /**
* 类型 * 类型
*/ */
@TableField(value = "type") @TableField(value = "station_type")
@NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private String type; private String stationType;
/** /**
* 创建时间 * 创建时间
@ -58,15 +58,21 @@ public class SysUserFocusStation implements Serializable {
private String createBy; private String createBy;
/** /**
* 修改时间 * 经度
*/ */
@TableField(exist = false) @TableField(exist = false)
private Double lon; private Double lon;
/** /**
* 修改人 * 纬度
*/ */
@TableField(exist = false) @TableField(exist = false)
private Double lat; private Double lat;
/**
* 海拔
*/
@TableField(exist = false)
private String altitude;
} }

View File

@ -0,0 +1,36 @@
package org.jeecg.modules.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class UserFocusStation implements Serializable {
/**
* 缓存时间
*/
private Double cacheTime;
/**
* 间隔缩放
*/
private Double scaleInterval;
/**
* 时间线长度
*/
private Double timelineLength;
/**
* 更新间隔时间
*/
private Double updateIntervalTime;
/**
* 台站id集合
*/
private List<Integer> stationIds;
}

View File

@ -0,0 +1,7 @@
package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.entity.StationReceivingConfig;
public interface StationReceivingConfigMapper extends BaseMapper<StationReceivingConfig> {
}

View File

@ -21,8 +21,8 @@
<if test=" startDate!=null and startDate!='' "> <if test=" startDate!=null and startDate!='' ">
and MODDATE >= TO_DATE(#{startDate}, 'YYYY-MM-DD hh24:mi:ss') and MODDATE >= TO_DATE(#{startDate}, 'YYYY-MM-DD hh24:mi:ss')
</if> </if>
ORDER BY ACQUISITION_STOP
</where> </where>
ORDER BY ACQUISITION_STOP
</select> </select>
</mapper> </mapper>

View File

@ -20,7 +20,6 @@
<if test=" startDate!=null and startDate!='' "> <if test=" startDate!=null and startDate!='' ">
and MODDATE >= TO_DATE(#{startDate}, 'YYYY-MM-DD hh24:mi:ss') and MODDATE >= TO_DATE(#{startDate}, 'YYYY-MM-DD hh24:mi:ss')
</if> </if>
ORDER BY ACQUISITION_STOP
</where> </where>
</select> </select>

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.service;
import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsDetectors;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List; import java.util.List;
@ -16,6 +17,6 @@ public interface ICacheTimeService {
List<Map<String, String>> findCacheTime(); List<Map<String, String>> findCacheTime();
@RequestMapping("/gardsDetectors/findStationDetectors") @RequestMapping("/gardsDetectors/findStationDetectors")
Map<String, List<GardsDetectors>> findStationDetectors(List<String> stationIds); Map<String, List<GardsDetectors>> findStationDetectors(@RequestBody List<String> stationIds);
} }

View File

@ -41,9 +41,9 @@ public interface IStationOperationService extends IService<StationOperation> {
/** /**
* 查询台站监测数据 * 查询台站监测数据
* @param stationIds * @param userId
* @return * @return
*/ */
Result getDataReceivingStatus(List<String> stationIds); Result getDataReceivingStatus(String userId);
} }

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.SysUserFocusStation; import org.jeecg.modules.entity.SysUserFocusStation;
import org.jeecg.modules.entity.UserFocusStation;
import java.util.List; import java.util.List;
@ -16,9 +17,9 @@ public interface ISysUserFocusStationService extends IService<SysUserFocusStatio
/** /**
* 新增关注的台站核设施信息 * 新增关注的台站核设施信息
* @param sysUserFocusStation * @param userFocusStation
*/ */
Result create(SysUserFocusStation sysUserFocusStation); Result create(UserFocusStation userFocusStation);
/** /**
* 取消关注 * 取消关注
@ -26,4 +27,11 @@ public interface ISysUserFocusStationService extends IService<SysUserFocusStatio
*/ */
Result deleteById(String stationId); Result deleteById(String stationId);
/**
* 根据用户id查询对应的缓存配置信息
* @param userId
* @return
*/
Result findUserFocusByUserId(String userId);
} }

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.service.impl; package org.jeecg.modules.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -8,20 +9,18 @@ import com.spatial4j.core.distance.DistanceUtils;
import com.spatial4j.core.shape.Rectangle; import com.spatial4j.core.shape.Rectangle;
import org.jeecg.common.CacheName; import org.jeecg.common.CacheName;
import org.jeecg.common.PointUtil; import org.jeecg.common.PointUtil;
import org.jeecg.common.StationTypeUtil;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.base.entity.GardsMetData; import org.jeecg.modules.base.entity.GardsMetData;
import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.base.entity.GardsSampleData;
import org.jeecg.modules.base.entity.GardsSohData; import org.jeecg.modules.base.entity.GardsSohData;
import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.*;
import org.jeecg.modules.mapper.StationMetDataMapper; import org.jeecg.modules.mapper.*;
import org.jeecg.modules.mapper.StationSampleDataMapper;
import org.jeecg.modules.mapper.StationSohDataMapper;
import org.jeecg.modules.service.ICacheTimeService; import org.jeecg.modules.service.ICacheTimeService;
import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsDetectors;
import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsNuclearfacility;
import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.system.entity.GardsStations;
import org.jeecg.modules.mapper.StationOperationMapper;
import org.jeecg.modules.service.IStationOperationService; import org.jeecg.modules.service.IStationOperationService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -46,6 +45,8 @@ public class StationOperationServiceImpl extends ServiceImpl<StationOperationMap
private StationSohDataMapper stationSohDataMapper; private StationSohDataMapper stationSohDataMapper;
@Autowired @Autowired
private StationMetDataMapper stationMetDataMapper; private StationMetDataMapper stationMetDataMapper;
@Autowired
private SysUserFocusStationMapper sysUserFocusStationMapper;
private final SpatialContext spatialContext = SpatialContext.GEO; private final SpatialContext spatialContext = SpatialContext.GEO;
@ -64,13 +65,8 @@ public class StationOperationServiceImpl extends ServiceImpl<StationOperationMap
StationOperation stationOperation = new StationOperation(); StationOperation stationOperation = new StationOperation();
stationOperation.setStationId(gardsStation.getStationId()); stationOperation.setStationId(gardsStation.getStationId());
stationOperation.setStationName(gardsStation.getStationCode()); stationOperation.setStationName(gardsStation.getStationCode());
if (gardsStation.getStationId()<=200){ String stationType = StationTypeUtil.getStationType(gardsStation.getStationId());
stationOperation.setStationType("IMS STATION(P)"); stationOperation.setStationType(stationType);
}else if(gardsStation.getStationId()>200 && gardsStation.getStationId()<=300){
stationOperation.setStationType("IMS STATION(G)");
}else if(gardsStation.getStationId()>300){
stationOperation.setStationType("NRL");
}
stationOperation.setAltitude(Objects.isNull(gardsStation.getElevation())?"":gardsStation.getElevation()+"m"); stationOperation.setAltitude(Objects.isNull(gardsStation.getElevation())?"":gardsStation.getElevation()+"m");
stationOperation.setLon(String.valueOf(gardsStation.getLon())); stationOperation.setLon(String.valueOf(gardsStation.getLon()));
stationOperation.setLat(String.valueOf(gardsStation.getLat())); stationOperation.setLat(String.valueOf(gardsStation.getLat()));
@ -103,7 +99,7 @@ public class StationOperationServiceImpl extends ServiceImpl<StationOperationMap
@Override @Override
public Result findInfo(String stationId, String type) { public Result findInfo(String stationId, String type) {
Result result = new Result(); Result result = new Result();
if (type.equals("IMS STATION(P)") || type.equals("IMS STATION(G)")){ if (type.equals("IMS STATION(P)") || type.equals("IMS STATION(G)") || type.equals("NRL")){
HashMap<String, GardsStations> stationInfoMap = (HashMap<String, GardsStations>) redisUtil.get("stationInfoMap"); HashMap<String, GardsStations> stationInfoMap = (HashMap<String, GardsStations>) redisUtil.get("stationInfoMap");
GardsStations stations = stationInfoMap.get(stationId); GardsStations stations = stationInfoMap.get(stationId);
if (Objects.nonNull(stations)){ if (Objects.nonNull(stations)){
@ -114,10 +110,13 @@ public class StationOperationServiceImpl extends ServiceImpl<StationOperationMap
} }
}else if(type.equals("Nuclear Facility")){ }else if(type.equals("Nuclear Facility")){
HashMap<String, GardsNuclearfacility> nuclearFacilityMap = (HashMap<String, GardsNuclearfacility>) redisUtil.get("nuclearFacilityMap"); HashMap<String, GardsNuclearfacility> nuclearFacilityMap = (HashMap<String, GardsNuclearfacility>) redisUtil.get("nuclearFacilityMap");
//从缓存的核设施map中获取对应的核设施信息
GardsNuclearfacility nuclearfacility = nuclearFacilityMap.get(stationId); GardsNuclearfacility nuclearfacility = nuclearFacilityMap.get(stationId);
if (Objects.nonNull(nuclearfacility)){ if (Objects.nonNull(nuclearfacility)){
nuclearfacility.setLongitude(PointUtil.calculate(nuclearfacility.getLatitude())); String longitude = nuclearfacility.getLongitude();
nuclearfacility.setLatitude(PointUtil.calculate(nuclearfacility.getLongitude())); String latitude = nuclearfacility.getLatitude();
nuclearfacility.setLongitude(PointUtil.calculate(latitude));
nuclearfacility.setLatitude(PointUtil.calculate(longitude));
result.setResult(nuclearfacility); result.setResult(nuclearfacility);
result.setSuccess(true); result.setSuccess(true);
}else { }else {
@ -316,7 +315,7 @@ public class StationOperationServiceImpl extends ServiceImpl<StationOperationMap
} }
@Override @Override
public Result getDataReceivingStatus(List<String> stationIds) { public Result getDataReceivingStatus(String userId) {
Result result = new Result(); Result result = new Result();
//获取四项缓存数据的对应内容 //获取四项缓存数据的对应内容
List<Map<String, String>> cacheList = cacheTimeService.findCacheTime(); List<Map<String, String>> cacheList = cacheTimeService.findCacheTime();
@ -332,6 +331,11 @@ public class StationOperationServiceImpl extends ServiceImpl<StationOperationMap
result.error500("缓存时间不能为空"); result.error500("缓存时间不能为空");
return result; return result;
} }
//根据用户id查询出当前用户关注的台站信息
LambdaQueryWrapper<SysUserFocusStation> userFocusStationQueryWrapper = new LambdaQueryWrapper<>();
userFocusStationQueryWrapper.eq(SysUserFocusStation::getUserId, userId);
List<SysUserFocusStation> userFocusStations = sysUserFocusStationMapper.selectList(userFocusStationQueryWrapper);
List<String> stationIds = userFocusStations.stream().map(SysUserFocusStation::getStationId).collect(Collectors.toList());
//从redis中获取台站信息 //从redis中获取台站信息
Map<Integer, String> stationInfoMap = (Map<Integer, String>)redisUtil.get("stationMap"); Map<Integer, String> stationInfoMap = (Map<Integer, String>)redisUtil.get("stationMap");
//从redis中获取探测器信息 //从redis中获取探测器信息

View File

@ -3,15 +3,22 @@ package org.jeecg.modules.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.CacheName;
import org.jeecg.common.StationTypeUtil;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.SpringContextUtils; import org.jeecg.common.util.SpringContextUtils;
import org.jeecg.modules.entity.StationReceivingConfig;
import org.jeecg.modules.entity.SysUser; import org.jeecg.modules.entity.SysUser;
import org.jeecg.modules.entity.SysUserFocusStation; import org.jeecg.modules.entity.SysUserFocusStation;
import org.jeecg.modules.entity.UserFocusStation;
import org.jeecg.modules.mapper.StationReceivingConfigMapper;
import org.jeecg.modules.mapper.SysUserFocusStationMapper; import org.jeecg.modules.mapper.SysUserFocusStationMapper;
import org.jeecg.modules.mapper.SysUserMapper; import org.jeecg.modules.mapper.SysUserMapper;
import org.jeecg.modules.service.ICacheTimeService;
import org.jeecg.modules.service.ISysUserFocusStationService; import org.jeecg.modules.service.ISysUserFocusStationService;
import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.system.entity.GardsStations;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -20,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Service("sysUserFocusStationService") @Service("sysUserFocusStationService")
public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStationMapper, SysUserFocusStation> implements ISysUserFocusStationService { public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStationMapper, SysUserFocusStation> implements ISysUserFocusStationService {
@ -28,6 +36,10 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStat
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@Autowired
private ICacheTimeService cacheTimeService;
@Autowired
private StationReceivingConfigMapper stationReceivingConfigMapper;
@Override @Override
public List<SysUserFocusStation> findList() { public List<SysUserFocusStation> findList() {
@ -39,8 +51,11 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStat
if (CollectionUtils.isNotEmpty(stationInfoMap)){ if (CollectionUtils.isNotEmpty(stationInfoMap)){
if (Objects.nonNull(stationInfoMap.get(item.getStationId()))){ if (Objects.nonNull(stationInfoMap.get(item.getStationId()))){
GardsStations stations = (GardsStations) stationInfoMap.get(item.getStationId()); GardsStations stations = (GardsStations) stationInfoMap.get(item.getStationId());
String stationType = StationTypeUtil.getStationType(stations.getStationId());
item.setStationType(stationType);
item.setLon(stations.getLon()); item.setLon(stations.getLon());
item.setLat(stations.getLat()); item.setLat(stations.getLat());
item.setAltitude(Objects.isNull(stations.getElevation())?"":stations.getElevation()+"m");
} }
} }
}); });
@ -51,7 +66,7 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStat
@Override @Override
@Transactional @Transactional
public Result create(SysUserFocusStation sysUserFocusStation) { public Result create(UserFocusStation userFocusStation) {
Result result = new Result(); Result result = new Result();
//获取request //获取request
HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
@ -65,12 +80,49 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStat
result.error500("当前用户不存在!"); result.error500("当前用户不存在!");
return result; return result;
} }
Long id = IdWorker.getId(); //判断传递参数信息是否为空
sysUserFocusStation.setId(String.valueOf(id)); if (Objects.nonNull(userFocusStation)){
sysUserFocusStation.setUserId(sysUser.getId()); //通过用户id判断是否存在用户的缓存配置信息
sysUserFocusStation.setCreateTime(new Date()); LambdaQueryWrapper<StationReceivingConfig> receivingConfigQueryWrapper = new LambdaQueryWrapper<>();
sysUserFocusStation.setCreateBy(username); receivingConfigQueryWrapper.eq(StationReceivingConfig::getUserId, sysUser.getId());
this.baseMapper.insert(sysUserFocusStation); StationReceivingConfig receivingConfig = stationReceivingConfigMapper.selectOne(receivingConfigQueryWrapper);
//如果没有对应的用户缓存信息 则进行新增
if (Objects.isNull(receivingConfig)){
receivingConfig = new StationReceivingConfig();
Long id = IdWorker.getId();
receivingConfig.setId(id.toString());
receivingConfig.setUserId(sysUser.getId());
receivingConfig.setCacheTime(userFocusStation.getCacheTime());
receivingConfig.setScaleInterval(userFocusStation.getScaleInterval());
receivingConfig.setTimelineLength(userFocusStation.getTimelineLength());
receivingConfig.setUpdateIntervalTime(userFocusStation.getUpdateIntervalTime());
stationReceivingConfigMapper.insert(receivingConfig);
}else {
receivingConfig.setCacheTime(userFocusStation.getCacheTime());
receivingConfig.setScaleInterval(userFocusStation.getScaleInterval());
receivingConfig.setTimelineLength(userFocusStation.getTimelineLength());
receivingConfig.setUpdateIntervalTime(userFocusStation.getUpdateIntervalTime());
stationReceivingConfigMapper.updateById(receivingConfig);
}
}
if (CollectionUtils.isNotEmpty(userFocusStation.getStationIds())){
//根据用户id查询出对应的用户关注台站信息 删除用户的所有关注台站信息并重新保存
LambdaQueryWrapper<SysUserFocusStation> userFocusStationQueryWrapper = new LambdaQueryWrapper<>();
userFocusStationQueryWrapper.eq(SysUserFocusStation::getUserId, sysUser.getId());
this.baseMapper.delete(userFocusStationQueryWrapper);
for (Integer stationId:userFocusStation.getStationIds()) {
SysUserFocusStation sysUserFocusStation = new SysUserFocusStation();
Long id = IdWorker.getId();
sysUserFocusStation.setId(String.valueOf(id));
sysUserFocusStation.setUserId(sysUser.getId());
sysUserFocusStation.setStationId(String.valueOf(stationId));
String stationType = StationTypeUtil.getStationType(stationId);
sysUserFocusStation.setStationType(stationType);
sysUserFocusStation.setCreateTime(new Date());
sysUserFocusStation.setCreateBy(username);
this.baseMapper.insert(sysUserFocusStation);
}
}
result.success("新增成功"); result.success("新增成功");
return result; return result;
} }
@ -99,4 +151,44 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl<SysUserFocusStat
return result; return result;
} }
@Override
public Result findUserFocusByUserId(String userId) {
Result result = new Result();
//根据用户id查询存储的缓存配置信息
LambdaQueryWrapper<StationReceivingConfig> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(StationReceivingConfig::getUserId, userId);
StationReceivingConfig receivingConfig = stationReceivingConfigMapper.selectOne(queryWrapper);
//如果用户对应的缓存配置信息为空时查询字典表中的默认值
if (Objects.isNull(receivingConfig)){
receivingConfig = new StationReceivingConfig();
//调用接口获取数据库中对应缓存配置信息默认值
List<Map<String, String>> cacheList = cacheTimeService.findCacheTime();
for (int i=0; i< cacheList.size(); i++){
if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ){
String cacheTime = cacheList.get(i).get(CacheName.cacheTime);
receivingConfig.setCacheTime(Double.valueOf(cacheTime));
}else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.scaleInterval)) ){
String scaleInterval = cacheList.get(i).get(CacheName.scaleInterval);
receivingConfig.setScaleInterval(Double.valueOf(scaleInterval));
}else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.timelineLength)) ){
String timelineLength = cacheList.get(i).get(CacheName.timelineLength);
receivingConfig.setTimelineLength(Double.valueOf(timelineLength));
}else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.updateIntervalTime)) ){
String updateIntervalTime = cacheList.get(i).get(CacheName.updateIntervalTime);
receivingConfig.setUpdateIntervalTime(Double.valueOf(updateIntervalTime));
}
}
}
//根据用户id查询出用户的关注台站信息
LambdaQueryWrapper<SysUserFocusStation> focusStationQueryWrapper = new LambdaQueryWrapper<>();
focusStationQueryWrapper.eq(SysUserFocusStation::getUserId, userId);
List<SysUserFocusStation> sysUserFocusStations = this.baseMapper.selectList(focusStationQueryWrapper);
if (Objects.nonNull(sysUserFocusStations)){
receivingConfig.setSysUserFocusStations(sysUserFocusStations);
}
result.setSuccess(true);
result.setResult(receivingConfig);
return result;
}
} }

View File

@ -71,7 +71,7 @@ public class GardsDetectorsController {
} }
@RequestMapping("findStationDetectors") @RequestMapping("findStationDetectors")
public Map<String, List<GardsDetectors>> findStationDetectors(List<String> stationIds){ public Map<String, List<GardsDetectors>> findStationDetectors(@RequestBody List<String> stationIds){
return gardsDetectorsService.findStationDetectors(stationIds); return gardsDetectorsService.findStationDetectors(stationIds);
} }

View File

@ -154,9 +154,10 @@ public class GardsDetectorsServiceImpl extends ServiceImpl<GardsDetectorsMapper,
Map<String, List<GardsDetectors>> map = new HashMap<>(); Map<String, List<GardsDetectors>> map = new HashMap<>();
if (CollectionUtils.isNotEmpty(stationIds)){ if (CollectionUtils.isNotEmpty(stationIds)){
LambdaQueryWrapper<GardsDetectors> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<GardsDetectors> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(GardsDetectors::getStationId, stationIds);
List<GardsDetectors> detectorsList = this.baseMapper.selectList(queryWrapper); List<GardsDetectors> detectorsList = this.baseMapper.selectList(queryWrapper);
for (String stationId:stationIds) { for (String stationId:stationIds) {
List<GardsDetectors> detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); List<GardsDetectors> detectors = detectorsList.stream().filter(item -> item.getStationId().equals(Integer.valueOf(stationId)) && item.getStatus().trim().equals("Operating")).collect(Collectors.toList());
map.put(stationId, detectors); map.put(stationId, detectors);
} }
} }