From c8519c9cf3575cd9b32e5afb8ec3e6b16b2953c1 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 25 May 2023 14:09:29 +0800 Subject: [PATCH 01/64] 1 --- jeecg-module-log-manage/a.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 jeecg-module-log-manage/a.xml diff --git a/jeecg-module-log-manage/a.xml b/jeecg-module-log-manage/a.xml new file mode 100644 index 00000000..e69de29b From d93d24e00358614a6df06cf78fe3446d79896d32 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 25 May 2023 14:10:32 +0800 Subject: [PATCH 02/64] 1 --- jeecg-module-log-manage/a.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 jeecg-module-log-manage/a.xml diff --git a/jeecg-module-log-manage/a.xml b/jeecg-module-log-manage/a.xml deleted file mode 100644 index e69de29b..00000000 From f45fee5d62b2a8a017e2dd4777a513e5f1251968 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 14:54:12 +0800 Subject: [PATCH 03/64] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E6=9F=A5=E8=AF=A2=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E5=8F=8A=E6=A0=B8=E8=AE=BE=E6=96=BD=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=9F=A5=E8=AF=A2=E5=85=B3=E6=B3=A8=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=20=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E8=BF=90=E8=A1=8C=E6=96=B0=E5=A2=9E=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E4=BF=A1=E6=81=AF=20=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E7=A7=BB=E9=99=A4=E5=85=B3=E6=B3=A8=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/config/valid/InsertGroup.java | 0 .../org/jeecg/config/valid/UpdateGroup.java | 0 jeecg-module-station-operation/pom.xml | 21 +++++ .../StationOperationController.java | 30 +++++++ .../SysUserFocusStationController.java | 35 ++++++++ .../modules/entity/GardsNuclearfacility.java | 81 ++++++++++++++++++ .../jeecg/modules/entity/GardsStations.java | 57 +++++++++++++ .../modules/entity/StationOperation.java | 26 ++++++ .../org/jeecg/modules/entity/SysUser.java | 33 ++++++++ .../modules/entity/SysUserFocusStation.java | 42 ++++++++++ .../mapper/GardsNuclearfacilityMapper.java | 7 ++ .../modules/mapper/GardsStationsMapper.java | 7 ++ .../mapper/StationOperationMapper.java | 7 ++ .../mapper/SysUserFocusStationMapper.java | 7 ++ .../jeecg/modules/mapper/SysUserMapper.java | 7 ++ .../service/IStationOperationService.java | 13 +++ .../service/ISysUserFocusStationService.java | 28 +++++++ .../impl/StationOperationServiceImpl.java | 83 +++++++++++++++++++ .../impl/SysUserFocusStationServiceImpl.java | 81 ++++++++++++++++++ .../modules/system/entity/GardsDetectors.java | 1 - .../jeecg-station-operation-start/pom.xml | 42 ++++++++++ .../JeecgStationOperationApplication.java | 47 +++++++++++ .../src/main/resources/application.yml | 18 ++++ .../resources/jeecg/jeecg_config.properties | 29 +++++++ .../resources/jeecg/jeecg_database.properties | 27 ++++++ .../src/main/resources/logback-spring.xml | 77 +++++++++++++++++ jeecg-server-cloud/pom.xml | 1 + pom.xml | 9 +- 28 files changed, 814 insertions(+), 2 deletions(-) rename {jeecg-module-system/jeecg-system-biz => jeecg-boot-base-core}/src/main/java/org/jeecg/config/valid/InsertGroup.java (100%) rename {jeecg-module-system/jeecg-system-biz => jeecg-boot-base-core}/src/main/java/org/jeecg/config/valid/UpdateGroup.java (100%) create mode 100644 jeecg-module-station-operation/pom.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUser.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserFocusStationMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java create mode 100644 jeecg-server-cloud/jeecg-station-operation-start/pom.xml create mode 100644 jeecg-server-cloud/jeecg-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java create mode 100644 jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml create mode 100644 jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_config.properties create mode 100644 jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_database.properties create mode 100644 jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/logback-spring.xml diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/valid/InsertGroup.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/valid/InsertGroup.java similarity index 100% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/valid/InsertGroup.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/config/valid/InsertGroup.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/valid/UpdateGroup.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/valid/UpdateGroup.java similarity index 100% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/valid/UpdateGroup.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/config/valid/UpdateGroup.java diff --git a/jeecg-module-station-operation/pom.xml b/jeecg-module-station-operation/pom.xml new file mode 100644 index 00000000..c0637971 --- /dev/null +++ b/jeecg-module-station-operation/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-boot-parent + 3.5.1 + + + jeecg-module-station-operation + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java new file mode 100644 index 00000000..9908f657 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.modules.entity.StationOperation; +import org.jeecg.modules.service.IStationOperationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("stationOperation") +@Api(value = "台站运行管理", tags = "台站运行管理") +public class StationOperationController { + + @Autowired + private IStationOperationService stationOperationService; + + @GetMapping("findList") + @ApiOperation(value = "查询所有台站,核设施信息", notes = "查询所有台站,核设施信息") + public List findList(String status){ + List result = stationOperationService.findList(status); + return result; + } + + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java new file mode 100644 index 00000000..c2c1af45 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.controller; + +import org.jeecg.config.valid.InsertGroup; +import org.jeecg.modules.entity.SysUserFocusStation; +import org.jeecg.modules.service.ISysUserFocusStationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("sysUserFocusStation") +public class SysUserFocusStationController { + + @Autowired + private ISysUserFocusStationService sysUserFocusStationService; + + @GetMapping("findList") + public List findList(){ + List result = sysUserFocusStationService.findList(); + return result; + } + + @PostMapping("create") + public void create(@RequestBody @Validated(value = InsertGroup.class) SysUserFocusStation sysUserFocusStation){ + sysUserFocusStationService.create(sysUserFocusStation); + } + + @DeleteMapping("deleteById") + public void deleteById(String stationId){ + sysUserFocusStationService.deleteById(stationId); + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java new file mode 100644 index 00000000..69fe25bc --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java @@ -0,0 +1,81 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("GARDS_NUCLEARFACILITY") +public class GardsNuclearfacility implements Serializable { + + @TableField(value = "FACILITY_ID") + private Integer facilityId; + + @TableField(value = "FACILITY_NAME") + private String facilityName; + + @TableField(value = "TYPE") + private String type; + + @TableField(value = "LOCATION") + private String location; + + @TableField(value = "LONGITUDE") + private String longitude; + + @TableField(value = "LATITUDE") + private String latitude; + + @TableField(value = "STATUS") + private String status; + + @TableField(value = "BUILDDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date buildDate; + + @TableField(value = "CRITICALITYDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date criticalityDate; + + @TableField(value = "RETIREDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date retireDate; + + @TableField(value = "GRIDCONEETIONDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date gridconeetionDate; + + @TableField(value = "VENDOR") + private String vendor; + + @TableField(value = "OWNER") + private String owner; + + @TableField(value = "OPERARTOR") + private String operartor; + + @TableField(value = "CAPACITYGROSS") + private Integer capacitygross; + + @TableField(value = "CAPACITYNET") + private Integer capacitynet; + + @TableField(value = "CAPACITYTHERMAL") + private Integer capacitythermal; + + @TableField(value = "ACTIVITY_DAY") + private Integer activityDay; + + @TableField(value = "ACTIVITY_YEAR") + private Integer activityYear; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java new file mode 100644 index 00000000..f9ee9213 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java @@ -0,0 +1,57 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "GARDS_STATIONS") +public class GardsStations implements Serializable { + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(value = "STATION_CODE") + private String stationCode; + + @TableField(value = "COUNTRY_CODE") + private String countryCode; + + @TableField(value = "TYPE") + private String type; + + @TableField(value = "LON") + private Double lon; + + @TableField(value = "LAT") + private Double lat; + + @TableField(value = "ELEVATION") + private Double elevation; + + @TableField(value = "DESCRIPTION") + private String description; + + @TableField(value = "DATE_BEGIN") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dateBegin; + + @TableField(value = "DATE_END") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dateEnd; + + @TableField(value = "STATUS") + private String status; + + @TableField(value = "MODDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java new file mode 100644 index 00000000..9e1a0764 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class StationOperation implements Serializable { + + private Integer stationId; + + private String stationName; + + private String stationType; + + private String altitude; + + private String lon; + + private String lat; + + private String status; + + private String signal; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUser.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUser.java new file mode 100644 index 00000000..ca223594 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUser.java @@ -0,0 +1,33 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +@Data +@TableName("sys_user") +public class SysUser implements Serializable { + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** + * 登录账号 + */ + @Excel(name = "登录账号", width = 15) + private String username; + + /** + * 真实姓名 + */ + @Excel(name = "真实姓名", width = 15) + private String realname; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java new file mode 100644 index 00000000..76a1fe07 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -0,0 +1,42 @@ +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 org.jeecg.config.valid.InsertGroup; +import org.jeecg.config.valid.UpdateGroup; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("sys_user_focus_station") +public class SysUserFocusStation implements Serializable { + + @TableId(value = "id", type = IdType.ASSIGN_ID) + @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + private Integer id; + + @TableField(value = "user_id") + @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + private String userId; + + @TableField(value = "station_id") + @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + private String stationId; + + @TableField(value = "type") + @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + private String type; + + @TableField(value = "create_time") + private Date createTime; + + @TableField(value = "create_by") + private String createBy; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java new file mode 100644 index 00000000..1760bd15 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsNuclearfacility; + +public interface GardsNuclearfacilityMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java new file mode 100644 index 00000000..c62547f0 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsStations; + +public interface GardsStationsMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java new file mode 100644 index 00000000..6dc31b25 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.StationOperation; + +public interface StationOperationMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserFocusStationMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserFocusStationMapper.java new file mode 100644 index 00000000..5996afbf --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserFocusStationMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.SysUserFocusStation; + +public interface SysUserFocusStationMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java new file mode 100644 index 00000000..9c11087e --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.SysUser; + +public interface SysUserMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java new file mode 100644 index 00000000..9f06b2c1 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.entity.StationOperation; + +import java.util.List; + +public interface IStationOperationService extends IService { + + List findList(String status); + + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java new file mode 100644 index 00000000..2dc91cc2 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.entity.SysUserFocusStation; + +import java.util.List; + +public interface ISysUserFocusStationService extends IService { + + /** + * 查询当前用户的全部关注台站,核设施信息 + * @return + */ + List findList(); + + /** + * 新增关注的台站,核设施信息 + * @param sysUserFocusStation + */ + void create(SysUserFocusStation sysUserFocusStation); + + /** + * 取消关注 + * @param stationId + */ + void deleteById(String stationId); + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java new file mode 100644 index 00000000..3559dd2c --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -0,0 +1,83 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.modules.entity.GardsNuclearfacility; +import org.jeecg.modules.entity.GardsStations; +import org.jeecg.modules.entity.StationOperation; +import org.jeecg.modules.mapper.GardsNuclearfacilityMapper; +import org.jeecg.modules.mapper.GardsStationsMapper; +import org.jeecg.modules.mapper.StationOperationMapper; +import org.jeecg.modules.service.IStationOperationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +@Service("stationOperationService") +@DS("ora") +public class StationOperationServiceImpl extends ServiceImpl implements IStationOperationService { + @Autowired + private GardsStationsMapper gardsStationsMapper; + @Autowired + private GardsNuclearfacilityMapper gardsNuclearfacilityMapper; + + @Override + public List findList(String status) { + //声明结果集合 + List result = new LinkedList<>(); + //查询全部台站信息 + List stations = this.findStations(); + for (GardsStations gardsStation:stations) { + StationOperation stationOperation = new StationOperation(); + stationOperation.setStationId(gardsStation.getStationId()); + stationOperation.setStationName(gardsStation.getStationCode()); + stationOperation.setStationType("IMS STATION"); + stationOperation.setAltitude(Objects.isNull(gardsStation.getElevation())?"":gardsStation.getElevation()+"米"); + stationOperation.setLon(String.valueOf(gardsStation.getLon())); + stationOperation.setLat(String.valueOf(gardsStation.getLat())); + stationOperation.setStatus(gardsStation.getStatus()); + result.add(stationOperation); + } + //查询全部核设施信息 + List nuclearfacilities = this.findNuclearfacilities(); + for (GardsNuclearfacility nuclearfacility:nuclearfacilities) { + StationOperation stationOperation = new StationOperation(); + stationOperation.setStationId(nuclearfacility.getFacilityId()); + stationOperation.setStationName(nuclearfacility.getFacilityName()); + stationOperation.setStationType("Nuclear Facility"); + stationOperation.setAltitude("--"); + stationOperation.setLon(nuclearfacility.getLongitude()); + stationOperation.setLat(nuclearfacility.getLatitude()); + stationOperation.setStatus(nuclearfacility.getStatus()); + result.add(stationOperation); + } + //如果状态不为空 + if (StringUtils.isNotBlank(status)){ + result = result.stream().filter(item-> item.getStatus().equals(status)).collect(Collectors.toList()); + } + return result; + } + + /** + * 查询全部台站信息 + * @return + */ + private List findStations(){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List gardsStations = gardsStationsMapper.selectList(queryWrapper); + return gardsStations; + } + + private List findNuclearfacilities(){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List gardsNuclearfacilities = gardsNuclearfacilityMapper.selectList(queryWrapper); + return gardsNuclearfacilities; + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java new file mode 100644 index 00000000..5d328442 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -0,0 +1,81 @@ +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.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.entity.SysUser; +import org.jeecg.modules.entity.SysUserFocusStation; +import org.jeecg.modules.mapper.SysUserFocusStationMapper; +import org.jeecg.modules.mapper.SysUserMapper; +import org.jeecg.modules.service.ISysUserFocusStationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletRequest; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +@Service("sysUserFocusStationService") +public class SysUserFocusStationServiceImpl extends ServiceImpl implements ISysUserFocusStationService { + + @Autowired + private SysUserMapper sysUserMapper; + + @Override + public List findList() { + List sysUserFocusStations = this.baseMapper.selectList(new LambdaQueryWrapper<>()); + if (CollectionUtils.isNotEmpty(sysUserFocusStations)){ + return sysUserFocusStations; + } + return Collections.emptyList(); + } + + @Override + @Transactional + public void create(SysUserFocusStation sysUserFocusStation) { + //获取request + HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); + //获取当前操作人用户名 + String username = JwtUtil.getUserNameByToken(request); + //根据用户名称查询对应的用户信息 + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + userQueryWrapper.eq(SysUser::getUsername, username); + SysUser sysUser = sysUserMapper.selectOne(userQueryWrapper); + if (Objects.isNull(sysUser)){ + throw new RuntimeException("当前用户不存在!"); + } + Long id = IdWorker.getId(); + sysUserFocusStation.setId(Integer.valueOf(id.toString())); + sysUserFocusStation.setUserId(sysUser.getId()); + sysUserFocusStation.setCreateTime(new Date()); + sysUserFocusStation.setCreateBy(username); + this.baseMapper.insert(sysUserFocusStation); + } + + @Override + @Transactional + public void deleteById(String stationId) { + //获取request + HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); + //获取当前操作人用户名 + String username = JwtUtil.getUserNameByToken(request); + //根据用户名称查询对应的用户信息 + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + userQueryWrapper.eq(SysUser::getUsername, username); + SysUser sysUser = sysUserMapper.selectOne(userQueryWrapper); + if (Objects.isNull(sysUser)){ + throw new RuntimeException("当前用户不存在!"); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUserFocusStation::getUserId, sysUser.getId()); + queryWrapper.eq(SysUserFocusStation::getStationId, stationId); + this.baseMapper.delete(queryWrapper); + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java index a1432f54..21a9d819 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java @@ -10,7 +10,6 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; diff --git a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml new file mode 100644 index 00000000..eabb4b15 --- /dev/null +++ b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-server-cloud + 3.5.1 + + + jeecg-station-operation-start + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + org.jeecgframework.boot + jeecg-module-station-operation + 3.5.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java b/jeecg-server-cloud/jeecg-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java new file mode 100644 index 00000000..a158b8da --- /dev/null +++ b/jeecg-server-cloud/jeecg-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java @@ -0,0 +1,47 @@ +package org.jeecg; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +@Slf4j +@SpringBootApplication +@EnableFeignClients(basePackages = {"org.jeecg"}) +@EnableScheduling +public class JeecgStationOperationApplication extends SpringBootServletInitializer implements CommandLineRunner { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(JeecgStationOperationApplication.class); + } + + public static void main(String[] args) throws UnknownHostException { + ConfigurableApplicationContext application = SpringApplication.run(JeecgStationOperationApplication.class, args); + Environment env = application.getEnvironment(); + String ip = InetAddress.getLocalHost().getHostAddress(); + String port = env.getProperty("server.port"); + String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path")); + log.info("\n----------------------------------------------------------\n\t" + + "Application Jeecg-Boot is running! Access URLs:\n\t" + + "Local: \t\thttp://localhost:" + port + path + "/doc.html\n" + + "External: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "----------------------------------------------------------"); + } + + @Override + public void run(String... args) throws Exception { + + } +} \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml new file mode 100644 index 00000000..8a462b69 --- /dev/null +++ b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml @@ -0,0 +1,18 @@ +server: + port: 7002 + +spring: + application: + name: jeecg-station-operation + cloud: + nacos: + config: + server-addr: @config.server-addr@ + group: @config.group@ + namespace: @config.namespace@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:jeecg.yaml + - optional:nacos:jeecg-station-operation-@profile.name@.yaml \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_config.properties b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_config.properties new file mode 100644 index 00000000..44618ab8 --- /dev/null +++ b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_config.properties @@ -0,0 +1,29 @@ +#code_generate_project_path +project_path=E:\\workspace\\jeecg-boot +#bussi_package[User defined] +bussi_package=org.jeecg.modules.demo + + +#default code path +#source_root_package=src +#webroot_package=WebRoot + +#maven code path +source_root_package=src.main.java +webroot_package=src.main.webapp + +#ftl resource url +templatepath=/jeecg/code-template +system_encoding=utf-8 + +#db Table id [User defined] +db_table_id=id + +#db convert flag[true/false] +db_filed_convert=true + +#page Search Field num [User defined] +page_search_filed_num=1 +#page_filter_fields +page_filter_fields=create_time,create_by,update_time,update_by +exclude_table=act_,ext_act_,design_,onl_,sys_,qrtz_ diff --git a/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_database.properties b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_database.properties new file mode 100644 index 00000000..45b49f60 --- /dev/null +++ b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/jeecg/jeecg_database.properties @@ -0,0 +1,27 @@ +#mysql +diver_name=com.mysql.jdbc.Driver +url=jdbc:mysql://localhost:3306/jeecg-boot?useUnicode=true&characterEncoding=UTF-8 +username=root +password=root +database_name=jeecg-boot + +#oracle +#diver_name=oracle.jdbc.driver.OracleDriver +#url=jdbc:oracle:thin:@192.168.1.200:1521:ORCL +#username=scott +#password=tiger +#database_name=ORCL + +#postgre +#diver_name=org.postgresql.Driver +#url=jdbc:postgresql://localhost:5432/jeecg +#username=postgres +#password=postgres +#database_name=jeecg + +#SQLServer2005\u4ee5\u4e0a +#diver_name=org.hibernate.dialect.SQLServerDialect +#url=jdbc:sqlserver://192.168.1.200:1433;DatabaseName=jeecg +#username=sa +#password=SA +#database_name=jeecg \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/logback-spring.xml b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..60d4c7df --- /dev/null +++ b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/logback-spring.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.log + + 30 + 10MB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n + + + + + + + + ERROR + + + + %p%d%msg%M%F{32}%L + + + ${LOG_HOME}/error-log.html + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/pom.xml b/jeecg-server-cloud/pom.xml index 5930e2c7..5c1c53e3 100644 --- a/jeecg-server-cloud/pom.xml +++ b/jeecg-server-cloud/pom.xml @@ -21,6 +21,7 @@ jeecg-visual + jeecg-station-operation-start \ No newline at end of file diff --git a/pom.xml b/pom.xml index 180f7b47..96dd5396 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,8 @@ jeecg-module-demo jeecg-module-system jeecg-module-log-manage - + jeecg-module-station-operation + @@ -172,6 +173,12 @@ jeecg-module-log-manage ${jeecgboot.version} + + + org.jeecgframework.boot + jeecg-module-station-operation + ${jeecgboot.version} + org.jeecgframework.boot From ae5e5889d56bf0f59adc761b577ba0dfa3178fd8 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 15:39:32 +0800 Subject: [PATCH 04/64] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=97=B6=E6=9F=A5=E8=AF=A2=E5=88=A4=E6=96=AD=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1=E6=97=B6=EF=BC=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1=E7=AD=89=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysUserController.java | 20 ++++++-- .../system/service/ISysUserService.java | 10 +++- .../service/impl/SysUserServiceImpl.java | 47 +++++++++++++++++-- 3 files changed, 70 insertions(+), 7 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 5cfc0fbc..8d87a97a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -49,6 +49,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -223,9 +224,22 @@ public class SysUserController { @RequestMapping(value = "/delete", method = RequestMethod.DELETE) public Result delete(@RequestParam(name="id",required=true) String id) { baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); - this.sysUserService.deleteUser(id); - return Result.ok("删除用户成功"); - } + try { + return this.sysUserService.deleteUser(id); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * 删除用户 + */ + //@RequiresPermissions("system:user:delete") + @RequestMapping(value = "/deleteById", method = RequestMethod.DELETE) + public Result deleteById(@RequestParam(name="id",required=true) String id) { + baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); + return this.sysUserService.deleteById(id); + } /** * 批量删除用户 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 34a427f2..fa081336 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -17,6 +17,7 @@ import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.Collection; import java.util.List; import java.util.Map; @@ -67,7 +68,14 @@ public interface ISysUserService extends IService { * @param userId * @return */ - public boolean deleteUser(String userId); + public Result deleteUser(String userId) throws ParseException; + + /** + * 删除用户 + * @param userId + * @return + */ + public Result deleteById(String userId); /** * 批量删除用户 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 1f186baf..ca362795 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -50,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -97,6 +98,10 @@ public class SysUserServiceImpl extends ServiceImpl impl private SysUserTenantMapper relationMapper; @Autowired private SysUserTenantMapper userTenantMapper; + @Autowired + private SysTaskMapper sysTaskMapper; + @Autowired + private SysTaskStationMapper sysTaskStationMapper; @Value("${system.auth.defaultPassword}") private String defaultPassword; @@ -220,10 +225,46 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true) @Transactional(rollbackFor = Exception.class) - public boolean deleteUser(String userId) { + public Result deleteUser(String userId) throws ParseException { + //判断当前用户是否有排班任务,如果有就不让删除 + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.eq(SysTask::getUserId, userId); + taskQueryWrapper.ge(SysTask::getSchedulingDate, DateUtils.parseDate(DateUtils.formatDate(new Date()) ,"yyyy-MM-dd")); + List sysTasks = sysTaskMapper.selectList(taskQueryWrapper); + if (CollectionUtils.isNotEmpty(sysTasks)){ + return Result.error("删除失败, 当前用户存在排班任务信息!"); + } + //删除用户关联的权限信息 + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + userRoleQueryWrapper.eq(SysUserRole::getUserId, userId); + sysUserRoleMapper.delete(userRoleQueryWrapper); //1.删除用户 - this.removeById(userId); - return false; + this.baseMapper.deleteById(userId); + return Result.ok("删除用户成功"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result deleteById(String userId) { + //根据用户id删除排班任务信息 + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.eq(SysTask::getUserId, userId); + List sysTasks = sysTaskMapper.selectList(taskQueryWrapper); + //如果排班任务信息不为空,删除排班任务相关台站信息 + if (CollectionUtils.isNotEmpty(sysTasks)){ + List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); + LambdaQueryWrapper taskStationQueryWrapper = new LambdaQueryWrapper<>(); + taskStationQueryWrapper.in(SysTaskStation::getTaskId, taskIds); + sysTaskStationMapper.delete(taskStationQueryWrapper); + } + sysTaskMapper.delete(taskQueryWrapper); + //删除用户关联的权限信息 + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + userRoleQueryWrapper.eq(SysUserRole::getUserId, userId); + sysUserRoleMapper.delete(userRoleQueryWrapper); + //1.删除用户 + this.baseMapper.deleteById(userId); + return Result.ok("删除用户成功"); } @Override From 9d5196d431ed1fe6efdb4851a0b86b49a3c63a7e Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 15:58:58 +0800 Subject: [PATCH 05/64] =?UTF-8?q?=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=9A=84=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E8=A7=A3=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=97=B6=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1=E4=BF=A1=E6=81=AF=E5=86=85?= =?UTF-8?q?=E5=AE=B9=20=E6=96=B0=E5=A2=9E=E5=BC=BA=E5=88=B6=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=94=A8=E6=88=B7=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysTaskController.java | 3 ++ .../system/controller/SysUserController.java | 20 +++++-- .../system/service/ISysUserService.java | 14 +++-- .../service/impl/SysUserServiceImpl.java | 53 +++++++++++++++++-- 4 files changed, 81 insertions(+), 9 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java index 9629a0af..f385df6c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java @@ -84,16 +84,19 @@ public class SysTaskController { } @PostMapping("exportExcel") + @ApiOperation(value = "导出排班任务", notes = "导出排班任务") public void exportExcel(@DateTimeFormat(pattern = "yyyy-MM") Date yearMonth, HttpServletRequest request, HttpServletResponse response){ sysTaskService.exportExcel(yearMonth, request, response); } @GetMapping("exportImportTemplate") + @ApiOperation(value = "导出排班任务导入模板", notes = "导出排班任务导入模板") public void exportImportTemplate(HttpServletRequest request, HttpServletResponse response){ sysTaskService.exportImportTemplate(request, response); } @PostMapping("importExcel") + @ApiOperation(value = "导入排班任务", notes = "导入排班任务") public ImportViewVo importExcel(MultipartFile file){ try { int headerRow = 1; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 5cfc0fbc..8d87a97a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -49,6 +49,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -223,9 +224,22 @@ public class SysUserController { @RequestMapping(value = "/delete", method = RequestMethod.DELETE) public Result delete(@RequestParam(name="id",required=true) String id) { baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); - this.sysUserService.deleteUser(id); - return Result.ok("删除用户成功"); - } + try { + return this.sysUserService.deleteUser(id); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * 删除用户 + */ + //@RequiresPermissions("system:user:delete") + @RequestMapping(value = "/deleteById", method = RequestMethod.DELETE) + public Result deleteById(@RequestParam(name="id",required=true) String id) { + baseCommonService.addLog("删除用户,id: " +id ,CommonConstant.LOG_TYPE_2, 3); + return this.sysUserService.deleteById(id); + } /** * 批量删除用户 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 34a427f2..860aa539 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -17,6 +17,7 @@ import org.jeecg.modules.system.vo.lowapp.UpdateDepartInfo; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.Collection; import java.util.List; import java.util.Map; @@ -34,7 +35,7 @@ public interface ISysUserService extends IService { /** * 查询用户数据列表 - * + * * @param req * @param queryWrapper * @param pageSize @@ -42,7 +43,7 @@ public interface ISysUserService extends IService { * @return */ Result> queryPageList(HttpServletRequest req, LambdaQueryWrapper queryWrapper, Integer pageSize, Integer pageNo); - + /** * 重置密码 * @@ -67,7 +68,14 @@ public interface ISysUserService extends IService { * @param userId * @return */ - public boolean deleteUser(String userId); + public Result deleteUser(String userId) throws ParseException; + + /** + * 删除用户 + * @param userId + * @return + */ + public Result deleteById(String userId); /** * 批量删除用户 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 1f186baf..6933b6b2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -50,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -97,6 +98,10 @@ public class SysUserServiceImpl extends ServiceImpl impl private SysUserTenantMapper relationMapper; @Autowired private SysUserTenantMapper userTenantMapper; + @Autowired + private SysTaskMapper sysTaskMapper; + @Autowired + private SysTaskStationMapper sysTaskStationMapper; @Value("${system.auth.defaultPassword}") private String defaultPassword; @@ -220,10 +225,52 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true) @Transactional(rollbackFor = Exception.class) - public boolean deleteUser(String userId) { + public Result deleteUser(String userId) throws ParseException { + //判断当前用户是否有排班任务,如果有就不让删除 + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.eq(SysTask::getUserId, userId); + taskQueryWrapper.ge(SysTask::getSchedulingDate, DateUtils.parseDate(DateUtils.formatDate(new Date()) ,"yyyy-MM-dd")); + List sysTasks = sysTaskMapper.selectList(taskQueryWrapper); + if (CollectionUtils.isNotEmpty(sysTasks)){ + return Result.error("删除失败, 当前用户存在排班任务信息!"); + } + //删除用户关联的权限信息 + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + userRoleQueryWrapper.eq(SysUserRole::getUserId, userId); + sysUserRoleMapper.delete(userRoleQueryWrapper); //1.删除用户 - this.removeById(userId); - return false; + this.baseMapper.deleteById(userId); + List userIds = new ArrayList<>(); + userIds.add(userId); + this.baseMapper.deleteLogicDeleted(userIds); + return Result.ok("删除用户成功"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result deleteById(String userId) { + //根据用户id删除排班任务信息 + LambdaQueryWrapper taskQueryWrapper = new LambdaQueryWrapper<>(); + taskQueryWrapper.eq(SysTask::getUserId, userId); + List sysTasks = sysTaskMapper.selectList(taskQueryWrapper); + //如果排班任务信息不为空,删除排班任务相关台站信息 + if (CollectionUtils.isNotEmpty(sysTasks)){ + List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); + LambdaQueryWrapper taskStationQueryWrapper = new LambdaQueryWrapper<>(); + taskStationQueryWrapper.in(SysTaskStation::getTaskId, taskIds); + sysTaskStationMapper.delete(taskStationQueryWrapper); + } + sysTaskMapper.delete(taskQueryWrapper); + //删除用户关联的权限信息 + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + userRoleQueryWrapper.eq(SysUserRole::getUserId, userId); + sysUserRoleMapper.delete(userRoleQueryWrapper); + //1.删除用户 + this.baseMapper.deleteById(userId); + List userIds = new ArrayList<>(); + userIds.add(userId); + this.baseMapper.deleteLogicDeleted(userIds); + return Result.ok("删除用户成功"); } @Override From 8a45bf02414240658956d34c0f2524b1c07efed6 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 16:00:07 +0800 Subject: [PATCH 06/64] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=89=8D=E5=85=88=E5=B0=86=E7=94=A8=E6=88=B7=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/service/impl/SysUserServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index ca362795..6933b6b2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -240,6 +240,9 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUserRoleMapper.delete(userRoleQueryWrapper); //1.删除用户 this.baseMapper.deleteById(userId); + List userIds = new ArrayList<>(); + userIds.add(userId); + this.baseMapper.deleteLogicDeleted(userIds); return Result.ok("删除用户成功"); } @@ -264,6 +267,9 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUserRoleMapper.delete(userRoleQueryWrapper); //1.删除用户 this.baseMapper.deleteById(userId); + List userIds = new ArrayList<>(); + userIds.add(userId); + this.baseMapper.deleteLogicDeleted(userIds); return Result.ok("删除用户成功"); } From 18f8173a04c2b1dc15745627c2a1ddc1ebb782b7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 16:39:30 +0800 Subject: [PATCH 07/64] =?UTF-8?q?=E6=9F=A5=E8=AF=A2DATA=20BASE=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=BC=93=E6=85=A2=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GardsSampleDataServiceImpl.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java index bd17ce56..edc3efa1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java @@ -28,20 +28,15 @@ import java.util.Objects; @Service("gardsSampleDataService") @DS("ori") public class GardsSampleDataServiceImpl extends ServiceImpl implements IGardsSampleDataService { - - @Autowired - private IGardsStationsService gardsStationsService; @Autowired private RedisUtil redisUtil; - @Autowired - private IGardsDetectorsService gardsDetectorsService; @Override public Result> findPage(QueryRequest queryRequest, GardsSampleData gardsSampleData) { //查询全部台站信息 HashMap stationMap = (HashMap) redisUtil.get("stationMap"); //查询全部监测器信息 - List detectors = gardsDetectorsService.findDetectors(); + HashMap detectorsMap = (HashMap) redisUtil.get("detectorsMap"); Result> result = new Result<>(); Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -58,11 +53,10 @@ public class GardsSampleDataServiceImpl extends ServiceImpl Date: Fri, 26 May 2023 16:56:00 +0800 Subject: [PATCH 08/64] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=88=A4=E7=A9=BA=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E6=8E=A2=E6=B5=8B=E5=99=A8=E5=88=A4=E7=A9=BA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/GardsDetectorsServiceImpl.java | 8 +++--- .../impl/GardsSampleDataServiceImpl.java | 8 +++--- .../service/impl/SysTaskServiceImpl.java | 25 +++++++++++-------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 5b6bec28..eda0e81c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -47,8 +47,8 @@ public class GardsDetectorsServiceImpl extends ServiceImpl page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); Page detectorsPage = this.baseMapper.findPage(page, gardsDetectors); detectorsPage.getRecords().forEach(item->{ - if (CollectionUtils.isNotEmpty(stationMap)) { - String stationValue = stationMap.get(item.getStationId()); + if (CollectionUtils.isNotEmpty(stationMap) && Objects.nonNull(item.getStationId())) { + String stationValue = stationMap.get(item.getStationId().toString()); if (StringUtils.isNotBlank(stationValue)){ item.setStationName(stationValue); } @@ -69,8 +69,8 @@ public class GardsDetectorsServiceImpl extends ServiceImpl sampleDataPage = this.baseMapper.selectPage(page, queryWrapper); sampleDataPage.getRecords().forEach(item->{ - if (CollectionUtils.isNotEmpty(stationMap)){ - String stationValue = stationMap.get(item.getStationId()); + if (CollectionUtils.isNotEmpty(stationMap) && Objects.nonNull(item.getStationId())){ + String stationValue = stationMap.get(item.getStationId().toString()); if (StringUtils.isNotBlank(stationValue)){ item.setStationName(stationValue); } } - if (CollectionUtils.isNotEmpty(detectorsMap)){ - String detectorValue = detectorsMap.get(item.getDetectorId()); + if (CollectionUtils.isNotEmpty(detectorsMap) && Objects.nonNull(item.getDetectorId())){ + String detectorValue = detectorsMap.get(item.getDetectorId().toString()); if (StringUtils.isNotBlank(detectorValue)){ item.setDetectorsName(detectorValue); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java index 0e5474d9..ddfc47bf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java @@ -96,12 +96,15 @@ public class SysTaskServiceImpl extends ServiceImpl impl if (CollectionUtils.isNotEmpty(sysTaskStations)){ //遍历所有台站信息并赋值台站名称 for (SysTaskStation taskStation:sysTaskStations) { - //通过台站id查询台站code - String stationValue = stationMap.get(taskStation.getStationId()); - //如果台站数量大于0,则说明有对应的台站信息 - if (StringUtils.isNotBlank(stationValue)){ - taskStation.setStationName(stationValue); + if (StringUtils.isNotBlank(taskStation.getStationId())){ + //通过台站id查询台站code + String stationValue = stationMap.get(taskStation.getStationId()); + //如果台站数量大于0,则说明有对应的台站信息 + if (StringUtils.isNotBlank(stationValue)){ + taskStation.setStationName(stationValue); + } } + } //遍历排版任务信息 for (SysTaskVo taskVo:sysTaskVos) { @@ -151,11 +154,13 @@ public class SysTaskServiceImpl extends ServiceImpl impl if (CollectionUtils.isNotEmpty(taskStations)){ //遍历所有台站信息并赋值台站名称 for (SysTaskStation taskStation:taskStations) { - //通过stream流获取当前台站id对应的台站信息 - String stationValue = stationMap.get(taskStation.getStationId()); - //如果台站数量大于0,则说明有对应的台站信息 - if (StringUtils.isNotBlank(stationValue)){ - taskStation.setStationName(stationValue); + if (StringUtils.isNotBlank(taskStation.getStationId())){ + //通过stream流获取当前台站id对应的台站信息 + String stationValue = stationMap.get(taskStation.getStationId()); + //如果台站数量大于0,则说明有对应的台站信息 + if (StringUtils.isNotBlank(stationValue)){ + taskStation.setStationName(stationValue); + } } } for (SysTask sysTask:sysTasks) { From ae2c54675bddb43fe31930a3d8bec0b7e523c1de Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 May 2023 17:16:36 +0800 Subject: [PATCH 09/64] =?UTF-8?q?=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/system/controller/SysTaskController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java index 9629a0af..f385df6c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysTaskController.java @@ -84,16 +84,19 @@ public class SysTaskController { } @PostMapping("exportExcel") + @ApiOperation(value = "导出排班任务", notes = "导出排班任务") public void exportExcel(@DateTimeFormat(pattern = "yyyy-MM") Date yearMonth, HttpServletRequest request, HttpServletResponse response){ sysTaskService.exportExcel(yearMonth, request, response); } @GetMapping("exportImportTemplate") + @ApiOperation(value = "导出排班任务导入模板", notes = "导出排班任务导入模板") public void exportImportTemplate(HttpServletRequest request, HttpServletResponse response){ sysTaskService.exportImportTemplate(request, response); } @PostMapping("importExcel") + @ApiOperation(value = "导入排班任务", notes = "导入排班任务") public ImportViewVo importExcel(MultipartFile file){ try { int headerRow = 1; From 1c232a645ea2d07925c553f483e7359452cf5329 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 29 May 2023 09:53:00 +0800 Subject: [PATCH 10/64] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=20=E6=96=B0=E5=A2=9E=E5=8F=B0=E7=AB=99=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E5=85=B3=E6=B3=A8=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9?= =?UTF-8?q?=20=E5=AF=BC=E5=87=BA=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=20=E5=AF=BC=E5=87=BA=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8F=B0=E7=AB=99=E5=90=8D=E7=A7=B0=E5=88=97=E5=AE=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysUserFocusStationController.java | 15 ++++++++++---- .../modules/entity/SysUserFocusStation.java | 6 +++--- .../service/ISysUserFocusStationService.java | 5 +++-- .../impl/SysUserFocusStationServiceImpl.java | 20 ++++++++++++++----- .../system/entity/vo/SysTaskExportVo.java | 2 +- .../impl/GardsDetectorsServiceImpl.java | 9 ++++++--- .../impl/GardsNuclearfacilityServiceImpl.java | 9 ++++++--- .../impl/GardsStationsServiceImpl.java | 9 ++++++--- .../service/impl/SysTaskServiceImpl.java | 18 +++++++++++++++-- 9 files changed, 67 insertions(+), 26 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java index c2c1af45..871c7653 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java @@ -1,5 +1,8 @@ package org.jeecg.modules.controller; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; import org.jeecg.config.valid.InsertGroup; import org.jeecg.modules.entity.SysUserFocusStation; import org.jeecg.modules.service.ISysUserFocusStationService; @@ -11,25 +14,29 @@ import java.util.List; @RestController @RequestMapping("sysUserFocusStation") +@Api(value = "关注台站管理", tags = "关注台站管理") public class SysUserFocusStationController { @Autowired private ISysUserFocusStationService sysUserFocusStationService; @GetMapping("findList") + @ApiOperation(value = "查询关注台站列表", notes = "查询关注台站列表") public List findList(){ List result = sysUserFocusStationService.findList(); return result; } @PostMapping("create") - public void create(@RequestBody @Validated(value = InsertGroup.class) SysUserFocusStation sysUserFocusStation){ - sysUserFocusStationService.create(sysUserFocusStation); + @ApiOperation(value = "新增关注", notes = "新增关注") + public Result create(@RequestBody @Validated(value = InsertGroup.class) SysUserFocusStation sysUserFocusStation){ + return sysUserFocusStationService.create(sysUserFocusStation); } @DeleteMapping("deleteById") - public void deleteById(String stationId){ - sysUserFocusStationService.deleteById(stationId); + @ApiOperation(value = "取消关注", notes = "取消关注") + public Result deleteById(String stationId){ + return sysUserFocusStationService.deleteById(stationId); } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java index 76a1fe07..0b20e647 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -10,6 +10,7 @@ import org.jeecg.config.valid.UpdateGroup; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Null; import java.io.Serializable; import java.util.Date; @@ -18,11 +19,10 @@ import java.util.Date; public class SysUserFocusStation implements Serializable { @TableId(value = "id", type = IdType.ASSIGN_ID) - @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) - private Integer id; + @NotBlank(message = "不能为空", groups = UpdateGroup.class) + private String id; @TableField(value = "user_id") - @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String userId; @TableField(value = "station_id") diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java index 2dc91cc2..1d6a289c 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java @@ -1,6 +1,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysUserFocusStation; import java.util.List; @@ -17,12 +18,12 @@ public interface ISysUserFocusStationService extends IService(); //获取request HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); //获取当前操作人用户名 @@ -70,12 +77,15 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysUserFocusStation::getUserId, sysUser.getId()); queryWrapper.eq(SysUserFocusStation::getStationId, stationId); this.baseMapper.delete(queryWrapper); + result.success("删除成功"); + return result; } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskExportVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskExportVo.java index a1e158e9..fa1aeb9c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskExportVo.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/vo/SysTaskExportVo.java @@ -12,7 +12,7 @@ public class SysTaskExportVo { @ExcelField(title = "用户名称", width = 15, sort = 2) private String userName; - @ExcelField(title = "台站名称", width = 15, sort = 3) + @ExcelField(title = "台站名称", width = 90, sort = 3) private String stationName; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 5b6bec28..a104bdc1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -92,7 +92,8 @@ public class GardsDetectorsServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(GardsDetectors::getDetectorCode, gardsDetectors.getDetectorCode()); GardsDetectors detectors = this.baseMapper.selectOne(queryWrapper); if (Objects.nonNull(detectors) && !detectors.getDetectorId().equals(gardsDetectors.getDetectorId())) { - throw new RuntimeException("当前数据"+gardsDetectors.getDetectorCode()+"已存在,修改失败!"); + result.error500("当前数据"+gardsDetectors.getDetectorCode()+"已存在,修改失败!"); + return result; } } LambdaQueryWrapper detectorsQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java index 335b82f3..ad191c68 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java @@ -70,7 +70,8 @@ public class GardsNuclearfacilityServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(GardsNuclearfacility::getFacilityName, gardsNuclearfacility.getFacilityName()); GardsNuclearfacility nuclearfacility = this.baseMapper.selectOne(queryWrapper); if (Objects.nonNull(nuclearfacility) && !nuclearfacility.getFacilityId().equals(gardsNuclearfacility.getFacilityId())){ - throw new RuntimeException("当前核设施"+gardsNuclearfacility.getFacilityName()+"已存在,修改失败"); + result.error500("当前核设施"+gardsNuclearfacility.getFacilityName()+"已存在,修改失败"); + return result; } } LambdaQueryWrapper nuclearfacilityQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java index 31c6d7ba..7d749187 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java @@ -93,7 +93,8 @@ public class GardsStationsServiceImpl extends ServiceImpl stationsQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java index 0e5474d9..88dacac8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java @@ -332,7 +332,7 @@ public class SysTaskServiceImpl extends ServiceImpl impl String username = sysTaskVo.getUsername(); String stationNames = ""; for (SysTaskStation sysTaskStation:sysTaskVo.getStationList()) { - stationNames+=sysTaskStation.getStationName()+","; + stationNames+=sysTaskStation.getStationName()+StringPool.COMMA; } stationNames = stationNames.substring(0,stationNames.length()-1); if (StringUtils.isNotBlank(stationNames)){ @@ -355,6 +355,7 @@ public class SysTaskServiceImpl extends ServiceImpl impl @Override public void exportImportTemplate(HttpServletRequest request, HttpServletResponse response) { String fileName = "排班任务导入模板"; + List list = this.createList(); try { //处理需要导出的列 List annotationList = Lists.newArrayList(); @@ -365,13 +366,26 @@ public class SysTaskServiceImpl extends ServiceImpl impl annotationList.add(new Object[] {ef,field}); } } - new ExportExcel().createXlsxExcel("排班任务信息", annotationList, 2, false).writeToXlsx(request, response, fileName); + new ExportExcel().createXlsxExcel("排班任务信息", annotationList, 2, false) + .setDataList(list).writeToXlsx(request, response, fileName); } catch (IOException e) { e.printStackTrace(); throw new BusinessException("模板导出失败"); } } + private List createList(){ + List list = new ArrayList<>(); + for(int i=1;i<=2;i++){ + SysTaskExportVo vo = new SysTaskExportVo(); + vo.setSchedulingDate("1997-01-01"); + vo.setStationName("AAA"+StringPool.COMMA+"BBB"); + vo.setUserName("sample"+i); + list.add(vo); + } + return list; + } + @Override @Transactional public ImportViewVo importExcel(List dataList, int headRow) { From f2c26efebc626e24fbc01553028b120962a7ba2c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 29 May 2023 14:34:26 +0800 Subject: [PATCH 11/64] =?UTF-8?q?=E6=A0=B8=E8=AE=BE=E6=96=BD=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=9F=A5=E8=AF=A2=E5=85=A8=E9=83=A8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E5=AD=98=E5=85=A5redis=E7=9A=84=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=EF=BC=8C=E6=8E=A2=E6=B5=8B=E5=99=A8=EF=BC=8C?= =?UTF-8?q?=E6=A0=B8=E8=AE=BE=E6=96=BD=E6=96=B0=E5=A2=9E=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=E5=88=A0=E9=99=A4=E6=93=8D=E4=BD=9C=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E5=90=8E=E6=9B=B4=E6=96=B0redis=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=90=AF=E5=8A=A8=E7=B1=BB=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=A0=B8=E8=AE=BE=E6=96=BD=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E4=B8=8B=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E6=A0=B8=E8=AE=BE=E6=96=BD=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=20=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E8=AF=A6=E6=83=85=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StationOperationController.java | 7 ++ .../modules/entity/StationOperation.java | 24 ++++ .../mapper/GardsNuclearfacilityMapper.java | 7 -- .../modules/mapper/GardsStationsMapper.java | 7 -- .../service/IStationOperationService.java | 2 + .../impl/StationOperationServiceImpl.java | 117 ++++++++++-------- .../impl/SysUserFocusStationServiceImpl.java | 1 - .../entity/GardsNuclearfacility.java | 2 +- .../{ => system}/entity/GardsStations.java | 2 +- .../service/IGardsDetectorsService.java | 2 +- .../service/IGardsNuclearfacilityService.java | 4 + .../impl/GardsDetectorsServiceImpl.java | 24 ++-- .../impl/GardsNuclearfacilityServiceImpl.java | 24 ++++ .../impl/GardsStationsServiceImpl.java | 19 ++- .../jeecg/JeecgSystemCloudApplication.java | 5 + 15 files changed, 162 insertions(+), 85 deletions(-) delete mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java delete mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java rename jeecg-module-station-operation/src/main/java/org/jeecg/modules/{ => system}/entity/GardsNuclearfacility.java (98%) rename jeecg-module-station-operation/src/main/java/org/jeecg/modules/{ => system}/entity/GardsStations.java (97%) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index 9908f657..ebd261f0 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -2,6 +2,7 @@ package org.jeecg.modules.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.StationOperation; import org.jeecg.modules.service.IStationOperationService; import org.springframework.beans.factory.annotation.Autowired; @@ -26,5 +27,11 @@ public class StationOperationController { return result; } + @GetMapping("findInfo") + @ApiOperation(value = "查询台站/核设施详情信息", notes = "查询台站/核设施详情信息") + public Result findInfo(String stationId, String type){ + Result result = stationOperationService.findInfo(stationId, type); + return result; + } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java index 9e1a0764..d562f278 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationOperation.java @@ -7,20 +7,44 @@ import java.io.Serializable; @Data public class StationOperation implements Serializable { + /** + * 台站/核设施id + */ private Integer stationId; + /** + * 台站/核设施名称 + */ private String stationName; + /** + * 台站/核设施类型 + */ private String stationType; + /** + * 海拔 + */ private String altitude; + /** + * 经度 + */ private String lon; + /** + * 纬度 + */ private String lat; + /** + * 状态 + */ private String status; + /** + * 标记 + */ private String signal; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java deleted file mode 100644 index 1760bd15..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsNuclearfacilityMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecg.modules.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.GardsNuclearfacility; - -public interface GardsNuclearfacilityMapper extends BaseMapper { -} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java deleted file mode 100644 index c62547f0..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/GardsStationsMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecg.modules.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.GardsStations; - -public interface GardsStationsMapper extends BaseMapper { -} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index 9f06b2c1..d0d2d96d 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -1,6 +1,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.StationOperation; import java.util.List; @@ -9,5 +10,6 @@ public interface IStationOperationService extends IService { List findList(String status); + Result findInfo(String stationId, String type); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 3559dd2c..691cacf9 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -1,83 +1,98 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.commons.lang3.StringUtils; -import org.jeecg.modules.entity.GardsNuclearfacility; -import org.jeecg.modules.entity.GardsStations; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.system.entity.GardsNuclearfacility; +import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.entity.StationOperation; -import org.jeecg.modules.mapper.GardsNuclearfacilityMapper; -import org.jeecg.modules.mapper.GardsStationsMapper; import org.jeecg.modules.mapper.StationOperationMapper; import org.jeecg.modules.service.IStationOperationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service("stationOperationService") @DS("ora") public class StationOperationServiceImpl extends ServiceImpl implements IStationOperationService { @Autowired - private GardsStationsMapper gardsStationsMapper; - @Autowired - private GardsNuclearfacilityMapper gardsNuclearfacilityMapper; + private RedisUtil redisUtil; @Override public List findList(String status) { //声明结果集合 List result = new LinkedList<>(); //查询全部台站信息 - List stations = this.findStations(); - for (GardsStations gardsStation:stations) { - StationOperation stationOperation = new StationOperation(); - stationOperation.setStationId(gardsStation.getStationId()); - stationOperation.setStationName(gardsStation.getStationCode()); - stationOperation.setStationType("IMS STATION"); - stationOperation.setAltitude(Objects.isNull(gardsStation.getElevation())?"":gardsStation.getElevation()+"米"); - stationOperation.setLon(String.valueOf(gardsStation.getLon())); - stationOperation.setLat(String.valueOf(gardsStation.getLat())); - stationOperation.setStatus(gardsStation.getStatus()); - result.add(stationOperation); - } + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); //查询全部核设施信息 - List nuclearfacilities = this.findNuclearfacilities(); - for (GardsNuclearfacility nuclearfacility:nuclearfacilities) { - StationOperation stationOperation = new StationOperation(); - stationOperation.setStationId(nuclearfacility.getFacilityId()); - stationOperation.setStationName(nuclearfacility.getFacilityName()); - stationOperation.setStationType("Nuclear Facility"); - stationOperation.setAltitude("--"); - stationOperation.setLon(nuclearfacility.getLongitude()); - stationOperation.setLat(nuclearfacility.getLatitude()); - stationOperation.setStatus(nuclearfacility.getStatus()); - result.add(stationOperation); + HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + //遍历台站信息 + if (CollectionUtils.isNotEmpty(stationInfoMap)){ + for (Map.Entry gardsStations:stationInfoMap.entrySet()) { + GardsStations gardsStation = (GardsStations)gardsStations.getValue(); + StationOperation stationOperation = new StationOperation(); + stationOperation.setStationId(gardsStation.getStationId()); + stationOperation.setStationName(gardsStation.getStationCode()); + stationOperation.setStationType("IMS STATION"); + stationOperation.setAltitude(Objects.isNull(gardsStation.getElevation())?"":gardsStation.getElevation()+"米"); + stationOperation.setLon(String.valueOf(gardsStation.getLon())); + stationOperation.setLat(String.valueOf(gardsStation.getLat())); + stationOperation.setStatus(gardsStation.getStatus()); + result.add(stationOperation); + } } - //如果状态不为空 + if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ + //遍历核设施信息 + for (Map.Entry nuclearfacilities:nuclearFacilityMap.entrySet()) { + GardsNuclearfacility nuclearfacility = (GardsNuclearfacility)nuclearfacilities.getValue(); + StationOperation stationOperation = new StationOperation(); + stationOperation.setStationId(nuclearfacility.getFacilityId()); + stationOperation.setStationName(nuclearfacility.getFacilityName()); + stationOperation.setStationType("Nuclear Facility"); + stationOperation.setAltitude("--"); + stationOperation.setLon(nuclearfacility.getLongitude()); + stationOperation.setLat(nuclearfacility.getLatitude()); + stationOperation.setStatus(nuclearfacility.getStatus()); + result.add(stationOperation); + } + } + //如果类型不为空 if (StringUtils.isNotBlank(status)){ - result = result.stream().filter(item-> item.getStatus().equals(status)).collect(Collectors.toList()); + result = result.stream().filter(item-> StringUtils.isNotBlank(item.getStatus())&&item.getStatus().equalsIgnoreCase(status)).collect(Collectors.toList()); } return result; } - /** - * 查询全部台站信息 - * @return - */ - private List findStations(){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List gardsStations = gardsStationsMapper.selectList(queryWrapper); - return gardsStations; - } - - private List findNuclearfacilities(){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List gardsNuclearfacilities = gardsNuclearfacilityMapper.selectList(queryWrapper); - return gardsNuclearfacilities; + @Override + public Result findInfo(String stationId, String type) { + Result result = new Result(); + if (type.equals("IMS STATION")){ + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + GardsStations stations = stationInfoMap.get(stationId); + if (Objects.nonNull(stations)){ + result.setResult(stations); + result.setSuccess(true); + }else { + result.error500("台站下对应信息不存在"); + } + }else if(type.equals("Nuclear Facility")){ + HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + GardsNuclearfacility nuclearfacility = nuclearFacilityMap.get(stationId); + if (Objects.nonNull(nuclearfacility)){ + result.setResult(nuclearfacility); + result.setSuccess(true); + }else { + result.error500("核设施下对应信息不存在"); + } + }else { + result.error500("当前类型不存在"); + } + return result; } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java index d59eef98..00df0993 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.SpringContextUtils; -import org.jeecg.modules.entity.GardsStations; import org.jeecg.modules.entity.SysUser; import org.jeecg.modules.entity.SysUserFocusStation; import org.jeecg.modules.mapper.SysUserFocusStationMapper; diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java similarity index 98% rename from jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java rename to jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java index 69fe25bc..65ab2de4 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsNuclearfacility.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.system.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsStations.java similarity index 97% rename from jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java rename to jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsStations.java index f9ee9213..898e238d 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/GardsStations.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsStations.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.system.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java index b028bc24..e84b088f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java @@ -55,6 +55,6 @@ public interface IGardsDetectorsService extends IService { * 查询全部监测器信息 * @return */ - List findDetectors(); + void findDetectors(); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsNuclearfacilityService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsNuclearfacilityService.java index 1e59bbaf..e009ae4b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsNuclearfacilityService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsNuclearfacilityService.java @@ -58,4 +58,8 @@ public interface IGardsNuclearfacilityService extends IService findDetectors(){ - List gardsDetectors = this.baseMapper.selectList(new LambdaQueryWrapper<>()); - HashMap map = new HashMap<>(); - if (CollectionUtils.isNotEmpty(gardsDetectors)){ - for (GardsDetectors detectors:gardsDetectors) { - map.put(detectors.getDetectorId(),detectors.getDetectorCode()); - } + public void findDetectors(){ + if (redisUtil.hasKey("detectorsMap")){ + redisUtil.del("detectorsMap"); } - redisUtil.set("detectorsMap",map); - return gardsDetectors; + List gardsDetectors = this.baseMapper.selectList(new LambdaQueryWrapper<>()); + Map detectorsMap = gardsDetectors.stream().collect(Collectors.toMap(GardsDetectors::getDetectorId, GardsDetectors::getDetectorCode)); + redisUtil.set("detectorsMap",detectorsMap); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java index ad191c68..692c52e9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java @@ -9,12 +9,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.mapper.GardsNuclearfacilityMapper; import org.jeecg.modules.system.service.IGardsNuclearfacilityService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -23,6 +26,9 @@ import java.util.stream.Collectors; @DS("ora") public class GardsNuclearfacilityServiceImpl extends ServiceImpl implements IGardsNuclearfacilityService { + @Autowired + private RedisUtil redisUtil; + @Override public Result> findPage(QueryRequest queryRequest, GardsNuclearfacility gardsNuclearfacility) { Result> result = new Result<>(); @@ -76,6 +82,7 @@ public class GardsNuclearfacilityServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + List gardsNuclearfacilities = this.baseMapper.selectList(queryWrapper); + HashMap nuclearFacilityMap = new HashMap<>(); + for (GardsNuclearfacility gardsNuclearfacility:gardsNuclearfacilities) { + nuclearFacilityMap.put(String.valueOf(gardsNuclearfacility.getFacilityId()), gardsNuclearfacility); + } + redisUtil.set("nuclearFacilityMap",nuclearFacilityMap); + } + + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java index 7d749187..ba908b3b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java @@ -21,7 +21,9 @@ import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; @Service("gardsStationsService") @DS("ora") @@ -100,6 +102,7 @@ public class GardsStationsServiceImpl extends ServiceImpl getGardsStations() { + if (redisUtil.hasKey("stationMap")){ + redisUtil.del("stationMap"); + } + if (redisUtil.hasKey("stationInfoMap")) { + redisUtil.del("stationInfoMap"); + } List gardsStations = this.baseMapper.selectList(new LambdaQueryWrapper<>()); - HashMap map = new HashMap<>(); + Map stationMap = gardsStations.stream().collect(Collectors.toMap(GardsStations::getStationId, GardsStations::getStationCode)); + HashMap stationInfoMap = new HashMap<>(); if (CollectionUtils.isNotEmpty(gardsStations)){ for (GardsStations station:gardsStations) { - map.put(station.getStationId(),station.getStationCode()); + stationInfoMap.put(station.getStationId(),station); } } - redisUtil.set("stationMap",map); + redisUtil.set("stationMap",stationMap); + redisUtil.set("stationInfoMap",stationInfoMap); return gardsStations; } } diff --git a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java index 27965275..ae50f174 100644 --- a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java +++ b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java @@ -5,6 +5,7 @@ import org.jeecg.common.base.BaseMap; import org.jeecg.common.constant.GlobalConstants; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.service.IGardsDetectorsService; +import org.jeecg.modules.system.service.IGardsNuclearfacilityService; import org.jeecg.modules.system.service.IGardsStationsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; @@ -39,6 +40,8 @@ public class JeecgSystemCloudApplication extends SpringBootServletInitializer im private IGardsStationsService gardsStationsService; @Autowired private IGardsDetectorsService gardsDetectorsService; + @Autowired + private IGardsNuclearfacilityService gardsNuclearfacilityService; @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { @@ -76,5 +79,7 @@ public class JeecgSystemCloudApplication extends SpringBootServletInitializer im gardsStationsService.getGardsStations(); //触发缓存一下探测器信息 gardsDetectorsService.findDetectors(); + //触发缓存一下核设施信息 + gardsNuclearfacilityService.findNuclearFacility(); } } \ No newline at end of file From 07ce768733f7534c37d1e6a51c720fdd013b1837 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 5 Jun 2023 10:04:35 +0800 Subject: [PATCH 12/64] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BF=AE=E6=94=B9postgr?= =?UTF-8?q?esql=E5=90=8E=E7=B3=BB=E7=BB=9F=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E6=96=B0=E5=A2=9Eweb-statistics=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-station-operation/pom.xml | 7 + .../main/java/org/jeecg/common/PointUtil.java | 36 ++++ .../StationOperationController.java | 22 ++- .../java/org/jeecg/modules/entity/Point.java | 22 +++ .../org/jeecg/modules/entity/PointVo.java | 14 ++ .../org/jeecg/modules/entity/StationTree.java | 17 ++ .../service/IStationOperationService.java | 26 +++ .../impl/StationOperationServiceImpl.java | 175 +++++++++++++++++- .../system/mapper/GardsDetectorsMapper.java | 10 + .../mapper/xml/GardsDetectorsMapper.xml | 1 + .../system/mapper/xml/SysTaskMapper.xml | 4 +- .../impl/GardsNuclearfacilityServiceImpl.java | 1 + .../impl/GardsSampleDataServiceImpl.java | 1 + .../impl/GardsStationsServiceImpl.java | 1 + .../service/impl/SysTaskServiceImpl.java | 96 +++++----- .../service/impl/SysUserServiceImpl.java | 5 +- jeecg-module-web-statistics/pom.xml | 21 +++ .../java/org/jeecgframework/boot/Main.java | 7 + .../jeecg-web-statistics-start/pom.xml | 42 +++++ .../boot/JeecgWebStatisticsApplication.java | 46 +++++ .../src/main/resources/application.yml | 18 ++ .../resources/jeecg/jeecg_config.properties | 29 +++ .../resources/jeecg/jeecg_database.properties | 27 +++ .../src/main/resources/logback-spring.xml | 77 ++++++++ jeecg-server-cloud/pom.xml | 1 + pom.xml | 9 +- 26 files changed, 662 insertions(+), 53 deletions(-) create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java create mode 100644 jeecg-module-web-statistics/pom.xml create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java create mode 100644 jeecg-server-cloud/jeecg-web-statistics-start/pom.xml create mode 100644 jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java create mode 100644 jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/application.yml create mode 100644 jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_config.properties create mode 100644 jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_database.properties create mode 100644 jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/logback-spring.xml diff --git a/jeecg-module-station-operation/pom.xml b/jeecg-module-station-operation/pom.xml index c0637971..ad2f458f 100644 --- a/jeecg-module-station-operation/pom.xml +++ b/jeecg-module-station-operation/pom.xml @@ -16,6 +16,13 @@ org.jeecgframework.boot jeecg-boot-base-core + + + + com.spatial4j + spatial4j + 0.5 + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java new file mode 100644 index 00000000..38289024 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java @@ -0,0 +1,36 @@ +package org.jeecg.common; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; + +import java.util.Objects; + +public class PointUtil { + + public static String calculate(String pointValue){ + Double Degrees = 0.0; + Double minutes = 0.0; + Double seconds = 0.0; + if (pointValue.indexOf("°")>0 || pointValue.indexOf("′")>0 || pointValue.indexOf("″")>0){ + if (pointValue.indexOf("°")>0){ + Degrees = Double.valueOf(pointValue.substring(0, pointValue.indexOf("°"))); + pointValue = pointValue.substring(pointValue.indexOf("°")+1); + } + if (pointValue.indexOf("′")>0){ + minutes = Double.valueOf(pointValue.substring(0, pointValue.indexOf("′"))); + pointValue = pointValue.substring(pointValue.indexOf("′")+1); + } + if (pointValue.indexOf("″")>0){ + seconds = Double.valueOf(pointValue.substring(0, pointValue.indexOf("″"))); + } + if (Objects.nonNull(Degrees) || Objects.nonNull(minutes) || Objects.nonNull(seconds)){ + Double result = Degrees + minutes/60+seconds/3600; + pointValue = String.valueOf(result); + } + } + return pointValue; + } + + + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index ebd261f0..765820f2 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -1,14 +1,17 @@ package org.jeecg.modules.controller; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.Point; +import org.jeecg.modules.entity.PointVo; import org.jeecg.modules.entity.StationOperation; import org.jeecg.modules.service.IStationOperationService; +import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -34,4 +37,17 @@ public class StationOperationController { return result; } + @GetMapping("findTree") + public Result findTree(){ + Result result = stationOperationService.findTree(); + return result; + } + + @PostMapping("getHitEquList") + @ApiOperation(value = "查询半径内核设施信息", notes = "查询半径内核设施信息") + public Result getHitEquList(@RequestBody PointVo pointVo){ + Result result = stationOperationService.getHitEquList(pointVo); + return result; + } + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java new file mode 100644 index 00000000..ab734336 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class Point implements Serializable { + + private String stationName; + + private String nuclearFacilityName; + + private String lon; + + private String lat; + + private String radius; + + private String nuclearFacilityId; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java new file mode 100644 index 00000000..1e3d4666 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class PointVo { + + private List stationIds; + + private Double radius; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java new file mode 100644 index 00000000..c812b8b4 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.entity; + +import lombok.Data; +import org.jeecg.modules.system.entity.GardsStations; + +import java.util.List; + +@Data +public class StationTree { + + private Integer stationId; + + private String code; + + List children; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index d0d2d96d..c0441306 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -2,14 +2,40 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.Point; +import org.jeecg.modules.entity.PointVo; import org.jeecg.modules.entity.StationOperation; +import org.jeecg.modules.system.entity.GardsNuclearfacility; import java.util.List; public interface IStationOperationService extends IService { + /** + * 查询台站,核设施信息 + * @param status + * @return + */ List findList(String status); + /** + * 查看台站,核设施详情信息 + * @param stationId + * @param type + * @return + */ Result findInfo(String stationId, String type); + /** + * 查询台站信息的树形结构 + * @return + */ + Result findTree(); + + /** + * 查询半径内核设施信息 + * @param pointVo + * @return + */ + Result getHitEquList(PointVo pointVo); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 691cacf9..101396cc 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -4,8 +4,16 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.spatial4j.core.context.SpatialContext; +import com.spatial4j.core.distance.DistanceUtils; +import com.spatial4j.core.shape.Rectangle; +import io.swagger.models.auth.In; +import org.jeecg.common.PointUtil; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.entity.Point; +import org.jeecg.modules.entity.PointVo; +import org.jeecg.modules.entity.StationTree; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.entity.StationOperation; @@ -15,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.List; import java.util.stream.Collectors; @Service("stationOperationService") @@ -23,6 +32,8 @@ public class StationOperationServiceImpl extends ServiceImpl findList(String status) { //声明结果集合 @@ -55,8 +66,8 @@ public class StationOperationServiceImpl extends ServiceImpl nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); GardsNuclearfacility nuclearfacility = nuclearFacilityMap.get(stationId); if (Objects.nonNull(nuclearfacility)){ + nuclearfacility.setLongitude(PointUtil.calculate(nuclearfacility.getLongitude())); + nuclearfacility.setLatitude(PointUtil.calculate(nuclearfacility.getLatitude())); result.setResult(nuclearfacility); result.setSuccess(true); }else { @@ -95,4 +108,162 @@ public class StationOperationServiceImpl extends ServiceImpl stationTreeList = new LinkedList<>(); + //查询台站信息接口 + HashMap stationMap = (HashMap)redisUtil.get("stationInfoMap"); + if (CollectionUtils.isNotEmpty(stationMap)){ + //遍历台站信息存储进数组 + List gardsStationsList = new ArrayList<>(); + for (Map.Entry entry:stationMap.entrySet()) { + GardsStations entryValue = (GardsStations) entry.getValue(); + gardsStationsList.add(entryValue); + } + if (CollectionUtils.isNotEmpty(gardsStationsList)){ + //过滤出所有的台站城市编码 + List countryCodes = gardsStationsList.stream().map(GardsStations::getCountryCode).distinct().sorted().collect(Collectors.toList()); + for (String countryCode:countryCodes) { + //声明一个数组存储城市编码对应的数组信息 + List stationsList = new LinkedList<>(); + StationTree stationTree = new StationTree(); + stationTree.setStationId(countryCodes.indexOf(countryCode)+1); + stationTree.setCode(countryCode); + for (GardsStations stations:gardsStationsList) { + if (stations.getCountryCode().equals(countryCode)){ + stationsList.add(stations); + } + } + stationTree.setChildren(stationsList); + stationTreeList.add(stationTree); + } + } + } + result.setSuccess(true); + result.setResult(stationTreeList); + return result; + } + + @Override + public Result getHitEquList(PointVo pointVo) { + Result result = new Result(); + //声明一个map存储数据 + Map map = new HashMap<>(); + //存储台站及周边核设施数据信息 + List stationsList = new LinkedList<>(); + //存储台站及周边核设施的名称,距离信息 + List> resultList = new ArrayList<>(); + //获取传递的台站id数据 + List stationIds = pointVo.getStationIds(); + //获取传递的半径数据 + Double radius = pointVo.getRadius(); + if (Objects.isNull(radius)) { + result.error500("请传入半径"); + } + if (CollectionUtils.isNotEmpty(stationIds)){ + //查询全部台站信息 + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + //查询全部核设施信息 + HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ + //声明一个集合存储转换经纬度后的核设施数据 + List nuclearPoints = new ArrayList<>(); + for (Map.Entry nuclearFacilityInfo:nuclearFacilityMap.entrySet()) { + GardsNuclearfacility facilityInfoValue = nuclearFacilityInfo.getValue(); + Point point = new Point(); + point.setNuclearFacilityId(String.valueOf(facilityInfoValue.getFacilityId())); + point.setNuclearFacilityName(facilityInfoValue.getFacilityName()); + if (StringUtils.isNotBlank(facilityInfoValue.getLongitude())){ + String pointValue = PointUtil.calculate(facilityInfoValue.getLongitude()); + facilityInfoValue.setLongitude(pointValue); + point.setLon(pointValue); + } + if (StringUtils.isNotBlank(facilityInfoValue.getLatitude())){ + String pointValue = PointUtil.calculate(facilityInfoValue.getLatitude()); + facilityInfoValue.setLatitude(pointValue); + point.setLat(pointValue); + } + nuclearPoints.add(point); + } + for (String stationId:stationIds) { + GardsStations point = (GardsStations)stationInfoMap.get(stationId); + stationsList.add(point); + //声明一个数组存储对应的核设施经纬度信息 + List nuclearFacilityPoints = new ArrayList<>(); + nuclearFacilityPoints.addAll(nuclearPoints); + //获取当前查询的台站名称 + String stationName = point.getStationCode(); + //获取当前查询的经度 即 圆心位置经度信息 + Double longitudeD = point.getLon(); + //获取当前查询的纬度 即 圆心位置纬度信息 + Double latitudeD = point.getLat(); + if (Objects.isNull(longitudeD)) { + result.error500("请传入经度"); + } + if (Objects.isNull(latitudeD)) { + result.error500("请传入纬度"); + } + if (!(longitudeD >= -180 && longitudeD <= 180)) { + result.error500("经度不合法"); + } + if (!(latitudeD >= -85.05112878 && latitudeD <= 85.05112878)) { + result.error500("纬度不合法"); + } + // 1.获取外接正方形 + Rectangle rectangle = getRectangle(radius, longitudeD, latitudeD); + // 2.获取位置在正方形内的所有设备 判断核设施的经纬度是否为空 不为空 判断经纬度是否在正方形的最大最小范围内 如果在则过滤出来继续使用否则弃用 + nuclearFacilityPoints = nuclearFacilityPoints.stream().filter(item-> StringUtils.isNotBlank(item.getLon()) && StringUtils.isNotBlank(item.getLat()) && + (Double.valueOf(item.getLon())>=rectangle.getMinX() && Double.valueOf(item.getLon())<= rectangle.getMaxX()) + && (Double.valueOf(item.getLat())>=rectangle.getMinY() && Double.valueOf(item.getLat())<= rectangle.getMaxY())).collect(Collectors.toList()); + //遍历在正方形范围内的数据 根据点的经纬度信息以及圆心的经纬度信息 计算出两者之间的距离 与 半径进行比较 <=半径则说明点在范围内,否则点超出半径范围 + nuclearFacilityPoints = nuclearFacilityPoints.stream() + .filter(equ -> getDistance(Double.valueOf(equ.getLon()), Double.valueOf(equ.getLat()), longitudeD, latitudeD) <= radius).collect(Collectors.toList()); + //在范围内的点信息 计算点与圆心间的半径距离返回信息 + for (Point p:nuclearFacilityPoints) { + stationsList.add(nuclearFacilityMap.get(p.getNuclearFacilityId())); + //计算点与圆心间的距离信息 + double radiusR = getDistance(Double.valueOf(p.getLon()), Double.valueOf(p.getLat()), longitudeD, latitudeD); + p.setRadius(String.valueOf(radiusR)); + p.setStationName(stationName); + } + resultList.add(nuclearFacilityPoints); + } + map.put("GIS", stationsList); + map.put("table", resultList); + } + } + result.setSuccess(true); + result.setResult(map); + return result; + } + + /** + * 获取外接正方形的最大最小经纬度 + * + * @param radius 半径/距离 + * @param longitude 圆心经度 + * @param latitude 圆心纬度 + */ + private Rectangle getRectangle(Double radius, Double longitude, Double latitude) { + return spatialContext.getDistCalc() + .calcBoxByDistFromPt(spatialContext.makePoint(longitude, latitude), + radius * DistanceUtils.KM_TO_DEG, spatialContext, null); + } + + /*** + * 球面中,两点间的距离 + * + * @param lon 设备经度 + * @param lat 设备纬度 + * @param longitude 圆心经度 + * @param latitude 圆心纬度 + * @return 返回距离,单位km + */ + private double getDistance(Double lon, Double lat, double longitude, double latitude) { + return spatialContext.calcDistance(spatialContext.makePoint(longitude, latitude), + spatialContext.makePoint(lon, lat)) * DistanceUtils.DEG_TO_KM; + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java index 88484f87..fa056350 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java @@ -8,8 +8,18 @@ import java.util.List; public interface GardsDetectorsMapper extends BaseMapper { + /** + * 分页查询探测器数据 + * @param page + * @param gardsDetectors + * @return + */ Page findPage(Page page, GardsDetectors gardsDetectors); + /** + * 查询探测器类型数据 + * @return + */ List findType(); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml index a3b9af6b..d3a4cc52 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml @@ -32,6 +32,7 @@ and RTRIM(STATUS, ' ') = #{gardsDetectors.status} + order by DETECTOR_ID asc @@ -25,7 +25,7 @@ FROM sys_task t left join sys_user u on u.id = t.user_id - where t.scheduling_date BETWEEN #{firstDay} and #{lastDay} + where t.scheduling_date BETWEEN to_date(#{firstDay}, 'YYYY-MM-DD') and to_date(#{lastDay}, 'YYYY-MM-DD') \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java index 692c52e9..eaf034cc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsNuclearfacilityServiceImpl.java @@ -38,6 +38,7 @@ public class GardsNuclearfacilityServiceImpl extends ServiceImpl gardsNuclearfacilityPage = this.baseMapper.selectPage(page, queryWrapper); result.setSuccess(true); result.setResult(gardsNuclearfacilityPage); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java index 375cef66..c9f4d108 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java @@ -45,6 +45,7 @@ public class GardsSampleDataServiceImpl extends ServiceImpl sampleDataPage = this.baseMapper.selectPage(page, queryWrapper); sampleDataPage.getRecords().forEach(item->{ if (CollectionUtils.isNotEmpty(stationMap) && Objects.nonNull(item.getStationId())){ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java index ba908b3b..f4ad0e6c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsStationsServiceImpl.java @@ -46,6 +46,7 @@ public class GardsStationsServiceImpl extends ServiceImpl pageList = this.baseMapper.selectPage(page, queryWrapper); result.setSuccess(true); result.setResult(pageList); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java index 5fb86559..2fed489e 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysTaskServiceImpl.java @@ -252,18 +252,22 @@ public class SysTaskServiceImpl extends ServiceImpl impl * @param schedulingDate */ private void deleteByDate(Date schedulingDate){ - //根据排班日期查询对应的任务信息 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(schedulingDate, "yyyy-MM-dd")); - List sysTasks = this.baseMapper.selectList(queryWrapper); - //获取任务信息的id - List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); - //根据任务id删除关联的台站信息 - LambdaQueryWrapper taskStationQueryWrapper = new LambdaQueryWrapper<>(); - taskStationQueryWrapper.in(SysTaskStation::getTaskId, taskIds); - sysTaskStationMapper.delete(taskStationQueryWrapper); - //根据任务id删除任务信息 - this.baseMapper.deleteBatchIds(taskIds); + try { + //根据排班日期查询对应的任务信息 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysTask::getSchedulingDate, DateUtils.parseDate(DateUtils.formatDate(schedulingDate, "yyyy-MM-dd"), "yyyy-MM-dd")); + List sysTasks = this.baseMapper.selectList(queryWrapper); + //获取任务信息的id + List taskIds = sysTasks.stream().map(SysTask::getId).collect(Collectors.toList()); + //根据任务id删除关联的台站信息 + LambdaQueryWrapper taskStationQueryWrapper = new LambdaQueryWrapper<>(); + taskStationQueryWrapper.in(SysTaskStation::getTaskId, taskIds); + sysTaskStationMapper.delete(taskStationQueryWrapper); + //根据任务id删除任务信息 + this.baseMapper.deleteBatchIds(taskIds); + } catch (ParseException e) { + throw new RuntimeException(e); + } } @Override @@ -284,40 +288,44 @@ public class SysTaskServiceImpl extends ServiceImpl impl @Transactional public Result changeScheduling(SysTaskChangeVo sysTaskChangeVo) { Result result = new Result(); - //来源用户相关信息查询 - //查询出当前来源用户在排版日期的任务信息 - LambdaQueryWrapper fromQueryWrapper = new LambdaQueryWrapper<>(); - fromQueryWrapper.eq(SysTask::getUserId, sysTaskChangeVo.getFromUserId()); - fromQueryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(sysTaskChangeVo.getDay(), "yyyy-MM-dd")); - SysTask fromSysTask = this.baseMapper.selectOne(fromQueryWrapper); - //根据来源用户的任务以及台站信息查询出对应的任务及台站信息 - LambdaQueryWrapper fromTaskQueryWrapper = new LambdaQueryWrapper<>(); - fromTaskQueryWrapper.eq(SysTaskStation::getTaskId, fromSysTask.getId()); - fromTaskQueryWrapper.in(SysTaskStation::getStationId, sysTaskChangeVo.getStationIds()); - List sysTaskStations = sysTaskStationMapper.selectList(fromTaskQueryWrapper); - //转移到用户相关信息查询 - //查询出当前转移到用户在排班日期的任务信息 - LambdaQueryWrapper toQueryWrapper = new LambdaQueryWrapper<>(); - toQueryWrapper.eq(SysTask::getUserId, sysTaskChangeVo.getToUserId()); - toQueryWrapper.eq(SysTask::getSchedulingDate, DateUtils.formatDate(sysTaskChangeVo.getDay(), "yyyy-MM-dd")); - SysTask toSysTask = this.baseMapper.selectOne(toQueryWrapper); - //台站信息不为空 - if (CollectionUtils.isNotEmpty(sysTaskStations)){ - //遍历当前要进行修改的台站信息 - for (SysTaskStation taskStation:sysTaskStations) { - taskStation.setTaskId(toSysTask.getId()); - sysTaskStationMapper.updateById(taskStation); + try { + //来源用户相关信息查询 + //查询出当前来源用户在排版日期的任务信息 + LambdaQueryWrapper fromQueryWrapper = new LambdaQueryWrapper<>(); + fromQueryWrapper.eq(SysTask::getUserId, sysTaskChangeVo.getFromUserId()); + fromQueryWrapper.eq(SysTask::getSchedulingDate, DateUtils.parseDate(DateUtils.formatDate(sysTaskChangeVo.getDay(), "yyyy-MM-dd"), "yyyy-MM-dd")); + SysTask fromSysTask = this.baseMapper.selectOne(fromQueryWrapper); + //根据来源用户的任务以及台站信息查询出对应的任务及台站信息 + LambdaQueryWrapper fromTaskQueryWrapper = new LambdaQueryWrapper<>(); + fromTaskQueryWrapper.eq(SysTaskStation::getTaskId, fromSysTask.getId()); + fromTaskQueryWrapper.in(SysTaskStation::getStationId, sysTaskChangeVo.getStationIds()); + List sysTaskStations = sysTaskStationMapper.selectList(fromTaskQueryWrapper); + //转移到用户相关信息查询 + //查询出当前转移到用户在排班日期的任务信息 + LambdaQueryWrapper toQueryWrapper = new LambdaQueryWrapper<>(); + toQueryWrapper.eq(SysTask::getUserId, sysTaskChangeVo.getToUserId()); + toQueryWrapper.eq(SysTask::getSchedulingDate, DateUtils.parseDate(DateUtils.formatDate(sysTaskChangeVo.getDay(), "yyyy-MM-dd"), "yyyy-MM-dd")); + SysTask toSysTask = this.baseMapper.selectOne(toQueryWrapper); + //台站信息不为空 + if (CollectionUtils.isNotEmpty(sysTaskStations)){ + //遍历当前要进行修改的台站信息 + for (SysTaskStation taskStation:sysTaskStations) { + taskStation.setTaskId(toSysTask.getId()); + sysTaskStationMapper.updateById(taskStation); + } } + //判断 如果当前来源用户及日期下的排班任务对应的台站信息为空,排班任务信息删除 + LambdaQueryWrapper sysTaskStationQueryWrapper = new LambdaQueryWrapper<>(); + sysTaskStationQueryWrapper.eq(SysTaskStation::getTaskId, fromSysTask.getId()); + List stations = sysTaskStationMapper.selectList(sysTaskStationQueryWrapper); + if (CollectionUtils.isEmpty(stations)){ + this.baseMapper.deleteById(fromSysTask); + } + result.setSuccess(true); + result.success("交接完成"); + } catch (ParseException e) { + throw new RuntimeException(e); } - //判断 如果当前来源用户及日期下的排班任务对应的台站信息为空,排班任务信息删除 - LambdaQueryWrapper sysTaskStationQueryWrapper = new LambdaQueryWrapper<>(); - sysTaskStationQueryWrapper.eq(SysTaskStation::getTaskId, fromSysTask.getId()); - List stations = sysTaskStationMapper.selectList(sysTaskStationQueryWrapper); - if (CollectionUtils.isEmpty(stations)){ - this.baseMapper.deleteById(fromSysTask); - } - result.setSuccess(true); - result.success("交接完成"); return result; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 6933b6b2..07416d20 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -162,7 +162,10 @@ public class SysUserServiceImpl extends ServiceImpl impl if (userIds != null && userIds.size() > 0) { Map useDepNames = this.getDepNamesByUserIds(userIds); pageList.getRecords().forEach(item -> { - item.setOrgCodeTxt(useDepNames.get(item.getId())); + String value = useDepNames.get(item.getId()); + if(StringUtils.isNotBlank(value)){ + item.setOrgCodeTxt(value); + } //查询用户的租户ids List list = userTenantMapper.getTenantIdsByUserId(item.getId()); if (oConvertUtils.isNotEmpty(list)) { diff --git a/jeecg-module-web-statistics/pom.xml b/jeecg-module-web-statistics/pom.xml new file mode 100644 index 00000000..dfbdc067 --- /dev/null +++ b/jeecg-module-web-statistics/pom.xml @@ -0,0 +1,21 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-boot-parent + 3.5.1 + + + jeecg-module-web-statistics + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + \ No newline at end of file diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java b/jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java new file mode 100644 index 00000000..ce963aa1 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java @@ -0,0 +1,7 @@ +package org.jeecgframework.boot; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml new file mode 100644 index 00000000..6441bf98 --- /dev/null +++ b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-server-cloud + 3.5.1 + + + jeecg-web-statistics-start + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + org.jeecgframework.boot + jeecg-module-web-statistics + 3.5.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java new file mode 100644 index 00000000..5faa6415 --- /dev/null +++ b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java @@ -0,0 +1,46 @@ +package org.jeecgframework.boot; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +@Slf4j +@SpringBootApplication +@EnableFeignClients(basePackages = {"org.jeecg"}) +@EnableScheduling +public class JeecgWebStatisticsApplication extends SpringBootServletInitializer implements CommandLineRunner { + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(JeecgWebStatisticsApplication.class); + } + + public static void main(String[] args) throws UnknownHostException { + ConfigurableApplicationContext application = SpringApplication.run(JeecgWebStatisticsApplication.class, args); + Environment env = application.getEnvironment(); + String ip = InetAddress.getLocalHost().getHostAddress(); + String port = env.getProperty("server.port"); + String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path")); + log.info("\n----------------------------------------------------------\n\t" + + "Application Jeecg-Boot is running! Access URLs:\n\t" + + "Local: \t\thttp://localhost:" + port + path + "/doc.html\n" + + "External: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "----------------------------------------------------------"); + } + + @Override + public void run(String... args) throws Exception { + + } +} \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/application.yml b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/application.yml new file mode 100644 index 00000000..68faf27d --- /dev/null +++ b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/application.yml @@ -0,0 +1,18 @@ +server: + port: 7003 + +spring: + application: + name: jeecg-web-statistics + cloud: + nacos: + config: + server-addr: @config.server-addr@ + group: @config.group@ + namespace: @config.namespace@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:jeecg.yaml + - optional:nacos:jeecg-web-statistics-@profile.name@.yaml \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_config.properties b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_config.properties new file mode 100644 index 00000000..44618ab8 --- /dev/null +++ b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_config.properties @@ -0,0 +1,29 @@ +#code_generate_project_path +project_path=E:\\workspace\\jeecg-boot +#bussi_package[User defined] +bussi_package=org.jeecg.modules.demo + + +#default code path +#source_root_package=src +#webroot_package=WebRoot + +#maven code path +source_root_package=src.main.java +webroot_package=src.main.webapp + +#ftl resource url +templatepath=/jeecg/code-template +system_encoding=utf-8 + +#db Table id [User defined] +db_table_id=id + +#db convert flag[true/false] +db_filed_convert=true + +#page Search Field num [User defined] +page_search_filed_num=1 +#page_filter_fields +page_filter_fields=create_time,create_by,update_time,update_by +exclude_table=act_,ext_act_,design_,onl_,sys_,qrtz_ diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_database.properties b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_database.properties new file mode 100644 index 00000000..45b49f60 --- /dev/null +++ b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/jeecg/jeecg_database.properties @@ -0,0 +1,27 @@ +#mysql +diver_name=com.mysql.jdbc.Driver +url=jdbc:mysql://localhost:3306/jeecg-boot?useUnicode=true&characterEncoding=UTF-8 +username=root +password=root +database_name=jeecg-boot + +#oracle +#diver_name=oracle.jdbc.driver.OracleDriver +#url=jdbc:oracle:thin:@192.168.1.200:1521:ORCL +#username=scott +#password=tiger +#database_name=ORCL + +#postgre +#diver_name=org.postgresql.Driver +#url=jdbc:postgresql://localhost:5432/jeecg +#username=postgres +#password=postgres +#database_name=jeecg + +#SQLServer2005\u4ee5\u4e0a +#diver_name=org.hibernate.dialect.SQLServerDialect +#url=jdbc:sqlserver://192.168.1.200:1433;DatabaseName=jeecg +#username=sa +#password=SA +#database_name=jeecg \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/logback-spring.xml b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..60d4c7df --- /dev/null +++ b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/resources/logback-spring.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.log + + 30 + 10MB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n + + + + + + + + ERROR + + + + %p%d%msg%M%F{32}%L + + + ${LOG_HOME}/error-log.html + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/pom.xml b/jeecg-server-cloud/pom.xml index 5c1c53e3..8d2dbf81 100644 --- a/jeecg-server-cloud/pom.xml +++ b/jeecg-server-cloud/pom.xml @@ -22,6 +22,7 @@ jeecg-visual jeecg-station-operation-start + jeecg-web-statistics-start \ No newline at end of file diff --git a/pom.xml b/pom.xml index 96dd5396..57faaf08 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,8 @@ jeecg-module-system jeecg-module-log-manage jeecg-module-station-operation - + jeecg-module-web-statistics + @@ -179,6 +180,12 @@ jeecg-module-station-operation ${jeecgboot.version} + + + org.jeecgframework.boot + jeecg-module-web-statistics + ${jeecgboot.version} + org.jeecgframework.boot From 1095f9345b114fa9e1a9e6a5ef3ed821104bd6c4 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 5 Jun 2023 15:54:05 +0800 Subject: [PATCH 13/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9web-statistics=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E9=85=8D=E7=BD=AE=20=E6=96=B0=E5=A2=9E=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2=E9=A2=97=E7=B2=92=E7=89=A9=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9E=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2=E7=8A=B6=E6=80=81=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9E=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=B0=94=E8=B1=A1=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WebStatisticsController.java | 48 ++++++++++ .../jeecg/modules/entity/GardsMetData.java | 61 +++++++++++++ .../jeecg/modules/entity/GardsSampleData.java | 91 +++++++++++++++++++ .../jeecg/modules/entity/GardsSohData.java | 54 +++++++++++ .../modules/mapper/GardsMetDataMapper.java | 7 ++ .../modules/mapper/GardsSampleDataMapper.java | 7 ++ .../modules/mapper/GardsSohDataMapper.java | 7 ++ .../modules/service/IGardsMetDataService.java | 12 +++ .../service/IGardsSampleDataService.java | 18 ++++ .../modules/service/IGardsSohDataService.java | 12 +++ .../service/impl/GardsMetDataServiceImpl.java | 34 +++++++ .../impl/GardsSampleDataServiceImpl.java | 70 ++++++++++++++ .../service/impl/GardsSohDataServiceImpl.java | 53 +++++++++++ .../modules/system/entity/GardsDetectors.java | 73 +++++++++++++++ .../modules/system/entity/GardsStations.java | 57 ++++++++++++ .../java/org/jeecgframework/boot/Main.java | 7 -- .../JeecgWebStatisticsApplication.java | 2 +- 17 files changed, 605 insertions(+), 8 deletions(-) create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java delete mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java rename jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/{jeecgframework/boot => jeecg}/JeecgWebStatisticsApplication.java (98%) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java new file mode 100644 index 00000000..f71e2810 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -0,0 +1,48 @@ +package org.jeecg.modules.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsMetData; +import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.entity.GardsSohData; +import org.jeecg.modules.service.IGardsMetDataService; +import org.jeecg.modules.service.IGardsSampleDataService; +import org.jeecg.modules.service.IGardsSohDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("webStatistics") +@Api(value = "统计分析管理", tags = "统计分析管理") +public class WebStatisticsController { + + @Autowired + private IGardsSampleDataService gardsSampleDataService; + @Autowired + private IGardsMetDataService gardsMetDataService; + @Autowired + private IGardsSohDataService gardsSohDataService; + + @GetMapping("findParticulatePage") + @ApiOperation(value = "颗粒物分页查询", notes = "颗粒物分页查询") + public Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData){ + return gardsSampleDataService.findParticulatePage(queryRequest, gardsSampleData); + } + + @GetMapping("findMetPage") + @ApiOperation(value = "气象数据分页查询", notes = "气象数据分页查询") + public Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData){ + return gardsMetDataService.findMetPage(queryRequest, gardsMetData); + } + + @GetMapping("findSohPage") + @ApiOperation(value = "状态数据分页查询", notes = "状态数据分页查询") + public Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData){ + return gardsSohDataService.findSohPage(queryRequest, gardsSohData); + } + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java new file mode 100644 index 00000000..4af992d2 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java @@ -0,0 +1,61 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "gards_met_data") +public class GardsMetData implements Serializable { + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(value = "STATION_CODE") + private String stationCode; + + @TableField(value = "MET_ID") + private Integer metId; + + @TableField(value = "START_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + @TableField(value = "END_TIME") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + @TableField(value = "AVE_HUMIDITY") + private Integer aveHumidity; + + @TableField(value = "AVGTEMPERATURE") + private Integer avgtemperature; + + @TableField(value = "AVE_PRESSURE") + private Integer avePressure; + + @TableField(value = "AVE_WIND_DIR") + private Integer aveWindDir; + + @TableField(value = "AVE_WIND_SPEED") + private Integer aveWindSpeed; + + @TableField(value = "RAINFALL") + private Integer rainfall; + + @TableField(value = "INPUT_FILE_NAME") + private String inputFileName; + + @TableField(value = "MODDATE") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java new file mode 100644 index 00000000..9711132d --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java @@ -0,0 +1,91 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "gards_sample_data") +public class GardsSampleData implements Serializable { + + @TableField(value = "SITE_DET_CODE") + private String siteDetCode; + + @TableField(value = "SAMPLE_ID") + private Integer sampleId; + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(value = "DETECTOR_ID") + private Integer detectorId; + + @TableField(value = "INPUT_FILE_NAME") + private String inputFileName; + + @TableField(value = "SAMPLE_TYPE") + private String sampleType; + + @TableField(value = "DATA_TYPE") + private String dataType; + + @TableField(value = "GEOMETRY") + private String geometry; + + @TableField(value = "SPECTRAL_QUALIFIE") + private String spectralQualifie; + + @TableField(value = "TRANSMIT_DTG") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date transmitDtg; + + @TableField(value = "COLLECT_START") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date collectStart; + + @TableField(value = "COLLECT_STOP") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date collectStop; + + @TableField(value = "ACQUISITION_START") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date acquisitionStart; + + @TableField(value = "ACQUISITION_STOP") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date acquisitionStop; + + @TableField(value = "ACQUISITION_REAL_SEC") + private Integer acquisitionRealSec; + + @TableField(value = "ACQUISITION_LIVE_SEC") + private Integer acquisitionLiveSec; + + @TableField(value = "QUANTITY") + private Integer quantity; + + @TableField(value = "STATUS") + private String status; + + @TableField(value = "MODDATE") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + + @TableField(exist = false) + private String stationName; + + @TableField(exist = false) + private String detectorName; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java new file mode 100644 index 00000000..453498a3 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java @@ -0,0 +1,54 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "gards_soh_data") +public class GardsSohData implements Serializable { + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(value = "STATION_CODE") + private String stationCode; + + @TableField(value = "SOH_ID") + private Integer sohId; + + @TableField(value = "START_TIME") + private Date startTime; + + @TableField(value = "TIME") + private Integer time; + + @TableField(value = "AVGFLOWRATE") + private Integer avgflowrate; + + @TableField(value = "FLOWRATEDEV") + private Integer flowratedev; + + @TableField(value = "INPUT_FILE_NAME") + private String inputFileName; + + @TableField(value = "DETECTOR_ID") + private Integer detectorId; + + @TableField(value = "MODDATE") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + + @TableField(exist = false) + private String stationName; + + @TableField(exist = false) + private String detectorName; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java new file mode 100644 index 00000000..85e6c432 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsMetData; + +public interface GardsMetDataMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java new file mode 100644 index 00000000..4f12f430 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsSampleData; + +public interface GardsSampleDataMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java new file mode 100644 index 00000000..21c14556 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsSohData; + +public interface GardsSohDataMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java new file mode 100644 index 00000000..107f6c10 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsMetData; + +public interface IGardsMetDataService extends IService { + + Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData); + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java new file mode 100644 index 00000000..824d6025 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsSampleData; + +public interface IGardsSampleDataService extends IService { + + /** + * 分页查询颗粒物相关数据 + * @param queryRequest + * @param gardsSampleData + * @return + */ + Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData); + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java new file mode 100644 index 00000000..002dd1a7 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsSohData; + +public interface IGardsSohDataService extends IService { + + Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData); + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java new file mode 100644 index 00000000..bd7fb693 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java @@ -0,0 +1,34 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsMetData; +import org.jeecg.modules.mapper.GardsMetDataMapper; +import org.jeecg.modules.service.IGardsMetDataService; +import org.springframework.stereotype.Service; + +import java.util.Objects; + +@Service("gardsMetDataService") +@DS("ori") +public class GardsMetDataServiceImpl extends ServiceImpl implements IGardsMetDataService { + + @Override + public Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData) { + Result result = new Result(); + Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Objects.nonNull(gardsMetData.getStationId()), GardsMetData::getStationId, gardsMetData.getStationId()); + queryWrapper.ge(Objects.nonNull(gardsMetData.getStartTime()), GardsMetData::getStartTime, gardsMetData.getStartTime()); + queryWrapper.le(Objects.nonNull(gardsMetData.getEndTime()), GardsMetData::getEndTime, gardsMetData.getEndTime()); + Page metDataPage = this.baseMapper.selectPage(page, queryWrapper); + result.setSuccess(true); + result.setResult(metDataPage); + return result; + } + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java new file mode 100644 index 00000000..7efcfbd3 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -0,0 +1,70 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.mapper.GardsSampleDataMapper; +import org.jeecg.modules.service.IGardsSampleDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +@Service("gardsSampleDataService") +@DS("ori") +public class GardsSampleDataServiceImpl extends ServiceImpl implements IGardsSampleDataService { + + @Autowired + private RedisUtil redisUtil; + + @Override + public Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData) { + Result result = new Result(); + //获取redis中缓存的台站信息 + Map stationMap = (Map)redisUtil.get("stationMap"); + //获取redis中缓存的探测器信息 + Map detectorsMap = (Map)redisUtil.get("detectorsMap"); + + if (StringUtils.isBlank(gardsSampleData.getSampleType())){ + result.error500("系统类型不能为空"); + return result; + } + if (StringUtils.isBlank(gardsSampleData.getDataType())) { + result.error500("数据类型不能为空"); + return result; + } + //声明page + Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + //声明Lambda 传递参数进行条件查询 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(GardsSampleData::getSampleType, gardsSampleData.getSampleType()); + queryWrapper.eq(GardsSampleData::getDataType, gardsSampleData.getDataType()); + queryWrapper.eq(Objects.nonNull(gardsSampleData.getStationId()), GardsSampleData::getStationId, gardsSampleData.getStationId()); + queryWrapper.ge(Objects.nonNull(gardsSampleData.getAcquisitionStart()), GardsSampleData::getAcquisitionStart, gardsSampleData.getAcquisitionStart()); + queryWrapper.le(Objects.nonNull(gardsSampleData.getAcquisitionStop()), GardsSampleData::getAcquisitionStop, gardsSampleData.getAcquisitionStop()); + //进行分页查询 + Page sampleDataPage = this.baseMapper.selectPage(page, queryWrapper); + sampleDataPage.getRecords().forEach(item->{ + if (stationMap.containsKey(item.getStationId().toString())){ + String stationName = stationMap.get(item.getStationId().toString()); + item.setStationName(stationName); + } + if (detectorsMap.containsKey(item.getDetectorId().toString())){ + String detectorName = detectorsMap.get(item.getDetectorId().toString()); + item.setDetectorName(detectorName); + } + }); + result.setSuccess(true); + result.setResult(sampleDataPage); + return result; + } + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java new file mode 100644 index 00000000..a18b6941 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java @@ -0,0 +1,53 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.entity.GardsSohData; +import org.jeecg.modules.mapper.GardsSohDataMapper; +import org.jeecg.modules.service.IGardsSohDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Objects; + +@Service("gardsSohDataService") +@DS("ori") +public class GardsSohDataServiceImpl extends ServiceImpl implements IGardsSohDataService { + + @Autowired + private RedisUtil redisUtil; + + @Override + public Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData) { + Result result = new Result(); + //获取redis中缓存的台站信息 + Map stationMap = (Map)redisUtil.get("stationMap"); + //获取redis中缓存的探测器信息 + Map detectorsMap = (Map)redisUtil.get("detectorsMap"); + Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Objects.nonNull(gardsSohData.getStationId()), GardsSohData::getStationId, gardsSohData.getStationId()); + Page sohDataPage = this.baseMapper.selectPage(page, queryWrapper); + sohDataPage.getRecords().forEach(item->{ + if (Objects.nonNull(item.getStationId()) && stationMap.containsKey(item.getStationId().toString())){ + String stationName = stationMap.get(item.getStationId().toString()); + item.setStationName(stationName); + } + if (Objects.nonNull(item.getDetectorId()) && detectorsMap.containsKey(item.getDetectorId().toString())){ + String detectorName = detectorsMap.get(item.getDetectorId().toString()); + item.setDetectorName(detectorName); + } + }); + result.setSuccess(true); + result.setResult(sohDataPage); + return result; + } + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java new file mode 100644 index 00000000..c6e2e0a0 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java @@ -0,0 +1,73 @@ +package org.jeecg.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.jeecg.config.valid.InsertGroup; +import org.jeecg.config.valid.UpdateGroup; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("GARDS_DETECTORS") +public class GardsDetectors implements Serializable { + + @TableField(value = "DETECTOR_ID") + private Integer detectorId; + + @TableField(value = "DETECTOR_CODE") + private String detectorCode; + + @TableField(value = "LON") + private Double lon; + + @TableField(value = "LAT") + private Double lat; + + @TableField(value = "TYPE") + private String type; + + @TableField(value = "CHANNELS") + private Double channels; + + @TableField(value = "RATED_EFFICIENCY") + private Double ratedEfficiency; + + @TableField(value = "RATED_RESOLUTION") + private Double ratedResolution; + + @TableField(value = "ECAL_RANGE_MAX") + private Double ecalRangeMax; + + @TableField(value = "DATE_BEGIN") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date dateBegin; + + @TableField(value = "DATE_END") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date dateEnd; + + @TableField(value = "STATUS") + private String status; + + @TableField(value = "DESCRIPTION") + private String description; + + @TableField(value = "MODDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(exist = false) + private String stationName; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java new file mode 100644 index 00000000..898e238d --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java @@ -0,0 +1,57 @@ +package org.jeecg.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "GARDS_STATIONS") +public class GardsStations implements Serializable { + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(value = "STATION_CODE") + private String stationCode; + + @TableField(value = "COUNTRY_CODE") + private String countryCode; + + @TableField(value = "TYPE") + private String type; + + @TableField(value = "LON") + private Double lon; + + @TableField(value = "LAT") + private Double lat; + + @TableField(value = "ELEVATION") + private Double elevation; + + @TableField(value = "DESCRIPTION") + private String description; + + @TableField(value = "DATE_BEGIN") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dateBegin; + + @TableField(value = "DATE_END") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date dateEnd; + + @TableField(value = "STATUS") + private String status; + + @TableField(value = "MODDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java b/jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java deleted file mode 100644 index ce963aa1..00000000 --- a/jeecg-module-web-statistics/src/main/java/org/jeecgframework/boot/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecgframework.boot; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java similarity index 98% rename from jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java rename to jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java index 5faa6415..a31e14aa 100644 --- a/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecgframework/boot/JeecgWebStatisticsApplication.java +++ b/jeecg-server-cloud/jeecg-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java @@ -1,4 +1,4 @@ -package org.jeecgframework.boot; +package org.jeecg; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.util.oConvertUtils; From b6c3f270f826ca24115627294c9ca2973887ea5e Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 8 Jun 2023 11:05:07 +0800 Subject: [PATCH 14/64] =?UTF-8?q?ftp=E5=B7=A5=E5=85=B7=E7=B1=BB=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-boot-base-core/pom.xml | 6 +++ .../java/org/jeecg/common/util/FTPUtil.java | 42 ------------------ jeecg-module-log-manage/pom.xml | 6 --- .../controller/LogManageController.java | 43 ++++++++++++++++++- 4 files changed, 48 insertions(+), 49 deletions(-) rename {jeecg-module-log-manage => jeecg-boot-base-core}/src/main/java/org/jeecg/common/util/FTPUtil.java (62%) diff --git a/jeecg-boot-base-core/pom.xml b/jeecg-boot-base-core/pom.xml index dd73b651..6775e78a 100644 --- a/jeecg-boot-base-core/pom.xml +++ b/jeecg-boot-base-core/pom.xml @@ -252,6 +252,12 @@ commons-fileupload commons-fileupload + + + commons-net + commons-net + 3.3 + \ No newline at end of file diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java similarity index 62% rename from jeecg-module-log-manage/src/main/java/org/jeecg/common/util/FTPUtil.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index d8fb73d2..bd5f49e5 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; -import org.jeecg.modules.entity.LogManage; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -61,47 +60,6 @@ public class FTPUtil { return ftp; } - /** - * 遍历查询当前路径下的文件夹信息 - * @param ftp - * @param list - * @param filePath 以"/"开始和结束 - * @return - */ - public List findDirectory(FTPClient ftp,List list,Integer parentNum,String filePath){ - try { - if (filePath.indexOf("/")>0){ - List paths = Arrays.asList(filePath.split("/")); - for (String path:paths) { - ftp.changeWorkingDirectory(path); - } - } - List ftpFiles = Arrays.asList(ftp.listDirectories()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - int num =1; - for (FTPFile file : ftpFiles) { - if (file.isDirectory()) { - LogManage logManage = new LogManage(); - logManage.setName(file.getName()); - logManage.setOrderNum(num); - logManage.setParentNum(parentNum); - logManage.setPath(filePath +"/"+ file.getName()); - list.add(logManage); - num++; - // 需要加此判断。否则,ftp默认将‘项目文件所在目录之下的目录(./)’与‘项目文件所在目录向上一级目录下的目录(../)’都纳入递归,这样下去就陷入一个死循环了。需将其过滤掉。 - if (!".".equals(file.getName()) && !"..".equals(file.getName())) { - findDirectory(ftp,list,num,filePath +"/"+ file.getName()); - ftp.changeToParentDirectory(); - } - } - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return list; - } - public InputStream downloadFTPFile(String localPath, String fileName){ InputStream in = null; //传输模式 diff --git a/jeecg-module-log-manage/pom.xml b/jeecg-module-log-manage/pom.xml index dbb0118b..cf2bd5ba 100644 --- a/jeecg-module-log-manage/pom.xml +++ b/jeecg-module-log-manage/pom.xml @@ -16,12 +16,6 @@ org.jeecgframework.boot jeecg-boot-base-core - - - commons-net - commons-net - 3.3 - diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java index 69050723..4c663b7c 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java @@ -57,7 +57,7 @@ public class LogManageController { if (CollectionUtils.isNotEmpty(result)){ List list = new LinkedList<>(); for (LogManage logManage:result) { - list = ftpUtil.findDirectory(ftpClient, list, logManage.getOrderNum(), workPath + "/" + logManage.getName()); + list = this.findDirectory(ftpClient, list, logManage.getOrderNum(), workPath + "/" + logManage.getName()); ftpClient.changeToParentDirectory(); } result.addAll(list); @@ -69,6 +69,47 @@ public class LogManageController { return result; } + /** + * 遍历查询当前路径下的文件夹信息 + * @param ftp + * @param list + * @param filePath 以"/"开始和结束 + * @return + */ + public List findDirectory(FTPClient ftp,List list,Integer parentNum,String filePath){ + try { + if (filePath.indexOf("/")>0){ + List paths = Arrays.asList(filePath.split("/")); + for (String path:paths) { + ftp.changeWorkingDirectory(path); + } + } + List ftpFiles = Arrays.asList(ftp.listDirectories()); + if (CollectionUtils.isNotEmpty(ftpFiles)){ + int num =1; + for (FTPFile file : ftpFiles) { + if (file.isDirectory()) { + LogManage logManage = new LogManage(); + logManage.setName(file.getName()); + logManage.setOrderNum(num); + logManage.setParentNum(parentNum); + logManage.setPath(filePath +"/"+ file.getName()); + list.add(logManage); + num++; + // 需要加此判断。否则,ftp默认将‘项目文件所在目录之下的目录(./)’与‘项目文件所在目录向上一级目录下的目录(../)’都纳入递归,这样下去就陷入一个死循环了。需将其过滤掉。 + if (!".".equals(file.getName()) && !"..".equals(file.getName())) { + findDirectory(ftp,list,num,filePath +"/"+ file.getName()); + ftp.changeToParentDirectory(); + } + } + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return list; + } + /** * 将当前的文件夹转换成树形结构 * @param logManages From 3347b16dde2870e500188c72787407a551e410d1 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 12 Jun 2023 09:11:52 +0800 Subject: [PATCH 15/64] =?UTF-8?q?=E5=88=86=E7=A6=BBLog=20Manage=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=20=E5=AE=9E=E7=8E=B0=E7=BB=9F=E8=AE=A1=E5=88=86?= =?UTF-8?q?=E6=9E=90=E7=AE=A1=E7=90=86=20=E6=A0=B9=E6=8D=AE=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=90=8D=E7=A7=B0=E6=9F=A5=E8=AF=A2=E5=AF=B9=E5=BA=94?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E6=B0=94?= =?UTF-8?q?=E6=BA=B6=E8=83=B6=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E6=B0=94?= =?UTF-8?q?=E8=B1=A1=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=B0=94=E6=BA=B6=E8=83=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=20=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=B0=94=E6=BA=B6=E8=83=B6ENERGY=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3=20=E5=AE=9E=E7=8E=B0=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1=E7=90=86=20=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=B0=94=E6=BA=B6=E8=83=B6RESOLUTION=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3=20=E5=AE=9E=E7=8E=B0=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1=E7=90=86=20=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=B0=94=E6=BA=B6=E8=83=B6EFFICIENCY=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3=20=E5=AE=9E=E7=8E=B0=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=88=86=E6=9E=90=E7=AE=A1=E7=90=86=20=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=B0=94=E6=BA=B6=E8=83=B6CERTIFICATE=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WebStatisticsController.java | 67 ++++- .../entity/GardsCalibrationPairsOrig.java | 40 +++ .../jeecg/modules/entity/GardsSampleAux.java | 56 +++++ .../jeecg/modules/entity/GardsSampleCert.java | 26 ++ .../modules/entity/GardsSampleCertLine.java | 46 ++++ .../jeecg/modules/entity/GardsSampleData.java | 9 +- .../org/jeecg/modules/entity/SysDict.java | 50 ++++ .../GardsCalibrationPairsOrigMapper.java | 7 + .../modules/mapper/GardsSampleAuxMapper.java | 7 + .../mapper/GardsSampleCertLineMapper.java | 7 + .../modules/mapper/GardsSampleCertMapper.java | 7 + .../jeecg/modules/mapper/SysDictMapper.java | 7 + .../modules/service/IGardsMetDataService.java | 14 +- .../service/IGardsSampleCertService.java | 11 + .../service/IGardsSampleDataService.java | 42 +++- .../modules/service/IGardsSohDataService.java | 13 +- .../modules/service/ISysDictService.java | 16 ++ .../service/impl/GardsMetDataServiceImpl.java | 46 +++- .../impl/GardsSampleCertServiceImpl.java | 51 ++++ .../impl/GardsSampleDataServiceImpl.java | 236 +++++++++++++++--- .../service/impl/GardsSohDataServiceImpl.java | 61 +++-- .../service/impl/SysDictServiceImpl.java | 63 +++++ .../jeecg-log-manage-start/pom.xml | 42 ++++ .../org/jeecg/JeecgLogManageApplication.java | 47 ++++ .../src/main/resources/application.yml | 18 ++ .../src/main/resources/logback-spring.xml | 77 ++++++ .../jeecg-system-cloud-start/pom.xml | 5 - jeecg-server-cloud/pom.xml | 1 + pom.xml | 2 +- 29 files changed, 980 insertions(+), 94 deletions(-) create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/SysDict.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsCalibrationPairsOrigMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleAuxMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertLineMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDictMapper.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleCertService.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/ISysDictService.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleCertServiceImpl.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java create mode 100644 jeecg-server-cloud/jeecg-log-manage-start/pom.xml create mode 100644 jeecg-server-cloud/jeecg-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java create mode 100644 jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/application.yml create mode 100644 jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/logback-spring.xml diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java index f71e2810..65c7f2f2 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -7,13 +7,18 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsMetData; import org.jeecg.modules.entity.GardsSampleData; import org.jeecg.modules.entity.GardsSohData; -import org.jeecg.modules.service.IGardsMetDataService; -import org.jeecg.modules.service.IGardsSampleDataService; -import org.jeecg.modules.service.IGardsSohDataService; +import org.jeecg.modules.service.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.util.Date; +import java.util.List; @RestController @RequestMapping("webStatistics") @@ -26,23 +31,65 @@ public class WebStatisticsController { private IGardsMetDataService gardsMetDataService; @Autowired private IGardsSohDataService gardsSohDataService; + @Autowired + private ISysDictService sysDictService; + @Autowired + private IGardsSampleCertService gardsSampleCertService; + + @GetMapping("findStationList") + @ApiOperation(value = "根据菜单名称查询对应的台站信息", notes = "根据菜单名称查询对应的台站信息") + public Result findStationList(String menuName){ + return sysDictService.findList(menuName); + } @GetMapping("findParticulatePage") - @ApiOperation(value = "颗粒物分页查询", notes = "颗粒物分页查询") - public Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData){ - return gardsSampleDataService.findParticulatePage(queryRequest, gardsSampleData); + @ApiOperation(value = "气溶胶分页查询", notes = "气溶胶分页查询") + public Result findParticulatePage(QueryRequest queryRequest, List stationIds, String dataType, + String spectralQualifie, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return gardsSampleDataService.findParticulatePage(queryRequest, stationIds, dataType, spectralQualifie, startTime, endTime); } @GetMapping("findMetPage") @ApiOperation(value = "气象数据分页查询", notes = "气象数据分页查询") - public Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData){ - return gardsMetDataService.findMetPage(queryRequest, gardsMetData); + public Result findMetPage(QueryRequest queryRequest, List stationIds,@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return gardsMetDataService.findMetPage(queryRequest, stationIds, startTime, endTime); } @GetMapping("findSohPage") @ApiOperation(value = "状态数据分页查询", notes = "状态数据分页查询") - public Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData){ - return gardsSohDataService.findSohPage(queryRequest, gardsSohData); + public Result findSohPage(QueryRequest queryRequest, List stationIds,@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return gardsSohDataService.findSohPage(queryRequest, stationIds, startTime, endTime); + } + + @GetMapping("findParticulateInfo") + @ApiOperation(value = "查看IMS DATA下气溶胶数据详情", notes = "查看IMS DATA下气溶胶数据详情") + public Result findParticulateInfo(Integer sampleId){ + return gardsSampleDataService.findParticulateInfo(sampleId); + } + + @GetMapping("findParticulateEnergy") + @ApiOperation(value = "查看IMS DATA下气溶胶ENERGY数据", notes = "查看IMS DATA下气溶胶ENERGY数据") + public Result findParticulateEnergy(Integer sampleId){ + return gardsSampleDataService.findParticulateEnergy(sampleId); + } + + @GetMapping("findParticulateResolution") + @ApiOperation(value = "查看IMS DATA下气溶胶RESOLUTION数据", notes = "查看IMS DATA下气溶胶RESOLUTION数据") + public Result findParticulateResolution(Integer sampleId){ + return gardsSampleDataService.findParticulateResolution(sampleId); + } + + @GetMapping("findParticulateEfficiency") + @ApiOperation(value = "查看IMS DATA下气溶胶EFFICIENCY数据", notes = "查看IMS DATA下气溶胶EFFICIENCY数据") + public Result findParticulateEfficiency(Integer sampleId){ + return gardsSampleDataService.findParticulateEfficiency(sampleId); + } + + + @GetMapping("findParticulateCertificate") + @ApiOperation(value = "查看IMS DATA下气溶胶CERTIFICATE数据", notes = "查看IMS DATA下气溶胶CERTIFICATE数据") + public Result findParticulateCertificate(Integer sampleId){ + return gardsSampleCertService.findParticulateCertificate(sampleId); } } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java new file mode 100644 index 00000000..8ef8929e --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java @@ -0,0 +1,40 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName(value = "gards_calibration_pairs_orig") +public class GardsCalibrationPairsOrig implements Serializable { + + @TableField(value = "SAMPLE_ID") + private Integer sampleId; + + @TableField(value = "SAMPLE_TYPE") + private String sampleType; + + @TableField(value = "CALTYPE") + private String caltype; + + @TableField(value = "INPUT") + private String input; + + @TableField(value = "IDCALPOINT") + private Integer idcalpoint; + + @TableField(value = "XVALUE") + private Double xvalue; + + @TableField(value = "YVALUE") + private Double yvalue; + + @TableField(value = "UNCYVALUE") + private Double uncyvalue; + + @TableField(value = "DECAY_MODE") + private String decayMode; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java new file mode 100644 index 00000000..e2427bb1 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java @@ -0,0 +1,56 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "gards_sample_aux") +public class GardsSampleAux implements Serializable { + + @TableField(value = "SAMPLE_ID") + private Integer sampleId; + + @TableField(value = "SAMPLE_REF_ID") + private String sampleRefId; + + @TableField(value = "MEASUREMENT_ID") + private String measurementId; + + @TableField(value = "BKGD_MEASUREMENT_ID") + private String bkgdMeasurementId; + + @TableField(value = "GAS_BKGD_MEASUREMENT_ID") + private String gasBkgdMeasurementId; + + @TableField(value = "SAMPLE_HEIGHT") + private Double sampleHeight; + + @TableField(value = "SAMPLE_DIAMETER") + private Double sampleDiameter; + + @TableField(value = "CALIBRATION_DTG") + private Date calibrationDtg; + + @TableField(value = "MSG_ID") + private String msgId; + + @TableField(value = "ARCHIVE_BOTTLE_ID") + private String archiveBottleId; + + @TableField(value = "XE_VOLUME") + private Double xeVolume; + + @TableField(value = "XE_VOLUME_UNCER") + private Double xeVolumeUncer; + + @TableField(value = "XE_COLLECTION_YIED") + private Double xeCollectionYied; + + @TableField(value = "XE_COLLECTION_YIED_UNCER") + private Double xeCollectionYiedUncer; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java new file mode 100644 index 00000000..2cb3dc07 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "gards_sample_cert") +public class GardsSampleCert implements Serializable { + + @TableField(value = "SAMPLE_ID") + private Integer sampleId; + + @TableField(value = "QUANTITY") + private Integer quantity; + + @TableField(value = "ASSAY_DATE") + private Date assayDate; + + @TableField(value = "UNIT") + private String unit; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java new file mode 100644 index 00000000..21830cff --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java @@ -0,0 +1,46 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName(value = "gards_sample_cert_line") +public class GardsSampleCertLine implements Serializable { + + @TableField(value = "SAMPLE_ID") + private Integer sampleId; + + @TableField(value = "NUCL_NAME") + private String nuclName; + + @TableField(value = "HALFLIFE") + private String halflife; + + @TableField(value = "ENERGY") + private Integer energy; + + @TableField(value = "ACTIVITY") + private Integer activity; + + @TableField(value = "ERROR") + private Integer error; + + @TableField(value = "ABUNDANCE") + private Integer abundance; + + @TableField(value = "B_ABUNDANCE") + private Integer bAbundance; + + @TableField(value = "B_ENERGY") + private Integer bEnergy; + + @TableField(value = "DECAY_MODE") + private String decayMode; + + @TableField(value = "HALFLIFT_UNIT") + private String halfliftUnit; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java index 9711132d..0167ffe5 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java @@ -66,13 +66,13 @@ public class GardsSampleData implements Serializable { private Date acquisitionStop; @TableField(value = "ACQUISITION_REAL_SEC") - private Integer acquisitionRealSec; + private Double acquisitionRealSec; @TableField(value = "ACQUISITION_LIVE_SEC") - private Integer acquisitionLiveSec; + private Double acquisitionLiveSec; @TableField(value = "QUANTITY") - private Integer quantity; + private Double quantity; @TableField(value = "STATUS") private String status; @@ -85,7 +85,4 @@ public class GardsSampleData implements Serializable { @TableField(exist = false) private String stationName; - @TableField(exist = false) - private String detectorName; - } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/SysDict.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/SysDict.java new file mode 100644 index 00000000..8bca9136 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/SysDict.java @@ -0,0 +1,50 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName(value = "sys_dict") +public class SysDict implements Serializable { + + @TableField(value = "id") + private String id; + + @TableField(value = "dict_name") + private String dictName; + + @TableField(value = "dict_code") + private String dictCode; + + @TableField(value = "description") + private String description; + + @TableField(value = "del_flag") + private Integer delFlag; + + @TableField(value = "create_by") + private String createBy; + + @TableField(value = "create_time") + private Date createTime; + + @TableField(value = "update_by") + private String updateBy; + + @TableField(value = "update_time") + private Date updateTime; + + @TableField(value = "type") + private Integer type; + + @TableField(value = "tenant_id") + private Integer tenantId; + + @TableField(value = "low_app_id") + private String lowAppId; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsCalibrationPairsOrigMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsCalibrationPairsOrigMapper.java new file mode 100644 index 00000000..e71c3024 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsCalibrationPairsOrigMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsCalibrationPairsOrig; + +public interface GardsCalibrationPairsOrigMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleAuxMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleAuxMapper.java new file mode 100644 index 00000000..e92f66b1 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleAuxMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsSampleAux; + +public interface GardsSampleAuxMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertLineMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertLineMapper.java new file mode 100644 index 00000000..15f9efa9 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertLineMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsSampleCertLine; + +public interface GardsSampleCertLineMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertMapper.java new file mode 100644 index 00000000..386c3f59 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleCertMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsSampleCert; + +public interface GardsSampleCertMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDictMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDictMapper.java new file mode 100644 index 00000000..948c1789 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDictMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.SysDict; + +public interface SysDictMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java index 107f6c10..ad1555e1 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java @@ -4,9 +4,21 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsMetData; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; public interface IGardsMetDataService extends IService { - Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData); + /** + * 分页查询气象数据信息 + * @param queryRequest + * @param stationIds + * @param startTime + * @param endTime + * @return + */ + Result findMetPage(QueryRequest queryRequest, List stationIds, Date startTime, Date endTime); } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleCertService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleCertService.java new file mode 100644 index 00000000..bbb1acc0 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleCertService.java @@ -0,0 +1,11 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsSampleCert; + +public interface IGardsSampleCertService extends IService { + + Result findParticulateCertificate(Integer sampleId); + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java index 824d6025..3addf787 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java @@ -5,14 +5,50 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsSampleData; +import java.util.Date; +import java.util.List; + + public interface IGardsSampleDataService extends IService { /** - * 分页查询颗粒物相关数据 + * 分页查询气溶胶相关数据 * @param queryRequest - * @param gardsSampleData + * @param stationIds + * @param dataType + * @param spectralQualifie + * @param startTime + * @param endTime * @return */ - Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData); + Result findParticulatePage(QueryRequest queryRequest, List stationIds, String dataType, String spectralQualifie, Date startTime,Date endTime); + + /** + * 查询谱数据详细信息 + * @param sampleId + * @return + */ + Result findParticulateInfo(Integer sampleId); + + /** + * 查询谱数据的能量数据 + * @param sampleId + * @return + */ + Result findParticulateEnergy(Integer sampleId); + + /** + * 查询 + * @param sampleId + * @return + */ + Result findParticulateResolution(Integer sampleId); + + /** + * 查询 + * @param sampleId + * @return + */ + Result findParticulateEfficiency(Integer sampleId); } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java index 002dd1a7..7122afcd 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java @@ -5,8 +5,19 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsSohData; +import java.util.Date; +import java.util.List; + public interface IGardsSohDataService extends IService { - Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData); + /** + * 分页查询状态数据信息 + * @param queryRequest + * @param stationIds + * @param startTime + * @param endTime + * @return + */ + Result findSohPage(QueryRequest queryRequest, List stationIds, Date startTime, Date endTime); } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/ISysDictService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/ISysDictService.java new file mode 100644 index 00000000..e4b799b9 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/ISysDictService.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.SysDict; + +public interface ISysDictService extends IService { + + /** + * 根据系统类型查询对应的台站信息 + * @param menuName + * @return + */ + Result findList(String menuName); + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java index bd7fb693..8770a2bd 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java @@ -2,15 +2,21 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; import org.jeecg.modules.entity.GardsMetData; import org.jeecg.modules.mapper.GardsMetDataMapper; import org.jeecg.modules.service.IGardsMetDataService; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.util.Date; +import java.util.List; import java.util.Objects; @Service("gardsMetDataService") @@ -18,17 +24,35 @@ import java.util.Objects; public class GardsMetDataServiceImpl extends ServiceImpl implements IGardsMetDataService { @Override - public Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData) { - Result result = new Result(); - Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(Objects.nonNull(gardsMetData.getStationId()), GardsMetData::getStationId, gardsMetData.getStationId()); - queryWrapper.ge(Objects.nonNull(gardsMetData.getStartTime()), GardsMetData::getStartTime, gardsMetData.getStartTime()); - queryWrapper.le(Objects.nonNull(gardsMetData.getEndTime()), GardsMetData::getEndTime, gardsMetData.getEndTime()); - Page metDataPage = this.baseMapper.selectPage(page, queryWrapper); - result.setSuccess(true); - result.setResult(metDataPage); - return result; + public Result findMetPage(QueryRequest queryRequest, List stationIds, Date startTime, Date endTime) { + try { + Result result = new Result(); + if (CollectionUtils.isEmpty(stationIds)){ + result.error500("台站信息不能为空"); + return result; + } + if (Objects.isNull(startTime)){ + result.error500("开始时间不能为空"); + return result; + } + if (Objects.isNull(endTime)){ + result.error500("结束时间不能为空"); + return result; + } + Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss"); + Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(GardsMetData::getStationId, stationIds); + queryWrapper.ge(GardsMetData::getStartTime, startDate); + queryWrapper.le(GardsMetData::getEndTime, endDate); + Page metDataPage = this.baseMapper.selectPage(page, queryWrapper); + result.setSuccess(true); + result.setResult(metDataPage); + return result; + } catch (ParseException e) { + throw new RuntimeException(e); + } } } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleCertServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleCertServiceImpl.java new file mode 100644 index 00000000..27414116 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleCertServiceImpl.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.GardsSampleCert; +import org.jeecg.modules.entity.GardsSampleCertLine; +import org.jeecg.modules.mapper.GardsSampleCertLineMapper; +import org.jeecg.modules.mapper.GardsSampleCertMapper; +import org.jeecg.modules.service.IGardsSampleCertService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service("gardsSampleCertService") +@DS("ori") +public class GardsSampleCertServiceImpl extends ServiceImpl implements IGardsSampleCertService { + + @Autowired + private GardsSampleCertLineMapper gardsSampleCertLineMapper; + + @Override + public Result findParticulateCertificate(Integer sampleId) { + Result result = new Result(); + Map map = new HashMap<>(); + LambdaQueryWrapper certLQueryWrapper = new LambdaQueryWrapper<>(); + certLQueryWrapper.eq(GardsSampleCert::getSampleId, sampleId); + GardsSampleCert gardsSampleCert = this.baseMapper.selectOne(certLQueryWrapper); + if (Objects.nonNull(gardsSampleCert)){ + map.put("Total Source Activity", gardsSampleCert.getQuantity()); + map.put("Assay Date", gardsSampleCert.getAssayDate()); + map.put("Units of Activity", gardsSampleCert.getUnit()); + } + LambdaQueryWrapper certLineQueryWrapper = new LambdaQueryWrapper<>(); + certLineQueryWrapper.eq(GardsSampleCertLine::getSampleId, sampleId); + List sampleCertLines = gardsSampleCertLineMapper.selectList(certLineQueryWrapper); + if (CollectionUtils.isNotEmpty(sampleCertLines)){ + map.put("table", sampleCertLines); + } + result.setSuccess(true); + result.setResult(map); + return result; + } + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java index 7efcfbd3..411d81d9 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -2,21 +2,31 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.entity.GardsCalibrationPairsOrig; +import org.jeecg.modules.entity.GardsSampleAux; import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.entity.SysDict; +import org.jeecg.modules.mapper.GardsCalibrationPairsOrigMapper; +import org.jeecg.modules.mapper.GardsSampleAuxMapper; import org.jeecg.modules.mapper.GardsSampleDataMapper; +import org.jeecg.modules.mapper.SysDictMapper; import org.jeecg.modules.service.IGardsSampleDataService; +import org.jeecg.modules.system.entity.GardsStations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.text.ParseException; +import java.util.*; +import java.util.stream.Collectors; @Service("gardsSampleDataService") @DS("ori") @@ -24,46 +34,202 @@ public class GardsSampleDataServiceImpl extends ServiceImpl stationIds, String dataType, String spectralQualifie, Date startTime,Date endTime) { + try { + Result result = new Result(); + //获取redis中缓存的台站信息 + Map stationMap = (Map)redisUtil.get("stationMap"); + if (StringUtils.isBlank(dataType)) { + result.error500("数据类型不能为空"); + return result; + } + if (Objects.isNull(startTime)){ + result.error500("开始时间不能为空"); + return result; + } + if (Objects.isNull(endTime)){ + result.error500("结束时间不能为空"); + return result; + } + if (CollectionUtils.isEmpty(stationIds)){ + result.error500("台站信息不能为空"); + return result; + } + Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss"); + //声明page + Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + //声明Lambda 传递参数进行条件查询 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(GardsSampleData::getDataType, dataType); + //数据分为全谱与过程谱则使用采集日期进行日期查询 + if (StringUtils.isNotBlank(spectralQualifie)) { + queryWrapper.eq(GardsSampleData::getSpectralQualifie, spectralQualifie); + queryWrapper.ge(GardsSampleData::getCollectStart, startDate); + queryWrapper.le(GardsSampleData::getCollectStop, endDate); + }else {//数据不区分全谱与过程谱则使用 + queryWrapper.ge(GardsSampleData::getAcquisitionStart, startDate); + queryWrapper.le(GardsSampleData::getAcquisitionStop, endDate); + } + queryWrapper.in(GardsSampleData::getStationId, stationIds); + //进行分页查询 + Page sampleDataPage = this.baseMapper.selectPage(page, queryWrapper); + sampleDataPage.getRecords().forEach(item->{ + if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){ + String stationName = stationMap.get(item.getStationId().toString()); + item.setStationName(stationName); + } + }); + result.setSuccess(true); + result.setResult(sampleDataPage); + return result; + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + @Override + public Result findParticulateInfo(Integer sampleId) { Result result = new Result(); + Map map = new HashMap<>(); //获取redis中缓存的台站信息 Map stationMap = (Map)redisUtil.get("stationMap"); - //获取redis中缓存的探测器信息 - Map detectorsMap = (Map)redisUtil.get("detectorsMap"); - - if (StringUtils.isBlank(gardsSampleData.getSampleType())){ - result.error500("系统类型不能为空"); - return result; + //根据sample_id查询sample_data内容 + LambdaQueryWrapper sampleDataQueryWrapper = new LambdaQueryWrapper<>(); + sampleDataQueryWrapper.eq(GardsSampleData::getSampleId, sampleId); + GardsSampleData gardsSampleData = this.baseMapper.selectOne(sampleDataQueryWrapper); + if (Objects.nonNull(gardsSampleData) && CollectionUtils.isNotEmpty(stationMap)){ + String stationName = stationMap.get(gardsSampleData.getStationId().toString()); + gardsSampleData.setStationName(stationName); } - if (StringUtils.isBlank(gardsSampleData.getDataType())) { - result.error500("数据类型不能为空"); - return result; + //根据sample_id查询sample_aux内容 + LambdaQueryWrapper sampleAuxQueryWrapper = new LambdaQueryWrapper<>(); + sampleAuxQueryWrapper.eq(GardsSampleAux::getSampleId, sampleId); + GardsSampleAux gardsSampleAux = gardsSampleAuxMapper.selectOne(sampleAuxQueryWrapper); + if (Objects.nonNull(gardsSampleData) && Objects.nonNull(gardsSampleAux)){ + //封装数据内容 + map.put("Site Code", gardsSampleData.getStationName()); + map.put("Detector Code",gardsSampleData.getSiteDetCode()); + map.put("System Type",gardsSampleData.getSampleType()); + map.put("Sample Geometry",gardsSampleData.getGeometry()); + map.put("Spectrum Qualifier",gardsSampleData.getSpectralQualifie()); + map.put("Sample Reference Identification", gardsSampleAux.getSampleRefId()); + map.put("Measurement Identification", gardsSampleAux.getMeasurementId()); + map.put("Detector Background Measurement Identification", gardsSampleAux.getBkgdMeasurementId()); + map.put("Gas Background Measurement Identification", gardsSampleAux.getGasBkgdMeasurementId()); + map.put("Transmit Time", gardsSampleData.getTransmitDtg()); + map.put("Acquisition Time", gardsSampleData.getAcquisitionStart()); + map.put("Acquisition Real Time", gardsSampleData.getAcquisitionRealSec()); + map.put("Acquisition Live Time", gardsSampleData.getAcquisitionLiveSec()); + map.put("Date of Last Calibration", gardsSampleAux.getCalibrationDtg()); } - //声明page - Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - //声明Lambda 传递参数进行条件查询 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(GardsSampleData::getSampleType, gardsSampleData.getSampleType()); - queryWrapper.eq(GardsSampleData::getDataType, gardsSampleData.getDataType()); - queryWrapper.eq(Objects.nonNull(gardsSampleData.getStationId()), GardsSampleData::getStationId, gardsSampleData.getStationId()); - queryWrapper.ge(Objects.nonNull(gardsSampleData.getAcquisitionStart()), GardsSampleData::getAcquisitionStart, gardsSampleData.getAcquisitionStart()); - queryWrapper.le(Objects.nonNull(gardsSampleData.getAcquisitionStop()), GardsSampleData::getAcquisitionStop, gardsSampleData.getAcquisitionStop()); - //进行分页查询 - Page sampleDataPage = this.baseMapper.selectPage(page, queryWrapper); - sampleDataPage.getRecords().forEach(item->{ - if (stationMap.containsKey(item.getStationId().toString())){ - String stationName = stationMap.get(item.getStationId().toString()); - item.setStationName(stationName); - } - if (detectorsMap.containsKey(item.getDetectorId().toString())){ - String detectorName = detectorsMap.get(item.getDetectorId().toString()); - item.setDetectorName(detectorName); - } - }); result.setSuccess(true); - result.setResult(sampleDataPage); + result.setResult(map); + return result; + } + + @Override + public Result findParticulateEnergy(Integer sampleId) { + Result result = new Result(); + //map 封装三个数组 + Map> map = new HashMap<>(); + //封装存储 g_energy + List GEnergyList = new LinkedList<>(); + //封装存储 Centroid channel + List centroidChannelList = new LinkedList<>(); + //封装存储 Uncertainty + List uncertaintyList = new LinkedList<>(); + LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "energy"); + List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); + if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ + for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { + // Xvalue 对应 centroid channel + centroidChannelList.add(orig.getXvalue()); + // Yvalue 对应 g_energy + GEnergyList.add(orig.getYvalue()); + // Uncyvalue 对应 Uncertainty + uncertaintyList.add(orig.getUncyvalue()); + } + } + map.put("G_Energy", GEnergyList); + map.put("Centroid channel", centroidChannelList); + map.put("Uncertainty", uncertaintyList); + result.setSuccess(true); + result.setResult(map); + return result; + } + + @Override + public Result findParticulateResolution(Integer sampleId) { + Result result = new Result(); + //map 封装三个数组 + Map> map = new HashMap<>(); + //封装存储 energy + List energyList = new LinkedList<>(); + //封装存储 efficiency + List efficiencyList = new LinkedList<>(); + //封装存储 Uncertainty + List uncertaintyList = new LinkedList<>(); + LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "efficiency"); + List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); + if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ + for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { + // Xvalue 对应 energy + energyList.add(orig.getXvalue()); + // YValue 对应 efficiency + efficiencyList.add(orig.getYvalue()); + // UncyValue 对应 Uncertainty + uncertaintyList.add(orig.getUncyvalue()); + } + } + map.put("energy", energyList); + map.put("efficiency", efficiencyList); + map.put("Uncertainty", uncertaintyList); + result.setSuccess(true); + result.setResult(map); + return result; + } + + @Override + public Result findParticulateEfficiency(Integer sampleId) { + Result result = new Result(); + //map 封装三个数组 + Map> map = new HashMap<>(); + //封装存储 g_energy + List GEnergyList = new LinkedList<>(); + //封装存储 FWHM + List FWHMList = new LinkedList<>(); + //封装存储 Uncertainty + List uncertaintyList = new LinkedList<>(); + LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "Resolution"); + List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); + if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ + for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { + // Xvalue 对应 energy + GEnergyList.add(orig.getXvalue()); + // YValue 对应 efficiency + FWHMList.add(orig.getYvalue()); + // UncyValue 对应 Uncertainty + uncertaintyList.add(orig.getUncyvalue()); + } + } + map.put("g_energy", GEnergyList); + map.put("FWHM", FWHMList); + map.put("Uncertainty", uncertaintyList); + result.setSuccess(true); + result.setResult(map); return result; } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java index a18b6941..447fc9ae 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java @@ -2,11 +2,13 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.entity.GardsSohData; import org.jeecg.modules.mapper.GardsSohDataMapper; @@ -14,6 +16,9 @@ import org.jeecg.modules.service.IGardsSohDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.util.Date; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -25,29 +30,43 @@ public class GardsSohDataServiceImpl extends ServiceImpl stationMap = (Map)redisUtil.get("stationMap"); - //获取redis中缓存的探测器信息 - Map detectorsMap = (Map)redisUtil.get("detectorsMap"); - Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(Objects.nonNull(gardsSohData.getStationId()), GardsSohData::getStationId, gardsSohData.getStationId()); - Page sohDataPage = this.baseMapper.selectPage(page, queryWrapper); - sohDataPage.getRecords().forEach(item->{ - if (Objects.nonNull(item.getStationId()) && stationMap.containsKey(item.getStationId().toString())){ - String stationName = stationMap.get(item.getStationId().toString()); - item.setStationName(stationName); + public Result findSohPage(QueryRequest queryRequest, List stationIds, Date startTime, Date endTime) { + try { + Result result = new Result(); + if (CollectionUtils.isEmpty(stationIds)){ + result.error500("台站信息不能为空"); + return result; } - if (Objects.nonNull(item.getDetectorId()) && detectorsMap.containsKey(item.getDetectorId().toString())){ - String detectorName = detectorsMap.get(item.getDetectorId().toString()); - item.setDetectorName(detectorName); + if (Objects.isNull(startTime)){ + result.error500("开始时间不能为空"); + return result; } - }); - result.setSuccess(true); - result.setResult(sohDataPage); - return result; + if (Objects.isNull(endTime)){ + result.error500("结束时间不能为空"); + return result; + } + Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss"); + //获取redis中缓存的探测器信息 + Map detectorsMap = (Map)redisUtil.get("detectorsMap"); + Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(GardsSohData::getStationId, stationIds); + queryWrapper.ge(GardsSohData::getStartTime, startDate); + queryWrapper.le(GardsSohData::getStartTime, endDate); + Page sohDataPage = this.baseMapper.selectPage(page, queryWrapper); + sohDataPage.getRecords().forEach(item->{ + if (Objects.nonNull(item.getDetectorId()) && detectorsMap.containsKey(item.getDetectorId().toString())){ + String detectorName = detectorsMap.get(item.getDetectorId().toString()); + item.setDetectorName(detectorName); + } + }); + result.setSuccess(true); + result.setResult(sohDataPage); + return result; + } catch (ParseException e) { + throw new RuntimeException(e); + } } } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java new file mode 100644 index 00000000..617031b5 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java @@ -0,0 +1,63 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.entity.SysDict; +import org.jeecg.modules.mapper.SysDictMapper; +import org.jeecg.modules.service.ISysDictService; +import org.jeecg.modules.system.entity.GardsStations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service("sysDictService") +public class SysDictServiceImpl extends ServiceImpl implements ISysDictService { + + @Autowired + private RedisUtil redisUtil; + @Autowired + private SysDictMapper sysDictMapper; + + @Override + public Result findList(String menuName) { + Result result = new Result(); + List gardsStationsList = new LinkedList<>(); + //获取台站信息 + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + List stationsList = stationInfoMap.values().stream().collect(Collectors.toList()); + //如果传递的菜单名称不为空 则需要过滤出所需的台站信息 + if (StringUtils.isNotBlank(menuName)){ + //根据菜单名称查询出数据字典中对应的内容 + LambdaQueryWrapper dictQueryWrapper = new LambdaQueryWrapper<>(); + dictQueryWrapper.eq(SysDict::getDictName, menuName); + SysDict sysDict = sysDictMapper.selectOne(dictQueryWrapper); + //如果字典内容不为空 + if (Objects.nonNull(sysDict)){ + //获取当前字典对应的code数据 + String dictCode = sysDict.getDictCode(); + if (StringUtils.isNotBlank(dictCode)){ + //根据英文,切割台站类型信息 + List types = Arrays.asList(dictCode.split(StringPool.COMMA)); + //遍历过滤出和类型匹配的台站信息 存入新的数据集合中 + for (String type:types) { + gardsStationsList.addAll(stationsList.stream().filter(item-> StringUtils.isNotBlank(item.getType()) && item.getType().equals(type)).collect(Collectors.toList())); + } + } + }else { + gardsStationsList.addAll(stationsList); + } + }else { + gardsStationsList.addAll(stationsList); + } + result.setSuccess(true); + result.setResult(gardsStationsList); + return result; + } + +} diff --git a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml new file mode 100644 index 00000000..b38d04f5 --- /dev/null +++ b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-server-cloud + 3.5.1 + + + jeecg-log-manage-start + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + org.jeecgframework.boot + jeecg-module-log-manage + 3.5.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java b/jeecg-server-cloud/jeecg-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java new file mode 100644 index 00000000..a4a117ed --- /dev/null +++ b/jeecg-server-cloud/jeecg-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java @@ -0,0 +1,47 @@ +package org.jeecg; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +@Slf4j +@SpringBootApplication +@EnableFeignClients(basePackages = {"org.jeecg"}) +@EnableScheduling +public class JeecgLogManageApplication extends SpringBootServletInitializer implements CommandLineRunner { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(JeecgLogManageApplication.class); + } + + public static void main(String[] args) throws UnknownHostException { + ConfigurableApplicationContext application = SpringApplication.run(JeecgLogManageApplication.class, args); + Environment env = application.getEnvironment(); + String ip = InetAddress.getLocalHost().getHostAddress(); + String port = env.getProperty("server.port"); + String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path")); + log.info("\n----------------------------------------------------------\n\t" + + "Application Jeecg-Boot is running! Access URLs:\n\t" + + "Local: \t\thttp://localhost:" + port + path + "/doc.html\n" + + "External: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "----------------------------------------------------------"); + } + + @Override + public void run(String... args) throws Exception { + + } +} \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/application.yml b/jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/application.yml new file mode 100644 index 00000000..8467c72d --- /dev/null +++ b/jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/application.yml @@ -0,0 +1,18 @@ +server: + port: 7005 + +spring: + application: + name: jeecg-log-manage + cloud: + nacos: + config: + server-addr: @config.server-addr@ + group: @config.group@ + namespace: @config.namespace@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:jeecg.yaml + - optional:nacos:jeecg-@profile.name@.yaml \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/logback-spring.xml b/jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..60d4c7df --- /dev/null +++ b/jeecg-server-cloud/jeecg-log-manage-start/src/main/resources/logback-spring.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.log + + 30 + 10MB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n + + + + + + + + ERROR + + + + %p%d%msg%M%F{32}%L + + + ${LOG_HOME}/error-log.html + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-system-cloud-start/pom.xml b/jeecg-server-cloud/jeecg-system-cloud-start/pom.xml index fad599a9..d745a2b5 100644 --- a/jeecg-server-cloud/jeecg-system-cloud-start/pom.xml +++ b/jeecg-server-cloud/jeecg-system-cloud-start/pom.xml @@ -36,11 +36,6 @@ - - - org.jeecgframework.boot - jeecg-module-log-manage - + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.log + + 30 + 10MB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n + + + + + + + + ERROR + + + + %p%d%msg%M%F{32}%L + + + ${LOG_HOME}/error-log.html + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/pom.xml b/jeecg-server-cloud/pom.xml index a95af563..47f9d6fe 100644 --- a/jeecg-server-cloud/pom.xml +++ b/jeecg-server-cloud/pom.xml @@ -24,6 +24,7 @@ jeecg-station-operation-start jeecg-web-statistics-start jeecg-log-manage-start + jeecg-abnormal-alarm-start \ No newline at end of file diff --git a/pom.xml b/pom.xml index 373d0cc6..a07ff46a 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,7 @@ jeecg-module-log-manage jeecg-module-station-operation jeecg-module-web-statistics + jeecg-module-abnormal-alarm @@ -186,6 +187,12 @@ jeecg-module-web-statistics ${jeecgboot.version} + + + org.jeecgframework.boot + jeecg-module-abnormal-alarm + ${jeecgboot.version} + org.jeecgframework.boot From 5669c49696362b0f0868845e4efc3d9dee8b2e4b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 09:21:24 +0800 Subject: [PATCH 19/64] =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E8=81=94=E7=B3=BB?= =?UTF-8?q?=E4=BA=BA=E7=BB=84=E4=BC=A0=E9=80=92=E5=8F=82=E6=95=B0=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AlarmContactGroupMemberController.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java index 3cbecda2..da35f5f5 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java @@ -3,6 +3,7 @@ package org.jeecg.modules.controller; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.AlarmContactGroup; +import org.jeecg.modules.entity.AlarmContactGroupMember; import org.jeecg.modules.service.IAlarmContactGroupMemberService; import org.jeecg.modules.service.IAlarmContactGroupService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,8 +17,8 @@ public class AlarmContactGroupMemberController { private IAlarmContactGroupMemberService alarmContactGroupMemberService; @GetMapping("findPage") - public Result findPage(QueryRequest queryRequest, AlarmContactGroup alarmContactGroup){ - return alarmContactGroupMemberService.findPage(queryRequest, alarmContactGroup); + public Result findPage(QueryRequest queryRequest, AlarmContactGroupMember alarmContactGroupMember){ + return alarmContactGroupMemberService.findPage(queryRequest, alarmContactGroupMember); } @GetMapping("findInfo") @@ -26,13 +27,13 @@ public class AlarmContactGroupMemberController { } @PostMapping("create") - public Result findPage(@RequestBody AlarmContactGroup alarmContactGroup){ - return alarmContactGroupMemberService.create(alarmContactGroup); + public Result findPage(@RequestBody AlarmContactGroupMember alarmContactGroupMember){ + return alarmContactGroupMemberService.create(alarmContactGroupMember); } @PutMapping("update") - public Result update(@RequestBody AlarmContactGroup alarmContactGroup){ - return alarmContactGroupMemberService.update(alarmContactGroup); + public Result update(@RequestBody AlarmContactGroupMember alarmContactGroupMember){ + return alarmContactGroupMemberService.update(alarmContactGroupMember); } @DeleteMapping("deleteById") From 5e815059b8766a57123c0360373208cf0ac03cac Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 10:31:43 +0800 Subject: [PATCH 20/64] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=8A=A5=E8=AD=A6?= =?UTF-8?q?=E8=81=94=E7=B3=BB=E4=BA=BA=E5=8D=95=E7=8B=AC=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E7=9A=84=E7=9B=B8=E5=85=B3=E6=96=87=E4=BB=B6=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=94=A8=E6=88=B7=EF=BC=8C=E7=94=A8=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9D=83=E9=99=90=EF=BC=8C=E6=9D=83=E9=99=90=E7=AD=89?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7=E5=8F=8A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=85=B3=E8=81=94=E6=9D=83=E9=99=90=E6=96=B9=E6=B3=95?= =?UTF-8?q?=20=E8=81=94=E7=B3=BB=E4=BA=BA=E7=BB=84=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=94=A8=E6=88=B7=E7=9B=B8=E5=85=B3=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AlarmContactGroupMemberController.java | 44 ---- .../modules/entity/AlarmContactGroup.java | 6 + .../modules/entity/AlarmContactGroupVo.java | 23 ++ .../org/jeecg/modules/entity/SysRole.java | 80 +++++++ .../org/jeecg/modules/entity/SysUser.java | 208 ++++++++++++++++++ .../org/jeecg/modules/entity/SysUserRole.java | 52 +++++ .../mapper/AlarmContactGroupVoMapper.java | 7 + .../jeecg/modules/mapper/SysRoleMapper.java | 7 + .../jeecg/modules/mapper/SysUserMapper.java | 7 + .../modules/mapper/SysUserRoleMapper.java | 7 + .../IAlarmContactGroupMemberService.java | 20 -- .../modules/service/ISysUserService.java | 12 + .../AlarmContactGroupMemberServiceImpl.java | 39 ---- .../impl/AlarmContactGroupServiceImpl.java | 89 +++++++- .../service/impl/SysUserServiceImpl.java | 57 +++++ 15 files changed, 551 insertions(+), 107 deletions(-) delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysRole.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUser.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmContactGroupMemberService.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupMemberServiceImpl.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java deleted file mode 100644 index da35f5f5..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupMemberController.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.jeecg.modules.controller; - -import org.jeecg.common.api.QueryRequest; -import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.AlarmContactGroup; -import org.jeecg.modules.entity.AlarmContactGroupMember; -import org.jeecg.modules.service.IAlarmContactGroupMemberService; -import org.jeecg.modules.service.IAlarmContactGroupService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("alarmContactGroupMember") -public class AlarmContactGroupMemberController { - - @Autowired - private IAlarmContactGroupMemberService alarmContactGroupMemberService; - - @GetMapping("findPage") - public Result findPage(QueryRequest queryRequest, AlarmContactGroupMember alarmContactGroupMember){ - return alarmContactGroupMemberService.findPage(queryRequest, alarmContactGroupMember); - } - - @GetMapping("findInfo") - public Result findPage(String id){ - return alarmContactGroupMemberService.findInfo(id); - } - - @PostMapping("create") - public Result findPage(@RequestBody AlarmContactGroupMember alarmContactGroupMember){ - return alarmContactGroupMemberService.create(alarmContactGroupMember); - } - - @PutMapping("update") - public Result update(@RequestBody AlarmContactGroupMember alarmContactGroupMember){ - return alarmContactGroupMemberService.update(alarmContactGroupMember); - } - - @DeleteMapping("deleteById") - public Result deleteById(String id){ - return alarmContactGroupMemberService.deleteById(id); - } - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java index 9bea6ad7..78af9a10 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java @@ -8,6 +8,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; @Data @TableName(value = "alarm_contact_group") @@ -34,4 +35,9 @@ public class AlarmContactGroup implements Serializable { @TableField(value = "update_by") private String updateBy; + @TableField(exist = false) + List userIds; + + + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java new file mode 100644 index 00000000..8944469d --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +public class AlarmContactGroupVo implements Serializable { + + private String id; + + private String name; + + + private Date createTime; + + List users; + + Integer personNumber; + +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysRole.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysRole.java new file mode 100644 index 00000000..2e78e250 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysRole.java @@ -0,0 +1,80 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 角色表 + *

+ * + * @Author scott + * @since 2018-12-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class SysRole implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** + * 角色名称 + */ + @Excel(name="角色名",width=15) + private String roleName; + + /** + * 角色编码 + */ + @Excel(name="角色编码",width=15) + private String roleCode; + + /** + * 描述 + */ + @Excel(name="描述",width=60) + private String description; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /**租户ID*/ + private Integer tenantId; +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUser.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUser.java new file mode 100644 index 00000000..3db925de --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUser.java @@ -0,0 +1,208 @@ +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.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + *

+ * 用户表 + *

+ * + * @Author scott + * @since 2018-12-20 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class SysUser implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** + * 登录账号 + */ + @Excel(name = "登录账号", width = 15) + private String username; + + /** + * 真实姓名 + */ + @Excel(name = "真实姓名", width = 15) + private String realname; + + /** + * 密码 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String password; + + /** + * md5密码盐 + */ + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String salt; + + /** + * 头像 + */ + @Excel(name = "头像", width = 15,type = 2) + private String avatar; + + /** + * 生日 + */ + @Excel(name = "生日", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date birthday; + + /** + * 性别(1:男 2:女) + */ + @Excel(name = "性别", width = 15,dicCode="sex") + @Dict(dicCode = "sex") + private Integer sex; + + /** + * 电子邮件 + */ + @Excel(name = "电子邮件", width = 15) + private String email; + + /** + * 电话 + */ + @Excel(name = "电话", width = 15) + private String phone; + + /** + * 登录选择部门编码 + */ + private String orgCode; + /** + * 登录选择租户ID + */ + private Integer loginTenantId; + + /**部门名称*/ + private transient String orgCodeTxt; + + /** + * 状态(1:正常 2:冻结 ) + */ + @Excel(name = "状态", width = 15,dicCode="user_status") + @Dict(dicCode = "user_status") + private Integer status; + + /** + * 删除状态(0,正常,1已删除) + */ + @Excel(name = "删除状态", width = 15,dicCode="del_flag") + @TableLogic + private Integer delFlag; + + /** + * 工号,唯一键 + */ + @Excel(name = "工号", width = 15) + private String workNo; + + /** + * 职务,关联职务表 + */ + @Excel(name = "职务", width = 15) + @Dict(dictTable ="sys_position",dicText = "name",dicCode = "code") + private String post; + + /** + * 座机号 + */ + @Excel(name = "座机号", width = 15) + private String telephone; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + /** + * 同步工作流引擎1同步0不同步 + */ + private Integer activitiSync; + + /** + * 身份(0 普通成员 1 上级) + */ + @Excel(name="(1普通成员 2上级)",width = 15) + private Integer userIdentity; + + /** + * 负责部门 + */ + @Excel(name="负责部门",width = 15,dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") + @Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id") + private String departIds; + + /** + * 多租户ids临时用,不持久化数据库(数据库字段不存在) + */ + @TableField(exist = false) + private String relTenantIds; + + /**设备id uniapp推送用*/ + private String clientId; + + /** + * 登录首页地址 + */ + @TableField(exist = false) + private String homePath; + + /** + * 职位名称 + */ + @TableField(exist = false) + private String postText; + + @TableField(exist = false) + private List roles; + + /** + * 流程状态 + */ + private String bpmStatus; +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java new file mode 100644 index 00000000..68cf50e5 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java @@ -0,0 +1,52 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 用户角色表 + *

+ * + * @Author scott + * @since 2018-12-21 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class SysUserRole implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** + * 用户id + */ + private String userId; + + /** + * 角色id + */ + private String roleId; + + /**租户ID*/ + private Integer tenantId; + + public SysUserRole() { + } + + public SysUserRole(String userId, String roleId) { + this.userId = userId; + this.roleId = roleId; + } + + + +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java new file mode 100644 index 00000000..ed4fa6f5 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.AlarmContactGroupVo; + +public interface AlarmContactGroupVoMapper extends BaseMapper { +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java new file mode 100644 index 00000000..f795b5bb --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.SysRole; + +public interface SysRoleMapper extends BaseMapper { +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java new file mode 100644 index 00000000..9c11087e --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.SysUser; + +public interface SysUserMapper extends BaseMapper { +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java new file mode 100644 index 00000000..ef2415b1 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.SysUserRole; + +public interface SysUserRoleMapper extends BaseMapper { +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmContactGroupMemberService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmContactGroupMemberService.java deleted file mode 100644 index 2eff0f99..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmContactGroupMemberService.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.jeecg.modules.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.common.api.QueryRequest; -import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.AlarmContactGroupMember; - -public interface IAlarmContactGroupMemberService extends IService { - - Result findPage(QueryRequest queryRequest, AlarmContactGroupMember alarmContactGroupMember); - - Result findInfo(String id); - - Result create(AlarmContactGroupMember alarmContactGroupMember); - - Result update(AlarmContactGroupMember alarmContactGroupMember); - - Result deleteById(String id); - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java new file mode 100644 index 00000000..b3e9c2b1 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.entity.SysUser; + +import java.util.List; + +public interface ISysUserService extends IService { + + List findUserList(); + +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupMemberServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupMemberServiceImpl.java deleted file mode 100644 index 9a50a8e9..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupMemberServiceImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.jeecg.modules.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.jeecg.common.api.QueryRequest; -import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.AlarmContactGroupMember; -import org.jeecg.modules.mapper.AlarmContactGroupMemberMapper; -import org.jeecg.modules.service.IAlarmContactGroupMemberService; -import org.springframework.stereotype.Service; - -@Service("alarmContactGroupMemberService") -public class AlarmContactGroupMemberServiceImpl extends ServiceImpl implements IAlarmContactGroupMemberService { - - @Override - public Result findPage(QueryRequest queryRequest, AlarmContactGroupMember alarmContactGroupMember) { - return null; - } - - @Override - public Result findInfo(String id) { - return null; - } - - @Override - public Result create(AlarmContactGroupMember alarmContactGroupMember) { - return null; - } - - @Override - public Result update(AlarmContactGroupMember alarmContactGroupMember) { - return null; - } - - @Override - public Result deleteById(String id) { - return null; - } - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java index 84b466ee..ea09753e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java @@ -1,6 +1,7 @@ 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.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -9,31 +10,73 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.entity.AlarmContactGroup; +import org.jeecg.modules.entity.AlarmContactGroupMember; +import org.jeecg.modules.entity.AlarmContactGroupVo; +import org.jeecg.modules.entity.SysUser; import org.jeecg.modules.mapper.AlarmContactGroupMapper; +import org.jeecg.modules.mapper.AlarmContactGroupMemberMapper; +import org.jeecg.modules.mapper.AlarmContactGroupVoMapper; import org.jeecg.modules.service.IAlarmContactGroupService; +import org.jeecg.modules.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import java.util.Date; +import java.util.LinkedList; +import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; @Service("alarmContactGroupService") public class AlarmContactGroupServiceImpl extends ServiceImpl implements IAlarmContactGroupService { + @Autowired + private AlarmContactGroupVoMapper alarmContactGroupVoMapper; + @Autowired + private AlarmContactGroupMemberMapper alarmContactGroupMemberMapper; + @Autowired + private ISysUserService sysUserService; + @Override public Result findPage(QueryRequest queryRequest, AlarmContactGroup alarmContactGroup) { Result result = new Result(); - Page page = new Page<>(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Page alarmContactGroupPage = this.baseMapper.selectPage(page, queryWrapper); + //获取用户信息 + List userList = sysUserService.findUserList(); + Page page = new Page<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Page alarmContactGroupVoPage = alarmContactGroupVoMapper.selectPage(page, queryWrapper); + LambdaQueryWrapper contactGroupMemberQueryWrapper = new LambdaQueryWrapper<>(); + List alarmContactGroupMembers = alarmContactGroupMemberMapper.selectList(contactGroupMemberQueryWrapper); + alarmContactGroupVoPage.getRecords().forEach(item->{ + List sysUsers = new LinkedList<>(); + //联系人组对应联系人信息不为空 + if (CollectionUtils.isNotEmpty(alarmContactGroupMembers)){ + //根据联系人组id过滤出对应的联系人信息集合 + List contactGroupMembers = alarmContactGroupMembers.stream().filter(member-> member.getGroupId().equals(item.getId())).collect(Collectors.toList()); + //过滤出对应的用户id集合 + List userIds = contactGroupMembers.stream().map(AlarmContactGroupMember::getUserId).collect(Collectors.toList()); + //根据用户id获得对应的用户信息 + if (CollectionUtils.isNotEmpty(userList)){ + for (SysUser user:userList) { + if (userIds.contains(user.getId())){ + sysUsers.add(user); + } + } + item.setUsers(sysUsers); + } + } + }); result.setSuccess(true); - result.setResult(alarmContactGroupPage); + result.setResult(alarmContactGroupVoPage); return result; } @Override public Result findInfo(String id) { Result result = new Result(); + List sysUsers = new LinkedList<>(); + //根据id查询对应的数据 判断数据是否在数据库中 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AlarmContactGroup::getId, id); AlarmContactGroup alarmContactGroup = this.baseMapper.selectOne(queryWrapper); @@ -41,6 +84,14 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl contactGroupMemberQueryWrapper = new LambdaQueryWrapper<>(); + contactGroupMemberQueryWrapper.eq(AlarmContactGroupMember::getGroupId, alarmContactGroup.getId()); + List contactGroupMembers = alarmContactGroupMemberMapper.selectList(contactGroupMemberQueryWrapper); + if (CollectionUtils.isNotEmpty(contactGroupMembers)){ + List userIds = contactGroupMembers.stream().map(AlarmContactGroupMember::getUserId).collect(Collectors.toList()); + alarmContactGroup.setUserIds(userIds); + } result.setSuccess(true); result.setResult(alarmContactGroup); return result; @@ -57,6 +108,17 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl userIds = alarmContactGroup.getUserIds(); + for (String userId:userIds) { + Long memberId = IdWorker.getId(); + AlarmContactGroupMember alarmContactGroupMember = new AlarmContactGroupMember(); + alarmContactGroupMember.setId(memberId.toString()); + alarmContactGroupMember.setGroupId(alarmContactGroup.getId()); + alarmContactGroupMember.setUserId(userId); + alarmContactGroupMemberMapper.insert(alarmContactGroupMember); + } + } result.setSuccess(true); result.success("新增成功"); return result; @@ -72,6 +134,20 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl contactGroupMemberQueryWrapper = new LambdaQueryWrapper<>(); + contactGroupMemberQueryWrapper.eq(AlarmContactGroupMember::getGroupId, alarmContactGroup.getId()); + alarmContactGroupMemberMapper.delete(contactGroupMemberQueryWrapper); + List userIds = alarmContactGroup.getUserIds(); + for (String userId:userIds) { + Long memberId = IdWorker.getId(); + AlarmContactGroupMember alarmContactGroupMember = new AlarmContactGroupMember(); + alarmContactGroupMember.setId(memberId.toString()); + alarmContactGroupMember.setGroupId(alarmContactGroup.getId()); + alarmContactGroupMember.setUserId(userId); + alarmContactGroupMemberMapper.insert(alarmContactGroupMember); + } + } this.baseMapper.updateById(alarmContactGroup); result.setSuccess(true); result.success("修改成功"); @@ -81,6 +157,11 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl contactGroupMemberQueryWrapper = new LambdaQueryWrapper<>(); + contactGroupMemberQueryWrapper.eq(AlarmContactGroupMember::getGroupId, id); + alarmContactGroupMemberMapper.delete(contactGroupMemberQueryWrapper); + //删除联系人组信息 this.baseMapper.deleteById(id); result.setSuccess(true); result.success("删除成功"); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java new file mode 100644 index 00000000..bf7d982d --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java @@ -0,0 +1,57 @@ +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.extension.service.impl.ServiceImpl; +import org.jeecg.modules.entity.SysRole; +import org.jeecg.modules.entity.SysUser; +import org.jeecg.modules.entity.SysUserRole; +import org.jeecg.modules.mapper.SysRoleMapper; +import org.jeecg.modules.mapper.SysUserMapper; +import org.jeecg.modules.mapper.SysUserRoleMapper; +import org.jeecg.modules.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; + +@Service("sysUserService") +public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { + + @Autowired + private SysUserRoleMapper sysUserRoleMapper; + @Autowired + private SysRoleMapper sysRoleMapper; + + @Override + public List findUserList() { + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + List sysUsers = this.baseMapper.selectList(userQueryWrapper); + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); + LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); + List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); + List roles = new LinkedList<>(); + //遍历所有用户信息 + if (CollectionUtils.isNotEmpty(sysUsers)){ + for (SysUser sysUser:sysUsers) { + if (CollectionUtils.isNotEmpty(sysUserRoles)){ + //获取各用户匹配的权限集合 + List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); + List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(sysRoles)){ + for (SysRole role:sysRoles) { + if (roleIds.contains(role.getId())){ + roles.add(role); + } + } + } + } + sysUser.setRoles(roles); + } + } + return sysUsers; + } +} From 650abef1a41fae9212db1bc1f59ff6e39afc8bca Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 10:33:02 +0800 Subject: [PATCH 21/64] =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=81=94=E7=B3=BB=E4=BA=BA=E7=BB=84=E8=BF=94=E5=9B=9E=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E4=BA=BA=E6=95=B0?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java index ea09753e..954c2cb0 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java @@ -54,6 +54,7 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl contactGroupMembers = alarmContactGroupMembers.stream().filter(member-> member.getGroupId().equals(item.getId())).collect(Collectors.toList()); + item.setPersonNumber(contactGroupMembers.size()); //过滤出对应的用户id集合 List userIds = contactGroupMembers.stream().map(AlarmContactGroupMember::getUserId).collect(Collectors.toList()); //根据用户id获得对应的用户信息 From e29aa15a26fc702e295cffcd300222bf1c116e38 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 10:48:52 +0800 Subject: [PATCH 22/64] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=AE=9E=E4=BD=93=E7=B1=BB=E5=AF=B9=E5=BA=94=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=AD=97=E6=AE=B5=E5=86=85=E5=AE=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/modules/entity/SysServer.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java index e8ea7a63..3321bebe 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java @@ -32,15 +32,15 @@ public class SysServer implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - @TableField(value = "createBy") + @TableField(value = "create_by") private String createBy; - @TableField(value = "updateTime") + @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - @TableField(value = "updateBy") + @TableField(value = "update_by") private String updateBy; } From 805e34dd4d340df07c31fbc1dcd04c03d023924f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 13:58:25 +0800 Subject: [PATCH 23/64] =?UTF-8?q?=E8=81=94=E7=B3=BB=E4=BA=BA=E7=BB=84?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E4=BF=AE=E6=94=B9=20=E8=A7=84=E5=88=99=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=97=A0=E6=B3=95=E5=AD=98=E5=85=A5json=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E4=BF=AE=E6=94=B9=20=E7=94=A8=E6=88=B7=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/SysServerController.java | 9 +++++++++ .../jeecg/modules/service/ISysServerService.java | 4 ++++ .../org/jeecg/modules/service/ISysUserService.java | 3 ++- .../service/impl/AlarmContactGroupServiceImpl.java | 14 +++++--------- .../modules/service/impl/AlarmRuleServiceImpl.java | 11 +++++++++++ .../modules/service/impl/SysServerServiceImpl.java | 6 ++++++ .../modules/service/impl/SysUserServiceImpl.java | 10 +++++++--- 7 files changed, 44 insertions(+), 13 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java index 39134327..ba358a87 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java @@ -7,8 +7,11 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysServer; import org.jeecg.modules.service.ISysServerService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import java.util.Date; + @RestController @RequestMapping("sysServer") @Api(value = "服务器配置信息管理", tags = "服务器配置信息管理") @@ -47,4 +50,10 @@ public class SysServerController { return sysServerService.deleteById(id); } + @GetMapping("findAlarmHistory") + public Result findAlarmHistory(String serverId, + @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return sysServerService.findAlarmHistory(serverId, startTime, endTime); + } + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysServerService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysServerService.java index f6d9d254..db5c97f0 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysServerService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysServerService.java @@ -5,6 +5,8 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysServer; +import java.util.Date; + public interface ISysServerService extends IService { Result findPage(QueryRequest queryRequest, SysServer sysServer); @@ -17,4 +19,6 @@ public interface ISysServerService extends IService { Result deleteById(String id); + Result findAlarmHistory(String serverId, Date startTime, Date endTime); + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java index b3e9c2b1..f5a390d5 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java @@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.entity.SysUser; import java.util.List; +import java.util.Map; public interface ISysUserService extends IService { - List findUserList(); + Map findUserList(); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java index 954c2cb0..c373d552 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java @@ -22,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service("alarmContactGroupService") @@ -42,7 +39,7 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl userList = sysUserService.findUserList(); + Map userList = sysUserService.findUserList(); Page page = new Page<>(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); Page alarmContactGroupVoPage = alarmContactGroupVoMapper.selectPage(page, queryWrapper); @@ -59,9 +56,9 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl userIds = contactGroupMembers.stream().map(AlarmContactGroupMember::getUserId).collect(Collectors.toList()); //根据用户id获得对应的用户信息 if (CollectionUtils.isNotEmpty(userList)){ - for (SysUser user:userList) { - if (userIds.contains(user.getId())){ - sysUsers.add(user); + for (String userId:userIds) { + if (userList.containsKey(userId)){ + sysUsers.add(userList.get(userId)); } } item.setUsers(sysUsers); @@ -76,7 +73,6 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl sysUsers = new LinkedList<>(); //根据id查询对应的数据 判断数据是否在数据库中 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AlarmContactGroup::getId, id); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmRuleServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmRuleServiceImpl.java index 922e2296..234bdda2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmRuleServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmRuleServiceImpl.java @@ -1,9 +1,12 @@ package org.jeecg.modules.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.netty.util.internal.StringUtil; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; @@ -58,6 +61,10 @@ public class AlarmRuleServiceImpl extends ServiceImpl impl private SysRoleMapper sysRoleMapper; @Override - public List findUserList() { + public Map findUserList() { + Map map = new HashMap<>(); LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); List sysUsers = this.baseMapper.selectList(userQueryWrapper); LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); @@ -48,10 +51,11 @@ public class SysUserServiceImpl extends ServiceImpl impl } } } + sysUser.setRoles(roles); } - sysUser.setRoles(roles); + map.put(sysUser.getId(), sysUser); } } - return sysUsers; + return map; } } From e594618d50c55ba8863201109104d23c8a60ee0f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 14:11:38 +0800 Subject: [PATCH 24/64] =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/entity/AlarmContactGroup.java | 6 ++++++ .../org/jeecg/modules/entity/AlarmContactGroupVo.java | 4 ++++ .../main/java/org/jeecg/modules/entity/AlarmLog.java | 4 ++++ .../main/java/org/jeecg/modules/entity/AlarmRule.java | 6 ++++++ .../java/org/jeecg/modules/entity/SysDatabase.java | 6 ++++++ .../main/java/org/jeecg/modules/entity/SysEmail.java | 6 ++++++ .../java/org/jeecg/modules/entity/SysEmailLog.java | 8 ++++++++ .../modules/service/impl/AlarmLogServiceImpl.java | 10 ++++++++++ 8 files changed, 50 insertions(+) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java index 78af9a10..308e47f2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java @@ -4,7 +4,9 @@ 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -24,12 +26,16 @@ public class AlarmContactGroup implements Serializable { private String description; @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(value = "create_by") private String createBy; @TableField(value = "update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(value = "update_by") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java index 8944469d..d7676989 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java @@ -1,6 +1,8 @@ package org.jeecg.modules.entity; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -14,6 +16,8 @@ public class AlarmContactGroupVo implements Serializable { private String name; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; List users; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java index 836fdf5f..e8f7e066 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java @@ -4,7 +4,9 @@ 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -20,6 +22,8 @@ public class AlarmLog implements Serializable { private String ruleId; @TableField(value = "alarm_start_date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date alarmStartDate; @TableField(value = "alarm_info") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java index d8bb473a..6b6e0e87 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java @@ -4,7 +4,9 @@ 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -41,12 +43,16 @@ public class AlarmRule implements Serializable { private String sourceType; @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(value = "create_by") private String createBy; @TableField(value = "update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(value = "update_by") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java index 409b653c..d93a4ee7 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java @@ -4,7 +4,9 @@ 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -38,12 +40,16 @@ public class SysDatabase implements Serializable { private String type; @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(value = "create_by") private String createBy; @TableField(value = "update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(value = "update_by") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java index d9cf8db4..32def11e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java @@ -4,7 +4,9 @@ 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -35,12 +37,16 @@ public class SysEmail implements Serializable { private Integer enabled; @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(value = "create_by") private String createBy; @TableField(value = "update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(value = "update_by") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java index edf94ded..d1d677ff 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java @@ -4,7 +4,9 @@ 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 com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -26,15 +28,21 @@ public class SysEmailLog implements Serializable { private String context; @TableField(value = "receive_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date receiveTime; @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @TableField(value = "create_by") private String createBy; @TableField(value = "update_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(value = "update_by") diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java index 0056689a..b74c9a83 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java @@ -1,7 +1,9 @@ package org.jeecg.modules.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; @@ -47,6 +49,10 @@ public class AlarmLogServiceImpl extends ServiceImpl i Result result = new Result(); Long id = IdWorker.getId(); alarmLog.setId(id.toString()); + if (StringUtils.isNotBlank(alarmLog.getAlarmInfo())){ + String jsonString = JSON.toJSONString(alarmLog.getAlarmInfo()); + alarmLog.setAlarmInfo(jsonString); + } this.baseMapper.insert(alarmLog); result.setSuccess(true); result.success("新增成功"); @@ -63,6 +69,10 @@ public class AlarmLogServiceImpl extends ServiceImpl i result.error500("对应数据不存在,修改失败"); return result; } + if (StringUtils.isNotBlank(alarmLog.getAlarmInfo())){ + String jsonString = JSON.toJSONString(alarmLog.getAlarmInfo()); + alarmLog.setAlarmInfo(jsonString); + } this.baseMapper.updateById(alarmLog); result.setSuccess(true); result.success("修改成功"); From a9682bf4dccda3dca4415dfaa8e0a2183ca45f41 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 15:05:16 +0800 Subject: [PATCH 25/64] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=AE=A1=E7=90=86=E6=9F=A5=E8=AF=A2=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/entity/AlarmHistory.java | 22 ++++++++++++++++ .../jeecg/modules/mapper/SysServerMapper.java | 8 ++++++ .../modules/mapper/xml/SysServerMapper.xml | 23 +++++++++++++++++ .../service/impl/SysServerServiceImpl.java | 25 +++++++++++++++++-- 4 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysServerMapper.xml diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java new file mode 100644 index 00000000..4158a87c --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class AlarmHistory { + + private String name; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date alarmStartDate; + + private String alarmInfo; + + private String operator; + +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysServerMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysServerMapper.java index 94d81b3a..14a05596 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysServerMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysServerMapper.java @@ -1,7 +1,15 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.SysServer; +import java.util.Date; +import java.util.List; + public interface SysServerMapper extends BaseMapper { + + List findAlarmHistory(@Param("serverId")String serverId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysServerMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysServerMapper.xml new file mode 100644 index 00000000..c8ff987a --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysServerMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java index ccefde21..c1b686b7 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java @@ -8,7 +8,9 @@ import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.SysServer; import org.jeecg.modules.mapper.SysServerMapper; import org.jeecg.modules.service.ISysServerService; @@ -16,7 +18,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.Date; +import java.util.List; import java.util.Objects; @Service("sysServerService") @@ -108,8 +112,25 @@ public class SysServerServiceImpl extends ServiceImpl alarmHistory = this.baseMapper.findAlarmHistory(serverId, startDate, endDate); + result.setSuccess(true); + result.setResult(alarmHistory); + } catch (ParseException e) { + throw new RuntimeException(e); + } + return result; } } From 1f54fa41a712e89bd475728f46378a5de00c93b5 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 15:47:49 +0800 Subject: [PATCH 26/64] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=8E=86=E5=8F=B2=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=8E=86=E5=8F=B2=E6=8A=A5=E8=AD=A6=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysDatabaseController.java | 9 +++++++ .../controller/SysEmailController.java | 9 +++++++ .../modules/mapper/SysDatabaseMapper.java | 8 ++++++ .../jeecg/modules/mapper/SysEmailMapper.java | 8 ++++++ .../modules/mapper/xml/SysEmailMapper.xml | 23 ++++++++++++++++ .../modules/mapper/xml/sysDatabaseMapper.xml | 23 ++++++++++++++++ .../modules/service/ISysDatabaseService.java | 5 ++++ .../modules/service/ISysEmailService.java | 4 +++ .../service/impl/SysDatabaseServiceImpl.java | 27 +++++++++++++++++++ .../service/impl/SysEmailServiceImpl.java | 27 +++++++++++++++++++ 10 files changed, 143 insertions(+) create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailMapper.xml create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java index 860687d7..ad50f156 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java @@ -6,8 +6,11 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysDatabase; import org.jeecg.modules.service.ISysDatabaseService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import java.util.Date; + @RestController @RequestMapping("sysDatabase") @Api(value = "数据库配置管理", tags = "数据库配置管理") @@ -41,4 +44,10 @@ public class SysDatabaseController { return sysDatabaseService.deleteById(id); } + @GetMapping("findAlarmHistory") + public Result findAlarmHistory(String databaseId, + @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return sysDatabaseService.findAlarmHistory(databaseId, startTime, endTime); + } + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java index 5b6733e0..3d51fea1 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java @@ -7,8 +7,11 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysEmail; import org.jeecg.modules.service.ISysEmailService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import java.util.Date; + @RestController @RequestMapping("sysEmail") @Api(value = "邮箱配置信息管理", tags = "邮箱配置信息管理") @@ -47,4 +50,10 @@ public class SysEmailController { return sysEmailService.deleteById(id); } + @GetMapping("findAlarmHistory") + public Result findAlarmHistory(String emailId, + @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return sysEmailService.findAlarmHistory(emailId, startTime, endTime); + } + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysDatabaseMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysDatabaseMapper.java index e58a3770..c3be5b15 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysDatabaseMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysDatabaseMapper.java @@ -1,7 +1,15 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.SysDatabase; +import java.util.Date; +import java.util.List; + public interface SysDatabaseMapper extends BaseMapper { + + List findAlarmHistory(@Param("databaseId") String databaseId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java index 8ce3adf4..ed46c7d8 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java @@ -1,7 +1,15 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.SysEmail; +import java.util.Date; +import java.util.List; + public interface SysEmailMapper extends BaseMapper { + + List findAlarmHistory( @Param("emailId") String emailId, @Param("startDate") Date startDate, @Param("endDate") Date endDate); + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailMapper.xml new file mode 100644 index 00000000..5d471498 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml new file mode 100644 index 00000000..66c94989 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java index 075b4b0e..f5d6ced3 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java @@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysDatabase; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; public interface ISysDatabaseService extends IService { @@ -17,4 +20,6 @@ public interface ISysDatabaseService extends IService { Result deleteById(String id); + Result findAlarmHistory(String databaseId, Date startTime, Date endTime); + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java index bf36aca2..6e34062e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java @@ -5,6 +5,8 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysEmail; +import java.util.Date; + public interface ISysEmailService extends IService { Result findPage(QueryRequest queryRequest, SysEmail sysEmail); @@ -17,4 +19,6 @@ public interface ISysEmailService extends IService { Result deleteById(String id); + Result findAlarmHistory(String emailId, Date startTime, Date endTime); + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java index 5ac62f4c..ffd20088 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.SysDatabase; import org.jeecg.modules.mapper.SysDatabaseMapper; import org.jeecg.modules.service.ISysDatabaseService; @@ -15,7 +17,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.Date; +import java.util.List; import java.util.Objects; @Service("sysDatabaseService") @@ -101,4 +105,27 @@ public class SysDatabaseServiceImpl extends ServiceImpl alarmHistory = this.baseMapper.findAlarmHistory(databaseId, startDate, endDate); + result.setSuccess(true); + result.setResult(alarmHistory); + } catch (ParseException e) { + throw new RuntimeException(e); + } + return result; + } + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java index 672851b4..32639935 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.SysEmail; import org.jeecg.modules.mapper.SysEmailMapper; import org.jeecg.modules.service.ISysEmailService; @@ -15,7 +17,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; +import java.text.ParseException; import java.util.Date; +import java.util.List; import java.util.Objects; @Service("sysEmailService") @@ -105,4 +109,27 @@ public class SysEmailServiceImpl extends ServiceImpl i return result; } + @Override + public Result findAlarmHistory(String emailId, Date startTime, Date endTime) { + Result result = new Result(); + try { + if (Objects.isNull(startTime)){ + result.error500("开始时间不能为空"); + return result; + } + if (Objects.isNull(endTime)){ + result.error500("结束时间不能为空"); + return result; + } + Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss"); + List alarmHistory = this.baseMapper.findAlarmHistory(emailId, startDate, endDate); + result.setSuccess(true); + result.setResult(alarmHistory); + } catch (ParseException e) { + throw new RuntimeException(e); + } + return result; + } + } From 61ee4370522cabe7453e55ea0b8da547adaea3fc Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 14 Jun 2023 18:11:29 +0800 Subject: [PATCH 27/64] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=E5=A2=9E=E5=8A=A0=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E7=9B=B8=E5=85=B3=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/entity/SysUserFocusStation.java | 6 ++++++ .../impl/SysUserFocusStationServiceImpl.java | 20 +++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java index 0b20e647..394e13b9 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -39,4 +39,10 @@ public class SysUserFocusStation implements Serializable { @TableField(value = "create_by") private String createBy; + @TableField(exist = false) + private Double lon; + + @TableField(exist = false) + private Double lat; + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java index 00df0993..6d8c6ce0 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -6,32 +6,44 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.entity.SysUser; import org.jeecg.modules.entity.SysUserFocusStation; import org.jeecg.modules.mapper.SysUserFocusStationMapper; import org.jeecg.modules.mapper.SysUserMapper; import org.jeecg.modules.service.ISysUserFocusStationService; +import org.jeecg.modules.system.entity.GardsStations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; @Service("sysUserFocusStationService") public class SysUserFocusStationServiceImpl extends ServiceImpl implements ISysUserFocusStationService { + @Autowired + private RedisUtil redisUtil; @Autowired private SysUserMapper sysUserMapper; @Override public List findList() { + //查询全部台站信息 + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); List sysUserFocusStations = this.baseMapper.selectList(new LambdaQueryWrapper<>()); if (CollectionUtils.isNotEmpty(sysUserFocusStations)){ + sysUserFocusStations.stream().forEach(item->{ + if (CollectionUtils.isNotEmpty(stationInfoMap)){ + if (Objects.nonNull(stationInfoMap.get(item.getStationId()))){ + GardsStations stations = (GardsStations) stationInfoMap.get(item.getStationId()); + item.setLon(stations.getLon()); + item.setLat(stations.getLat()); + } + } + }); return sysUserFocusStations; } return Collections.emptyList(); From 6447eaa2078e765398996b1ba2c3cae5c1d50729 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 15 Jun 2023 08:56:08 +0800 Subject: [PATCH 28/64] =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E7=BB=8F=E7=BA=AC=E5=BA=A6=E6=97=B6=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=98=AFw=E6=88=96s=E7=BB=93=E5=B0=BE=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E9=9C=80=E8=A6=81=E4=B9=98-1=20=E5=8F=B0?= =?UTF-8?q?=E7=AB=99/=E6=A0=B8=E8=AE=BE=E6=96=BD=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9=EF=BC=8C?= =?UTF-8?q?=E6=B5=B7=E6=8B=94=E5=8E=BB=E6=8E=89=E5=8D=95=E4=BD=8D=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=20=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A4=84=E7=90=86=E7=BB=93=E6=9E=9C=EF=BC=8C=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=9F=A5=E8=AF=A2=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=20=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E6=A0=91?= =?UTF-8?q?=E5=BD=A2=E7=BB=93=E6=9E=84=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/PointUtil.java | 3 +++ .../jeecg/modules/controller/StationOperationController.java | 2 ++ .../modules/service/impl/StationOperationServiceImpl.java | 2 +- .../org/jeecg/modules/controller/RadionuclideController.java | 3 +++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java index 38289024..379bfa94 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/PointUtil.java @@ -25,6 +25,9 @@ public class PointUtil { } if (Objects.nonNull(Degrees) || Objects.nonNull(minutes) || Objects.nonNull(seconds)){ Double result = Degrees + minutes/60+seconds/3600; + if (pointValue.indexOf("W")>0 || pointValue.indexOf("S")>0){ + result = -1 * result; + } pointValue = String.valueOf(result); } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index 765820f2..2e4503ea 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -13,6 +13,7 @@ import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; @RestController @@ -38,6 +39,7 @@ public class StationOperationController { } @GetMapping("findTree") + @ApiOperation(value = "查询台站树形结构", notes = "查询台站树形结构") public Result findTree(){ Result result = stationOperationService.findTree(); return result; diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 101396cc..9b89643e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -50,7 +50,7 @@ public class StationOperationServiceImpl extends ServiceImpl Date: Thu, 15 Jun 2023 09:02:31 +0800 Subject: [PATCH 29/64] =?UTF-8?q?=E6=B5=B7=E6=8B=94=E9=AB=98=E5=BA=A6?= =?UTF-8?q?=E5=8D=95=E4=BD=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/StationOperationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 9b89643e..7e374f0e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -50,7 +50,7 @@ public class StationOperationServiceImpl extends ServiceImpl Date: Thu, 15 Jun 2023 14:02:04 +0800 Subject: [PATCH 30/64] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=B3=A8=E8=A7=A3=20=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=B3=A8=E8=A7=A3=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E9=85=8D=E7=BD=AE=E7=AE=A1=E7=90=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=B3=A8=E8=A7=A3?= =?UTF-8?q?=20=E6=8A=A5=E8=AD=A6=E8=A7=84=E5=88=99=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3=20=E6=8A=A5=E8=AD=A6=E6=97=A5=E5=BF=97=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=20=E6=8A=A5=E8=AD=A6=E8=81=94=E7=B3=BB?= =?UTF-8?q?=E4=BA=BA=E7=BB=84=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=B3=A8=E8=A7=A3=20=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=90=AF=E5=8A=A8=E7=B1=BB=E5=A2=9E=E5=8A=A0controlle?= =?UTF-8?q?r=E5=B1=82=EF=BC=8C=E6=8A=A5=E8=AD=A6=E8=81=94=E7=B3=BB?= =?UTF-8?q?=E4=BA=BA=E7=BB=84=E5=A3=B0=E6=98=8E=E6=8E=A5=E5=8F=A3=E4=BD=BF?= =?UTF-8?q?=E7=94=A8feignClient=E8=B0=83=E7=94=A8=20=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86=E6=A0=B8=E8=AE=BE=E6=96=BD?= =?UTF-8?q?=E7=BB=8F=E7=BA=AC=E5=BA=A6=E4=BF=A1=E6=81=AF=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=94=99=E8=AF=AF=EF=BC=8C=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E4=BA=A4=E6=8D=A2=E5=AD=97=E6=AE=B5=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-abnormal-alarm/pom.xml | 5 + .../AlarmContactGroupController.java | 6 ++ .../controller/AlarmLogController.java | 6 ++ .../controller/AlarmRuleController.java | 7 ++ .../controller/SysDatabaseController.java | 8 ++ .../controller/SysEmailController.java | 1 + .../controller/SysServerController.java | 1 + .../modules/entity/AlarmContactGroup.java | 4 + .../modules/entity/AlarmContactGroupVo.java | 27 ------ .../org/jeecg/modules/entity/SysUserRole.java | 52 ----------- .../mapper/AlarmContactGroupVoMapper.java | 7 -- .../jeecg/modules/mapper/SysRoleMapper.java | 7 -- .../jeecg/modules/mapper/SysUserMapper.java | 7 -- .../modules/mapper/SysUserRoleMapper.java | 7 -- .../modules/service/IAlarmSysUserService.java | 17 ++++ .../modules/service/ISysUserService.java | 13 --- .../impl/AlarmContactGroupServiceImpl.java | 20 ++-- .../service/impl/AlarmRuleServiceImpl.java | 2 + .../service/impl/SysUserServiceImpl.java | 61 ------------- .../StationOperationController.java | 6 ++ .../service/IStationOperationService.java | 8 ++ .../impl/StationOperationServiceImpl.java | 40 ++++++-- .../src/main/resources/application.yml | 2 +- .../controller/AlarmSysUserController.java | 91 +++++++++++++++++++ 24 files changed, 203 insertions(+), 202 deletions(-) delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java create mode 100644 jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java diff --git a/jeecg-module-abnormal-alarm/pom.xml b/jeecg-module-abnormal-alarm/pom.xml index ca43b195..c82cf444 100644 --- a/jeecg-module-abnormal-alarm/pom.xml +++ b/jeecg-module-abnormal-alarm/pom.xml @@ -17,6 +17,11 @@ jeecg-boot-base-core
+ + + org.springframework.cloud + spring-cloud-starter-openfeign + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java index fb0a46c8..74c26810 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.controller; +import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.AlarmContactGroup; @@ -15,26 +16,31 @@ public class AlarmContactGroupController { private IAlarmContactGroupService alarmContactGroupService; @GetMapping("findPage") + @ApiOperation(value = "分页查询报警联系人组信息", notes = "分页查询报警联系人组信息") public Result findPage(QueryRequest queryRequest, AlarmContactGroup alarmContactGroup){ return alarmContactGroupService.findPage(queryRequest, alarmContactGroup); } @GetMapping("findInfo") + @ApiOperation(value = "查询报警联系人组信息详情", notes = "查询报警联系人组信息详情") public Result findPage(String id){ return alarmContactGroupService.findInfo(id); } @PostMapping("create") + @ApiOperation(value = "新增报警人联系人组", notes = "新增报警联系人组") public Result findPage(@RequestBody AlarmContactGroup alarmContactGroup){ return alarmContactGroupService.create(alarmContactGroup); } @PutMapping("update") + @ApiOperation(value = "修改报警人联系人组", notes = "修改报警联系人组") public Result update(@RequestBody AlarmContactGroup alarmContactGroup){ return alarmContactGroupService.update(alarmContactGroup); } @DeleteMapping("deleteById") + @ApiOperation(value = "删除报警人联系人组", notes = "删除报警联系人组") public Result deleteById(String id){ return alarmContactGroupService.deleteById(id); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index b56a8882..e6961dbd 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.controller; +import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.AlarmLog; @@ -15,26 +16,31 @@ public class AlarmLogController { private IAlarmLogService alarmLogService; @GetMapping("findPage") + @ApiOperation(value = "分页查询报警日志信息", notes = "分页查询报警日志信息") public Result findPage(QueryRequest queryRequest, AlarmLog alarmLog){ return alarmLogService.findPage(queryRequest, alarmLog); } @GetMapping("findInfo") + @ApiOperation(value = "查询报警日志信息详情", notes = "查询报警日志信息详情") public Result findPage(String id){ return alarmLogService.findInfo(id); } @PostMapping("create") + @ApiOperation(value = "新增报警日志", notes = "新增报警日志") public Result findPage(@RequestBody AlarmLog alarmLog){ return alarmLogService.create(alarmLog); } @PutMapping("update") + @ApiOperation(value = "修改报警日志", notes = "修改报警日志") public Result update(@RequestBody AlarmLog alarmLog){ return alarmLogService.update(alarmLog); } @DeleteMapping("deleteById") + @ApiOperation(value = "删除报警日志", notes = "删除报警日志") public Result deleteById(String id){ return alarmLogService.deleteById(id); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java index 7f30fe65..f8ced280 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java @@ -1,11 +1,13 @@ package org.jeecg.modules.controller; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.AlarmRule; import org.jeecg.modules.service.IAlarmRuleService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; @RestController @@ -17,26 +19,31 @@ public class AlarmRuleController { private IAlarmRuleService alarmRuleService; @GetMapping("findPage") + @ApiOperation(value = "分页查询报警规则信息", notes = "分页查询报警规则信息") public Result findPage(QueryRequest queryRequest, AlarmRule alarmRule){ return alarmRuleService.findPage(queryRequest, alarmRule); } @GetMapping("findInfo") + @ApiOperation(value = "查看规则信息详情", notes = "查看规则信息详情") public Result findPage(String id){ return alarmRuleService.findInfo(id); } @PostMapping("create") + @ApiOperation(value = "新增规则信息", notes = "新增规则信息") public Result findPage(@RequestBody AlarmRule alarmRule){ return alarmRuleService.create(alarmRule); } @PutMapping("update") + @ApiOperation(value = "修改规则信息", notes = "修改规则信息") public Result update(@RequestBody AlarmRule alarmRule){ return alarmRuleService.update(alarmRule); } @DeleteMapping("deleteById") + @ApiOperation(value = "删除规则信息", notes = "删除规则信息") public Result deleteById(String id){ return alarmRuleService.deleteById(id); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java index ad50f156..b98a6045 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java @@ -1,6 +1,7 @@ package org.jeecg.modules.controller; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysDatabase; @@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.Date; @RestController @@ -20,31 +22,37 @@ public class SysDatabaseController { private ISysDatabaseService sysDatabaseService; @GetMapping("findPage") + @ApiOperation(value = "分页查询数据库配置信息", notes = "分页查询数据库配置信息") public Result findPage(QueryRequest queryRequest, SysDatabase sysDatabase){ return sysDatabaseService.findPage(queryRequest, sysDatabase); } @GetMapping("findInfo") + @ApiOperation(value = "查询数据库配置信息详情", notes = "查询数据库配置信息详情") public Result findInfo(String id){ return sysDatabaseService.findInfo(id); } @PostMapping("create") + @ApiOperation(value = "新增数据库配置信息", notes = "新增数据库配置信息") public Result create(@RequestBody SysDatabase sysDatabase){ return sysDatabaseService.create(sysDatabase); } @PutMapping("update") + @ApiOperation(value = "修改数据库配置信息", notes = "修改数据库配置信息") public Result update(@RequestBody SysDatabase sysDatabase){ return sysDatabaseService.update(sysDatabase); } @DeleteMapping("deleteById") + @ApiOperation(value = "删除数据库配置信息", notes = "删除数据库配置信息") public Result deleteById(String id){ return sysDatabaseService.deleteById(id); } @GetMapping("findAlarmHistory") + @ApiOperation(value = "查询数据库历史报警信息", notes = "查询数据库历史报警信息") public Result findAlarmHistory(String databaseId, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ return sysDatabaseService.findAlarmHistory(databaseId, startTime, endTime); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java index 3d51fea1..78fdd27c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java @@ -51,6 +51,7 @@ public class SysEmailController { } @GetMapping("findAlarmHistory") + @ApiOperation(value = "查询邮箱历史报警信息", notes = "查询邮箱历史报警信息") public Result findAlarmHistory(String emailId, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ return sysEmailService.findAlarmHistory(emailId, startTime, endTime); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java index ba358a87..73e45938 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java @@ -51,6 +51,7 @@ public class SysServerController { } @GetMapping("findAlarmHistory") + @ApiOperation(value = "查询服务器历史报警信息", notes = "查询服务器历史报警信息") public Result findAlarmHistory(String serverId, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ return sysServerService.findAlarmHistory(serverId, startTime, endTime); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java index 308e47f2..5fbff4d4 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java @@ -44,6 +44,10 @@ public class AlarmContactGroup implements Serializable { @TableField(exist = false) List userIds; + @TableField(exist = false) + List users; + @TableField(exist = false) + Integer personNumber; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java deleted file mode 100644 index d7676989..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupVo.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.jeecg.modules.entity; - -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -@Data -public class AlarmContactGroupVo implements Serializable { - - private String id; - - private String name; - - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - - List users; - - Integer personNumber; - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java deleted file mode 100644 index 68cf50e5..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysUserRole.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.jeecg.modules.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serializable; - -/** - *

- * 用户角色表 - *

- * - * @Author scott - * @since 2018-12-21 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -public class SysUserRole implements Serializable { - - private static final long serialVersionUID = 1L; - - @TableId(type = IdType.ASSIGN_ID) - private String id; - - /** - * 用户id - */ - private String userId; - - /** - * 角色id - */ - private String roleId; - - /**租户ID*/ - private Integer tenantId; - - public SysUserRole() { - } - - public SysUserRole(String userId, String roleId) { - this.userId = userId; - this.roleId = roleId; - } - - - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java deleted file mode 100644 index ed4fa6f5..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmContactGroupVoMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecg.modules.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.AlarmContactGroupVo; - -public interface AlarmContactGroupVoMapper extends BaseMapper { -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java deleted file mode 100644 index f795b5bb..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysRoleMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecg.modules.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.SysRole; - -public interface SysRoleMapper extends BaseMapper { -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java deleted file mode 100644 index 9c11087e..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecg.modules.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.SysUser; - -public interface SysUserMapper extends BaseMapper { -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java deleted file mode 100644 index ef2415b1..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysUserRoleMapper.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.jeecg.modules.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.SysUserRole; - -public interface SysUserRoleMapper extends BaseMapper { -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java new file mode 100644 index 00000000..93f23705 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.service; + +import org.jeecg.modules.entity.SysUser; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.Map; + +@Component +@FeignClient(value = "jeecg-system") +public interface IAlarmSysUserService { + + @RequestMapping("/alarmSysUser/findUserMap") + Map findUserMap(); + +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java deleted file mode 100644 index f5a390d5..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysUserService.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.jeecg.modules.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.modules.entity.SysUser; - -import java.util.List; -import java.util.Map; - -public interface ISysUserService extends IService { - - Map findUserList(); - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java index c373d552..7b0f53ee 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmContactGroupServiceImpl.java @@ -11,13 +11,11 @@ import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.entity.AlarmContactGroup; import org.jeecg.modules.entity.AlarmContactGroupMember; -import org.jeecg.modules.entity.AlarmContactGroupVo; import org.jeecg.modules.entity.SysUser; import org.jeecg.modules.mapper.AlarmContactGroupMapper; import org.jeecg.modules.mapper.AlarmContactGroupMemberMapper; -import org.jeecg.modules.mapper.AlarmContactGroupVoMapper; import org.jeecg.modules.service.IAlarmContactGroupService; -import org.jeecg.modules.service.ISysUserService; +import org.jeecg.modules.service.IAlarmSysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,24 +26,22 @@ import java.util.stream.Collectors; @Service("alarmContactGroupService") public class AlarmContactGroupServiceImpl extends ServiceImpl implements IAlarmContactGroupService { - @Autowired - private AlarmContactGroupVoMapper alarmContactGroupVoMapper; @Autowired private AlarmContactGroupMemberMapper alarmContactGroupMemberMapper; @Autowired - private ISysUserService sysUserService; + private IAlarmSysUserService alarmSysUserService; @Override public Result findPage(QueryRequest queryRequest, AlarmContactGroup alarmContactGroup) { Result result = new Result(); //获取用户信息 - Map userList = sysUserService.findUserList(); - Page page = new Page<>(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Page alarmContactGroupVoPage = alarmContactGroupVoMapper.selectPage(page, queryWrapper); + Map userList = alarmSysUserService.findUserMap(); + Page page = new Page<>(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Page alarmContactGroupPage = this.baseMapper.selectPage(page, queryWrapper); LambdaQueryWrapper contactGroupMemberQueryWrapper = new LambdaQueryWrapper<>(); List alarmContactGroupMembers = alarmContactGroupMemberMapper.selectList(contactGroupMemberQueryWrapper); - alarmContactGroupVoPage.getRecords().forEach(item->{ + alarmContactGroupPage.getRecords().forEach(item->{ List sysUsers = new LinkedList<>(); //联系人组对应联系人信息不为空 if (CollectionUtils.isNotEmpty(alarmContactGroupMembers)){ @@ -66,7 +62,7 @@ public class AlarmContactGroupServiceImpl extends ServiceImpl page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Objects.nonNull(alarmRule.getEnabled()), AlarmRule::getEnabled, alarmRule.getEnabled()); + queryWrapper.eq(StringUtils.isNotBlank(alarmRule.getSourceId()), AlarmRule::getSourceId, alarmRule.getSourceId()); Page alarmRulePage = this.baseMapper.selectPage(page, queryWrapper); result.setSuccess(true); result.setResult(alarmRulePage); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java deleted file mode 100644 index 2e4af4af..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysUserServiceImpl.java +++ /dev/null @@ -1,61 +0,0 @@ -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.extension.service.impl.ServiceImpl; -import org.jeecg.modules.entity.SysRole; -import org.jeecg.modules.entity.SysUser; -import org.jeecg.modules.entity.SysUserRole; -import org.jeecg.modules.mapper.SysRoleMapper; -import org.jeecg.modules.mapper.SysUserMapper; -import org.jeecg.modules.mapper.SysUserRoleMapper; -import org.jeecg.modules.service.ISysUserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -@Service("sysUserService") -public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { - - @Autowired - private SysUserRoleMapper sysUserRoleMapper; - @Autowired - private SysRoleMapper sysRoleMapper; - - @Override - public Map findUserList() { - Map map = new HashMap<>(); - LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); - List sysUsers = this.baseMapper.selectList(userQueryWrapper); - LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); - List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); - LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); - List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); - List roles = new LinkedList<>(); - //遍历所有用户信息 - if (CollectionUtils.isNotEmpty(sysUsers)){ - for (SysUser sysUser:sysUsers) { - if (CollectionUtils.isNotEmpty(sysUserRoles)){ - //获取各用户匹配的权限集合 - List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); - List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(sysRoles)){ - for (SysRole role:sysRoles) { - if (roleIds.contains(role.getId())){ - roles.add(role); - } - } - } - sysUser.setRoles(roles); - } - map.put(sysUser.getId(), sysUser); - } - } - return map; - } -} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index 2e4503ea..b678d849 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -52,4 +52,10 @@ public class StationOperationController { return result; } + @GetMapping("getDataReceivingStatus") + @ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息") + public void getDataReceivingStatus(List stationIds){ + stationOperationService.getDataReceivingStatus(stationIds); + } + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index c0441306..d978c305 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -38,4 +38,12 @@ public interface IStationOperationService extends IService { * @return */ Result getHitEquList(PointVo pointVo); + + /** + * 查询台站监测数据 + * @param stationIds + * @return + */ + Result getDataReceivingStatus(List stationIds); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 7e374f0e..2287088c 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -10,6 +10,7 @@ import com.spatial4j.core.shape.Rectangle; import io.swagger.models.auth.In; import org.jeecg.common.PointUtil; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.entity.Point; import org.jeecg.modules.entity.PointVo; @@ -22,6 +23,9 @@ import org.jeecg.modules.service.IStationOperationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.ParseException; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -66,8 +70,8 @@ public class StationOperationServiceImpl extends ServiceImpl nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); GardsNuclearfacility nuclearfacility = nuclearFacilityMap.get(stationId); if (Objects.nonNull(nuclearfacility)){ - nuclearfacility.setLongitude(PointUtil.calculate(nuclearfacility.getLongitude())); - nuclearfacility.setLatitude(PointUtil.calculate(nuclearfacility.getLatitude())); + nuclearfacility.setLongitude(PointUtil.calculate(nuclearfacility.getLatitude())); + nuclearfacility.setLatitude(PointUtil.calculate(nuclearfacility.getLongitude())); result.setResult(nuclearfacility); result.setSuccess(true); }else { @@ -177,13 +181,13 @@ public class StationOperationServiceImpl extends ServiceImpl stationIds) { + if (CollectionUtils.isNotEmpty(stationIds)){ + //获取当前日期时间 + LocalDate endDate = LocalDate.now(); + //将当前日期换算成 +// endDate.minusDays(); + + + + //根据台站id + + + + + + } + return null; + } + /** * 获取外接正方形的最大最小经纬度 * diff --git a/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml index 8a462b69..faa36051 100644 --- a/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/jeecg-station-operation-start/src/main/resources/application.yml @@ -15,4 +15,4 @@ spring: config: import: - optional:nacos:jeecg.yaml - - optional:nacos:jeecg-station-operation-@profile.name@.yaml \ No newline at end of file + - optional:nacos:jeecg-@profile.name@.yaml \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java new file mode 100644 index 00000000..6226dc44 --- /dev/null +++ b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java @@ -0,0 +1,91 @@ +package org.jeecg.modules.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.jeecg.modules.system.entity.SysDictItem; +import org.jeecg.modules.system.entity.SysRole; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.entity.SysUserRole; +import org.jeecg.modules.system.mapper.SysDictItemMapper; +import org.jeecg.modules.system.mapper.SysRoleMapper; +import org.jeecg.modules.system.mapper.SysUserMapper; +import org.jeecg.modules.system.mapper.SysUserRoleMapper; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("alarmSysUser") +public class AlarmSysUserController { + + @Resource + private SysUserMapper sysUserMapper; + @Resource + private SysUserRoleMapper sysUserRoleMapper; + @Resource + private SysRoleMapper sysRoleMapper; + @Resource + private SysDictItemMapper sysDictItemMapper; + + @GetMapping("findUserMap") + public Map findUserMap(){ + Map map = new HashMap<>(); + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + List sysUsers = sysUserMapper.selectList(userQueryWrapper); + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); + LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); + List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); + List roles = new LinkedList<>(); + //遍历所有用户信息 + if (CollectionUtils.isNotEmpty(sysUsers)){ + for (SysUser sysUser:sysUsers) { + if (CollectionUtils.isNotEmpty(sysUserRoles)){ + //获取各用户匹配的权限集合 + List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); + List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(sysRoles)){ + for (SysRole role:sysRoles) { + if (roleIds.contains(role.getId())){ + roles.add(role); + } + } + } + sysUser.setRoles(roles); + } + map.put(sysUser.getId(), sysUser); + } + } + return map; + } + + + + @RequestMapping("findCacheTime") + public void findCacheTime(){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List sysDictItems = sysDictItemMapper.selectList(queryWrapper); + //获取缓存时间对应的值 + Map cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")) + .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + //获取实际分度值 + Map scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")) + .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + //获取时间线长度 + Map timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")) + .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + //获取更新间隔时间 + Map updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")) + .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + + } + + +} From e43fec651bd2cd51f9522085cbb7a45cb593bd35 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 15 Jun 2023 14:27:08 +0800 Subject: [PATCH 31/64] =?UTF-8?q?=E6=97=A5=E5=BF=97=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=85=B3=E9=97=ADftp=E8=BF=9E=E6=8E=A5=20=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/FTPUtil.java | 47 ++++++++++++++++--- .../controller/LogManageController.java | 35 ++++---------- 2 files changed, 49 insertions(+), 33 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index bd5f49e5..6ca68c24 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -8,8 +8,11 @@ import org.apache.commons.net.ftp.FTPReply; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; +import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; @@ -60,14 +63,15 @@ public class FTPUtil { return ftp; } - public InputStream downloadFTPFile(String localPath, String fileName){ + public void downloadFTPFile(String localPath, String fileName, HttpServletResponse response) { InputStream in = null; + ServletOutputStream out = null; + FTPClient ftpClient = this.LoginFTP(); + if (Objects.isNull(ftpClient)){ + throw new RuntimeException("ftp连接失败!"); + } //传输模式 try { - FTPClient ftpClient = this.LoginFTP(); - if (Objects.isNull(ftpClient)){ - throw new RuntimeException("ftp连接失败!"); - } List paths = Arrays.asList(localPath.split("/")); if (CollectionUtils.isNotEmpty(paths)){ for (String workPath:paths) { @@ -88,10 +92,41 @@ public class FTPUtil { } } } + //重置响应信息 + response.reset(); + //设置响应类型 + response.setContentType("application/download"); + //解决中文不能生成文件 + response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(fileName,"UTF-8")); + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + //获取输出流 + out = response.getOutputStream(); + //声明一个长度参数 + int len; + //声明字节数组 + byte[] bytes = new byte[1024]; + //判断如果输入流的字节长度不等于-1,进行字节数组内容的读取 + while ((len = in.read(bytes)) != -1) { + out.write(bytes, 0, len); + } } catch (IOException e) { throw new RuntimeException(e); + } finally { + try { + out.flush(); + if (out != null) { + out.close(); + } + if (in != null) { + in.close(); + } + if (ftpClient != null){ + ftpClient.disconnect(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } } - return in; } } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java index 4c663b7c..a009ee50 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java @@ -62,6 +62,9 @@ public class LogManageController { } result.addAll(list); } + if (ftpClient != null){ + ftpClient.disconnect(); + } } catch (IOException e) { throw new RuntimeException(e); } @@ -178,6 +181,9 @@ public class LogManageController { } } } + if (ftpClient != null){ + ftpClient.disconnect(); + } } catch (IOException e) { throw new RuntimeException(e); } @@ -186,36 +192,11 @@ public class LogManageController { @PostMapping("downloadFile") @ApiOperation(value = "ftp文件下载", notes = "ftp文件下载") - public void downloadFile(String localPath, String fileName, HttpServletResponse response) throws IOException { + public void downloadFile(String localPath, String fileName, HttpServletResponse response) { if (localPath.contains(fileName)){ localPath=localPath.substring(0,localPath.indexOf(fileName)-1); } - //重置响应信息 - response.reset(); - //设置响应类型 - response.setContentType("application/download"); - //解决中文不能生成文件 - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(fileName,"UTF-8")); - response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - //获取文件的输入流 - InputStream in = ftpUtil.downloadFTPFile(localPath, fileName); - //获取输出流 - ServletOutputStream out = response.getOutputStream(); - //声明一个长度参数 - int len; - //声明字节数组 - byte[] bytes = new byte[1024]; - //判断如果输入流的字节长度不等于-1,进行字节数组内容的读取 - while ((len = in.read(bytes)) != -1) { - out.write(bytes, 0, len); - } - out.flush(); - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } + ftpUtil.downloadFTPFile(localPath, fileName,response); } } From 7a055994f3b07a9630f8b40c44c4276192965881 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 08:49:30 +0800 Subject: [PATCH 32/64] =?UTF-8?q?=E6=B0=94=E8=B1=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=8C=E7=8A=B6=E6=80=81=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=8C=E6=A0=B7=E5=93=81?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E7=A7=BB=E5=88=B0=E5=85=AC=E7=94=A8=E6=A8=A1=E5=9D=97=E4=B8=8B?= =?UTF-8?q?=20=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=86=85=E5=AE=B9=E4=BF=AE=E6=94=B9=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E5=90=8E=E5=85=B3=E9=97=ADftp=E8=BF=9E=E6=8E=A5=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=86=85=E5=AE=B9=E4=BF=A1=E6=81=AF=E5=90=8E?= =?UTF-8?q?=E5=85=B3=E9=97=ADftp=E8=BF=9E=E6=8E=A5=20=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=B8=8B=E8=BD=BD=E5=90=8E?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=B5=81=E4=BB=A5=E5=8F=8Aftp=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=20=E5=A2=9E=E5=8A=A0=E9=9D=99=E6=80=81=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=B7=A5=E5=85=B7=E7=B1=BB=20system=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=93=E5=AD=98=E4=BF=A1=E6=81=AF=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20system=E6=A8=A1=E5=9D=97=E6=96=B0=E5=A2=9E=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=8F=B0=E7=AB=99id=E6=9F=A5=E8=AF=A2=E6=8E=A2?= =?UTF-8?q?=E6=B5=8B=E5=99=A8=E4=BF=A1=E6=81=AF=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/base}/entity/GardsMetData.java | 2 +- .../modules/base}/entity/GardsSampleData.java | 18 +- .../modules/base}/entity/GardsSohData.java | 2 +- .../controller/LogManageController.java | 151 +-------------- .../modules/service/ILogManageService.java | 24 +++ .../service/impl/LogManageServiceImpl.java | 177 ++++++++++++++++++ jeecg-module-station-operation/pom.xml | 5 + .../main/java/org/jeecg/common/CacheName.java | 15 ++ .../org/jeecg/modules/entity/StationTree.java | 2 +- .../modules/mapper/StationMetDataMapper.java | 7 + .../mapper/StationSampleDataMapper.java | 8 + .../modules/mapper/StationSohDataMapper.java | 7 + .../modules/mapper/xml/gardsMetDataMapper.xml | 7 + .../mapper/xml/gardsSampleDataMapper.xml | 7 + .../modules/mapper/xml/gardsSohDataMapper.xml | 7 + .../modules/service/ICacheTimeService.java | 21 +++ .../impl/StationOperationServiceImpl.java | 102 +++++++--- .../modules/system/entity/GardsDetectors.java | 73 ++++++++ .../controller/WebStatisticsController.java | 6 +- .../modules/mapper/GardsMetDataMapper.java | 2 +- .../modules/mapper/GardsSampleDataMapper.java | 2 +- .../modules/mapper/GardsSohDataMapper.java | 2 +- .../modules/service/impl/AutoServiceImpl.java | 2 +- .../controller/AlarmSysUserController.java | 63 +++++-- 24 files changed, 504 insertions(+), 208 deletions(-) rename {jeecg-module-web-statistics/src/main/java/org/jeecg/modules => jeecg-boot-base-core/src/main/java/org/jeecg/modules/base}/entity/GardsMetData.java (97%) rename {jeecg-module-web-statistics/src/main/java/org/jeecg/modules => jeecg-boot-base-core/src/main/java/org/jeecg/modules/base}/entity/GardsSampleData.java (94%) rename {jeecg-module-web-statistics/src/main/java/org/jeecg/modules => jeecg-boot-base-core/src/main/java/org/jeecg/modules/base}/entity/GardsSohData.java (97%) create mode 100644 jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java create mode 100644 jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java similarity index 97% rename from jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java index 4af992d2..f28f9d49 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsMetData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.base.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java similarity index 94% rename from jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java index 0167ffe5..632dd833 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.base.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @@ -10,7 +10,7 @@ import java.io.Serializable; import java.util.Date; @Data -@TableName(value = "gards_sample_data") +@TableName("GARDS_SAMPLE_DATA") public class GardsSampleData implements Serializable { @TableField(value = "SITE_DET_CODE") @@ -41,28 +41,28 @@ public class GardsSampleData implements Serializable { private String spectralQualifie; @TableField(value = "TRANSMIT_DTG") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date transmitDtg; @TableField(value = "COLLECT_START") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStart; @TableField(value = "COLLECT_STOP") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStop; @TableField(value = "ACQUISITION_START") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStart; @TableField(value = "ACQUISITION_STOP") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStop; @TableField(value = "ACQUISITION_REAL_SEC") @@ -78,11 +78,13 @@ public class GardsSampleData implements Serializable { private String status; @TableField(value = "MODDATE") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; @TableField(exist = false) private String stationName; + @TableField(exist = false) + private String detectorsName; + } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java similarity index 97% rename from jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java index 453498a3..85c07e67 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSohData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.base.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java index a009ee50..bc142853 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java @@ -9,6 +9,7 @@ import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.FTPUtil; import org.jeecg.modules.entity.FileInfo; import org.jeecg.modules.entity.LogManage; +import org.jeecg.modules.service.ILogManageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -28,122 +29,13 @@ public class LogManageController { @Autowired private FTPUtil ftpUtil; + @Autowired + private ILogManageService logManageService; @GetMapping("findFtpFolders") @ApiOperation(value = "查询日志文件夹树形结构", notes = "查询日志文件夹树形结构") public List findFtpFolders(String workPath){ - List result = new ArrayList<>(); - try { - FTPClient ftpClient = ftpUtil.LoginFTP(); - if(Objects.isNull(ftpClient)){ - throw new RuntimeException("ftp连接失败!"); - } - //切换工作文件路径 - ftpClient.changeWorkingDirectory(workPath); - ftpClient.enterLocalPassiveMode(); - List ftpFiles = Arrays.asList(ftpClient.listDirectories()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - int num =1; - for (FTPFile ftpFile:ftpFiles) { - LogManage logManage = new LogManage(); - logManage.setName(ftpFile.getName()); - logManage.setOrderNum(num); - logManage.setParentNum(0); - logManage.setPath(workPath + "/" + ftpFile.getName()); - result.add(logManage); - num++; - } - } - if (CollectionUtils.isNotEmpty(result)){ - List list = new LinkedList<>(); - for (LogManage logManage:result) { - list = this.findDirectory(ftpClient, list, logManage.getOrderNum(), workPath + "/" + logManage.getName()); - ftpClient.changeToParentDirectory(); - } - result.addAll(list); - } - if (ftpClient != null){ - ftpClient.disconnect(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - result = this.LogManageTree(result); - return result; - } - - /** - * 遍历查询当前路径下的文件夹信息 - * @param ftp - * @param list - * @param filePath 以"/"开始和结束 - * @return - */ - public List findDirectory(FTPClient ftp,List list,Integer parentNum,String filePath){ - try { - if (filePath.indexOf("/")>0){ - List paths = Arrays.asList(filePath.split("/")); - for (String path:paths) { - ftp.changeWorkingDirectory(path); - } - } - List ftpFiles = Arrays.asList(ftp.listDirectories()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - int num =1; - for (FTPFile file : ftpFiles) { - if (file.isDirectory()) { - LogManage logManage = new LogManage(); - logManage.setName(file.getName()); - logManage.setOrderNum(num); - logManage.setParentNum(parentNum); - logManage.setPath(filePath +"/"+ file.getName()); - list.add(logManage); - num++; - // 需要加此判断。否则,ftp默认将‘项目文件所在目录之下的目录(./)’与‘项目文件所在目录向上一级目录下的目录(../)’都纳入递归,这样下去就陷入一个死循环了。需将其过滤掉。 - if (!".".equals(file.getName()) && !"..".equals(file.getName())) { - findDirectory(ftp,list,num,filePath +"/"+ file.getName()); - ftp.changeToParentDirectory(); - } - } - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return list; - } - - /** - * 将当前的文件夹转换成树形结构 - * @param logManages - * @return - */ - public List LogManageTree(List logManages){ - if (logManages == null) { - return null; - } - List result = new LinkedList<>(); - Integer TOP_NODE_ID = 0; - logManages.forEach(logManage -> { - Integer pid = logManage.getParentNum(); - if (pid == null || TOP_NODE_ID.equals(pid)) { - result.add(logManage); - return; - } - for (LogManage manage : logManages) { - Integer id = manage.getOrderNum(); - if (id != null && id.equals(pid)) { - if (manage.getChildren() == null) { - manage.initChildren(); - } - logManage.setHashParent(true); - manage.getChildren().add(logManage); - manage.setHashChild(true); - return; - } - } - }); - return result; + return logManageService.findFtpFolders(workPath); } /** @@ -154,40 +46,7 @@ public class LogManageController { @GetMapping("findFiles") @ApiOperation(value = "查询目录下文件内容", notes = "查询目录下文件内容") public List findFiles(String path){ - List result = new ArrayList<>(); - try { - FTPClient ftpClient = ftpUtil.LoginFTP(); - if (Objects.isNull(ftpClient)){ - throw new RuntimeException("ftp连接失败!"); - } - List paths = Arrays.asList(path.split("/")); - if (CollectionUtils.isNotEmpty(paths)){ - for (String workPath:paths) { - //切换工作文件路径 - ftpClient.changeWorkingDirectory(workPath); - } - } - ftpClient.enterLocalPassiveMode(); - List ftpFiles = Arrays.asList(ftpClient.listFiles()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - for (FTPFile ftpFile:ftpFiles) { - if (ftpFile.isFile()){ - FileInfo fileInfo = new FileInfo(); - fileInfo.setFileName(ftpFile.getName()); - fileInfo.setFilePath(path +"/"+ ftpFile.getName()); - fileInfo.setFileSize(String.format("%.2f", Double.valueOf(Double.valueOf(ftpFile.getSize())/1024)) + "KB"); - fileInfo.setFileDate(DateUtils.formatDate(ftpFile.getTimestamp(),"yyyy-MM-dd")); - result.add(fileInfo); - } - } - } - if (ftpClient != null){ - ftpClient.disconnect(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return result; + return logManageService.findFiles(path); } @PostMapping("downloadFile") diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java new file mode 100644 index 00000000..bab2dce0 --- /dev/null +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java @@ -0,0 +1,24 @@ +package org.jeecg.modules.service; + +import org.jeecg.modules.entity.FileInfo; +import org.jeecg.modules.entity.LogManage; + +import java.util.List; + +public interface ILogManageService { + + /** + * 查询日志文件夹树形结构 + * @param workPath + * @return + */ + List findFtpFolders(String workPath); + + /** + * 查询目录下文件内容 + * @param path + * @return + */ + List findFiles(String path); + +} diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java new file mode 100644 index 00000000..562aebea --- /dev/null +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java @@ -0,0 +1,177 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.apache.commons.net.ftp.FTPClient; +import org.apache.commons.net.ftp.FTPFile; +import org.jeecg.common.util.DateUtils; +import org.jeecg.common.util.FTPUtil; +import org.jeecg.modules.entity.FileInfo; +import org.jeecg.modules.entity.LogManage; +import org.jeecg.modules.service.ILogManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; + +@Service("logManageService") +public class LogManageServiceImpl implements ILogManageService { + + @Autowired + private FTPUtil ftpUtil; + + @Override + public List findFtpFolders(String workPath) { + List result = new ArrayList<>(); + try { + FTPClient ftpClient = ftpUtil.LoginFTP(); + if(Objects.isNull(ftpClient)){ + throw new RuntimeException("ftp连接失败!"); + } + //切换工作文件路径 + ftpClient.changeWorkingDirectory(workPath); + ftpClient.enterLocalPassiveMode(); + List ftpFiles = Arrays.asList(ftpClient.listDirectories()); + if (CollectionUtils.isNotEmpty(ftpFiles)){ + int num =1; + for (FTPFile ftpFile:ftpFiles) { + LogManage logManage = new LogManage(); + logManage.setName(ftpFile.getName()); + logManage.setOrderNum(num); + logManage.setParentNum(0); + logManage.setPath(workPath + "/" + ftpFile.getName()); + result.add(logManage); + num++; + } + } + if (CollectionUtils.isNotEmpty(result)){ + List list = new LinkedList<>(); + for (LogManage logManage:result) { + list = this.findDirectory(ftpClient, list, logManage.getOrderNum(), workPath + "/" + logManage.getName()); + ftpClient.changeToParentDirectory(); + } + result.addAll(list); + } + if (ftpClient != null){ + ftpClient.disconnect(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + result = this.LogManageTree(result); + return result; + } + + @Override + public List findFiles(String path) { + List result = new ArrayList<>(); + try { + FTPClient ftpClient = ftpUtil.LoginFTP(); + if (Objects.isNull(ftpClient)){ + throw new RuntimeException("ftp连接失败!"); + } + List paths = Arrays.asList(path.split("/")); + if (CollectionUtils.isNotEmpty(paths)){ + for (String workPath:paths) { + //切换工作文件路径 + ftpClient.changeWorkingDirectory(workPath); + } + } + ftpClient.enterLocalPassiveMode(); + List ftpFiles = Arrays.asList(ftpClient.listFiles()); + if (CollectionUtils.isNotEmpty(ftpFiles)){ + for (FTPFile ftpFile:ftpFiles) { + if (ftpFile.isFile()){ + FileInfo fileInfo = new FileInfo(); + fileInfo.setFileName(ftpFile.getName()); + fileInfo.setFilePath(path +"/"+ ftpFile.getName()); + fileInfo.setFileSize(String.format("%.2f", Double.valueOf(Double.valueOf(ftpFile.getSize())/1024)) + "KB"); + fileInfo.setFileDate(DateUtils.formatDate(ftpFile.getTimestamp(),"yyyy-MM-dd")); + result.add(fileInfo); + } + } + } + if (ftpClient != null){ + ftpClient.disconnect(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return result; + } + + /** + * 遍历查询当前路径下的文件夹信息 + * @param ftp + * @param list + * @param filePath 以"/"开始和结束 + * @return + */ + public List findDirectory(FTPClient ftp,List list,Integer parentNum,String filePath){ + try { + if (filePath.indexOf("/")>0){ + List paths = Arrays.asList(filePath.split("/")); + for (String path:paths) { + ftp.changeWorkingDirectory(path); + } + } + List ftpFiles = Arrays.asList(ftp.listDirectories()); + if (CollectionUtils.isNotEmpty(ftpFiles)){ + int num =1; + for (FTPFile file : ftpFiles) { + if (file.isDirectory()) { + LogManage logManage = new LogManage(); + logManage.setName(file.getName()); + logManage.setOrderNum(num); + logManage.setParentNum(parentNum); + logManage.setPath(filePath +"/"+ file.getName()); + list.add(logManage); + num++; + // 需要加此判断。否则,ftp默认将‘项目文件所在目录之下的目录(./)’与‘项目文件所在目录向上一级目录下的目录(../)’都纳入递归,这样下去就陷入一个死循环了。需将其过滤掉。 + if (!".".equals(file.getName()) && !"..".equals(file.getName())) { + findDirectory(ftp,list,num,filePath +"/"+ file.getName()); + ftp.changeToParentDirectory(); + } + } + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return list; + } + + /** + * 将当前的文件夹转换成树形结构 + * @param logManages + * @return + */ + public List LogManageTree(List logManages){ + if (logManages == null) { + return null; + } + List result = new LinkedList<>(); + Integer TOP_NODE_ID = 0; + logManages.forEach(logManage -> { + Integer pid = logManage.getParentNum(); + if (pid == null || TOP_NODE_ID.equals(pid)) { + result.add(logManage); + return; + } + for (LogManage manage : logManages) { + Integer id = manage.getOrderNum(); + if (id != null && id.equals(pid)) { + if (manage.getChildren() == null) { + manage.initChildren(); + } + logManage.setHashParent(true); + manage.getChildren().add(logManage); + manage.setHashChild(true); + return; + } + } + }); + return result; + } + +} diff --git a/jeecg-module-station-operation/pom.xml b/jeecg-module-station-operation/pom.xml index ad2f458f..e61718e1 100644 --- a/jeecg-module-station-operation/pom.xml +++ b/jeecg-module-station-operation/pom.xml @@ -23,6 +23,11 @@ spatial4j 0.5 + + + org.springframework.cloud + spring-cloud-starter-openfeign + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java new file mode 100644 index 00000000..8addb981 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java @@ -0,0 +1,15 @@ +package org.jeecg.common; + +import org.springframework.stereotype.Component; + +public class CacheName { + + public static final String cacheTime = "Cache time"; + + public static final String scaleInterval = "Scale interval"; + + public static final String timelineLength = "Timeline length "; + + public static final String updateIntervalTime = "Update interval time"; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java index c812b8b4..a0b972af 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java @@ -12,6 +12,6 @@ public class StationTree { private String code; - List children; + List children; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java new file mode 100644 index 00000000..103ae065 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.base.entity.GardsMetData; + +public interface StationMetDataMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java new file mode 100644 index 00000000..28248bf3 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java @@ -0,0 +1,8 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.base.entity.GardsSampleData; + +public interface StationSampleDataMapper extends BaseMapper { + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java new file mode 100644 index 00000000..b2e2d34d --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.base.entity.GardsSohData; + +public interface StationSohDataMapper extends BaseMapper { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml new file mode 100644 index 00000000..948514e5 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml new file mode 100644 index 00000000..74405da1 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml new file mode 100644 index 00000000..a9372e53 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java new file mode 100644 index 00000000..a293957e --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.service; + +import org.jeecg.modules.system.entity.GardsDetectors; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.List; +import java.util.Map; + +@Component +@FeignClient(value = "jeecg-system") +public interface ICacheTimeService { + + @RequestMapping("/alarmSysUser/findCacheTime") + List> findCacheTime(); + + @RequestMapping("/alarmSysUser/findStationDetectors") + Map> findStationDetectors(List stationIds); + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 2287088c..f917d57e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,6 +9,7 @@ import com.spatial4j.core.context.SpatialContext; import com.spatial4j.core.distance.DistanceUtils; import com.spatial4j.core.shape.Rectangle; import io.swagger.models.auth.In; +import org.jeecg.common.CacheName; import org.jeecg.common.PointUtil; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.DateUtils; @@ -15,6 +17,8 @@ import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.entity.Point; import org.jeecg.modules.entity.PointVo; import org.jeecg.modules.entity.StationTree; +import org.jeecg.modules.service.ICacheTimeService; +import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.entity.StationOperation; @@ -31,10 +35,12 @@ import java.util.List; import java.util.stream.Collectors; @Service("stationOperationService") -@DS("ora") +@DS("ori") public class StationOperationServiceImpl extends ServiceImpl implements IStationOperationService { @Autowired private RedisUtil redisUtil; + @Autowired + private ICacheTimeService cacheTimeService; private final SpatialContext spatialContext = SpatialContext.GEO; @@ -53,7 +59,13 @@ public class StationOperationServiceImpl extends ServiceImpl200 && 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.setLon(String.valueOf(gardsStation.getLon())); stationOperation.setLat(String.valueOf(gardsStation.getLat())); @@ -86,7 +98,7 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); GardsStations stations = stationInfoMap.get(stationId); if (Objects.nonNull(stations)){ @@ -128,20 +140,45 @@ public class StationOperationServiceImpl extends ServiceImpl countryCodes = gardsStationsList.stream().map(GardsStations::getCountryCode).distinct().sorted().collect(Collectors.toList()); - for (String countryCode:countryCodes) { - //声明一个数组存储城市编码对应的数组信息 - List stationsList = new LinkedList<>(); - StationTree stationTree = new StationTree(); - stationTree.setStationId(countryCodes.indexOf(countryCode)+1); - stationTree.setCode(countryCode); - for (GardsStations stations:gardsStationsList) { - if (stations.getCountryCode().equals(countryCode)){ - stationsList.add(stations); + List countryCodes = gardsStationsList.stream().map(GardsStations::getCountryCode).distinct().sorted().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(countryCodes)){ + for (int i=0; i<3; i++){ + //树形结构子级 用于存储城市及城市下的台站信息 + List stationChildTreeList = new LinkedList<>(); + StationTree stationTree = new StationTree(); + stationTree.setStationId(i); + if (i == 0){ + stationTree.setCode("Particulate Station"); + }else if (i == 1){ + stationTree.setCode("Noble Gas Station"); + }else if (i == 2){ + stationTree.setCode("NRL"); } + for (Object countryCode:countryCodes) { + //用于存储城市下对应的台站信息 + List stations = new LinkedList<>(); + String country = String.valueOf(countryCode); + //声明一个数组存储城市编码对应的数组信息 + StationTree stationChildTree = new StationTree(); + stationChildTree.setStationId(countryCodes.indexOf(countryCode)+1); + stationChildTree.setCode(country); + List stationsList = gardsStationsList.stream().filter(station-> station.getCountryCode().equals(countryCode)).collect(Collectors.toList()); + if (i == 0){ + stationsList = stationsList.stream().filter(item-> item.getStationId()<=200).collect(Collectors.toList()); + stations.addAll(stationsList); + }else if(i == 1){ + stationsList = stationsList.stream().filter(item-> item.getStationId()>200 && item.getStationId()<=300).collect(Collectors.toList()); + stations.addAll(stationsList); + }else if(i == 2){ + stationsList = stationsList.stream().filter(item-> item.getStationId()>300).collect(Collectors.toList()); + stations.addAll(stationsList); + } + stationChildTree.setChildren(stations); + stationChildTreeList.add(stationChildTree); + stationTree.setChildren(stationChildTreeList); + } + stationTreeList.add(stationTree); } - stationTree.setChildren(stationsList); - stationTreeList.add(stationTree); } } } @@ -234,7 +271,7 @@ public class StationOperationServiceImpl extends ServiceImpl stationIds) { + //获取四项缓存数据的对应内容 + List> cacheList = cacheTimeService.findCacheTime(); + String cacheTime = ""; + String scaleInterval = ""; + String timelineLength = ""; + String updateIntervalTime = ""; + for (int i=0; i< cacheList.size(); i++){ + if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ){ + cacheTime = cacheList.get(i).get(CacheName.cacheTime); + }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.scaleInterval)) ){ + scaleInterval = cacheList.get(i).get(CacheName.scaleInterval); + }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.timelineLength)) ){ + timelineLength = cacheList.get(i).get(CacheName.timelineLength); + }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.updateIntervalTime)) ){ + updateIntervalTime = cacheList.get(i).get(CacheName.updateIntervalTime); + } + } + //遍历台站id if (CollectionUtils.isNotEmpty(stationIds)){ - //获取当前日期时间 + //获取当前日期时间 作为结束查询时间 LocalDate endDate = LocalDate.now(); - //将当前日期换算成 -// endDate.minusDays(); - - - - //根据台站id - - - + //根据缓存日期 得到开始查询时间 + LocalDate startDate = endDate.minusDays(Integer.valueOf(cacheTime)); + //根据台站id查询出当前台站下处于运行状态的数据 + Map> stationDetectors = cacheTimeService.findStationDetectors(stationIds); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java new file mode 100644 index 00000000..c6e2e0a0 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java @@ -0,0 +1,73 @@ +package org.jeecg.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.jeecg.config.valid.InsertGroup; +import org.jeecg.config.valid.UpdateGroup; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("GARDS_DETECTORS") +public class GardsDetectors implements Serializable { + + @TableField(value = "DETECTOR_ID") + private Integer detectorId; + + @TableField(value = "DETECTOR_CODE") + private String detectorCode; + + @TableField(value = "LON") + private Double lon; + + @TableField(value = "LAT") + private Double lat; + + @TableField(value = "TYPE") + private String type; + + @TableField(value = "CHANNELS") + private Double channels; + + @TableField(value = "RATED_EFFICIENCY") + private Double ratedEfficiency; + + @TableField(value = "RATED_RESOLUTION") + private Double ratedResolution; + + @TableField(value = "ECAL_RANGE_MAX") + private Double ecalRangeMax; + + @TableField(value = "DATE_BEGIN") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date dateBegin; + + @TableField(value = "DATE_END") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date dateEnd; + + @TableField(value = "STATUS") + private String status; + + @TableField(value = "DESCRIPTION") + private String description; + + @TableField(value = "MODDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date moddate; + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(exist = false) + private String stationName; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java index 20b0f81d..def3c856 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -4,9 +4,9 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.GardsMetData; -import org.jeecg.modules.entity.GardsSampleData; -import org.jeecg.modules.entity.GardsSohData; +import org.jeecg.modules.base.entity.GardsMetData; +import org.jeecg.modules.base.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSohData; import org.jeecg.modules.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java index 85e6c432..41a19fc0 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsMetDataMapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.GardsMetData; +import org.jeecg.modules.base.entity.GardsMetData; public interface GardsMetDataMapper extends BaseMapper { } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java index 4f12f430..35071cf0 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataMapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; public interface GardsSampleDataMapper extends BaseMapper { } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java index 21c14556..268c980d 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSohDataMapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.GardsSohData; +import org.jeecg.modules.base.entity.GardsSohData; public interface GardsSohDataMapper extends BaseMapper { } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java index c8a33fb8..b3913992 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsAnalyses; -import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.mapper.GardsAnalysesMapper; import org.jeecg.modules.service.IAutoService; import org.jeecg.modules.service.IGardsSampleDataService; diff --git a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java index 6226dc44..67cd1f7d 100644 --- a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java +++ b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java @@ -1,15 +1,10 @@ package org.jeecg.modules.controller; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import org.jeecg.modules.system.entity.SysDictItem; -import org.jeecg.modules.system.entity.SysRole; -import org.jeecg.modules.system.entity.SysUser; -import org.jeecg.modules.system.entity.SysUserRole; -import org.jeecg.modules.system.mapper.SysDictItemMapper; -import org.jeecg.modules.system.mapper.SysRoleMapper; -import org.jeecg.modules.system.mapper.SysUserMapper; -import org.jeecg.modules.system.mapper.SysUserRoleMapper; +import org.jeecg.modules.system.entity.*; +import org.jeecg.modules.system.mapper.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -21,6 +16,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static org.apache.commons.collections.CollectionUtils.collect; + @RestController @RequestMapping("alarmSysUser") public class AlarmSysUserController { @@ -33,6 +30,8 @@ public class AlarmSysUserController { private SysRoleMapper sysRoleMapper; @Resource private SysDictItemMapper sysDictItemMapper; + @Resource + private GardsDetectorsMapper gardsDetectorsMapper; @GetMapping("findUserMap") public Map findUserMap(){ @@ -69,23 +68,51 @@ public class AlarmSysUserController { @RequestMapping("findCacheTime") - public void findCacheTime(){ + public List> findCacheTime(){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); List sysDictItems = sysDictItemMapper.selectList(queryWrapper); + List> result = new LinkedList<>(); //获取缓存时间对应的值 - Map cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")) - .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + List cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(cacheTime)){ + Map cacheTimeMap = cacheTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(cacheTimeMap); + } //获取实际分度值 - Map scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")) - .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + List scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(scaleInterval)){ + Map scaleIntervalMap = scaleInterval.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(scaleIntervalMap); + } //获取时间线长度 - Map timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")) - .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + List timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(timelineLength)){ + Map timelineLengthMap = timelineLength.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(timelineLengthMap); + } //获取更新间隔时间 - Map updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")) - .collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - + List updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(updateIntervalTime)){ + Map updateIntervalTimeMap = updateIntervalTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(updateIntervalTimeMap); + } + return result; } + @RequestMapping("findStationDetectors") + @DS("ora") + public Map> findStationDetectors(List stationIds){ + Map> map = new HashMap<>(); + if (CollectionUtils.isNotEmpty(stationIds)){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List detectorsList = gardsDetectorsMapper.selectList(queryWrapper); + for (String stationId:stationIds) { + List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); + map.put(stationId, detectors); + } + } + return map; + } + } From c872270c37aceb69e2abe90877d4ab1a1d717e03 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 08:50:53 +0800 Subject: [PATCH 33/64] =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=8C=85=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/service/IGardsSampleDataService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java index 641e2037..8571ef02 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataService.java @@ -3,7 +3,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import java.util.Date; import java.util.List; From 7520a944a74464a13358c5c81b7243be6ac340e7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 08:52:45 +0800 Subject: [PATCH 34/64] =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=8C=85=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/service/IGardsMetDataService.java | 2 +- .../java/org/jeecg/modules/service/IGardsSohDataService.java | 2 +- .../org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java | 2 +- .../jeecg/modules/service/impl/GardsSampleDataServiceImpl.java | 2 +- .../org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java index ad235020..5241c1ec 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java @@ -3,7 +3,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.GardsMetData; +import org.jeecg.modules.base.entity.GardsMetData; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java index 11f6206a..2e0d2f5b 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java @@ -3,7 +3,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.GardsSohData; +import org.jeecg.modules.base.entity.GardsSohData; import java.util.Date; import java.util.List; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java index ce992dee..45dd932a 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java @@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.DateUtils; -import org.jeecg.modules.entity.GardsMetData; +import org.jeecg.modules.base.entity.GardsMetData; import org.jeecg.modules.mapper.GardsMetDataMapper; import org.jeecg.modules.service.IGardsMetDataService; import org.springframework.format.annotation.DateTimeFormat; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java index b32566d2..500e3f80 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -12,7 +12,7 @@ import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.entity.GardsCalibrationPairsOrig; import org.jeecg.modules.entity.GardsSampleAux; -import org.jeecg.modules.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.mapper.GardsCalibrationPairsOrigMapper; import org.jeecg.modules.mapper.GardsSampleAuxMapper; import org.jeecg.modules.mapper.GardsSampleDataMapper; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java index ac9727a5..3526df39 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java @@ -10,7 +10,7 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.entity.GardsSohData; +import org.jeecg.modules.base.entity.GardsSohData; import org.jeecg.modules.mapper.GardsSohDataMapper; import org.jeecg.modules.service.IGardsSohDataService; import org.springframework.beans.factory.annotation.Autowired; From 04c5347e7328bf93a59dd5df80b4848804c65876 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 08:55:02 +0800 Subject: [PATCH 35/64] =?UTF-8?q?pom=E6=96=87=E4=BB=B6=E5=BC=95=E5=85=A5ba?= =?UTF-8?q?se-core=E5=8C=85=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml | 5 ----- jeecg-server-cloud/jeecg-log-manage-start/pom.xml | 5 ----- jeecg-server-cloud/jeecg-station-operation-start/pom.xml | 5 ----- jeecg-server-cloud/jeecg-web-statistics-start/pom.xml | 5 ----- 4 files changed, 20 deletions(-) diff --git a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml index f6ee4d68..b3a7c381 100644 --- a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml +++ b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml @@ -17,11 +17,6 @@ jeecg-boot-starter-cloud - - org.jeecgframework.boot - jeecg-boot-base-core - - org.jeecgframework.boot jeecg-module-abnormal-alarm diff --git a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml index b38d04f5..edfe991f 100644 --- a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml +++ b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml @@ -18,11 +18,6 @@ jeecg-boot-starter-cloud - - org.jeecgframework.boot - jeecg-boot-base-core - - org.jeecgframework.boot jeecg-module-log-manage diff --git a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml index eabb4b15..47018223 100644 --- a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml +++ b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml @@ -18,11 +18,6 @@ jeecg-boot-starter-cloud - - org.jeecgframework.boot - jeecg-boot-base-core - - org.jeecgframework.boot jeecg-module-station-operation diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml index 6441bf98..aef458eb 100644 --- a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml +++ b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml @@ -18,11 +18,6 @@ jeecg-boot-starter-cloud - - org.jeecgframework.boot - jeecg-boot-base-core - - org.jeecgframework.boot jeecg-module-web-statistics From a29efbca0cd3cc253ab487f2a04f1091e58d92e7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 08:58:39 +0800 Subject: [PATCH 36/64] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=EF=BC=8C=E9=82=AE=E7=AE=B1=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=AE=9E=E4=BD=93=E7=B1=BB=E7=A7=BB=E5=8A=A8=E5=88=B0?= =?UTF-8?q?base-core=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/modules/base}/entity/SysEmail.java | 2 +- .../main/java/org/jeecg/modules/base}/entity/SysEmailLog.java | 2 +- .../java/org/jeecg/modules/controller/SysEmailController.java | 2 +- .../main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java | 2 +- .../src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java | 2 +- .../java/org/jeecg/modules/service/ISysEmailLogService.java | 2 +- .../main/java/org/jeecg/modules/service/ISysEmailService.java | 2 +- .../org/jeecg/modules/service/impl/SysEmailLogServiceImpl.java | 2 +- .../org/jeecg/modules/service/impl/SysEmailServiceImpl.java | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) rename {jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules => jeecg-boot-base-core/src/main/java/org/jeecg/modules/base}/entity/SysEmail.java (97%) rename {jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules => jeecg-boot-base-core/src/main/java/org/jeecg/modules/base}/entity/SysEmailLog.java (97%) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java similarity index 97% rename from jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java index 32def11e..3ab7ba01 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmail.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.base.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java similarity index 97% rename from jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java index d1d677ff..3d29f926 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysEmailLog.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.entity; +package org.jeecg.modules.base.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java index 78fdd27c..cc5bc3fa 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java @@ -4,7 +4,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.SysEmail; +import org.jeecg.modules.base.entity.SysEmail; import org.jeecg.modules.service.ISysEmailService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java index 49f5317b..fb25392b 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.entity.SysEmailLog; +import org.jeecg.modules.base.entity.SysEmailLog; public interface SysEmailLogMapper extends BaseMapper { } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java index ed46c7d8..69ea7234 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailMapper.java @@ -3,7 +3,7 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.entity.AlarmHistory; -import org.jeecg.modules.entity.SysEmail; +import org.jeecg.modules.base.entity.SysEmail; import java.util.Date; import java.util.List; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailLogService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailLogService.java index 33ebea2b..1b2816ef 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailLogService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailLogService.java @@ -1,7 +1,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.modules.entity.SysEmailLog; +import org.jeecg.modules.base.entity.SysEmailLog; public interface ISysEmailLogService extends IService { } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java index 6e34062e..4253a0fc 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysEmailService.java @@ -3,7 +3,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.SysEmail; +import org.jeecg.modules.base.entity.SysEmail; import java.util.Date; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailLogServiceImpl.java index 6df2a581..06e9cb66 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailLogServiceImpl.java @@ -1,7 +1,7 @@ package org.jeecg.modules.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.jeecg.modules.entity.SysEmailLog; +import org.jeecg.modules.base.entity.SysEmailLog; import org.jeecg.modules.mapper.SysEmailLogMapper; import org.jeecg.modules.service.ISysEmailLogService; import org.springframework.stereotype.Service; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java index 32639935..e8bb086e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java @@ -10,7 +10,7 @@ import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.entity.AlarmHistory; -import org.jeecg.modules.entity.SysEmail; +import org.jeecg.modules.base.entity.SysEmail; import org.jeecg.modules.mapper.SysEmailMapper; import org.jeecg.modules.service.ISysEmailService; import org.springframework.stereotype.Service; From 406fefc5c7cc5e9ae77512c74a971bedca2a03ca Mon Sep 17 00:00:00 2001 From: nieziyan Date: Fri, 16 Jun 2023 09:35:20 +0800 Subject: [PATCH 37/64] =?UTF-8?q?feat=EF=BC=9Aararm=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-abnormal-alarm/pom.xml | 10 + .../controller/AlarmLogController.java | 21 +- .../java/org/jeecg/modules/dto/TypeDto.java | 13 ++ .../jeecg/modules/entity/AlarmHistory.java | 1 + .../jeecg/modules/mapper/AlarmLogMapper.java | 17 ++ .../modules/mapper/xml/AlarmLogMapper.xml | 124 +++++++++++ .../modules/service/IAlarmLogService.java | 9 +- .../service/impl/AlarmLogServiceImpl.java | 203 +++++++++++++++++- .../java/org/jeecg/modules/vo/AlarmVo.java | 14 ++ 9 files changed, 396 insertions(+), 16 deletions(-) create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/dto/TypeDto.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java diff --git a/jeecg-module-abnormal-alarm/pom.xml b/jeecg-module-abnormal-alarm/pom.xml index ca43b195..00247819 100644 --- a/jeecg-module-abnormal-alarm/pom.xml +++ b/jeecg-module-abnormal-alarm/pom.xml @@ -11,12 +11,22 @@ jeecg-module-abnormal-alarm + + 5.8.19 + + org.jeecgframework.boot jeecg-boot-base-core + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index b56a8882..0754205c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -4,6 +4,7 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.AlarmLog; import org.jeecg.modules.service.IAlarmLogService; +import org.jeecg.modules.vo.AlarmVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -14,9 +15,22 @@ public class AlarmLogController { @Autowired private IAlarmLogService alarmLogService; + @GetMapping("viewAll") + public Result viewAll(@RequestBody AlarmVo alarmVo){ return alarmLogService.viewAll(alarmVo); } + @GetMapping("findPage") - public Result findPage(QueryRequest queryRequest, AlarmLog alarmLog){ - return alarmLogService.findPage(queryRequest, alarmLog); + public Result findPage(@RequestBody AlarmVo alarmVo){ + return alarmLogService.findPage(alarmVo); + } + + @GetMapping("typeAlarms") + public Result typeAlarms(@RequestBody AlarmVo alarmVo){ + return alarmLogService.typeAlarms(alarmVo); + } + + @GetMapping("ruleTop") + public Result ruleTop5(@RequestBody AlarmVo alarmVo){ + return alarmLogService.ruleTop5(alarmVo); } @GetMapping("findInfo") @@ -38,7 +52,4 @@ public class AlarmLogController { public Result deleteById(String id){ return alarmLogService.deleteById(id); } - - - } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/dto/TypeDto.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/dto/TypeDto.java new file mode 100644 index 00000000..0705453d --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/dto/TypeDto.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.dto; + +import lombok.Data; + +@Data +public class TypeDto { + // 1.资源类型 Server|Database|Email + // 2.规则名 + private String name; + // 1.报警量 + // 2.规则使用量 + private Integer value; +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java index 4158a87c..bc8ce841 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java @@ -19,4 +19,5 @@ public class AlarmHistory { private String operator; + private String sourceType; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java index a1577f43..602bd02f 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java @@ -1,7 +1,24 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.dto.TypeDto; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.AlarmLog; +import org.jeecg.modules.vo.AlarmVo; + +import java.util.Date; +import java.util.List; +import java.util.Map; public interface AlarmLogMapper extends BaseMapper { + + List oneDay(Map params); + + List oneMoreDay(Map params); + List findPage(Map params); + + List typeAlarms(Map params); + + List ruleTop5(Map params); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml new file mode 100644 index 00000000..ceca8246 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmLogService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmLogService.java index 21c9ac89..02984b2f 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmLogService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmLogService.java @@ -4,10 +4,17 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.AlarmLog; +import org.jeecg.modules.vo.AlarmVo; public interface IAlarmLogService extends IService { - Result findPage(QueryRequest queryRequest, AlarmLog alarmLog); + Result viewAll(AlarmVo alarmVo); + + Result findPage(AlarmVo alarmVo); + + Result typeAlarms(AlarmVo alarmVo); + + Result ruleTop5(AlarmVo alarmVo); Result findInfo(String id); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java index b74c9a83..cc2719ed 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java @@ -1,32 +1,183 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.dto.TypeDto; +import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.AlarmLog; import org.jeecg.modules.mapper.AlarmLogMapper; import org.jeecg.modules.service.IAlarmLogService; +import org.jeecg.modules.vo.AlarmVo; import org.springframework.stereotype.Service; -import java.util.Objects; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; @Service("alarmLogService") public class AlarmLogServiceImpl extends ServiceImpl implements IAlarmLogService { + /** + * 总体统计柱状图 + * @param alarmVo + * @return + */ @Override - public Result findPage(QueryRequest queryRequest, AlarmLog alarmLog) { - Result result = new Result(); - Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - Page alarmLogPage = this.baseMapper.selectPage(page, queryWrapper); - result.setSuccess(true); - result.setResult(alarmLogPage); - return result; + public Result viewAll(AlarmVo alarmVo) { + String startDate = alarmVo.getStartDate(); + String endDate = alarmVo.getEndDate(); + Map params = BeanUtil.beanToMap(alarmVo); + List allDate; + /* 选择日期为同一天 按照小时划分 0-23小时 */ + if (startDate.equals(endDate)){ + allDate = baseMapper.oneDay(params); + Map> groupTime = allDate.stream() + .sorted(Comparator.comparing(Date::getHours)) + .collect(Collectors.groupingBy(Date::getHours)); + Map statistic = new HashMap<>(); + for (int i = 0; i < 24; i++) { + if(groupTime.containsKey(i)){ + Integer count = groupTime.get(i).size(); + statistic.put(timeStr(i),count); + }else { + statistic.put(timeStr(i),0); + } + } + // 返回x轴和y轴数据 + Set xData = statistic.keySet(); + Collection YData = statistic.values(); + Map result = new HashMap<>(); + result.put("xData",xData); + result.put("yData",YData); + return Result.OK(result); + } + /* 选择日期不是同一天 按照天划分(可以跨月选择,但不包括跨年) */ + else { + allDate = baseMapper.oneMoreDay(params); + + Map statistic = new HashMap<>(); + // 通过mounth分组 + Map> groupMounth = allDate.stream() + .sorted(Comparator.comparing(Date::getMonth)) + .collect(Collectors.groupingBy(Date::getMonth)); + // 通过day分组 + for (Map.Entry> entry : groupMounth.entrySet()) { + Integer mounth = entry.getKey() + 1;// 当前月份 + List allDay = entry.getValue(); // 当前月份有报警的day + Map> groupDay = allDay.stream() + .sorted(Comparator.comparing(Date::getDate)) + .collect(Collectors.groupingBy(Date::getDate)); + for (Map.Entry> entryDay : groupDay.entrySet()) { + Integer day = entryDay.getKey(); // 当前是几号 + Integer count = entryDay.getValue().size(); + statistic.put(dateStr(mounth,day),count); + } + } + // 列举startDate和endDate之间所有日期(已考虑闰年情况) + LocalDate start = LocalDate.parse(startDate); + LocalDate end = LocalDate.parse(endDate); + List dateList = new ArrayList<>(); + LocalDate current = start; + while (!current.isAfter(end)) { + dateList.add(current); + current = current.plusDays(1); + } + List allDateStr = dateList.stream() + .map(item -> { + // 2023-06-15 格式截取为 06-15 + String dateStr = item + .format(DateTimeFormatter.ISO_LOCAL_DATE) + .substring(5); + return dateStr; + }) + .collect(Collectors.toList()); + // 将startDate和endDate中没有预警信息的day设置为0 + for (String dateStr : allDateStr) { + if (!allDateStr.contains(dateStr)){ + statistic.put(dateStr,0); + } + } + // 返回x轴和y轴数据 + Set xData = statistic.keySet(); + Collection YData = statistic.values(); + Map result = new HashMap<>(); + result.put("xData",xData); + result.put("yData",YData); + return Result.OK(result); + } + } + + /** + * 报警信息分页列表 + * @param alarmVo + * @return + */ + @Override + public Result findPage(AlarmVo alarmVo) { + Integer pageNo = alarmVo.getPageNo(); + Integer pageSize = alarmVo.getPageSize(); + Page page = new Page<>(pageNo,pageSize); + Integer pageStart = (pageNo - 1) * pageSize; + alarmVo.setPageStart(pageStart); + Map params = BeanUtil.beanToMap(alarmVo); + List alarmHistories = baseMapper.findPage(params); + // 当前页数据 + page.setRecords(alarmHistories); + // 数据总条数 + page.setTotal(this.count()); + return Result.OK(page); + } + + /** + * ALARM ANALYSIS -> Monitor Type Alarms + * @return + */ + @Override + public Result typeAlarms(AlarmVo alarmVo) { + /* 饼图数据 */ + // 警报类型-警报数 + Map params = BeanUtil.beanToMap(alarmVo); + List typeAlarms = baseMapper.typeAlarms(params); + // 警报总数 + Integer total = typeAlarms.stream().mapToInt(TypeDto::getValue).sum(); + Map result = new HashMap<>(); + result.put("pieData",typeAlarms); + result.put("pieTotal",total); + return Result.OK(result); + } + + /** + * ALARM ANALYSIS -> Alarms Rule Top5 + * @return + */ + @Override + public Result ruleTop5(AlarmVo alarmVo) { + /* 柱状图数据 */ + Map params = BeanUtil.beanToMap(alarmVo); + List ruleTop5 = baseMapper.ruleTop5(params); + // x轴数据 + List xData = ruleTop5.stream() + .map(TypeDto::getName) + .collect(Collectors.toList()); + // y轴数据 + List yData = ruleTop5.stream() + .map(TypeDto::getValue) + .collect(Collectors.toList()); + Map result = new HashMap<>(); + result.put("xData",xData); + result.put("yData",yData); + return Result.OK(result); } @Override @@ -88,4 +239,36 @@ public class AlarmLogServiceImpl extends ServiceImpl i return result; } + private String timeStr(Integer time){ + if (time < 10){ + return "0" + time + ":00"; + } + return time + ":00"; + } + + private String dateStr(Integer mounth,Integer day){ + StringBuilder sb = new StringBuilder(); + if (mounth < 10){ + sb.append("0").append(mounth).append("-"); + }else { + sb.append(mounth).append("-"); + } + if (day < 10){ + sb.append("0").append(day); + }else { + sb.append(day); + } + return sb.toString(); + } + + public static void main(String[] args) throws ParseException { + List allDate = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date1 = sdf.parse("2013-04-29"); + Date date2 = sdf.parse("2013-04-29"); + Date date3 = sdf.parse("2013-05-01"); + Date date4 = sdf.parse("2013-05-02"); + allDate.addAll(Arrays.asList(date1,date2,date3,date4)); + } + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java new file mode 100644 index 00000000..c3e3a8ed --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.vo; + +import lombok.Data; +import org.jeecg.common.api.QueryRequest; +import java.io.Serializable; + +@Data +public class AlarmVo extends QueryRequest implements Serializable { + private String name; + private String type; + private String startDate; + private String endDate; + private Integer pageStart; +} From f0d2d5f108ddcd6308bc38e402a7287ec078ccb4 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Fri, 16 Jun 2023 10:06:50 +0800 Subject: [PATCH 38/64] =?UTF-8?q?fix=EF=BC=9Apom=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-abnormal-alarm/pom.xml | 5 ++--- .../jeecg/modules/controller/AlarmLogController.java | 8 ++++---- jeecg-module-log-manage/pom.xml | 6 ++++++ jeecg-module-station-operation/pom.xml | 11 ++++++----- jeecg-module-web-statistics/pom.xml | 6 ++++++ jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml | 5 +---- jeecg-server-cloud/jeecg-log-manage-start/pom.xml | 6 ------ .../jeecg-station-operation-start/pom.xml | 6 ------ jeecg-server-cloud/jeecg-web-statistics-start/pom.xml | 6 ------ 9 files changed, 25 insertions(+), 34 deletions(-) diff --git a/jeecg-module-abnormal-alarm/pom.xml b/jeecg-module-abnormal-alarm/pom.xml index 68d035d5..b15009c7 100644 --- a/jeecg-module-abnormal-alarm/pom.xml +++ b/jeecg-module-abnormal-alarm/pom.xml @@ -21,10 +21,9 @@ jeecg-boot-base-core - - org.springframework.cloud - spring-cloud-starter-openfeign + org.jeecgframework.boot + jeecg-boot-starter-cloud diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index 43646b7b..a6f0f6be 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -15,20 +15,20 @@ public class AlarmLogController { @Autowired private IAlarmLogService alarmLogService; - + @ApiOperation("报警日志量总览-柱状图") @GetMapping("viewAll") public Result viewAll(@RequestBody AlarmVo alarmVo){ return alarmLogService.viewAll(alarmVo); } - + @ApiOperation("分页查询报警日志信息") @GetMapping("findPage") public Result findPage(@RequestBody AlarmVo alarmVo){ return alarmLogService.findPage(alarmVo); } - + @ApiOperation("各类型报警量统计-饼图") @GetMapping("typeAlarms") public Result typeAlarms(@RequestBody AlarmVo alarmVo){ return alarmLogService.typeAlarms(alarmVo); } - + @ApiOperation("报警规则top5-柱状图") @GetMapping("ruleTop") public Result ruleTop5(@RequestBody AlarmVo alarmVo){ return alarmLogService.ruleTop5(alarmVo); diff --git a/jeecg-module-log-manage/pom.xml b/jeecg-module-log-manage/pom.xml index cf2bd5ba..062a533c 100644 --- a/jeecg-module-log-manage/pom.xml +++ b/jeecg-module-log-manage/pom.xml @@ -16,6 +16,12 @@ org.jeecgframework.boot jeecg-boot-base-core + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + diff --git a/jeecg-module-station-operation/pom.xml b/jeecg-module-station-operation/pom.xml index e61718e1..5ecd6f67 100644 --- a/jeecg-module-station-operation/pom.xml +++ b/jeecg-module-station-operation/pom.xml @@ -12,6 +12,12 @@ jeecg-module-station-operation + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + org.jeecgframework.boot jeecg-boot-base-core @@ -23,11 +29,6 @@ spatial4j 0.5 - - - org.springframework.cloud - spring-cloud-starter-openfeign - \ No newline at end of file diff --git a/jeecg-module-web-statistics/pom.xml b/jeecg-module-web-statistics/pom.xml index dfbdc067..1fd83590 100644 --- a/jeecg-module-web-statistics/pom.xml +++ b/jeecg-module-web-statistics/pom.xml @@ -12,6 +12,12 @@ jeecg-module-web-statistics + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + org.jeecgframework.boot jeecg-boot-base-core diff --git a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml index b3a7c381..122699d8 100644 --- a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml +++ b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml @@ -12,10 +12,7 @@ jeecg-abnormal-alarm-start - - org.jeecgframework.boot - jeecg-boot-starter-cloud - + org.jeecgframework.boot diff --git a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml index edfe991f..3b61cf75 100644 --- a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml +++ b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml @@ -12,12 +12,6 @@ jeecg-log-manage-start - - - org.jeecgframework.boot - jeecg-boot-starter-cloud - - org.jeecgframework.boot jeecg-module-log-manage diff --git a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml index 47018223..a928046c 100644 --- a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml +++ b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml @@ -12,12 +12,6 @@ jeecg-station-operation-start - - - org.jeecgframework.boot - jeecg-boot-starter-cloud - - org.jeecgframework.boot jeecg-module-station-operation diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml index aef458eb..f2c7f6dd 100644 --- a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml +++ b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml @@ -12,12 +12,6 @@ jeecg-web-statistics-start - - - org.jeecgframework.boot - jeecg-boot-starter-cloud - - org.jeecgframework.boot jeecg-module-web-statistics From c618e6957fdb2211bfb2d672d8fdd5787000b2ec Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Fri, 16 Jun 2023 10:16:04 +0800 Subject: [PATCH 39/64] =?UTF-8?q?fix:1.=E7=BC=96=E5=86=99ftp=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E7=9B=AE=E5=BD=95=E3=80=81=E5=88=A0=E9=99=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E3=80=81=E5=86=99=E5=85=A5=E6=96=87=E4=BB=B6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD2.=E4=BF=AE=E6=94=B9=E9=82=AE=E7=AE=B1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A1=A8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/FTPUtil.java | 140 +++++++++++++++++- .../jeecg/modules/base/entity/SysEmail.java | 43 +++++- 2 files changed, 177 insertions(+), 6 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index 6ca68c24..44f2e925 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -2,6 +2,9 @@ package org.jeecg.common.util; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import lombok.extern.slf4j.Slf4j; +import net.sf.saxon.trans.SymbolicName; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; @@ -10,8 +13,7 @@ import org.springframework.stereotype.Component; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Arrays; @@ -48,9 +50,11 @@ public class FTPUtil { // 切换为本地被动模式,可以解决FTP上传后文件为空的问题,但需要服务器将FTP服务添加至防火墙白名单 ftp.enterLocalPassiveMode(); //连接 - ftp.connect(host, port); + ftp.connect("182.92.183.230", 21); +// ftp.connect(host, port); //登录 - ftp.login(userName, password); + ftp.login("xiao", "123456"); +// ftp.login(userName, password); //判断是否连接成功 int reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { @@ -129,4 +133,132 @@ public class FTPUtil { } } + /** + * 检查目录是否存在,不存在则创建,支持递归创建 + * @param path 目录路径 + * @return 返回值true/false + */ + public boolean checkDirectory(String path) { + final FTPClient ftpClient = this.LoginFTP(); + try { + final boolean flag = this.checkDirectory(ftpClient, path); + return flag; + }catch (IOException e){ + e.printStackTrace(); + return false; + }finally { + try { + ftpClient.disconnect(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * 检查目录是否存在,不存在则创建,支持递归创建 + * @param ftpClient FTP客户端 + * @param path 目录路径 + * @return 返回值true/false + * @throws IOException + */ + private boolean checkDirectory(FTPClient ftpClient,String path) throws IOException { + final String rootPath = ftpClient.printWorkingDirectory(); + final boolean changeFlag = ftpClient.changeWorkingDirectory(rootPath); + if(!changeFlag){ + log.error("{},根目录切换失败",rootPath); + return false; + } + String[] directories = path.split("/"); + for(String directory : directories){ + if(StringUtils.isEmpty(directory)){ + continue; + } + if(!ftpClient.changeWorkingDirectory(directory)){ + if(!ftpClient.makeDirectory(directory)){ + log.error("{},目录创建失败",directory); + return false; + } + if(!ftpClient.changeWorkingDirectory(directory)){ + log.error("{},目录切换失败",directory); + return false; + } + } + } + return true; + } + + /** + * 写入文件,若文件或文件目录不存在则自行创建 + * @param filePath 文件路径 + * @param fileName 文件名称 + * @param inputStream 文件输入流 + * @return 返回值true/false + */ + public boolean saveFile(String filePath,String fileName,InputStream inputStream){ + final FTPClient ftpClient = this.LoginFTP(); + try{ + final boolean flag = this.checkDirectory(ftpClient,filePath); + if(flag){ + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + String encodedName = new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1); + final boolean result = ftpClient.storeFile(encodedName, inputStream); + return result; + } + }catch (IOException e){ + log.error("{}文件创建失败,原因为:{}",filePath+"/"+fileName,e.getMessage()); + e.printStackTrace(); + return false; + }finally { + try { + ftpClient.disconnect(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return false; + } + + /** + * 删除文件 + * @param filePath 文件路径 + * @param fileName 文件名称 + * @return 返回值true/false + */ + public boolean removeFile(String filePath,String fileName){ + final FTPClient ftpClient = this.LoginFTP(); + try { + final String rootPath = ftpClient.printWorkingDirectory(); + final boolean changeFlag = ftpClient.changeWorkingDirectory(rootPath); + if(!changeFlag){ + log.error("{},根目录切换失败",rootPath); + return false; + } + String[] directories = filePath.split("/"); + for(String directory : directories){ + if(StringUtils.isEmpty(directory)){ + continue; + } + if(!ftpClient.changeWorkingDirectory(directory)){ + log.error("此文件目录不存在:{}",filePath); + return false; + } + } + boolean result = ftpClient.deleteFile(new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1)); + if(!result){ + log.error("此文件不存在:{}",filePath+"/"+fileName); + } + return result; + } catch (IOException e) { + log.error("{}文件删除失败,原因为:{}",filePath,e.getMessage()); + e.printStackTrace(); + return false; + }finally { + try { + ftpClient.disconnect(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java index 3ab7ba01..b0a4f1f1 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java @@ -11,6 +11,9 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; +/** + * 邮件管理数据表 + */ @Data @TableName(value = "sys_email") public class SysEmail implements Serializable { @@ -18,37 +21,73 @@ public class SysEmail implements Serializable { @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 邮箱名称 + */ @TableField(value = "name") private String name; - @TableField(value = "status") - private Integer status; + /** + * 邮箱类型(1-收件地址,2-发件地址) + */ + @TableField(value = "emil_type") + private Integer emilType; + /** + * email地址 + */ @TableField(value = "username") private String username; + /** + * 邮箱登录密码 + */ @TableField(value = "password") private String password; + /** + * 端口 + */ @TableField(value = "port") private String port; + /** + * 是否启用邮箱(0-不启用,1-启用) + */ @TableField(value = "enabled") private Integer enabled; + /** + * 监测周期(秒) + */ + @TableField(value = "monitoring_cycle") + private Integer monitoringCycle; + + /** + * 创建日期 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人员 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改日期 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人员 + */ @TableField(value = "update_by") private String updateBy; From 8cc7d138f2e177f227b0b30a00b207182f6f9b6d Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 16:35:46 +0800 Subject: [PATCH 40/64] =?UTF-8?q?=E5=90=84=E6=A8=A1=E5=9D=97=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=20=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E6=8E=A2=E6=B5=8B?= =?UTF-8?q?=E5=99=A8id=E5=8F=8A=E6=97=B6=E9=97=B4=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=A0=B7=E5=93=81=E6=95=B0=E6=8D=AE=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=A0=B9=E6=8D=AE=E5=8F=B0=E7=AB=99id=EF=BC=8C?= =?UTF-8?q?=E6=8E=A2=E6=B5=8B=E5=99=A8id=E5=8F=8A=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=8A=B6=E6=80=81=E6=95=B0=E6=8D=AE=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E5=8F=B0=E7=AB=99?= =?UTF-8?q?id=E5=8F=8A=E6=97=B6=E9=97=B4=E6=9F=A5=E8=AF=A2=E6=B0=94?= =?UTF-8?q?=E8=B1=A1=E6=95=B0=E6=8D=AE=E6=96=B9=E6=B3=95=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E4=B8=8B=E5=90=84=E6=8E=A2?= =?UTF-8?q?=E6=B5=8B=E5=99=A8=E6=9F=A5=E8=AF=A2=E6=8E=A2=E6=B5=8B=E5=99=A8?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E6=A0=B7=E5=93=81=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8C=E7=8A=B6=E6=80=81=E6=95=B0=E6=8D=AE=EF=BC=8C=E6=B0=94?= =?UTF-8?q?=E8=B1=A1=E6=95=B0=E6=8D=AE=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/entity/AlarmContactGroup.java | 30 +++ .../entity/AlarmContactGroupMember.java | 9 + .../jeecg/modules/entity/AlarmHistory.java | 15 ++ .../org/jeecg/modules/entity/AlarmLog.java | 12 ++ .../org/jeecg/modules/entity/AlarmRule.java | 39 ++++ .../org/jeecg/modules/entity/SysDatabase.java | 36 ++++ .../org/jeecg/modules/entity/SysServer.java | 24 +++ .../modules/service/IAlarmSysUserService.java | 2 +- .../org/jeecg/modules/entity/FileInfo.java | 12 ++ .../org/jeecg/modules/entity/LogManage.java | 21 +++ .../org/jeecg/modules/entity/DataInfoVo.java | 43 +++++ .../jeecg/modules/entity/DetectorData.java | 26 +++ .../java/org/jeecg/modules/entity/Point.java | 18 ++ .../org/jeecg/modules/entity/PointVo.java | 6 + .../org/jeecg/modules/entity/StationData.java | 28 +++ .../org/jeecg/modules/entity/StationTree.java | 9 + .../modules/entity/SysUserFocusStation.java | 24 +++ .../modules/mapper/StationMetDataMapper.java | 8 + .../mapper/StationSampleDataMapper.java | 7 + .../modules/mapper/StationSohDataMapper.java | 9 + .../modules/mapper/xml/gardsMetDataMapper.xml | 7 - .../mapper/xml/gardsSampleDataMapper.xml | 7 - .../modules/mapper/xml/gardsSohDataMapper.xml | 7 - .../mapper/xml/stationMetDataMapper.xml | 23 +++ .../mapper/xml/stationSampleDataMapper.xml | 28 +++ .../mapper/xml/stationSohDataMapper.xml | 27 +++ .../modules/service/ICacheTimeService.java | 4 +- .../impl/StationOperationServiceImpl.java | 175 +++++++++++++++--- .../controller/GardsDetectorsController.java | 10 + .../controller/SysDictItemController.java | 12 +- .../system/controller/SysUserController.java | 7 + .../modules/system/entity/GardsDetectors.java | 42 +++++ .../system/entity/GardsNuclearfacility.java | 57 ++++++ .../system/entity/GardsSampleData.java | 70 +++++++ .../modules/system/entity/GardsStations.java | 36 ++++ .../service/IGardsDetectorsService.java | 8 + .../system/service/ISysDictItemService.java | 8 + .../system/service/ISysUserService.java | 7 + .../impl/GardsDetectorsServiceImpl.java | 15 ++ .../service/impl/SysDictItemServiceImpl.java | 38 ++++ .../service/impl/SysUserServiceImpl.java | 32 ++++ .../jeecg/modules/entity/GardsAnalyses.java | 63 +++++++ .../entity/GardsCalibrationPairsOrig.java | 28 +++ .../jeecg/modules/entity/GardsSampleAux.java | 42 +++++ .../jeecg/modules/entity/GardsSampleCert.java | 12 ++ .../modules/entity/GardsSampleCertLine.java | 33 ++++ .../controller/AlarmSysUserController.java | 79 -------- 47 files changed, 1124 insertions(+), 131 deletions(-) create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java delete mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml delete mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml delete mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java index 5fbff4d4..a4504e04 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java @@ -16,37 +16,67 @@ import java.util.List; @TableName(value = "alarm_contact_group") public class AlarmContactGroup implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 联系人组名称 + */ @TableField(value = "name") private String name; + /** + * 联系人组描述 + */ @TableField(value = "description") private String description; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; + /** + * 联系人组关联的用户id + */ @TableField(exist = false) List userIds; + /** + * 联系人组关联的用户集合 + */ @TableField(exist = false) List users; + /** + * 当前联系人组人员数量 + */ @TableField(exist = false) Integer personNumber; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java index a5b5211f..b236c9c9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java @@ -12,12 +12,21 @@ import java.io.Serializable; @TableName(value = "alarm_contact_group_member") public class AlarmContactGroupMember implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 联系人组id + */ @TableField(value = "group_id") private String groupId; + /** + * 用户id + */ @TableField(value = "user_id") private String userId; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java index bc8ce841..2c01a63d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java @@ -9,15 +9,30 @@ import java.util.Date; @Data public class AlarmHistory { + /** + * 名称 + */ private String name; + /** + * 报警开始时间 + */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date alarmStartDate; + /** + * 报警详情 + */ private String alarmInfo; + /** + * 规则信息 + */ private String operator; + /** + * 来源类型 + */ private String sourceType; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java index e8f7e066..9a1d50ca 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java @@ -15,17 +15,29 @@ import java.util.Date; @TableName(value = "alarm_log") public class AlarmLog implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 规则id + */ @TableField(value = "rule_id") private String ruleId; + /** + * 报警开始时间 + */ @TableField(value = "alarm_start_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date alarmStartDate; + /** + * 报警详情 + */ @TableField(value = "alarm_info") private String alarmInfo; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java index 6b6e0e87..7ea20d8d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java @@ -15,46 +15,85 @@ import java.util.Date; @TableName(value = "alarm_rule") public class AlarmRule implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 名称 + */ @TableField(value = "name") private String name; + /** + * 规则信息 + */ @TableField(value = "operator") private String operator; + /** + * 沉默周期,单位为秒 + */ @TableField(value = "silence_cycle") private Integer silenceCycle; + /** + * 报警通知方式,如短信、邮件等 + */ @TableField(value = "notification") private String notification; + /** + * 是否启用该报警规则(0-未启用,1-启用) + */ @TableField(value = "enabled") private Integer enabled; + /** + * 报警联系人组id + */ @TableField(value = "contact_id") private String contactId; + /** + * 资源id + */ @TableField(value = "source_id") private String sourceId; + /** + * 资源类型 + */ @TableField(value = "source_type") private String sourceType; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java index d93a4ee7..f6db3143 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java @@ -15,43 +15,79 @@ import java.util.Date; @TableName(value = "sys_database") public class SysDatabase implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 名称 + */ @TableField(value = "name") private String name; + /** + * 状态(0-断开连接,1-连接成功) + */ @TableField(value = "status") private Integer status; + /** + * ip地址 + */ @TableField(value = "ip_address") private String ipAddress; + /** + * 端口 + */ @TableField(value = "port") private String port; + /** + * 用户名称 + */ @TableField(value = "username") private String username; + /** + * 密码 + */ @TableField(value = "password") private String password; + /** + * 数据库类型 + */ @TableField(value = "type") private String type; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java index 3321bebe..c280c565 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java @@ -15,31 +15,55 @@ import java.util.Date; @TableName(value = "sys_server") public class SysServer implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 名称 + */ @TableField(value = "name") private String name; + /** + * 状态(0-停机,1-正常,2-故障) + */ @TableField(value = "status") private Integer status; + /** + * ip地址 + */ @TableField(value = "ip_address") private String ipAddress; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java index 93f23705..1dc4a1f9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java @@ -11,7 +11,7 @@ import java.util.Map; @FeignClient(value = "jeecg-system") public interface IAlarmSysUserService { - @RequestMapping("/alarmSysUser/findUserMap") + @RequestMapping("/sys/user/findUserMap") Map findUserMap(); } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java index b1aed381..6371eb3f 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java @@ -5,12 +5,24 @@ import lombok.Data; @Data public class FileInfo { + /** + * 文件名称 + */ private String fileName; + /** + * 文件路径 + */ private String filePath; + /** + * 文件大小 + */ private String fileSize; + /** + * 文件日期 + */ private String fileDate; } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java index bcfd3004..9f60dfbe 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java @@ -8,18 +8,39 @@ import java.util.List; @Data public class LogManage { + /** + * 名称 + */ private String name; + /** + * 路径 + */ private String path; + /** + * 排序编号 + */ private Integer orderNum; + /** + * 父级编号 + */ private Integer parentNum; + /** + * 是否有父级 + */ private boolean hashParent; + /** + * 是否有子级 + */ private boolean hashChild; + /** + * 子级数组 + */ private List children; public void initChildren(){ diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java new file mode 100644 index 00000000..1fa773df --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java @@ -0,0 +1,43 @@ +package org.jeecg.modules.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class DataInfoVo implements Serializable { + + /** + * 类型 + */ + private String type; + + /** + * 状态 + */ + private String status; + + /** + * 开始时间 + */ + private Double beginTime; + + /** + * 结束时间 + */ + private Double endTime; + + /** + * 时间间隔 + */ + private Double spanTime; + + /** + * 比率 + */ + private Double rate; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java new file mode 100644 index 00000000..2059a209 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class DetectorData implements Serializable { + + /** + * 探测器id + */ + private Integer detectorId; + + /** + * 探测器编码 + */ + private String detectorCode; + + /** + * 数据集合 + */ + private List dataList; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java index ab734336..bdd4af19 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java @@ -7,16 +7,34 @@ import java.io.Serializable; @Data public class Point implements Serializable { + /** + * 台站名称 + */ private String stationName; + /** + * 核设施名称 + */ private String nuclearFacilityName; + /** + * 经度 + */ private String lon; + /** + * 纬度 + */ private String lat; + /** + * 半径 + */ private String radius; + /** + * 核设施id + */ private String nuclearFacilityId; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java index 1e3d4666..f9677726 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java @@ -7,8 +7,14 @@ import java.util.List; @Data public class PointVo { + /** + * 台站id集合 + */ private List stationIds; + /** + * 半径 + */ private Double radius; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java new file mode 100644 index 00000000..20ab50f2 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.entity; + +import lombok.Data; +import org.jeecg.modules.system.entity.GardsDetectors; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Data +public class StationData implements Serializable { + + /** + * 台站id + */ + private String stationId; + + /** + * 台站编码 + */ + private String stationCode; + + /** + * 探测器数据集合 + */ + private Map>> detectors; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java index a0b972af..c4010b9a 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java @@ -8,10 +8,19 @@ import java.util.List; @Data public class StationTree { + /** + * 台站id + */ private Integer stationId; + /** + * 编码 + */ private String code; + /** + * 子数据集合 + */ List children; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java index 394e13b9..3f5f582e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -18,30 +18,54 @@ import java.util.Date; @TableName("sys_user_focus_station") public class SysUserFocusStation implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) @NotBlank(message = "不能为空", groups = UpdateGroup.class) private String id; + /** + * 用户id + */ @TableField(value = "user_id") private String userId; + /** + * 台站id + */ @TableField(value = "station_id") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String stationId; + /** + * 类型 + */ @TableField(value = "type") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String type; + /** + * 创建时间 + */ @TableField(value = "create_time") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(exist = false) private Double lon; + /** + * 修改人 + */ @TableField(exist = false) private Double lat; diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java index 103ae065..831399d6 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java @@ -1,7 +1,15 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.base.entity.GardsMetData; +import java.util.List; + +@DS("ori") public interface StationMetDataMapper extends BaseMapper { + + List findMetDataList(@Param("stationIds") List stationIds, @Param("startDate") String startDate); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java index 28248bf3..605e1479 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java @@ -1,8 +1,15 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.base.entity.GardsSampleData; +import java.util.List; + +@DS("ori") public interface StationSampleDataMapper extends BaseMapper { + List findSampleDataList(@Param("detectorIds") List detectorIds, @Param("startDate") String startDate); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java index b2e2d34d..2e1414ea 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java @@ -1,7 +1,16 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.base.entity.GardsSohData; +import java.util.List; + +@DS("ori") public interface StationSohDataMapper extends BaseMapper { + + List findSohDataList(@Param("stationId") String stationId, @Param("detectorIds") List detectorIds, @Param("startDate") String startDate); + + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml deleted file mode 100644 index 948514e5..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml deleted file mode 100644 index 74405da1..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml deleted file mode 100644 index a9372e53..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml new file mode 100644 index 00000000..04ed6da1 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml new file mode 100644 index 00000000..3e5a2707 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml new file mode 100644 index 00000000..7de1c54f --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java index a293957e..2dcd6bae 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java @@ -12,10 +12,10 @@ import java.util.Map; @FeignClient(value = "jeecg-system") public interface ICacheTimeService { - @RequestMapping("/alarmSysUser/findCacheTime") + @RequestMapping("/sys/dictItem/findCacheTime") List> findCacheTime(); - @RequestMapping("/alarmSysUser/findStationDetectors") + @RequestMapping("/gardsDetectors/findStationDetectors") Map> findStationDetectors(List stationIds); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index f917d57e..7758dfd7 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -1,46 +1,49 @@ package org.jeecg.modules.service.impl; -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.spatial4j.core.context.SpatialContext; import com.spatial4j.core.distance.DistanceUtils; import com.spatial4j.core.shape.Rectangle; -import io.swagger.models.auth.In; import org.jeecg.common.CacheName; import org.jeecg.common.PointUtil; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.entity.Point; -import org.jeecg.modules.entity.PointVo; -import org.jeecg.modules.entity.StationTree; +import org.jeecg.modules.base.entity.GardsMetData; +import org.jeecg.modules.base.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSohData; +import org.jeecg.modules.entity.*; +import org.jeecg.modules.mapper.StationMetDataMapper; +import org.jeecg.modules.mapper.StationSampleDataMapper; +import org.jeecg.modules.mapper.StationSohDataMapper; import org.jeecg.modules.service.ICacheTimeService; import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; -import org.jeecg.modules.entity.StationOperation; import org.jeecg.modules.mapper.StationOperationMapper; import org.jeecg.modules.service.IStationOperationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.text.ParseException; -import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.List; import java.util.stream.Collectors; @Service("stationOperationService") -@DS("ori") public class StationOperationServiceImpl extends ServiceImpl implements IStationOperationService { @Autowired private RedisUtil redisUtil; @Autowired private ICacheTimeService cacheTimeService; + @Autowired + private StationSampleDataMapper stationSampleDataMapper; + @Autowired + private StationSohDataMapper stationSohDataMapper; + @Autowired + private StationMetDataMapper stationMetDataMapper; private final SpatialContext spatialContext = SpatialContext.GEO; @@ -282,35 +285,157 @@ public class StationOperationServiceImpl extends ServiceImpl stationIds) { + Result result = new Result(); //获取四项缓存数据的对应内容 List> cacheList = cacheTimeService.findCacheTime(); + //缓存时间 String cacheTime = ""; - String scaleInterval = ""; - String timelineLength = ""; - String updateIntervalTime = ""; for (int i=0; i< cacheList.size(); i++){ if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ){ cacheTime = cacheList.get(i).get(CacheName.cacheTime); - }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.scaleInterval)) ){ - scaleInterval = cacheList.get(i).get(CacheName.scaleInterval); - }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.timelineLength)) ){ - timelineLength = cacheList.get(i).get(CacheName.timelineLength); - }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.updateIntervalTime)) ){ - updateIntervalTime = cacheList.get(i).get(CacheName.updateIntervalTime); + break; } } + if (StringUtils.isBlank(cacheTime)){ + result.error500("缓存时间不能为空"); + return result; + } + //从redis中获取台站信息 + Map stationInfoMap = (Map)redisUtil.get("stationMap"); + //从redis中获取探测器信息 + Map detectorInfoMap = (Map)redisUtil.get("detectorsMap"); //遍历台站id if (CollectionUtils.isNotEmpty(stationIds)){ //获取当前日期时间 作为结束查询时间 - LocalDate endDate = LocalDate.now(); + LocalDateTime endDate = LocalDateTime.now(); //根据缓存日期 得到开始查询时间 - LocalDate startDate = endDate.minusDays(Integer.valueOf(cacheTime)); + LocalDateTime startDate = endDate.minusDays(Integer.valueOf(cacheTime)); + String startDateTime = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //根据台站id,开始时间查询出台站下的气象数据 + List metDataList = stationMetDataMapper.findMetDataList(stationIds, startDateTime); //根据台站id查询出当前台站下处于运行状态的数据 Map> stationDetectors = cacheTimeService.findStationDetectors(stationIds); - - + //声明存储所有台站id对应的数据信息的集合 + List stationDataList = new LinkedList<>(); + //遍历台站id 获取台站下的探测器数据 + if (CollectionUtils.isNotEmpty(stationDetectors)){ + for (String stationId:stationIds) { + Map>> stationMap = new HashMap<>(); + //获取台站下对应的探测器数据 + List detectors = stationDetectors.get(stationId); + if (CollectionUtils.isNotEmpty(detectors)){ + StationData stationData = new StationData(); + //stream流获取探测器id + List detectorIds = detectors.stream().map(GardsDetectors::getDetectorId).collect(Collectors.toList()); + //根据探测器id 开始时间查询样品基础数据 + List sampleDataList = stationSampleDataMapper.findSampleDataList(detectorIds, startDateTime); + //根据台站id,探测器id,开始时间 + List sohDataList = stationSohDataMapper.findSohDataList(stationId, detectorIds, startDateTime); + //用于接收当前台站下所有探测器及探测器所有的样品数据,气体数据,状态数据集合 + List> detectorDataList = new LinkedList<>(); + for (Integer detectorId:detectorIds) { + Map detectorMap = new HashMap<>(); + DetectorData detectorData = new DetectorData(); + detectorData.setDetectorId(detectorId); + //声明数据实体实体类 根据参数存储 样品基础数据对应的数据 气体数据 状态数据 + List dataInfoList = new LinkedList<>(); + if (CollectionUtils.isNotEmpty(sampleDataList)){ + //根据探测器id过滤出对应的样品数据 并进行遍历封装进dataInfo + List dataListSample = sampleDataList.stream().filter(item -> item.getDetectorId().equals(detectorId)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(dataListSample)){ + for (GardsSampleData sampleData:dataListSample) { + DataInfoVo dataInfo = new DataInfoVo(); + //根据样品数据类型判断 数据类型 根据不同的样品数据状态 + if (sampleData.getDataType().equals("S")){ + dataInfo.setType("PHD"); + if(sampleData.getStatus() == "PREL") { + dataInfo.setStatus("SPREL"); + } else { + dataInfo.setStatus("SFULL"); + } + } else if (sampleData.getDataType().equals("Q")){ + dataInfo.setType("QC"); + dataInfo.setStatus("QC"); + } else if (sampleData.getDataType().equals("G")){ + dataInfo.setType("PHD"); + if(sampleData.getStatus() == "PREL") { + dataInfo.setStatus("GPREL"); + } else { + dataInfo.setStatus("GFULL"); + } + } else { + continue; + } + //处理开始时间 + Date acquisitionStart = sampleData.getAcquisitionStart(); + dataInfo.setBeginTime(Double.valueOf(acquisitionStart.getTime()/1000)); + //处理结束时间 + Date acquisitionStop = sampleData.getAcquisitionStop(); + dataInfo.setEndTime(Double.valueOf(acquisitionStop.getTime()/1000)); + //时间间隔 + Double span = Double.valueOf(acquisitionStop.getTime()/1000) - Double.valueOf(acquisitionStart.getTime()/1000); + dataInfo.setSpanTime(span); + dataInfoList.add(dataInfo); + } + } + } + if (CollectionUtils.isNotEmpty(sohDataList)){ + List dataListSoh = sohDataList.stream().filter(item -> item.getDetectorId().equals(detectorId)).collect(Collectors.toList()); + //根据探测器id 台站id 开始时间查询状态数据 + if (CollectionUtils.isNotEmpty(dataListSoh)){ + for (GardsSohData sohData:dataListSoh) { + DataInfoVo dataInfo = new DataInfoVo(); + dataInfo.setType("SOH"); + dataInfo.setStatus("SOH"); + Date startTime = sohData.getStartTime(); + dataInfo.setBeginTime(Double.valueOf(startTime.getTime()/1000)); + dataInfo.setSpanTime(Double.valueOf(sohData.getTime())); + dataInfoList.add(dataInfo); + } + } + } + if (CollectionUtils.isNotEmpty(metDataList)){ + List dataListMet = metDataList.stream().filter(item -> item.getStationId().equals(stationId)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(dataListMet)){ + for (GardsMetData metData:dataListMet) { + DataInfoVo dataInfo = new DataInfoVo(); + dataInfo.setType("MET"); + dataInfo.setStatus("MET"); + Date startTime = metData.getStartTime(); + dataInfo.setBeginTime(Double.valueOf(startTime.getTime()/1000)); + Date endTime = metData.getEndTime(); + dataInfo.setEndTime(Double.valueOf(endTime.getTime()/1000)); + Double span = Double.valueOf(startTime.getTime() / 1000) - Double.valueOf(endTime.getTime() / 1000); + dataInfo.setSpanTime(span); + dataInfoList.add(dataInfo); + } + } + } + detectorData.setDataList(dataInfoList); + if (CollectionUtils.isNotEmpty(detectorInfoMap)){ + if (detectorInfoMap.containsKey(detectorId)){ + detectorData.setDetectorCode(detectorInfoMap.get(detectorId)); + } + } + detectorMap.put(String.valueOf(detectorId), detectorData); + detectorDataList.add(detectorMap); + } + stationMap.put(stationId, detectorDataList); + stationData.setStationId(stationId); + if (CollectionUtils.isNotEmpty(stationInfoMap)){ + if (stationInfoMap.containsKey(stationId)){ + stationData.setStationCode(stationInfoMap.get(stationId)); + } + } + stationData.setDetectors(stationMap); + stationDataList.add(stationData); + } + } + } + result.setSuccess(true); + result.setResult(stationDataList); } - return null; + return result; } /** diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java index 7848e947..6b215005 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java @@ -1,6 +1,8 @@ package org.jeecg.modules.system.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; @@ -13,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @RequestMapping("gardsDetectors") @@ -65,4 +70,9 @@ public class GardsDetectorsController { return result; } + @RequestMapping("findStationDetectors") + public Map> findStationDetectors(List stationIds){ + return gardsDetectorsService.findStationDetectors(stationIds); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java index 210dd6ef..6cc67a16 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java @@ -1,12 +1,13 @@ package org.jeecg.modules.system.controller; -import java.util.Arrays; -import java.util.Date; +import java.util.*; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; @@ -182,5 +183,10 @@ public class SysDictItemController { return Result.error("该值不可用,系统中已存在!"); } } - + + @RequestMapping("findCacheTime") + public List> findCacheTime(){ + return sysDictItemService.findCacheTime(); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 8d87a97a..7111f314 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -1759,4 +1760,10 @@ public class SysUserController { sysUserService.editTenantUser(sysUser,tenantId,departs,roles); return Result.ok("修改成功"); } + + @GetMapping("findUserMap") + public Map findUserMap(){ + return sysUserService.findUserMap(); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java index 21a9d819..74fbf875 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java @@ -17,23 +17,41 @@ import java.util.Date; @TableName("GARDS_DETECTORS") public class GardsDetectors implements Serializable { + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Integer detectorId; + /** + * 探测器编码 + */ @TableField(value = "DETECTOR_CODE") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String detectorCode; + /** + * 经度 + */ @TableField(value = "LON") private Double lon; + /** + * 纬度 + */ @TableField(value = "LAT") private Double lat; + /** + * 探测器类型 + */ @TableField(value = "TYPE") private String type; + /** + * 总道数 + */ @TableField(value = "CHANNELS") private Double channels; @@ -43,33 +61,57 @@ public class GardsDetectors implements Serializable { @TableField(value = "RATED_RESOLUTION") private Double ratedResolution; + /** + * 能量刻度范围(keV) + */ @TableField(value = "ECAL_RANGE_MAX") private Double ecalRangeMax; + /** + * 开始运行日期 + */ @TableField(value = "DATE_BEGIN") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dateBegin; + /** + * 结束运行日期 + */ @TableField(value = "DATE_END") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dateEnd; + /** + * Y:在运行,状态良好;N:停止 + */ @TableField(value = "STATUS") private String status; + /** + * 说明 + */ @TableField(value = "DESCRIPTION") private String description; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java index fa44a24e..f0670556 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java @@ -18,70 +18,127 @@ import java.util.Date; @TableName("GARDS_NUCLEARFACILITY") public class GardsNuclearfacility implements Serializable { + /** + * 核设施id + */ @TableField(value = "FACILITY_ID") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Integer facilityId; + /** + * 核设施名称 + */ @TableField(value = "FACILITY_NAME") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String facilityName; + /** + * 核设施类型 + */ @TableField(value = "TYPE") private String type; + /** + * 地点 + */ @TableField(value = "LOCATION") private String location; + /** + * 经度 + */ @TableField(value = "LONGITUDE") private String longitude; + /** + * 纬度 + */ @TableField(value = "LATITUDE") private String latitude; + /** + * 状态 + */ @TableField(value = "STATUS") private String status; + /** + * 修建时间 + */ @TableField(value = "BUILDDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date buildDate; + /** + * 临界时间 + */ @TableField(value = "CRITICALITYDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date criticalityDate; + /** + * 退休时间 + */ @TableField(value = "RETIREDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date retireDate; + /** + * 网格工程日期 + */ @TableField(value = "GRIDCONEETIONDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date gridconeetionDate; + /** + * 销售公司 + */ @TableField(value = "VENDOR") private String vendor; + /** + * 拥有者 + */ @TableField(value = "OWNER") private String owner; + /** + * 操作人员 + */ @TableField(value = "OPERARTOR") private String operartor; + /** + * 容量 + */ @TableField(value = "CAPACITYGROSS") private Integer capacitygross; + /** + * 容量集 + */ @TableField(value = "CAPACITYNET") private Integer capacitynet; + /** + * 热容量 + */ @TableField(value = "CAPACITYTHERMAL") private Integer capacitythermal; + /** + * 活动时间 + */ @TableField(value = "ACTIVITY_DAY") private Integer activityDay; + /** + * 活动年份 + */ @TableField(value = "ACTIVITY_YEAR") private Integer activityYear; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java index b641ac6d..2dad97cf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java @@ -13,77 +13,147 @@ import java.util.Date; @TableName("GARDS_SAMPLE_DATA") public class GardsSampleData implements Serializable { + /** + * 探测器编码 + */ @TableField(value = "SITE_DET_CODE") private String siteDetCode; + /** + * 样品id + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") private Integer detectorId; + /** + * 导入文件名称 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 系统类型(P : particulate; B :gas with 3-D β-γ coincidence detection; G :all other gas systems (high-resolution + * γ-spectrometry or 2-D β-γ coincidence + * detection)) + */ @TableField(value = "SAMPLE_TYPE") private String sampleType; + /** + * 数据类型(S:SAMPLEPHD + * B:BLANKPHD + * D:DETBKPHD + * G:GASBKPHD + * C:CALIBPHD + * Q:QCPHD) + */ @TableField(value = "DATA_TYPE") private String dataType; + /** + * 几何尺寸 + */ @TableField(value = "GEOMETRY") private String geometry; + /** + * 能谱限定符: 过程谱(PREL) 和 全谱(FULL) + */ @TableField(value = "SPECTRAL_QUALIFIE") private String spectralQualifie; + /** + * 报文发送日期 + */ @TableField(value = "TRANSMIT_DTG") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date transmitDtg; + /** + * 样品采集开始时间 + */ @TableField(value = "COLLECT_START") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStart; + /** + * 样品采集结束时间 + */ @TableField(value = "COLLECT_STOP") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStop; + /** + * 样品测量开始时间 + */ @TableField(value = "ACQUISITION_START") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStart; + /** + * 样品测量结束时间 + */ @TableField(value = "ACQUISITION_STOP") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStop; + /** + * 能谱获取实时间 + */ @TableField(value = "ACQUISITION_REAL_SEC") private Double acquisitionRealSec; + /** + * 能谱获取活时间 + */ @TableField(value = "ACQUISITION_LIVE_SEC") private Double acquisitionLiveSec; + /** + * 采样量(立方米) + */ @TableField(value = "QUANTITY") private Double quantity; + /** + * 样品处理状态 + */ @TableField(value = "STATUS") private String status; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; + /** + * 探测器名称 + */ @TableField(exist = false) private String detectorsName; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java index 358cf982..19d3ac81 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java @@ -20,45 +20,81 @@ import java.util.Date; @TableName(value = "GARDS_STATIONS") public class GardsStations implements Serializable { + /** + * 台站id + */ @TableField(value = "STATION_ID") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Integer stationId; + /** + * 台站编码 + */ @TableField(value = "STATION_CODE") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String stationCode; + /** + * 城市编码 + */ @TableField(value = "COUNTRY_CODE") private String countryCode; + /** + * 台站类型 + */ @TableField(value = "TYPE") private String type; + /** + * 经度 + */ @TableField(value = "LON") private Double lon; + /** + * 纬度 + */ @TableField(value = "LAT") private Double lat; + /** + * 海拔 + */ @TableField(value = "ELEVATION") private Double elevation; + /** + * 描述 + */ @TableField(value = "DESCRIPTION") private String description; + /** + * 开始运行日期 + */ @TableField(value = "DATE_BEGIN") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date dateBegin; + /** + * 运行终止日期 + */ @TableField(value = "DATE_END") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date dateEnd; + /** + * 运行状态 + */ @TableField(value = "STATUS") private String status; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java index e84b088f..403102b9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java @@ -7,6 +7,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.system.entity.GardsDetectors; import java.util.List; +import java.util.Map; public interface IGardsDetectorsService extends IService { @@ -57,4 +58,11 @@ public interface IGardsDetectorsService extends IService { */ void findDetectors(); + /** + * 根据台站id查询对应的探测器数据信息 + * @param stationIds + * @return + */ + Map> findStationDetectors(List stationIds); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java index 803b490e..913945a6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java @@ -4,6 +4,7 @@ import org.jeecg.modules.system.entity.SysDictItem; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -21,4 +22,11 @@ public interface ISysDictItemService extends IService { * @return */ public List selectItemsByMainId(String mainId); + + /** + * 查询缓存时间等信息 + * @return + */ + List> findCacheTime(); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 860aa539..a1362ac1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -397,4 +397,11 @@ public interface ISysUserService extends IService { * @param departs */ void editTenantUser(SysUser sysUser, String tenantId, String departs, String roles); + + /** + * 查询用户map + * @return + */ + Map findUserMap(); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 2f470ba9..85b6c1bf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -148,4 +148,19 @@ public class GardsDetectorsServiceImpl extends ServiceImpl detectorsMap = gardsDetectors.stream().collect(Collectors.toMap(GardsDetectors::getDetectorId, GardsDetectors::getDetectorCode)); redisUtil.set("detectorsMap",detectorsMap); } + + @Override + public Map> findStationDetectors(List stationIds) { + Map> map = new HashMap<>(); + if (CollectionUtils.isNotEmpty(stationIds)){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List detectorsList = this.baseMapper.selectList(queryWrapper); + for (String stationId:stationIds) { + List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); + map.put(stationId, detectors); + } + } + return map; + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java index 33184a9e..973d6fcc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.jeecg.modules.system.entity.SysDictItem; import org.jeecg.modules.system.mapper.SysDictItemMapper; import org.jeecg.modules.system.service.ISysDictItemService; @@ -7,7 +9,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -27,4 +32,37 @@ public class SysDictItemServiceImpl extends ServiceImpl selectItemsByMainId(String mainId) { return sysDictItemMapper.selectItemsByMainId(mainId); } + + @Override + public List> findCacheTime() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List sysDictItems = sysDictItemMapper.selectList(queryWrapper); + List> result = new LinkedList<>(); + //获取缓存时间对应的值 + List cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(cacheTime)){ + Map cacheTimeMap = cacheTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(cacheTimeMap); + } + //获取实际分度值 + List scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(scaleInterval)){ + Map scaleIntervalMap = scaleInterval.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(scaleIntervalMap); + } + //获取时间线长度 + List timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(timelineLength)){ + Map timelineLengthMap = timelineLength.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(timelineLengthMap); + } + //获取更新间隔时间 + List updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(updateIntervalTime)){ + Map updateIntervalTimeMap = updateIntervalTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(updateIntervalTimeMap); + } + return result; + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 07416d20..b7d0f5a6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -1297,6 +1297,38 @@ public class SysUserServiceImpl extends ServiceImpl impl this.updateTenantDepart(user, tenantId, departs); } + @Override + public Map findUserMap() { + Map map = new HashMap<>(); + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + List sysUsers = this.baseMapper.selectList(userQueryWrapper); + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); + LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); + List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); + List roles = new LinkedList<>(); + //遍历所有用户信息 + if (CollectionUtils.isNotEmpty(sysUsers)){ + for (SysUser sysUser:sysUsers) { + if (CollectionUtils.isNotEmpty(sysUserRoles)){ + //获取各用户匹配的权限集合 + List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); + List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(sysRoles)){ + for (SysRole role:sysRoles) { + if (roleIds.contains(role.getId())){ + roles.add(role); + } + } + } + sysUser.setRoles(roles); + } + map.put(sysUser.getId(), sysUser); + } + } + return map; + } + /** * 修改租户下的部门 * @param departs diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java index 20a622f4..cd943508 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java @@ -11,66 +11,129 @@ import java.util.Date; @TableName(value = "gards_analyses") public class GardsAnalyses implements Serializable { + /** + * 分析ID号 + */ @TableField(value = "IDANALYSIS") private Integer idAnalysis; + /** + * 样品id + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 分析开始时间 + */ @TableField(value = "ANALYSISBEGIN") private Date analysisBegin; + /** + * 分析结束时间 + */ @TableField(value = "ANALYSISEND") private Date analysisEnd; + /** + * Reviewed:交互; + */ @TableField(value = "TYPE") private String type; + /** + * 使用的软件名称 + */ @TableField(value = "SOFTWARE") private String software; + /** + * 软件版本号 + */ @TableField(value = "SWVERSION") private String swVersion; + /** + * 分析员名称 + */ @TableField(value = "ANALYST") private String analyst; + /** + * 基线计数方法描述 + */ @TableField(value = "BASELINEMETHOD") private String baseLineMethod; + /** + * 寻峰方法描述 + */ @TableField(value = "PEAKSMETHOD") private String peaksMethod; + /** + * 核素识别方法描述 + */ @TableField(value = "NUCLIDEMETHOD") private String nuclideMethod; + /** + * 不确定度计算描述 + */ @TableField(value = "UNCCALCMETHOD") private String unccalcMethod; + /** + * Lc计算方法描述 + */ @TableField(value = "LCMETHOD") private String lcMethod; + /** + * 寻峰起始道 + */ @TableField(value = "SEARCHSTARTCHANNEL") private Integer searchStartChannel; + /** + * 寻峰结束道 + */ @TableField(value = "SEARCHENDCHANNEL") private Integer searchEndChannel; + /** + * 寻峰阈值(能窗宽度) + */ @TableField(value = "SEARCHTHRESHOLD") private Double searchThreshold; + /** + * 峰数目 + */ @TableField(value = "NUMBEROFPEAKS") private Integer numberOfPeaks; + /** + * 总计数 + */ @TableField(value = "TOTALCOUNTS") private Double totalCounts; + /** + * 分级结果 + */ @TableField(value = "CATEGORY") private Integer cateGory; + /** + * 注释 + */ @TableField(value = "COMMENTS") private String comments; + /** + * 操作时间 + */ @TableField(value = "MODDATE") private Date moddate; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java index 8ef8929e..5bc6877d 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java @@ -10,30 +10,58 @@ import java.io.Serializable; @TableName(value = "gards_calibration_pairs_orig") public class GardsCalibrationPairsOrig implements Serializable { + /** + * 样品ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 系统类型 G:gamma探测器的数据,#g_;B:beta探测器的数据,#b_ + */ @TableField(value = "SAMPLE_TYPE") private String sampleType; + /** + * 刻度类型 energy:能量刻度;efficiency:效率刻度; + * Resolution:分辨率刻度 + */ @TableField(value = "CALTYPE") private String caltype; + /** + * 来源 PHD:代表数据来自PHD文件;External:代表数据来自外部,如刻度工具、其它文件等 + */ @TableField(value = "INPUT") private String input; + /** + * 刻度点ID号 + */ @TableField(value = "IDCALPOINT") private Integer idcalpoint; + /** + * x轴数值 + */ @TableField(value = "XVALUE") private Double xvalue; + /** + * y轴数值 + */ @TableField(value = "YVALUE") private Double yvalue; + /** + * y值不确定度 + */ @TableField(value = "UNCYVALUE") private Double uncyvalue; + /** + * 衰变模式 + */ @TableField(value = "DECAY_MODE") private String decayMode; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java index e2427bb1..0dd83081 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java @@ -11,45 +11,87 @@ import java.util.Date; @TableName(value = "gards_sample_aux") public class GardsSampleAux implements Serializable { + /** + * 样品ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 样品参考ID + */ @TableField(value = "SAMPLE_REF_ID") private String sampleRefId; + /** + * 样品测量ID + */ @TableField(value = "MEASUREMENT_ID") private String measurementId; + /** + * 探测器本底测量ID + */ @TableField(value = "BKGD_MEASUREMENT_ID") private String bkgdMeasurementId; + /** + * 气体本底测量ID + */ @TableField(value = "GAS_BKGD_MEASUREMENT_ID") private String gasBkgdMeasurementId; + /** + * 样品的几何尺寸,#Sample数据块 dimension2 + */ @TableField(value = "SAMPLE_HEIGHT") private Double sampleHeight; + /** + * 样品的几何尺寸,#Sample数据块 dimension1 + */ @TableField(value = "SAMPLE_DIAMETER") private Double sampleDiameter; + /** + * #calibration数据块 + */ @TableField(value = "CALIBRATION_DTG") private Date calibrationDtg; + /** + * 报文ID号 + */ @TableField(value = "MSG_ID") private String msgId; + /** + * 归档瓶ID号 + */ @TableField(value = "ARCHIVE_BOTTLE_ID") private String archiveBottleId; + /** + * 氙体积 + */ @TableField(value = "XE_VOLUME") private Double xeVolume; + /** + * 氙体积不确定度 + */ @TableField(value = "XE_VOLUME_UNCER") private Double xeVolumeUncer; + /** + * 氙收集效率 + */ @TableField(value = "XE_COLLECTION_YIED") private Double xeCollectionYied; + /** + * 氙收集效率不确定度 + */ @TableField(value = "XE_COLLECTION_YIED_UNCER") private Double xeCollectionYiedUncer; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java index 2cb3dc07..39487799 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java @@ -11,15 +11,27 @@ import java.util.Date; @TableName(value = "gards_sample_cert") public class GardsSampleCert implements Serializable { + /** + * 台站ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 刻度源活度(Bq)total_source_activity + */ @TableField(value = "QUANTITY") private Integer quantity; + /** + * 鉴定日期 + */ @TableField(value = "ASSAY_DATE") private Date assayDate; + /** + * 单位 + */ @TableField(value = "UNIT") private String unit; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java index 21830cff..32f94f2f 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java @@ -10,36 +10,69 @@ import java.io.Serializable; @TableName(value = "gards_sample_cert_line") public class GardsSampleCertLine implements Serializable { + /** + * 台站ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 核素名称 + */ @TableField(value = "NUCL_NAME") private String nuclName; + /** + * 半衰期(秒S、小时H、天D、年Y) + */ @TableField(value = "HALFLIFE") private String halflife; + /** + * γ能量(keV) + */ @TableField(value = "ENERGY") private Integer energy; + /** + * 核素活度(Bq) + */ @TableField(value = "ACTIVITY") private Integer activity; + /** + * 核素活度不确定度(%) + */ @TableField(value = "ERROR") private Integer error; + /** + * γ射线强度(%) + */ @TableField(value = "ABUNDANCE") private Integer abundance; + /** + * β射线强度(%) + */ @TableField(value = "B_ABUNDANCE") private Integer bAbundance; + /** + * β能量 + */ @TableField(value = "B_ENERGY") private Integer bEnergy; + /** + * 衰变模式: + */ @TableField(value = "DECAY_MODE") private String decayMode; + /** + * 半衰期单位 + */ @TableField(value = "HALFLIFT_UNIT") private String halfliftUnit; diff --git a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java index 67cd1f7d..e4c4cc75 100644 --- a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java +++ b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java @@ -33,86 +33,7 @@ public class AlarmSysUserController { @Resource private GardsDetectorsMapper gardsDetectorsMapper; - @GetMapping("findUserMap") - public Map findUserMap(){ - Map map = new HashMap<>(); - LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); - List sysUsers = sysUserMapper.selectList(userQueryWrapper); - LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); - List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); - LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); - List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); - List roles = new LinkedList<>(); - //遍历所有用户信息 - if (CollectionUtils.isNotEmpty(sysUsers)){ - for (SysUser sysUser:sysUsers) { - if (CollectionUtils.isNotEmpty(sysUserRoles)){ - //获取各用户匹配的权限集合 - List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); - List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(sysRoles)){ - for (SysRole role:sysRoles) { - if (roleIds.contains(role.getId())){ - roles.add(role); - } - } - } - sysUser.setRoles(roles); - } - map.put(sysUser.getId(), sysUser); - } - } - return map; - } - @RequestMapping("findCacheTime") - public List> findCacheTime(){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List sysDictItems = sysDictItemMapper.selectList(queryWrapper); - List> result = new LinkedList<>(); - //获取缓存时间对应的值 - List cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(cacheTime)){ - Map cacheTimeMap = cacheTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(cacheTimeMap); - } - //获取实际分度值 - List scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(scaleInterval)){ - Map scaleIntervalMap = scaleInterval.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(scaleIntervalMap); - } - //获取时间线长度 - List timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(timelineLength)){ - Map timelineLengthMap = timelineLength.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(timelineLengthMap); - } - //获取更新间隔时间 - List updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(updateIntervalTime)){ - Map updateIntervalTimeMap = updateIntervalTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(updateIntervalTimeMap); - } - return result; - } - - - @RequestMapping("findStationDetectors") - @DS("ora") - public Map> findStationDetectors(List stationIds){ - Map> map = new HashMap<>(); - if (CollectionUtils.isNotEmpty(stationIds)){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List detectorsList = gardsDetectorsMapper.selectList(queryWrapper); - for (String stationId:stationIds) { - List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); - map.put(stationId, detectors); - } - } - return map; - } - } From bf6b784e78e9ef19614dd65f6cd242ba72972e36 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 16:46:41 +0800 Subject: [PATCH 41/64] =?UTF-8?q?=E5=85=AC=E7=94=A8=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=B8=8B=E6=B0=94=E4=BD=93=E6=95=B0=E6=8D=AE=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C=E7=8A=B6=E6=80=81=E6=95=B0=E6=8D=AE=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=EF=BC=8C=E6=A0=B7=E5=93=81=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=E7=B1=BB=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=20=E7=A7=BB=E9=99=A4=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=B8=8B=E7=9A=84=E6=A0=B7=E5=93=81=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=AE=9E=E4=BD=93=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/base/entity/GardsMetData.java | 39 +++++ .../modules/base/entity/GardsSampleData.java | 70 ++++++++ .../modules/base/entity/GardsSohData.java | 36 ++++ .../controller/GardsSampleDataController.java | 2 +- .../system/entity/GardsSampleData.java | 160 ------------------ .../system/mapper/GardsSampleDataMapper.java | 2 +- .../service/IGardsSampleDataService.java | 2 +- .../impl/GardsSampleDataServiceImpl.java | 2 +- 8 files changed, 149 insertions(+), 164 deletions(-) delete mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java index f28f9d49..54d65a55 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java @@ -13,46 +13,85 @@ import java.util.Date; @TableName(value = "gards_met_data") public class GardsMetData implements Serializable { + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 台站编码 + */ @TableField(value = "STATION_CODE") private String stationCode; + /** + * 气象数据id + */ @TableField(value = "MET_ID") private Integer metId; + /** + * 开始时间 + */ @TableField(value = "START_TIME") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; + /** + * 结束时间 + */ @TableField(value = "END_TIME") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; + /** + * 平均湿度(%) + */ @TableField(value = "AVE_HUMIDITY") private Integer aveHumidity; + /** + * 平均温度(℃) + */ @TableField(value = "AVGTEMPERATURE") private Integer avgtemperature; + /** + * 平均压力(hPa) + */ @TableField(value = "AVE_PRESSURE") private Integer avePressure; + /** + * 平均风向(偏离正北的度数) + */ @TableField(value = "AVE_WIND_DIR") private Integer aveWindDir; + /** + * 平均风速(m/s) + */ @TableField(value = "AVE_WIND_SPEED") private Integer aveWindSpeed; + /** + * 降雨量(mm) + */ @TableField(value = "RAINFALL") private Integer rainfall; + /** + * 文件路径 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java index 632dd833..41a7a183 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java @@ -13,77 +13,147 @@ import java.util.Date; @TableName("GARDS_SAMPLE_DATA") public class GardsSampleData implements Serializable { + /** + * 探测器编码 + */ @TableField(value = "SITE_DET_CODE") private String siteDetCode; + /** + * 样品id + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") private Integer detectorId; + /** + * 导入文件名称 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 系统类型(P : particulate; B :gas with 3-D β-γ coincidence detection; G :all other gas systems (high-resolution + * γ-spectrometry or 2-D β-γ coincidence + * detection)) + */ @TableField(value = "SAMPLE_TYPE") private String sampleType; + /** + * 数据类型(S:SAMPLEPHD + * B:BLANKPHD + * D:DETBKPHD + * G:GASBKPHD + * C:CALIBPHD + * Q:QCPHD) + */ @TableField(value = "DATA_TYPE") private String dataType; + /** + * 几何尺寸 + */ @TableField(value = "GEOMETRY") private String geometry; + /** + * 能谱限定符: 过程谱(PREL) 和 全谱(FULL) + */ @TableField(value = "SPECTRAL_QUALIFIE") private String spectralQualifie; + /** + * 报文发送日期 + */ @TableField(value = "TRANSMIT_DTG") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date transmitDtg; + /** + * 样品采集开始时间 + */ @TableField(value = "COLLECT_START") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStart; + /** + * 样品采集结束时间 + */ @TableField(value = "COLLECT_STOP") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStop; + /** + * 样品测量开始时间 + */ @TableField(value = "ACQUISITION_START") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStart; + /** + * 样品测量结束时间 + */ @TableField(value = "ACQUISITION_STOP") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStop; + /** + * 能谱获取实时间 + */ @TableField(value = "ACQUISITION_REAL_SEC") private Double acquisitionRealSec; + /** + * 能谱获取活时间 + */ @TableField(value = "ACQUISITION_LIVE_SEC") private Double acquisitionLiveSec; + /** + * 采样量(立方米) + */ @TableField(value = "QUANTITY") private Double quantity; + /** + * 样品处理状态 + */ @TableField(value = "STATUS") private String status; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; + /** + * 探测器名称 + */ @TableField(exist = false) private String detectorsName; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java index 85c07e67..d05b83ed 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java @@ -13,41 +13,77 @@ import java.util.Date; @TableName(value = "gards_soh_data") public class GardsSohData implements Serializable { + /** + * 台站ID号 + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 台站代码 + */ @TableField(value = "STATION_CODE") private String stationCode; + /** + * 报警ID号 + */ @TableField(value = "SOH_ID") private Integer sohId; + /** + * 状态数据采集开始时间 + */ @TableField(value = "START_TIME") private Date startTime; + /** + * 时间间隔长度(秒) + */ @TableField(value = "TIME") private Integer time; + /** + * 采样流速均值(scm/h) + */ @TableField(value = "AVGFLOWRATE") private Integer avgflowrate; + /** + * 采样流速偏差(scm/h) + */ @TableField(value = "FLOWRATEDEV") private Integer flowratedev; + /** + * 文件路径 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") private Integer detectorId; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; + /** + * 探测器名称 + */ @TableField(exist = false) private String detectorName; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java index 5d641879..423176cc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java @@ -6,7 +6,7 @@ import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.system.service.IGardsSampleDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java deleted file mode 100644 index 2dad97cf..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java +++ /dev/null @@ -1,160 +0,0 @@ -package org.jeecg.modules.system.entity; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; -import java.util.Date; - -@Data -@TableName("GARDS_SAMPLE_DATA") -public class GardsSampleData implements Serializable { - - /** - * 探测器编码 - */ - @TableField(value = "SITE_DET_CODE") - private String siteDetCode; - - /** - * 样品id - */ - @TableField(value = "SAMPLE_ID") - private Integer sampleId; - - /** - * 台站id - */ - @TableField(value = "STATION_ID") - private Integer stationId; - - /** - * 探测器id - */ - @TableField(value = "DETECTOR_ID") - private Integer detectorId; - - /** - * 导入文件名称 - */ - @TableField(value = "INPUT_FILE_NAME") - private String inputFileName; - - /** - * 系统类型(P : particulate; B :gas with 3-D β-γ coincidence detection; G :all other gas systems (high-resolution - * γ-spectrometry or 2-D β-γ coincidence - * detection)) - */ - @TableField(value = "SAMPLE_TYPE") - private String sampleType; - - /** - * 数据类型(S:SAMPLEPHD - * B:BLANKPHD - * D:DETBKPHD - * G:GASBKPHD - * C:CALIBPHD - * Q:QCPHD) - */ - @TableField(value = "DATA_TYPE") - private String dataType; - - /** - * 几何尺寸 - */ - @TableField(value = "GEOMETRY") - private String geometry; - - /** - * 能谱限定符: 过程谱(PREL) 和 全谱(FULL) - */ - @TableField(value = "SPECTRAL_QUALIFIE") - private String spectralQualifie; - - /** - * 报文发送日期 - */ - @TableField(value = "TRANSMIT_DTG") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date transmitDtg; - - /** - * 样品采集开始时间 - */ - @TableField(value = "COLLECT_START") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date collectStart; - - /** - * 样品采集结束时间 - */ - @TableField(value = "COLLECT_STOP") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date collectStop; - - /** - * 样品测量开始时间 - */ - @TableField(value = "ACQUISITION_START") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date acquisitionStart; - - /** - * 样品测量结束时间 - */ - @TableField(value = "ACQUISITION_STOP") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date acquisitionStop; - - /** - * 能谱获取实时间 - */ - @TableField(value = "ACQUISITION_REAL_SEC") - private Double acquisitionRealSec; - - /** - * 能谱获取活时间 - */ - @TableField(value = "ACQUISITION_LIVE_SEC") - private Double acquisitionLiveSec; - - /** - * 采样量(立方米) - */ - @TableField(value = "QUANTITY") - private Double quantity; - - /** - * 样品处理状态 - */ - @TableField(value = "STATUS") - private String status; - - /** - * 操作时间 - */ - @TableField(value = "MODDATE") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date moddate; - - /** - * 台站名称 - */ - @TableField(exist = false) - private String stationName; - - /** - * 探测器名称 - */ - @TableField(exist = false) - private String detectorsName; - -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java index 3e982896..eef52594 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; public interface GardsSampleDataMapper extends BaseMapper { } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java index 904bcb05..d4027b5f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; public interface IGardsSampleDataService extends IService { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java index c9f4d108..d62f75fd 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java @@ -11,7 +11,7 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.system.entity.GardsDetectors; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.system.mapper.GardsSampleDataMapper; import org.jeecg.modules.system.service.IGardsDetectorsService; From ed5ca585b1bbb1233231b29cfbd6efd99935a442 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 16 Jun 2023 17:59:10 +0800 Subject: [PATCH 42/64] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86=E6=A0=91=E5=BD=A2=E7=BB=93?= =?UTF-8?q?=E6=9E=84=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=B7=B1=E6=8B=B7=E8=B4=9D?= =?UTF-8?q?=E9=9B=86=E5=90=88=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StationOperationServiceImpl.java | 166 +++++++++++------- 1 file changed, 99 insertions(+), 67 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 7758dfd7..af537ba2 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -23,9 +23,11 @@ import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.mapper.StationOperationMapper; import org.jeecg.modules.service.IStationOperationService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -206,83 +208,113 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); - //查询全部核设施信息 - HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); - if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ - //声明一个集合存储转换经纬度后的核设施数据 - List nuclearPoints = new ArrayList<>(); - for (Map.Entry nuclearFacilityInfo:nuclearFacilityMap.entrySet()) { - GardsNuclearfacility facilityInfoValue = nuclearFacilityInfo.getValue(); - Point point = new Point(); - point.setNuclearFacilityId(String.valueOf(facilityInfoValue.getFacilityId())); - point.setNuclearFacilityName(facilityInfoValue.getFacilityName()); - if (StringUtils.isNotBlank(facilityInfoValue.getLongitude())){ - String pointValue = PointUtil.calculate(facilityInfoValue.getLongitude()); - facilityInfoValue.setLatitude(pointValue); - point.setLat(pointValue); + try { + if (CollectionUtils.isNotEmpty(stationIds)){ + //查询全部台站信息 + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + //查询全部核设施信息 + HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ + //声明一个集合存储转换经纬度后的核设施数据 + List nuclearPoints = new ArrayList<>(); + for (Map.Entry nuclearFacilityInfo:nuclearFacilityMap.entrySet()) { + GardsNuclearfacility facilityInfoValue = nuclearFacilityInfo.getValue(); + Point point = new Point(); + point.setNuclearFacilityId(String.valueOf(facilityInfoValue.getFacilityId())); + point.setNuclearFacilityName(facilityInfoValue.getFacilityName()); + if (StringUtils.isNotBlank(facilityInfoValue.getLongitude())){ + String pointValue = PointUtil.calculate(facilityInfoValue.getLongitude()); + facilityInfoValue.setLatitude(pointValue); + point.setLat(pointValue); + } + if (StringUtils.isNotBlank(facilityInfoValue.getLatitude())){ + String pointValue = PointUtil.calculate(facilityInfoValue.getLatitude()); + facilityInfoValue.setLongitude(pointValue); + point.setLon(pointValue); + } + nuclearPoints.add(point); } - if (StringUtils.isNotBlank(facilityInfoValue.getLatitude())){ - String pointValue = PointUtil.calculate(facilityInfoValue.getLatitude()); - facilityInfoValue.setLongitude(pointValue); - point.setLon(pointValue); + for (String stationId:stationIds) { + GardsStations point = (GardsStations)stationInfoMap.get(stationId); + stationsList.add(point); + //声明一个数组存储对应的核设施经纬度信息 + List nuclearFacilityPoints = deepCopy(nuclearPoints); + //获取当前查询的台站名称 + String stationName = point.getStationCode(); + //获取当前查询的经度 即 圆心位置经度信息 + Double longitudeD = point.getLon(); + //获取当前查询的纬度 即 圆心位置纬度信息 + Double latitudeD = point.getLat(); + if (Objects.isNull(longitudeD)) { + result.error500("请传入经度"); + } + if (Objects.isNull(latitudeD)) { + result.error500("请传入纬度"); + } + if (!(longitudeD >= -180 && longitudeD <= 180)) { + result.error500("经度不合法"); + } + if (!(latitudeD >= -85.05112878 && latitudeD <= 85.05112878)) { + result.error500("纬度不合法"); + } + // 1.获取外接正方形 + Rectangle rectangle = getRectangle(radius, longitudeD, latitudeD); + // 2.获取位置在正方形内的所有设备 判断核设施的经纬度是否为空 不为空 判断经纬度是否在正方形的最大最小范围内 如果在则过滤出来继续使用否则弃用 + nuclearFacilityPoints = nuclearFacilityPoints.stream().filter(item-> StringUtils.isNotBlank(item.getLon()) && StringUtils.isNotBlank(item.getLat()) && + (Double.valueOf(item.getLon())>=rectangle.getMinX() && Double.valueOf(item.getLon())<= rectangle.getMaxX()) + && (Double.valueOf(item.getLat())>=rectangle.getMinY() && Double.valueOf(item.getLat())<= rectangle.getMaxY())).collect(Collectors.toList()); + //遍历在正方形范围内的数据 根据点的经纬度信息以及圆心的经纬度信息 计算出两者之间的距离 与 半径进行比较 <=半径则说明点在范围内,否则点超出半径范围 + nuclearFacilityPoints = nuclearFacilityPoints.stream() + .filter(equ -> getDistance(Double.valueOf(equ.getLon()), Double.valueOf(equ.getLat()), longitudeD, latitudeD) <= radius).collect(Collectors.toList()); + //在范围内的点信息 计算点与圆心间的半径距离返回信息 + for (Point p:nuclearFacilityPoints) { + stationsList.add(nuclearFacilityMap.get(p.getNuclearFacilityId())); + //计算点与圆心间的距离信息 + double radiusR = getDistance(Double.valueOf(p.getLon()), Double.valueOf(p.getLat()), longitudeD, latitudeD); + p.setRadius(String.valueOf(radiusR)); + p.setStationName(stationName); + } + if (CollectionUtils.isNotEmpty(nuclearFacilityPoints)){ + resultList.add(nuclearFacilityPoints); + } } - nuclearPoints.add(point); + map.put("GIS", stationsList.stream().distinct().collect(Collectors.toList())); + map.put("table", resultList); } - for (String stationId:stationIds) { - GardsStations point = (GardsStations)stationInfoMap.get(stationId); - stationsList.add(point); - //声明一个数组存储对应的核设施经纬度信息 - List nuclearFacilityPoints = new ArrayList<>(); - nuclearFacilityPoints.addAll(nuclearPoints); - //获取当前查询的台站名称 - String stationName = point.getStationCode(); - //获取当前查询的经度 即 圆心位置经度信息 - Double longitudeD = point.getLon(); - //获取当前查询的纬度 即 圆心位置纬度信息 - Double latitudeD = point.getLat(); - if (Objects.isNull(longitudeD)) { - result.error500("请传入经度"); - } - if (Objects.isNull(latitudeD)) { - result.error500("请传入纬度"); - } - if (!(longitudeD >= -180 && longitudeD <= 180)) { - result.error500("经度不合法"); - } - if (!(latitudeD >= -85.05112878 && latitudeD <= 85.05112878)) { - result.error500("纬度不合法"); - } - // 1.获取外接正方形 - Rectangle rectangle = getRectangle(radius, longitudeD, latitudeD); - // 2.获取位置在正方形内的所有设备 判断核设施的经纬度是否为空 不为空 判断经纬度是否在正方形的最大最小范围内 如果在则过滤出来继续使用否则弃用 - nuclearFacilityPoints = nuclearFacilityPoints.stream().filter(item-> StringUtils.isNotBlank(item.getLon()) && StringUtils.isNotBlank(item.getLat()) && - (Double.valueOf(item.getLon())>=rectangle.getMinX() && Double.valueOf(item.getLon())<= rectangle.getMaxX()) - && (Double.valueOf(item.getLat())>=rectangle.getMinY() && Double.valueOf(item.getLat())<= rectangle.getMaxY())).collect(Collectors.toList()); - //遍历在正方形范围内的数据 根据点的经纬度信息以及圆心的经纬度信息 计算出两者之间的距离 与 半径进行比较 <=半径则说明点在范围内,否则点超出半径范围 - nuclearFacilityPoints = nuclearFacilityPoints.stream() - .filter(equ -> getDistance(Double.valueOf(equ.getLon()), Double.valueOf(equ.getLat()), longitudeD, latitudeD) <= radius).collect(Collectors.toList()); - //在范围内的点信息 计算点与圆心间的半径距离返回信息 - for (Point p:nuclearFacilityPoints) { - stationsList.add(nuclearFacilityMap.get(p.getNuclearFacilityId())); - //计算点与圆心间的距离信息 - double radiusR = getDistance(Double.valueOf(p.getLon()), Double.valueOf(p.getLat()), longitudeD, latitudeD); - p.setRadius(String.valueOf(radiusR)); - p.setStationName(stationName); - } - resultList.add(nuclearFacilityPoints); - } - map.put("GIS", stationsList.stream().distinct().collect(Collectors.toList())); - map.put("table", resultList); } + } catch (IOException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); } result.setSuccess(true); result.setResult(map); return result; } + /** + * 通过序列化的方式对list进行深复制 + * + * @param src + * @param + * @return + * @throws IOException + * @throws ClassNotFoundException + */ + public static List deepCopy(List src) throws IOException, ClassNotFoundException { + + ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); + ObjectOutputStream out = new ObjectOutputStream(byteOut); + out.writeObject(src); + + ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); + ObjectInputStream in = new ObjectInputStream(byteIn); + + @SuppressWarnings("unchecked") + List dest = (List) in.readObject(); + return dest; + } + @Override public Result getDataReceivingStatus(List stationIds) { Result result = new Result(); From fa2366b8aa4e54560f5fc01f293fcf683fa1189d Mon Sep 17 00:00:00 2001 From: nieziyan Date: Fri, 16 Jun 2023 20:12:38 +0800 Subject: [PATCH 43/64] =?UTF-8?q?fix=EF=BC=9A=E4=BE=9D=E8=B5=96=E8=A1=A5?= =?UTF-8?q?=E5=85=A8=20update=EF=BC=9A=E6=8E=A5=E5=8F=A3=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AlarmLogController.java | 8 +-- .../jeecg/modules/mapper/AlarmLogMapper.java | 4 +- .../modules/mapper/xml/AlarmLogMapper.xml | 55 +++++++------------ .../service/impl/AlarmLogServiceImpl.java | 45 ++++++++++----- .../java/org/jeecg/modules/vo/AlarmVo.java | 2 + .../system/controller/LoginController.java | 7 ++- .../jeecg-abnormal-alarm-start/pom.xml | 8 ++- .../jeecg-log-manage-start/pom.xml | 5 ++ .../jeecg-station-operation-start/pom.xml | 5 ++ .../jeecg-web-statistics-start/pom.xml | 5 ++ 10 files changed, 83 insertions(+), 61 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index a6f0f6be..16ed0341 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -16,20 +16,20 @@ public class AlarmLogController { @Autowired private IAlarmLogService alarmLogService; @ApiOperation("报警日志量总览-柱状图") - @GetMapping("viewAll") + @PostMapping("viewAll") public Result viewAll(@RequestBody AlarmVo alarmVo){ return alarmLogService.viewAll(alarmVo); } @ApiOperation("分页查询报警日志信息") - @GetMapping("findPage") + @PostMapping("findPage") public Result findPage(@RequestBody AlarmVo alarmVo){ return alarmLogService.findPage(alarmVo); } @ApiOperation("各类型报警量统计-饼图") - @GetMapping("typeAlarms") + @PostMapping("typeAlarms") public Result typeAlarms(@RequestBody AlarmVo alarmVo){ return alarmLogService.typeAlarms(alarmVo); } @ApiOperation("报警规则top5-柱状图") - @GetMapping("ruleTop") + @PostMapping("ruleTop") public Result ruleTop5(@RequestBody AlarmVo alarmVo){ return alarmLogService.ruleTop5(alarmVo); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java index 602bd02f..4be954c9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java @@ -13,9 +13,7 @@ import java.util.Map; public interface AlarmLogMapper extends BaseMapper { - List oneDay(Map params); - - List oneMoreDay(Map params); + List rangeDay(Map params); List findPage(Map params); List typeAlarms(Map params); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml index ceca8246..64f9b6b2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml @@ -1,6 +1,24 @@ + - - \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java index cc2719ed..d6f15fad 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmLogServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -37,11 +38,26 @@ public class AlarmLogServiceImpl extends ServiceImpl i public Result viewAll(AlarmVo alarmVo) { String startDate = alarmVo.getStartDate(); String endDate = alarmVo.getEndDate(); + // 拼接日期为合理的日期+时间范围 + alarmVo.setStartDate(startDate + " 00:00:00"); + alarmVo.setEndDate(endDate + " 23:59:59"); + // 定义返回结果 + Set xData = new HashSet<>(); + Collection YData = new ArrayList<>(); + Map result = new HashMap<>(); + // 转换参数 数据查询 Map params = BeanUtil.beanToMap(alarmVo); - List allDate; - /* 选择日期为同一天 按照小时划分 0-23小时 */ + List allDate = baseMapper.rangeDay(params); + // 查询数据为空则直接返回空集合 + if (CollUtil.isEmpty(allDate)){ + result.put("xData",xData); + result.put("yData",YData); + return Result.OK(result); + } + // 分情况处理 1.按小时统计 2.按天统计 + + /* 1.选择日期为同一天 按照小时划分 0-23小时 */ if (startDate.equals(endDate)){ - allDate = baseMapper.oneDay(params); Map> groupTime = allDate.stream() .sorted(Comparator.comparing(Date::getHours)) .collect(Collectors.groupingBy(Date::getHours)); @@ -55,17 +71,14 @@ public class AlarmLogServiceImpl extends ServiceImpl i } } // 返回x轴和y轴数据 - Set xData = statistic.keySet(); - Collection YData = statistic.values(); - Map result = new HashMap<>(); + xData = statistic.keySet(); + YData = statistic.values(); result.put("xData",xData); result.put("yData",YData); return Result.OK(result); } - /* 选择日期不是同一天 按照天划分(可以跨月选择,但不包括跨年) */ + /* 2.选择日期不是同一天 按照天划分(可以跨月选择,但不包括跨年) */ else { - allDate = baseMapper.oneMoreDay(params); - Map statistic = new HashMap<>(); // 通过mounth分组 Map> groupMounth = allDate.stream() @@ -102,16 +115,16 @@ public class AlarmLogServiceImpl extends ServiceImpl i return dateStr; }) .collect(Collectors.toList()); - // 将startDate和endDate中没有预警信息的day设置为0 + // startDate和endDate范围内无报警信息 + // 的日期(哪一天),将其报警数量设置为0 for (String dateStr : allDateStr) { if (!allDateStr.contains(dateStr)){ statistic.put(dateStr,0); } } // 返回x轴和y轴数据 - Set xData = statistic.keySet(); - Collection YData = statistic.values(); - Map result = new HashMap<>(); + xData = statistic.keySet(); + YData = statistic.values(); result.put("xData",xData); result.put("yData",YData); return Result.OK(result); @@ -134,8 +147,10 @@ public class AlarmLogServiceImpl extends ServiceImpl i List alarmHistories = baseMapper.findPage(params); // 当前页数据 page.setRecords(alarmHistories); - // 数据总条数 - page.setTotal(this.count()); + // 获取数据总条数(经过查询条件过滤后的) + params.put("pageFlag","noPage"); + Integer total = baseMapper.findPage(params).size(); + page.setTotal(total); return Result.OK(page); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java index c3e3a8ed..6101023e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/vo/AlarmVo.java @@ -11,4 +11,6 @@ public class AlarmVo extends QueryRequest implements Serializable { private String startDate; private String endDate; private Integer pageStart; + // 标记:根据条件查询但不进行分页 + private String pageFlag; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index e9a5febc..15c22bb9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -88,7 +88,8 @@ public class LoginController { //update-begin--Author:scott Date:20190805 for:暂时注释掉密码加密逻辑,有点问题 //update-begin-author:taoyan date:20190828 for:校验验证码 - String captcha = sysLoginModel.getCaptcha(); + + /* String captcha = sysLoginModel.getCaptcha(); if(captcha==null){ result.error500("验证码无效"); return result; @@ -107,7 +108,7 @@ public class LoginController { // 改成特殊的code 便于前端判断 result.setCode(HttpStatus.PRECONDITION_FAILED.value()); return result; - } + }*/ //update-end-author:taoyan date:20190828 for:校验验证码 //1. 校验用户是否有效 @@ -135,7 +136,7 @@ public class LoginController { //用户登录信息 userInfo(sysUser, result); //update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 - redisUtil.del(realKey); + //redisUtil.del(realKey); //update-begin--Author:liusq Date:20210126 for:登录成功,删除redis中的验证码 redisUtil.del(CommonConstant.LOGIN_FAIL + username); LoginUser loginUser = new LoginUser(); diff --git a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml index 122699d8..fd53e604 100644 --- a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml +++ b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml @@ -12,8 +12,12 @@ jeecg-abnormal-alarm-start - - + + + org.jeecgframework.boot + jeecg-system-cloud-api + + org.jeecgframework.boot jeecg-module-abnormal-alarm diff --git a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml index 3b61cf75..1ad7845d 100644 --- a/jeecg-server-cloud/jeecg-log-manage-start/pom.xml +++ b/jeecg-server-cloud/jeecg-log-manage-start/pom.xml @@ -12,6 +12,11 @@ jeecg-log-manage-start + + + org.jeecgframework.boot + jeecg-system-cloud-api + org.jeecgframework.boot jeecg-module-log-manage diff --git a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml index a928046c..76b20966 100644 --- a/jeecg-server-cloud/jeecg-station-operation-start/pom.xml +++ b/jeecg-server-cloud/jeecg-station-operation-start/pom.xml @@ -12,6 +12,11 @@ jeecg-station-operation-start + + + org.jeecgframework.boot + jeecg-system-cloud-api + org.jeecgframework.boot jeecg-module-station-operation diff --git a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml index f2c7f6dd..1c19ef8d 100644 --- a/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml +++ b/jeecg-server-cloud/jeecg-web-statistics-start/pom.xml @@ -12,6 +12,11 @@ jeecg-web-statistics-start + + + org.jeecgframework.boot + jeecg-system-cloud-api + org.jeecgframework.boot jeecg-module-web-statistics From 306e5e65dd68d65d31bb6b17ec2e8bf1325dd3a0 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Mon, 19 Jun 2023 19:55:50 +0800 Subject: [PATCH 44/64] =?UTF-8?q?fix:1.=E6=8F=90=E4=BA=A4=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E5=B8=B8=E9=87=8F=E3=80=81ftp=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E3=80=81=E9=82=AE=E4=BB=B6=E5=AE=9E=E4=BD=93=E3=80=81?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=97=A5=E5=BF=97=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/constant/EmailConstant.java | 9 ++++++ .../java/org/jeecg/common/util/FTPUtil.java | 6 ++-- .../jeecg/modules/base/entity/SysEmail.java | 16 +++++----- .../modules/base/entity/SysEmailLog.java | 31 +++++++++++-------- 4 files changed, 37 insertions(+), 25 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/EmailConstant.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/EmailConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/EmailConstant.java new file mode 100644 index 00000000..b547a7ee --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/EmailConstant.java @@ -0,0 +1,9 @@ +package org.jeecg.common.constant; + +/** + * 邮件服务常量 + */ +public class EmailConstant { + + public static final String EMAIL_STATUS_PREFIX = "email_status"; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index 44f2e925..22e7468e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -50,11 +50,9 @@ public class FTPUtil { // 切换为本地被动模式,可以解决FTP上传后文件为空的问题,但需要服务器将FTP服务添加至防火墙白名单 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(); if (!FTPReply.isPositiveCompletion(reply)) { diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java index b0a4f1f1..820cdccf 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java @@ -22,10 +22,10 @@ public class SysEmail implements Serializable { private String id; /** - * 邮箱名称 + * email服务地址 */ - @TableField(value = "name") - private String name; + @TableField(value = "email_server_address") + private String emailServerAddress; /** * 邮箱类型(1-收件地址,2-发件地址) @@ -34,7 +34,7 @@ public class SysEmail implements Serializable { private Integer emilType; /** - * email地址 + * 邮箱登录名称 */ @TableField(value = "username") private String username; @@ -49,7 +49,7 @@ public class SysEmail implements Serializable { * 端口 */ @TableField(value = "port") - private String port; + private Integer port; /** * 是否启用邮箱(0-不启用,1-启用) @@ -58,10 +58,10 @@ public class SysEmail implements Serializable { private Integer enabled; /** - * 监测周期(秒) + * 定时获取邮件时间周期(秒) */ - @TableField(value = "monitoring_cycle") - private Integer monitoringCycle; + @TableField(value = "receive_mail_fixed_cycle") + private Integer receiveMailFixedCycle; /** * 创建日期 diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java index 3d29f926..b46fff86 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java @@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; - import java.io.Serializable; import java.util.Date; +/** + * 邮件接收日志数据表 + */ @Data @TableName(value = "sys_email_log") public class SysEmailLog implements Serializable { @@ -18,34 +20,37 @@ public class SysEmailLog implements Serializable { @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 邮件id + */ @TableField(value = "email_id") private String emailId; + /** + * 邮件主题 + */ @TableField(value = "subject") private String subject; + /** + * 邮件内容 + */ @TableField(value = "context") private String context; + /** + * 接收时间 + */ @TableField(value = "receive_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date receiveTime; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - - @TableField(value = "create_by") - private String createBy; - - @TableField(value = "update_time") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - - @TableField(value = "update_by") - private String updateBy; - } From e9ac06c22cd2e901e5f228e6a37901c45591a5a2 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Jun 2023 10:58:36 +0800 Subject: [PATCH 45/64] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=9F=A5=E8=AF=A2=E5=BD=93=E5=89=8D=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8F=8A=E7=BC=93=E5=AD=98=E9=85=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=20=E4=BF=AE=E6=94=B9=E6=96=B0=E5=A2=9E=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/StationTypeUtil.java | 17 +++ .../SysUserFocusStationController.java | 17 ++- .../entity/StationReceivingConfig.java | 58 ++++++++++ .../modules/entity/SysUserFocusStation.java | 14 ++- .../modules/entity/UserFocusStation.java | 36 ++++++ .../mapper/StationReceivingConfigMapper.java | 7 ++ .../service/ISysUserFocusStationService.java | 12 +- .../impl/StationOperationServiceImpl.java | 19 ++-- .../impl/SysUserFocusStationServiceImpl.java | 106 ++++++++++++++++-- 9 files changed, 259 insertions(+), 27 deletions(-) create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationReceivingConfig.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/UserFocusStation.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java new file mode 100644 index 00000000..a4428678 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java @@ -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; + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java index 871c7653..85ef4324 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.vo.Result; import org.jeecg.config.valid.InsertGroup; import org.jeecg.modules.entity.SysUserFocusStation; +import org.jeecg.modules.entity.UserFocusStation; import org.jeecg.modules.service.ISysUserFocusStationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -27,10 +28,10 @@ public class SysUserFocusStationController { return result; } - @PostMapping("create") - @ApiOperation(value = "新增关注", notes = "新增关注") - public Result create(@RequestBody @Validated(value = InsertGroup.class) SysUserFocusStation sysUserFocusStation){ - return sysUserFocusStationService.create(sysUserFocusStation); + @PostMapping("saveUserFocusByUserId") + @ApiOperation(value = "保存用户关注台站及缓存配置信息", notes = "保存用户关注台站及缓存配置信息") + public Result create(@RequestBody UserFocusStation userFocusStation){ + return sysUserFocusStationService.create(userFocusStation); } @DeleteMapping("deleteById") @@ -39,4 +40,12 @@ public class SysUserFocusStationController { return sysUserFocusStationService.deleteById(stationId); } + @GetMapping("findUserFocusByUserId") + @ApiOperation(value = "根据用户id查询用户的缓存配置信息及关注台站信息", notes = "根据用户id查询用户的缓存配置信息及关注台站信息") + public Result findUserFocusByUserId(String userId){ + return sysUserFocusStationService.findUserFocusByUserId(userId); + } + + + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationReceivingConfig.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationReceivingConfig.java new file mode 100644 index 00000000..1983fe79 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationReceivingConfig.java @@ -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 sysUserFocusStations; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java index 3f5f582e..a0a52da5 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -41,9 +41,9 @@ public class SysUserFocusStation implements Serializable { /** * 类型 */ - @TableField(value = "type") + @TableField(value = "station_type") @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; /** - * 修改时间 + * 经度 */ @TableField(exist = false) private Double lon; /** - * 修改人 + * 纬度 */ @TableField(exist = false) private Double lat; + /** + * 海拔 + */ + @TableField(exist = false) + private String altitude; + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/UserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/UserFocusStation.java new file mode 100644 index 00000000..1d4fac58 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/UserFocusStation.java @@ -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 stationIds; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java new file mode 100644 index 00000000..f20a592a --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java @@ -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 { +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java index 1d6a289c..2483c574 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java @@ -3,6 +3,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.SysUserFocusStation; +import org.jeecg.modules.entity.UserFocusStation; import java.util.List; @@ -16,9 +17,9 @@ public interface ISysUserFocusStationService extends IService200 && gardsStation.getStationId()<=300){ - stationOperation.setStationType("IMS STATION(G)"); - }else if(gardsStation.getStationId()>300){ - stationOperation.setStationType("NRL"); - } + String stationType = StationTypeUtil.getStationType(gardsStation.getStationId()); + stationOperation.setStationType(stationType); stationOperation.setAltitude(Objects.isNull(gardsStation.getElevation())?"":gardsStation.getElevation()+"m"); stationOperation.setLon(String.valueOf(gardsStation.getLon())); stationOperation.setLat(String.valueOf(gardsStation.getLat())); @@ -103,7 +99,7 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); GardsStations stations = stationInfoMap.get(stationId); if (Objects.nonNull(stations)){ @@ -114,10 +110,13 @@ public class StationOperationServiceImpl extends ServiceImpl nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + //从缓存的核设施map中获取对应的核设施信息 GardsNuclearfacility nuclearfacility = nuclearFacilityMap.get(stationId); if (Objects.nonNull(nuclearfacility)){ - nuclearfacility.setLongitude(PointUtil.calculate(nuclearfacility.getLatitude())); - nuclearfacility.setLatitude(PointUtil.calculate(nuclearfacility.getLongitude())); + String longitude = nuclearfacility.getLongitude(); + String latitude = nuclearfacility.getLatitude(); + nuclearfacility.setLongitude(PointUtil.calculate(latitude)); + nuclearfacility.setLatitude(PointUtil.calculate(longitude)); result.setResult(nuclearfacility); result.setSuccess(true); }else { diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java index 6d8c6ce0..1f8253d3 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -3,15 +3,22 @@ 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.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; 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.system.util.JwtUtil; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.modules.entity.StationReceivingConfig; import org.jeecg.modules.entity.SysUser; 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.SysUserMapper; +import org.jeecg.modules.service.ICacheTimeService; import org.jeecg.modules.service.ISysUserFocusStationService; import org.jeecg.modules.system.entity.GardsStations; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.util.*; +import java.util.stream.Collectors; @Service("sysUserFocusStationService") public class SysUserFocusStationServiceImpl extends ServiceImpl implements ISysUserFocusStationService { @@ -28,6 +36,10 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl findList() { @@ -39,8 +51,11 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl receivingConfigQueryWrapper = new LambdaQueryWrapper<>(); + receivingConfigQueryWrapper.eq(StationReceivingConfig::getUserId, sysUser.getId()); + 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 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("新增成功"); return result; } @@ -99,4 +151,44 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StationReceivingConfig::getUserId, userId); + StationReceivingConfig receivingConfig = stationReceivingConfigMapper.selectOne(queryWrapper); + //如果用户对应的缓存配置信息为空时,查询字典表中的默认值 + if (Objects.isNull(receivingConfig)){ + receivingConfig = new StationReceivingConfig(); + //调用接口获取数据库中对应缓存配置信息默认值 + List> 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 focusStationQueryWrapper = new LambdaQueryWrapper<>(); + focusStationQueryWrapper.eq(SysUserFocusStation::getUserId, userId); + List sysUserFocusStations = this.baseMapper.selectList(focusStationQueryWrapper); + if (Objects.nonNull(sysUserFocusStations)){ + receivingConfig.setSysUserFocusStations(sysUserFocusStations); + } + result.setSuccess(true); + result.setResult(receivingConfig); + return result; + } + } From 4c5971932196d78522619cf267220127839f65dc Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Jun 2023 11:11:35 +0800 Subject: [PATCH 46/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E7=9B=91=E6=B5=8B=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StationOperationController.java | 4 ++-- .../modules/service/IStationOperationService.java | 4 ++-- .../service/impl/StationOperationServiceImpl.java | 15 ++++++++++----- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index b678d849..3c46f9b0 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -54,8 +54,8 @@ public class StationOperationController { @GetMapping("getDataReceivingStatus") @ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息") - public void getDataReceivingStatus(List stationIds){ - stationOperationService.getDataReceivingStatus(stationIds); + public void getDataReceivingStatus(String userId){ + stationOperationService.getDataReceivingStatus(userId); } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index d978c305..c6043d52 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -41,9 +41,9 @@ public interface IStationOperationService extends IService { /** * 查询台站监测数据 - * @param stationIds + * @param userId * @return */ - Result getDataReceivingStatus(List stationIds); + Result getDataReceivingStatus(String userId); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 246266f3..333e39a7 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -1,5 +1,6 @@ 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.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -15,14 +16,11 @@ import org.jeecg.modules.base.entity.GardsMetData; import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.base.entity.GardsSohData; import org.jeecg.modules.entity.*; -import org.jeecg.modules.mapper.StationMetDataMapper; -import org.jeecg.modules.mapper.StationSampleDataMapper; -import org.jeecg.modules.mapper.StationSohDataMapper; +import org.jeecg.modules.mapper.*; import org.jeecg.modules.service.ICacheTimeService; import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; -import org.jeecg.modules.mapper.StationOperationMapper; import org.jeecg.modules.service.IStationOperationService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,6 +45,8 @@ public class StationOperationServiceImpl extends ServiceImpl stationIds) { + public Result getDataReceivingStatus(String userId) { Result result = new Result(); //获取四项缓存数据的对应内容 List> cacheList = cacheTimeService.findCacheTime(); @@ -331,6 +331,11 @@ public class StationOperationServiceImpl extends ServiceImpl userFocusStationQueryWrapper = new LambdaQueryWrapper<>(); + userFocusStationQueryWrapper.eq(SysUserFocusStation::getUserId, userId); + List userFocusStations = sysUserFocusStationMapper.selectList(userFocusStationQueryWrapper); + List stationIds = userFocusStations.stream().map(SysUserFocusStation::getStationId).collect(Collectors.toList()); //从redis中获取台站信息 Map stationInfoMap = (Map)redisUtil.get("stationMap"); //从redis中获取探测器信息 From 71dfb1e519301088c409b56598ef511d6716b04c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Jun 2023 11:31:59 +0800 Subject: [PATCH 47/64] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BA=BF=E9=95=BF?= =?UTF-8?q?=E5=BA=A6=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=97=A0=E6=B3=95=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=95=B0=E6=8D=AE=E5=BA=93=E5=86=85=E5=AE=B9=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/CacheName.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java index 8addb981..b4e775de 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CacheName.java @@ -8,7 +8,7 @@ public class CacheName { 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"; From 68db2b25dec484cbaf8b677c787711f77c521376 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Jun 2023 14:51:03 +0800 Subject: [PATCH 48/64] =?UTF-8?q?=E8=B0=83=E7=94=A8feign=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E5=8F=82=E6=95=B0=E4=B8=BAnull=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9=20=E6=8A=A5=E8=AD=A6=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=9C=AA=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E4=BF=AE=E6=94=B9=20xml=E6=96=87=E4=BB=B6=E4=B8=ADsql?= =?UTF-8?q?=E4=B9=A6=E5=86=99=E5=86=85=E5=AE=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/controller/AlarmContactGroupController.java | 4 ++-- .../java/org/jeecg/modules/controller/AlarmLogController.java | 2 +- .../org/jeecg/modules/controller/AlarmRuleController.java | 4 ++-- .../org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml | 2 +- .../org/jeecg/modules/mapper/xml/stationSohDataMapper.xml | 1 - .../java/org/jeecg/modules/service/ICacheTimeService.java | 3 ++- .../modules/system/controller/GardsDetectorsController.java | 2 +- .../system/service/impl/GardsDetectorsServiceImpl.java | 3 ++- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java index 74c26810..0d2981dc 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmContactGroupController.java @@ -23,13 +23,13 @@ public class AlarmContactGroupController { @GetMapping("findInfo") @ApiOperation(value = "查询报警联系人组信息详情", notes = "查询报警联系人组信息详情") - public Result findPage(String id){ + public Result findInfo(String id){ return alarmContactGroupService.findInfo(id); } @PostMapping("create") @ApiOperation(value = "新增报警人联系人组", notes = "新增报警联系人组") - public Result findPage(@RequestBody AlarmContactGroup alarmContactGroup){ + public Result create(@RequestBody AlarmContactGroup alarmContactGroup){ return alarmContactGroupService.create(alarmContactGroup); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index 16ed0341..1a9d7b59 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -42,7 +42,7 @@ public class AlarmLogController { @PostMapping("create") @ApiOperation(value = "新增报警日志", notes = "新增报警日志") - public Result findPage(@RequestBody AlarmLog alarmLog){ + public Result create(@RequestBody AlarmLog alarmLog){ return alarmLogService.create(alarmLog); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java index f8ced280..7b49f9a8 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmRuleController.java @@ -26,13 +26,13 @@ public class AlarmRuleController { @GetMapping("findInfo") @ApiOperation(value = "查看规则信息详情", notes = "查看规则信息详情") - public Result findPage(String id){ + public Result findInfo(String id){ return alarmRuleService.findInfo(id); } @PostMapping("create") @ApiOperation(value = "新增规则信息", notes = "新增规则信息") - public Result findPage(@RequestBody AlarmRule alarmRule){ + public Result create(@RequestBody AlarmRule alarmRule){ return alarmRuleService.create(alarmRule); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml index 3e5a2707..42c6fb36 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml @@ -21,8 +21,8 @@ and MODDATE >= TO_DATE(#{startDate}, 'YYYY-MM-DD hh24:mi:ss') - ORDER BY ACQUISITION_STOP + ORDER BY ACQUISITION_STOP \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml index 7de1c54f..9ce2b2a2 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml @@ -20,7 +20,6 @@ and MODDATE >= TO_DATE(#{startDate}, 'YYYY-MM-DD hh24:mi:ss') - ORDER BY ACQUISITION_STOP diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java index 2dcd6bae..5913222d 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java @@ -3,6 +3,7 @@ package org.jeecg.modules.service; import org.jeecg.modules.system.entity.GardsDetectors; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; @@ -16,6 +17,6 @@ public interface ICacheTimeService { List> findCacheTime(); @RequestMapping("/gardsDetectors/findStationDetectors") - Map> findStationDetectors(List stationIds); + Map> findStationDetectors(@RequestBody List stationIds); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java index 6b215005..57060a17 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java @@ -71,7 +71,7 @@ public class GardsDetectorsController { } @RequestMapping("findStationDetectors") - public Map> findStationDetectors(List stationIds){ + public Map> findStationDetectors(@RequestBody List stationIds){ return gardsDetectorsService.findStationDetectors(stationIds); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 85b6c1bf..697d10de 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -154,9 +154,10 @@ public class GardsDetectorsServiceImpl extends ServiceImpl> map = new HashMap<>(); if (CollectionUtils.isNotEmpty(stationIds)){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(GardsDetectors::getStationId, stationIds); List detectorsList = this.baseMapper.selectList(queryWrapper); for (String stationId:stationIds) { - List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); + List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(Integer.valueOf(stationId)) && item.getStatus().trim().equals("Operating")).collect(Collectors.toList()); map.put(stationId, detectors); } } From 619981daefbf8d9cc988f0b53404b6270fd1d27c Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 20 Jun 2023 15:12:05 +0800 Subject: [PATCH 49/64] =?UTF-8?q?feat=EF=BC=9A=E9=82=AE=E4=BB=B6=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/base/entity/SysEmailLog.java | 14 +- .../controller/AlarmLogController.java | 4 +- .../controller/SysEmailLogController.java | 176 ++++++++++++++++++ .../jeecg/modules/mapper/AlarmLogMapper.java | 3 +- .../modules/mapper/SysEmailLogMapper.java | 7 + .../modules/mapper/xml/AlarmLogMapper.xml | 6 +- .../modules/mapper/xml/SysEmailLogMapper.xml | 5 + .../modules/mapper/xml/sysDatabaseMapper.xml | 2 +- .../service/impl/AlarmLogServiceImpl.java | 102 +++------- 9 files changed, 224 insertions(+), 95 deletions(-) create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailLogMapper.xml diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java index 3d29f926..c6086d6c 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java @@ -9,6 +9,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; @Data @@ -30,22 +31,11 @@ public class SysEmailLog implements Serializable { @TableField(value = "receive_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date receiveTime; + private LocalDateTime receiveTime; @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - @TableField(value = "create_by") - private String createBy; - - @TableField(value = "update_time") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - - @TableField(value = "update_by") - private String updateBy; - } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index 16ed0341..e5f84f53 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -36,13 +36,13 @@ public class AlarmLogController { @GetMapping("findInfo") @ApiOperation(value = "查询报警日志信息详情", notes = "查询报警日志信息详情") - public Result findPage(String id){ + public Result findInfo(String id){ return alarmLogService.findInfo(id); } @PostMapping("create") @ApiOperation(value = "新增报警日志", notes = "新增报警日志") - public Result findPage(@RequestBody AlarmLog alarmLog){ + public Result create(@RequestBody AlarmLog alarmLog){ return alarmLogService.create(alarmLog); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java index cfc763da..85308be0 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java @@ -1,4 +1,180 @@ package org.jeecg.modules.controller; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.base.entity.SysEmailLog; +import org.jeecg.modules.service.ISysEmailLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("sysEmailLog") +@Api(value = "邮箱日志", tags = "邮箱日志") public class SysEmailLogController { + @Autowired + private ISysEmailLogService sysEmailLogService; + + @Autowired + private RedisUtil redisUtil; + + /** + * 邮箱服务器连接状态 正常/断开 + * + * @param emailId 电子邮件id + */ + @GetMapping("status") + public Result status(@RequestParam("emailId") String emailId){ + String key = "email_satus"; + Boolean emailSatus = (Boolean) redisUtil.hget(key, emailId); + return Result.OK(emailSatus == null ? false : emailSatus); + } + + @GetMapping("space") + public Result space(@RequestParam("emailId") String emailId){ + return null; + } + + /** + * 分别获取今天、昨天、过去一周邮件量 + * + * @param emailId 电子邮件id + */ + @GetMapping("total") + public Result totalEmail(@RequestParam("emailId") String emailId){ + // 当日邮件量 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysEmailLog::getEmailId,emailId); + LocalDate today = LocalDate.now(); + String todayStart = today + " 00:00:00"; + String todayEnd = today + " 23:59:59"; + wrapper.between(SysEmailLog::getReceiveTime,todayStart,todayEnd); + Long todayCount = sysEmailLogService.count(wrapper); + // 昨日邮件量 + wrapper.clear(); + wrapper.eq(SysEmailLog::getEmailId,emailId); + LocalDate yesterday = LocalDate.now().minusDays(1); + String yesterdayStart = yesterday + " 00:00:00"; + String yesterdayEnd = yesterday + " 23:59:59"; + wrapper.between(SysEmailLog::getReceiveTime,yesterdayStart,yesterdayEnd); + Long yesterdayCount = sysEmailLogService.count(wrapper); + // 过去一周邮件量 + wrapper.clear(); + wrapper.eq(SysEmailLog::getEmailId,emailId); + LocalDate passWeek = LocalDate.now().minusWeeks(1); + String weekStart = passWeek + " 00:00:00"; + wrapper.between(SysEmailLog::getReceiveTime,weekStart,todayEnd); + Long weekCount = sysEmailLogService.count(wrapper); + + Map result = new HashMap<>(); + result.put("today",todayCount); + result.put("yesterday",yesterdayCount); + result.put("week",weekCount); + return Result.OK(result); + } + + /** + * 今天邮件接收量 按小时划分 + * + * @param emailId 电子邮件id + */ + @GetMapping("today") + public Result today(@RequestParam("emailId") String emailId){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysEmailLog::getEmailId,emailId); + LocalDate today = LocalDate.now(); + String todayStart = today + " 00:00:00"; + String todayEnd = today + " 23:59:59"; + wrapper.between(SysEmailLog::getReceiveTime,todayStart,todayEnd); + List emailLogs = sysEmailLogService.list(wrapper); + List allTime = emailLogs.stream() + .map(SysEmailLog::getReceiveTime) + .collect(Collectors.toList()); + // 按照小时分组 + Map statistic = new TreeMap<>(); + Map> groupTime = allTime.stream() + .collect(Collectors.groupingBy(LocalDateTime::getHour)); + for (int i = 0; i < 24; i++) { + if(groupTime.containsKey(i)){ + Integer count = groupTime.get(i).size(); + statistic.put(timeStr(i),count); + }else { + statistic.put(timeStr(i),0); + } + } + return Result.OK(statistic); + } + + /** + * 根据日期筛选(折线图) + * + * @param emailId 电子邮件id + */ + @GetMapping("analysis") + public Result analysis(@RequestParam("emailId") String emailId, + @RequestParam("startDate") String startDate, + @RequestParam("endDate") String endDate){ + String startStr = startDate + " 00:00:00"; + String endStr = endDate + " 23:59:59"; + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysEmailLog::getEmailId,emailId); + wrapper.between(SysEmailLog::getReceiveTime,startStr,endStr); + Set xData = new HashSet<>(); + Collection yData = new ArrayList<>(); + Map statistic = new TreeMap<>(); + Map result = new HashMap<>(); + List allDate = sysEmailLogService.listObjs(wrapper, + emailLog -> ((SysEmailLog) emailLog).getReceiveTime()); + if (CollUtil.isEmpty(allDate)){ + result.put("xData",xData); + result.put("yData",yData); + return Result.OK(result); + } + + /* 支持跨年跨月选择 */ + // 通过年月日进行分组 例:2023-06-06 + DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE; + Map> group = allDate.stream() + .collect(Collectors.groupingBy(datetime -> datetime.format(formatter))); + + // 列举出startDate-endDate中所有日期(包括闰年) + // 没有邮件的日期,对应的值设置为0 + LocalDate start = LocalDate.parse(startDate); + LocalDate end = LocalDate.parse(endDate); + while (!start.isAfter(end)) { + String key = start.format(formatter); + if (group.containsKey(key)){ + Integer count = group.get(key).size(); + statistic.put(key,count); + }else { + statistic.put(key,0); + } + start = start.plusDays(1); + } + // 返回结果 + xData = statistic.keySet(); + yData = statistic.values(); + result.put("xData",xData); + result.put("yData",yData); + return Result.OK(result); + } + + private String timeStr(Integer time){ + if (time < 10){ + return "0" + time + ":00"; + } + return time + ":00"; + } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java index 4be954c9..689520b2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmLogMapper.java @@ -7,13 +7,14 @@ import org.jeecg.modules.entity.AlarmHistory; import org.jeecg.modules.entity.AlarmLog; import org.jeecg.modules.vo.AlarmVo; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.Map; public interface AlarmLogMapper extends BaseMapper { - List rangeDay(Map params); + List rangeDay(Map params); List findPage(Map params); List typeAlarms(Map params); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java index fb25392b..674ed114 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/SysEmailLogMapper.java @@ -3,5 +3,12 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.base.entity.SysEmailLog; +/** + * 系统邮件日志 + * + * @author nieziyan + * @date 2023-06-19 + */ public interface SysEmailLogMapper extends BaseMapper { + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml index 64f9b6b2..e6913a5c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmLogMapper.xml @@ -1,11 +1,11 @@ - SELECT - l.alarm_start_date + l.alarm_start_date FROM - alarm_log l + alarm_log l INNER JOIN alarm_rule r ON l.rule_id = r.ID diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailLogMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailLogMapper.xml new file mode 100644 index 00000000..b05d4dd6 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/SysEmailLogMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml index 66c94989..5be1a952 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/sysDatabaseMapper.xml @@ -1,6 +1,6 @@ - + select + STATION_ID, START_TIME, END_TIME from ORIGINAL.GARDS_MET_DATA diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml index 42c6fb36..a0d10797 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml @@ -4,6 +4,7 @@ select + DETECTOR_ID, START_TIME, TIME FROM ORIGINAL.GARDS_SOH_DATA diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 333e39a7..cacaabb9 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -67,7 +67,7 @@ public class StationOperationServiceImpl extends ServiceImpl Date: Tue, 20 Jun 2023 17:22:48 +0800 Subject: [PATCH 56/64] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E=E6=B5=B7?= =?UTF-8?q?=E6=8B=94=E4=BF=A1=E6=81=AF=E6=B2=A1=E6=9C=89=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E--?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/SysUserFocusStationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java index e86f2512..7a48156e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -57,7 +57,7 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl Date: Wed, 21 Jun 2023 10:03:18 +0800 Subject: [PATCH 57/64] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E7=9B=91=E6=B5=8B=E6=95=B0=E6=8D=AE=E4=BF=A1=E6=81=AF=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E5=9B=9E=E6=98=BE=E6=8E=A2=E6=B5=8B?= =?UTF-8?q?=E5=99=A8=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/StationOperationServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index cacaabb9..6746a9c8 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -449,8 +449,8 @@ public class StationOperationServiceImpl extends ServiceImpl Date: Wed, 21 Jun 2023 11:16:50 +0800 Subject: [PATCH 58/64] =?UTF-8?q?fix:1.=E6=8F=90=E4=BA=A4=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A4=84=E7=90=86=E7=A8=8B=E5=BA=8F=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-boot-base-core/pom.xml | 1 - .../common/email/EmailServiceManager.java | 204 ++++++++++ .../common/email/emuns/MailContentType.java | 43 +++ .../jeecg/common/email/emuns/SysMailType.java | 26 ++ .../java/org/jeecg/common/util/FTPUtil.java | 1 + .../base/struct/EnergySpectrumStruct.java | 363 ++++++++++++++++++ jeecg-module-auto-process/pom.xml | 30 ++ .../org/jeecg/modules/AutoProcessManager.java | 251 ++++++++++++ .../mybatis/CustomMetaObjectHandler.java | 26 ++ .../modules/email/EmailLogProperties.java | 18 + .../modules/email/EmailParsingActuator.java | 107 ++++++ .../jeecg/modules/email/EmailProperties.java | 27 ++ .../modules/emuns/SysMailEnableType.java | 26 ++ .../jeecg/modules/mapper/SysMailMapper.java | 10 + .../properties/SpectrumPathProperties.java | 28 ++ .../modules/properties/TaskProperties.java | 42 ++ .../modules/service/ISysMailService.java | 18 + .../service/impl/SysMailServiceImpl.java | 47 +++ .../jeecg-auto-process-start/pom.xml | 42 ++ .../jeecg/JeecgAutoProcessApplication.java | 54 +++ .../src/main/resources/application.yml | 19 + .../src/main/resources/logback-spring.xml | 77 ++++ jeecg-server-cloud/pom.xml | 1 + pom.xml | 9 +- 24 files changed, 1462 insertions(+), 8 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/email/emuns/MailContentType.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/email/emuns/SysMailType.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/struct/EnergySpectrumStruct.java create mode 100644 jeecg-module-auto-process/pom.xml create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/config/mybatis/CustomMetaObjectHandler.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailLogProperties.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailParsingActuator.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailProperties.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/emuns/SysMailEnableType.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/SysMailMapper.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/SpectrumPathProperties.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/TaskProperties.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/ISysMailService.java create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SysMailServiceImpl.java create mode 100644 jeecg-server-cloud/jeecg-auto-process-start/pom.xml create mode 100644 jeecg-server-cloud/jeecg-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java create mode 100644 jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/application.yml create mode 100644 jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/logback-spring.xml diff --git a/jeecg-boot-base-core/pom.xml b/jeecg-boot-base-core/pom.xml index 6775e78a..1e5181eb 100644 --- a/jeecg-boot-base-core/pom.xml +++ b/jeecg-boot-base-core/pom.xml @@ -259,5 +259,4 @@ 3.3 - \ No newline at end of file diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java new file mode 100644 index 00000000..70feb479 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java @@ -0,0 +1,204 @@ +package org.jeecg.common.email; + +import com.google.common.collect.Lists; +import com.sun.mail.imap.IMAPStore; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.email.emuns.MailContentType; +import org.jeecg.modules.base.entity.SysEmail; +import org.jetbrains.annotations.NotNull; +import javax.mail.*; +import javax.mail.internet.MimeUtility; +import java.io.*; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +/** + * 邮件服务管理器 + */ +@Slf4j +public class EmailServiceManager { + + private SysEmail email; + /** 邮件接收数量 */ + private Integer receiveNum; + /** smtp协议的存储对象 */ + private IMAPStore store = null; + /** 邮件附件临时存储路径 */ + private String temporaryStoragePath; + /** 收件箱 */ + private Folder folder = null; + + @NotNull + public static EmailServiceManager getInstance(){ + return new EmailServiceManager(); + } + + /** + * 初始化邮件服务管理器 + * @param email 邮件属性 + */ + public void init(SysEmail email){ + this.email = email; + } + + /** + * 初始化邮件服务管理器 + * @param email 邮件属性 + */ + public void init(SysEmail email,Integer receiveNum,String temporaryStoragePath){ + this.email = email; + this.receiveNum = receiveNum; + this.temporaryStoragePath = temporaryStoragePath; + } + + /** + * 测试邮件服务连通性 + */ + public boolean testConnectEmailServer(){ + Socket socket = new Socket(); + boolean flag = false; + try { + socket.connect(new InetSocketAddress(email.getEmailServerAddress(),email.getPort()),5000); + log.info("{}邮件服务连接测试成功",email.getEmailServerAddress()); + flag = true; + } catch (IOException e) { + log.error("{}邮件服务连接测试失败,请检查邮件服务属性配置是否正确或邮件服务未开启,原因{}",email.getEmailServerAddress(),e.getMessage()); + }finally { + try { + if(null != socket){ + socket.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return flag; + } + + /** + * 接收邮件 + */ + public Message[] receiveMail() throws MessagingException { + //配置邮件服务属性 + Properties props = new Properties(); + props.put("mail.store.protocol","imap"); + props.put("mail.imap.host",email.getEmailServerAddress()); + props.put("mail.imap.port",email.getPort()); + //获取邮件回话 + final Session session = Session.getInstance(props, new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(email.getUsername(), email.getPassword()); + } + }); + Map iam = new HashMap<>(); + iam.put("name", "myname"); + iam.put("version", "1.0.0"); + iam.put("vendor", "myclient"); + iam.put("support-email", "testmail@test.com"); + //获取smtp协议的存储对象 + store = (IMAPStore) session.getStore(); + //连接 + store.connect(); + store.id(iam); + //获取收件箱 + folder = store.getFolder("INBOX"); + folder.open(Folder.READ_WRITE); + //获取邮件数量 + final int messageCount = folder.getMessageCount(); + if(messageCount > 0){ + Integer start = 1; + Integer end = this.receiveNum>messageCount?messageCount:this.receiveNum; + final Message[] messages = folder.getMessages(start,end); + return messages; + } + return null; + } + + /** + * 获取邮件内容 + * @param part + * @return + * @throws MessagingException + * @throws IOException + */ + public void getMailContent(@NotNull Part part, StringBuilder content) throws MessagingException, IOException { + Multipart multipart = (Multipart) part.getContent(); + for(int i=0;i saveAttachment(@NotNull Part part) throws MessagingException, IOException { + List filePathList = Lists.newArrayList(); + Multipart multipart = (Multipart) part.getContent(); + for(int i=0;i g_energy; + /** + * centroid channel + */ + private List g_centroid_channel; + /** + * uncertainty (channels) + */ + private List g_uncertainty; + + private Integer g_record_count; + + /************************* b_Energy Block ******************/ + /** + * electron energy (keV) + */ + private List b_electron_energy; + /** + * decay mode descriptor: B for β-particle, C for conversion electron (CE) + */ + private List b_decay_mode; + /** + * maximum channel of β-particle distribution or centroid channel of CE (channels) + */ + private List b_channel; + /** + * uncertainty (channels) + */ + private List b_uncertainty; + + private Integer b_record_count; + + /************************* g_Resolution Block ******************/ + /** + * γ -energy (keV) + */ + private List g_r_energy; + /** + * FWHM (keV) + */ + private List g_r_FWHM; + /** + * uncertainty (keV) + */ + private List g_r_uncertainty; + + private Integer g_r_record_count; + + /************************* b_Resolution Block ******************/ + /** + * electron energy (keV) + */ + private List b_r_electron_energy; + /** + * FWHM (keV) + */ + private List b_r_FWHM; + /** + * uncertainty (keV) + */ + private List b_r_uncertainty; + + private Integer b_r_record_count; + + /************************* g_Efficiency Block ******************/ + /** + * γ -energy (keV) + */ + private List g_e_energy; + /** + * efficiency (counts in peak/photon emitted) + */ + private List g_e_efficiency; + /** + * uncertainty (counts in peak/photon emitted) + */ + private List g_e_uncertainty; + + private Integer g_e_record_count; + + /************************* ROI_Limits Block ******************/ + /** + * ROI number + */ + private List ROI_number; + /** + * 2-D ROI β-range start, x 1 (keV) + */ + private List POI_B_x1; + /** + * 2-D ROI β-range stop, x 2 (keV) + */ + private List POI_B_x2; + /** + * 2-D ROI γ-range start, y 1 (keV) + */ + private List POI_G_y1; + /** + * 2-D ROI γ-range stop, y 2 (keV) + */ + private List POI_G_y2; + + private Integer roi_record_count; + + /************************* b-gEfficiency Block ******************/ + /** + * nuclide name + */ + private List bg_nuclide_name; + /** + * ROI number + */ + private List bg_ROI_number; + /** + * β-γ coincidence efficiency (counts in ROI/β-γ pair emitted) + */ + private List bg_efficiency; + /** + * uncertainty (counts in ROI/β-γ pair emitted) + */ + private List bg_uncertainty; + + private Integer bg_record_count; + + /************************* Ratios Block ******************/ + /** + * ratio identifier + */ + private List ratio_id; + /** + * ROI number for the higher γ -energy ROI + */ + private List ROI_num_highter_G_energy_ROI; + /** + * ROI number for the lower γ -energy ROI + */ + private List ROI_num_lower_G_energy_ROI; + /** + * Q_DECLARE_METATYPE(RMSSOHData::HeaderBlock)count ratio(counts in higher γ -energy ROI/counts in lower γ -energy ROI) + */ + private List count_ratio; + /** + * count ratio uncertainty (percent) + */ + private List count_ratio_uncertainty; + + private Integer ratio_record_count; + + /************************* g_Spectrum Block ******************/ + /** + * number of γ channels + */ + private Long num_g_channel; + /** + * γ-energy span (keV) + */ + private Long g_energy_span; + /** + * begin of channels + */ + private Long g_begin_channel; + /** + * count at channel + */ + private List g_counts; + + /************************* b_Spectrum Block ******************/ + /** + * number of β -channels + */ + private Long num_b_channel; + /** + * β -energy span (keV) + */ + private Long b_energy_span; + /** + * begin of channels + */ + private Long b_begin_channel; + /** + * counts at channels + */ + private List b_counts; + + /************************* Histogram Block ******************/ + /** + * β-channels + */ + private Long b_channels; + /** + * γ-channels + */ + private Long g_channels; + /** + * β-energy span + */ + private Long b_h_energy_span; + /** + * γ-energy span + */ + private Long g_h_energy_span; + /** + * counts at channels + */ + private List h_counts; +} diff --git a/jeecg-module-auto-process/pom.xml b/jeecg-module-auto-process/pom.xml new file mode 100644 index 00000000..7374c1ed --- /dev/null +++ b/jeecg-module-auto-process/pom.xml @@ -0,0 +1,30 @@ + + + + jeecg-boot-parent + org.jeecgframework.boot + 3.5.1 + + 4.0.0 + + jeecg-module-auto-process + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + org.springframework.boot + spring-boot-configuration-processor + true + + + \ No newline at end of file diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java new file mode 100644 index 00000000..ff06c53d --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java @@ -0,0 +1,251 @@ +package org.jeecg.modules; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.constant.EmailConstant; +import org.jeecg.common.email.EmailServiceManager; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.email.EmailParsingActuator; +import org.jeecg.modules.emuns.SysMailEnableType; +import org.jeecg.modules.email.EmailProperties; +import org.jeecg.modules.properties.SpectrumPathProperties; +import org.jeecg.modules.properties.TaskProperties; +import org.jeecg.modules.service.ISysMailService; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +/** + * 自动处理程序管理器 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoProcessManager{ + + private final ISysMailService mailService; + private final TaskProperties taskProperties; + private final RedisUtil redisUtil; + private final SpectrumPathProperties spectrumPathProperties; + + /** + * 邮件Map数据锁 + */ + private final Object lock = new Object(); + /** + * 以邮件Id为key,邮件信息为value + */ + private Map emailMap = new HashMap<>(); + + /** + * 以邮件id为key,以邮件执行线程为value + */ + private Map emailExecThreadMap = new HashMap<>(); + + /** + * 启动自动处理 + */ + public void start() { + //邮件数据监测线程 + final MailDataMonitor mailDataMonitor = new MailDataMonitor(); + mailDataMonitor.setName("mail-data-monitor"); + mailDataMonitor.start(); + //邮件服务监测线程 + final MailServerMonitor monitorThread = new MailServerMonitor(); + monitorThread.setName("mail-server-monitor"); + monitorThread.start(); + //邮件执行线程管理 + final MailExecManager autoProcessThread = new MailExecManager(); + autoProcessThread.setName("mail-exec-thread-manage"); + autoProcessThread.start(); + } + + /** + * 自动处理线程 + */ + private class MailExecManager extends Thread{ + + @Override + public void run() { + for(;;){ + long start = System.currentTimeMillis(); + if(!CollectionUtils.isEmpty(emailMap)){ + Iterator iterator = emailMap.values().iterator(); + while(iterator.hasNext()){ + EmailProperties next = iterator.next(); + if(next.isDelFlag()){ + if(emailExecThreadMap.containsKey(next.getId())){ + Thread thread = emailExecThreadMap.get(next.getId()); + thread.interrupt(); + emailExecThreadMap.remove(next.getId()); + } + iterator.remove(); + } + if(next.isNewEmailFlag()){ + EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); + emailParsingActuator.init(taskProperties,next); + emailParsingActuator.setName(next.getUsername()+"-email-monitor"); + emailParsingActuator.start(); + //把邮件监测执行线程加入管理队列 + emailExecThreadMap.put(next.getId(),emailParsingActuator); + //新邮件监测监测线程已启动则修改新邮件标记为false + next.setNewEmailFlag(false); + } + } + } + long end = System.currentTimeMillis(); + long sleepTime = taskProperties.getMonitoringMailDataCycle() - (end-start); + //如果sleepTime > 0 需要睡眠到指定时间,否则继续下次获取邮件 + if(sleepTime > 0){ + try { + //如果本次 + TimeUnit.MILLISECONDS.sleep(sleepTime); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + + /** + * 邮箱通信监测线程,具体功能如下: + * 监测邮件服务通讯是否正常,把各邮箱通信状态写入redis + */ + private class MailServerMonitor extends Thread{ + + @Override + public void run() { + for(;;){ + long start = System.currentTimeMillis(); + try{ + if(!CollectionUtils.isEmpty(emailMap)){ + emailMap.values().forEach(email->{ + if(!email.isDelFlag()){ + final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); + emailServiceManager.init(email); + boolean testFlag = emailServiceManager.testConnectEmailServer(); + redisUtil.hset(EmailConstant.EMAIL_STATUS_PREFIX,email.getId(),testFlag); + if(testFlag && !emailExecThreadMap.containsKey(email.getId())){ + email.setNewEmailFlag(true); + } + if(!testFlag){ + //如果邮件服务通信测试失败则添加删除标记 + email.setDelFlag(true); + } + } + }); + } + //捕获异常不处理保障线程异常不退出 + }catch (Exception e){ + e.printStackTrace(); + } + long end = System.currentTimeMillis(); + long sleepTime = taskProperties.getMonitoringMailCommStatusCycle() - (end-start); + //如果sleepTime > 0 需要睡眠到指定时间,否则继续下次监测 + if(sleepTime > 0){ + try { + TimeUnit.MILLISECONDS.sleep(sleepTime); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + + /** + * 邮箱数据监测线程,具体功能如下: + * 1.监测邮件数据表是否有变化 + * 1.1有新邮件记录并且已启用则启动新线程执行 + * 1.2有邮件记录被删除并且此邮箱信息已有线程执行则停止执行 + */ + private class MailDataMonitor extends Thread{ + + @Override + public void run() { + for (;;){ + long start = System.currentTimeMillis(); + try{ + final List receiveMails = mailService.findReceiveMails(); + if(!CollectionUtils.isEmpty(receiveMails)){ + //如果库里已有数据原来已开启使用并且监测Map中已存在,现在关闭使用则添加删除标记 + //如果本次查询数据监测Map中不存在,并且已开启使用的则加入监测Map + for(EmailProperties email : receiveMails){ + final boolean flag = emailMap.containsKey(email.getId()); + if(flag && email.getEnabled().equals(SysMailEnableType.NOT_ENABLE.getMailEnableType())){ + EmailProperties sourceEmail = emailMap.get(email.getId()); + sourceEmail.setDelFlag(true); + } + if(!flag && email.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ + email.setNewEmailFlag(true); + putSysEmailMap(email); + log.info("{}邮箱加入监测队列",email.getEmailServerAddress()); + } + } + //如果监测Map中存在的邮箱数据,在本次查询数据中不存在说明库里已删除,则添加删除标记 + emailMap.forEach((emailId,sourceEmail)->{ + final long result = receiveMails.stream().filter(email -> emailId.equals(email.getId())).count(); + if (result <= 0){ + sourceEmail.setDelFlag(true); + } + }); + } + //捕获异常不处理保障线程异常不退出 + }catch (Exception e){ + e.printStackTrace(); + } + long end = System.currentTimeMillis(); + long sleepTime = taskProperties.getMonitoringMailDataCycle() - (end-start); + //如果sleepTime > 0 需要睡眠到指定时间,否则继续下次监测 + if(sleepTime > 0){ + try { + TimeUnit.MILLISECONDS.sleep(sleepTime); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + } + + /** + * 新增邮箱数据 + * @param email + */ + private void putSysEmailMap(EmailProperties email){ + synchronized (this.lock){ + emailMap.put(email.getId(),email); + } + } + + /** + * 删除邮箱数据 + * @param emailId + */ + private void removeSysEmailMap(String emailId){ + synchronized (this.lock){ + if (emailMap.containsKey(emailId)){ + emailMap.remove(emailId); + } + } + } + + /** + * 删除邮箱数据 + * @param sysEmailIds + */ + private void removeSysEmailMap(List sysEmailIds){ + synchronized (this.lock){ + for(String sysEmailId : sysEmailIds){ + if (emailMap.containsKey(sysEmailId)){ + emailMap.remove(sysEmailId); + } + } + } + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/config/mybatis/CustomMetaObjectHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/config/mybatis/CustomMetaObjectHandler.java new file mode 100644 index 00000000..8954a958 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/config/mybatis/CustomMetaObjectHandler.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.config.mybatis; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * 自定义实体字段填充 + * @author 86187 + */ +@Component +public class CustomMetaObjectHandler implements MetaObjectHandler { + + + @Override + public void insertFill(MetaObject metaObject) { + this.strictInsertFill(metaObject,"createTime", LocalDateTime.class,LocalDateTime.now()); + } + + @Override + public void updateFill(MetaObject metaObject) { + + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailLogProperties.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailLogProperties.java new file mode 100644 index 00000000..98da3486 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailLogProperties.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.email; + +import lombok.Data; +import org.jeecg.modules.base.entity.SysEmailLog; + +import java.util.List; + +/** + * 邮件日志属性 + */ +@Data +public class EmailLogProperties extends SysEmailLog { + + /** + * 邮件附件本地存储路径 + */ + private List filePathList; +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailParsingActuator.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailParsingActuator.java new file mode 100644 index 00000000..21880970 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailParsingActuator.java @@ -0,0 +1,107 @@ +package org.jeecg.modules.email; + +import org.jeecg.common.email.EmailServiceManager; +import org.jeecg.common.email.emuns.MailContentType; +import org.jeecg.modules.properties.TaskProperties; +import org.jetbrains.annotations.NotNull; +import org.springframework.scheduling.concurrent.CustomizableThreadFactory; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.internet.MimeUtility; +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +/** + * 邮件解析执行器 + */ +public class EmailParsingActuator extends Thread{ + + private TaskProperties taskProperties; + private EmailProperties emailProperties; + private ThreadPoolExecutor poolExecutor; + + public void init(TaskProperties taskProperties, + EmailProperties emailProperties){ + this.taskProperties = taskProperties; + this.emailProperties = emailProperties; + //初始化线程池 + ThreadFactory threadFactory = new CustomizableThreadFactory("mail-parsing-"); + ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(taskProperties.getReceiveNum(),taskProperties.getReceiveNum()*2,5, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),threadFactory); + } + + @Override + public void run() { + for(;;){ + long start = System.currentTimeMillis(); + final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); + emailServiceManager.init(emailProperties,taskProperties.getReceiveNum(),taskProperties.getTemporaryStoragePath()); + try { + final Message[] messages = emailServiceManager.receiveMail(); + for(Message message : messages){ + final EmailLogProperties emailLogProperties = this.parseingMail(emailServiceManager,message); + //如果邮件没有附件、获取附件都不是PHD文件、也不是IMS2.0协议的文件,需把邮件删除 + +// emailServiceManager.removeMail(message); + } + }catch (MessagingException e) { + e.printStackTrace(); + }catch (IOException e) { + e.printStackTrace(); + }finally { + //关闭资源 + emailServiceManager.close(); + } + break; +// long end = System.currentTimeMillis(); +// long sleepTime = taskProperties.getMailThreadExecCycle() - (end-start); +// //如果sleepTime > 0 需要睡眠到指定时间,否则继续下次获取邮件 +// if(sleepTime > 0){ +// try { +// //如果本次 +// TimeUnit.MILLISECONDS.sleep(sleepTime); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// } + } + } + + /** + * 解析邮件 + * @param message + */ + public EmailLogProperties parseingMail(@NotNull EmailServiceManager emailServiceManager,@NotNull Message message) throws MessagingException, IOException { + //如果是带有附件的邮件 + if(message.getContentType().startsWith(MailContentType.MIXED.getContentType())){ + //封装邮件日志信息 + EmailLogProperties mailLog = new EmailLogProperties(); + mailLog.setEmailId(emailProperties.getId()); + mailLog.setSubject(MimeUtility.decodeText(message.getSubject())); + final StringBuilder content = new StringBuilder(); + emailServiceManager.getMailContent(message,content); + mailLog.setContext(content.toString()); + mailLog.setReceiveTime(message.getSentDate()); + final List filePathList = emailServiceManager.saveAttachment(message); + mailLog.setFilePathList(filePathList); + return mailLog; + }else{ + //如果此邮件不带有附件,则删除 + emailServiceManager.removeMail(message); + } + return null; + } + + //Sauna:β,Spalax:γ + private boolean checkMail(String filePath){ + File file = new File(filePath); + if(file.isFile()){ + + } + return true; + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailProperties.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailProperties.java new file mode 100644 index 00000000..14f20f05 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/email/EmailProperties.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.email; + +import lombok.Data; +import org.jeecg.modules.base.entity.SysEmail; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * 邮件属性 + * @author 86187 + */ +@Data +public class EmailProperties extends SysEmail { + + /** + * 是否是新邮件 + */ + private boolean newEmailFlag; + + /** + * 该邮件处理线程是否需要删除 + */ + private boolean delFlag; + +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/emuns/SysMailEnableType.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/emuns/SysMailEnableType.java new file mode 100644 index 00000000..a996288e --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/emuns/SysMailEnableType.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.emuns; + +/** + * 邮件类型 + */ +public enum SysMailEnableType { + + /** + * 未启用邮件 + */ + NOT_ENABLE(0), + /** + * 启用邮件 + */ + ENABLE(1); + + private Integer mailEnableType; + + SysMailEnableType(int mailEnableType) { + this.mailEnableType = mailEnableType; + } + + public Integer getMailEnableType(){ + return this.mailEnableType; + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/SysMailMapper.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/SysMailMapper.java new file mode 100644 index 00000000..0ca57666 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/SysMailMapper.java @@ -0,0 +1,10 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.base.entity.SysEmail; + +/** + * 邮件数据表Mapper + */ +public interface SysMailMapper extends BaseMapper { +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/SpectrumPathProperties.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/SpectrumPathProperties.java new file mode 100644 index 00000000..11794f5c --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/SpectrumPathProperties.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.Map; + +/** + * 能谱文件存储路径属性 + * @author 86187 + */ +@Data +@Component +@ConfigurationProperties(prefix = "file-system") +public class SpectrumPathProperties implements Serializable { + + /** + * 能谱文件存储根路径 + */ + private String rootPath; + + /** + * 能谱文件存储路径以能谱系统类型/能谱类型为key,以存储路径为value + */ + private Map filePathMap; +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/TaskProperties.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/TaskProperties.java new file mode 100644 index 00000000..f3d3b2db --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/properties/TaskProperties.java @@ -0,0 +1,42 @@ +package org.jeecg.modules.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +/** + * 邮件任务运行参数 + * @author 86187 + */ +@Data +@Component +@ConfigurationProperties(prefix = "task") +public class TaskProperties implements Serializable { + + /** + * 单次获取邮件数量 + */ + private Integer receiveNum; + + /** + * 监测数据库邮箱数据变化周期 + */ + private Long monitoringMailDataCycle; + + /** + * 监测邮箱通信状态周期 + */ + private Long monitoringMailCommStatusCycle; + + /** + * 获取邮箱邮件线程执行周期 + */ + private Long mailThreadExecCycle; + + /** + * 邮件附件临时存储路径 + */ + private String temporaryStoragePath; +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/ISysMailService.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/ISysMailService.java new file mode 100644 index 00000000..8e9549e3 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/ISysMailService.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.base.entity.SysEmail; +import org.jeecg.modules.email.EmailProperties; +import java.util.List; + +/** + * 邮箱数据服务 + */ +public interface ISysMailService extends IService { + + /** + * 查询接收邮箱数据 + * @return + */ + List findReceiveMails(); +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SysMailServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SysMailServiceImpl.java new file mode 100644 index 00000000..cc21366b --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SysMailServiceImpl.java @@ -0,0 +1,47 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; +import org.jeecg.common.email.emuns.SysMailType; +import org.jeecg.modules.base.entity.SysEmail; +import org.jeecg.modules.email.EmailProperties; +import org.jeecg.modules.emuns.SysMailEnableType; +import org.jeecg.modules.mapper.SysMailMapper; +import org.jeecg.modules.service.ISysMailService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.Collections; +import java.util.List; + +/** + * 邮箱数据服务实现 + */ +@Service +@DS("master") +public class SysMailServiceImpl extends ServiceImpl implements ISysMailService { + + /** + * 查询接收邮箱数据 + * @return + */ + @Override + public List findReceiveMails() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysEmail::getEmilType, SysMailType.RECEIVE_EMAIL.getEmailType()); + queryWrapper.eq(SysEmail::getEnabled, SysMailEnableType.ENABLE.getMailEnableType()); + List sysEmail = this.list(queryWrapper); + if(!CollectionUtils.isEmpty(sysEmail)){ + List emailPropertiesList = Lists.newArrayList(); + for (SysEmail email : sysEmail){ + EmailProperties mailProperties = new EmailProperties(); + BeanUtils.copyProperties(email,mailProperties); + emailPropertiesList.add(mailProperties); + } + return emailPropertiesList; + } + return Collections.emptyList(); + } +} diff --git a/jeecg-server-cloud/jeecg-auto-process-start/pom.xml b/jeecg-server-cloud/jeecg-auto-process-start/pom.xml new file mode 100644 index 00000000..bf367068 --- /dev/null +++ b/jeecg-server-cloud/jeecg-auto-process-start/pom.xml @@ -0,0 +1,42 @@ + + + + jeecg-server-cloud + org.jeecgframework.boot + 3.5.1 + + 4.0.0 + + jeecg-auto-process-start + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + org.jeecgframework.boot + jeecg-module-auto-process + 3.5.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java b/jeecg-server-cloud/jeecg-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java new file mode 100644 index 00000000..c6c9daa7 --- /dev/null +++ b/jeecg-server-cloud/jeecg-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java @@ -0,0 +1,54 @@ +package org.jeecg; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.AutoProcessManager; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * @author 86187 + */ +@Slf4j +@SpringBootApplication +@EnableFeignClients(basePackages = {"org.jeecg"}) +@EnableScheduling +@RequiredArgsConstructor +public class JeecgAutoProcessApplication extends SpringBootServletInitializer implements CommandLineRunner { + + private final AutoProcessManager autoProcessManager; + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(JeecgAutoProcessApplication.class); + } + + public static void main(String[] args) throws UnknownHostException { + ConfigurableApplicationContext application = SpringApplication.run(JeecgAutoProcessApplication.class, args); + Environment env = application.getEnvironment(); + String ip = InetAddress.getLocalHost().getHostAddress(); + String port = env.getProperty("server.port"); + String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path")); + log.info("\n----------------------------------------------------------\n\t" + + "Application Jeecg-Boot is running! Access URLs:\n\t" + + "Local: \t\thttp://localhost:" + port + path + "/doc.html\n" + + "External: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "----------------------------------------------------------"); + } + + @Override + public void run(String... args) throws Exception { + autoProcessManager.start(); + } +} \ No newline at end of file diff --git a/jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/application.yml b/jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/application.yml new file mode 100644 index 00000000..9eb26427 --- /dev/null +++ b/jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/application.yml @@ -0,0 +1,19 @@ +server: + port: 7004 + +spring: + application: + name: jeecg-auto-process + cloud: + nacos: + config: + server-addr: @config.server-addr@ + group: @config.group@ + namespace: @config.namespace@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:jeecg.yaml + - optional:nacos:jeecg-auto-process-@profile.name@.yaml + diff --git a/jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/logback-spring.xml b/jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..60d4c7df --- /dev/null +++ b/jeecg-server-cloud/jeecg-auto-process-start/src/main/resources/logback-spring.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.log + + 30 + 10MB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n + + + + + + + + ERROR + + + + %p%d%msg%M%F{32}%L + + + ${LOG_HOME}/error-log.html + + + + + + + + ${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/pom.xml b/jeecg-server-cloud/pom.xml index 47f9d6fe..137fef12 100644 --- a/jeecg-server-cloud/pom.xml +++ b/jeecg-server-cloud/pom.xml @@ -25,6 +25,7 @@ jeecg-web-statistics-start jeecg-log-manage-start jeecg-abnormal-alarm-start + jeecg-auto-process-start \ No newline at end of file diff --git a/pom.xml b/pom.xml index a07ff46a..3c9672c0 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,8 @@ jeecg-module-log-manage jeecg-module-station-operation jeecg-module-web-statistics - jeecg-module-abnormal-alarm + jeecg-module-abnormal-alarm + jeecg-module-auto-process @@ -187,12 +188,6 @@ jeecg-module-web-statistics ${jeecgboot.version} - - - org.jeecgframework.boot - jeecg-module-abnormal-alarm - ${jeecgboot.version} - org.jeecgframework.boot From 1c99371fd25fada4c2a2120c49c29e401110cd72 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Wed, 21 Jun 2023 11:18:58 +0800 Subject: [PATCH 59/64] =?UTF-8?q?fix:1.=E6=8F=90=E4=BA=A4=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E6=97=A5=E5=BF=97=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/base/entity/SysEmailLog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java index 5e448f9f..d297cda9 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmailLog.java @@ -46,7 +46,7 @@ public class SysEmailLog implements Serializable { @TableField(value = "receive_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime receiveTime; + private Date receiveTime; /** * 创建时间 From 4cbbe9e0f49cd09dd9214512e8c98e00eaf31b2b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Jun 2023 13:50:52 +0800 Subject: [PATCH 60/64] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2info=E6=8E=A5=E5=8F=A3=E7=BC=BA=E5=B0=91comme?= =?UTF-8?q?nt=E7=9B=B8=E5=85=B3=E6=9F=A5=E8=AF=A2=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E6=96=B0=E5=A2=9E=E6=A0=B7=E5=93=81?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=AE=9E=E4=BD=93=E7=B1=BB=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=9F=A5=E8=AF=A2energy=E7=9B=B8=E5=85=B3=E6=95=B0?= =?UTF-8?q?=E6=8D=AEcaltype=E7=A9=BA=E6=A0=BC=E5=AF=BC=E8=87=B4=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=9F=A5=E8=AF=A2resolution=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=95=B0=E6=8D=AEcaltype=E7=A9=BA=E6=A0=BC=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2efficiency=E4=B8=8Eresolution=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=B1=BB=E5=B1=82=E6=96=B9=E6=B3=95=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E8=B0=83=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/GardsSampleDescription.java | 19 ++++ .../mapper/GardsSampleDescriptionMapper.java | 7 ++ .../impl/GardsSampleDataServiceImpl.java | 93 +++++++++++-------- 3 files changed, 79 insertions(+), 40 deletions(-) create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDescriptionMapper.java diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java new file mode 100644 index 00000000..6bed25ca --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName(value = "gards_sample_description") +public class GardsSampleDescription implements Serializable { + + @TableId(value = "SAMPLE_ID") + private Integer sampleId; + + @TableId(value = "DESCRIPTION") + private String description; + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDescriptionMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDescriptionMapper.java new file mode 100644 index 00000000..e08f418a --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDescriptionMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.entity.GardsSampleDescription; + +public interface GardsSampleDescriptionMapper extends BaseMapper { +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java index 500e3f80..5f38a899 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -13,9 +13,11 @@ import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.entity.GardsCalibrationPairsOrig; import org.jeecg.modules.entity.GardsSampleAux; import org.jeecg.modules.base.entity.GardsSampleData; +import org.jeecg.modules.entity.GardsSampleDescription; import org.jeecg.modules.mapper.GardsCalibrationPairsOrigMapper; import org.jeecg.modules.mapper.GardsSampleAuxMapper; import org.jeecg.modules.mapper.GardsSampleDataMapper; +import org.jeecg.modules.mapper.GardsSampleDescriptionMapper; import org.jeecg.modules.service.IGardsSampleDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; import java.util.*; +import java.util.stream.Collectors; @Service("gardsSampleDataService") @DS("ori") @@ -35,6 +38,8 @@ public class GardsSampleDataServiceImpl extends ServiceImpl sampleAuxQueryWrapper = new LambdaQueryWrapper<>(); sampleAuxQueryWrapper.eq(GardsSampleAux::getSampleId, sampleId); GardsSampleAux gardsSampleAux = gardsSampleAuxMapper.selectOne(sampleAuxQueryWrapper); - if (Objects.nonNull(gardsSampleData) && Objects.nonNull(gardsSampleAux)){ + //查询comment数据 + LambdaQueryWrapper descriptionQueryWrapper = new LambdaQueryWrapper<>(); + descriptionQueryWrapper.eq(GardsSampleDescription::getSampleId, sampleId); + GardsSampleDescription gardsSampleDescription = gardsSampleDescriptionMapper.selectOne(descriptionQueryWrapper); + if (Objects.nonNull(gardsSampleData)){ //封装数据内容 map.put("Site Code", gardsSampleData.getStationName()); map.put("Detector Code",gardsSampleData.getSiteDetCode()); map.put("System Type",gardsSampleData.getSampleType()); map.put("Sample Geometry",gardsSampleData.getGeometry()); map.put("Spectrum Qualifier",gardsSampleData.getSpectralQualifie()); - map.put("Sample Reference Identification", gardsSampleAux.getSampleRefId()); - map.put("Measurement Identification", gardsSampleAux.getMeasurementId()); - map.put("Detector Background Measurement Identification", gardsSampleAux.getBkgdMeasurementId()); - map.put("Gas Background Measurement Identification", gardsSampleAux.getGasBkgdMeasurementId()); map.put("Transmit Time", gardsSampleData.getTransmitDtg()); map.put("Acquisition Time", gardsSampleData.getAcquisitionStart()); map.put("Acquisition Real Time", gardsSampleData.getAcquisitionRealSec()); map.put("Acquisition Live Time", gardsSampleData.getAcquisitionLiveSec()); + } + if (Objects.nonNull(gardsSampleAux)){ + map.put("Sample Reference Identification", gardsSampleAux.getSampleRefId()); + map.put("Measurement Identification", gardsSampleAux.getMeasurementId()); + map.put("Detector Background Measurement Identification", gardsSampleAux.getBkgdMeasurementId()); + map.put("Gas Background Measurement Identification", gardsSampleAux.getGasBkgdMeasurementId()); map.put("Date of Last Calibration", gardsSampleAux.getCalibrationDtg()); } + if (Objects.nonNull(gardsSampleDescription)){ + map.put("COMMENT", gardsSampleDescription.getDescription()); + } result.setSuccess(true); result.setResult(map); return result; @@ -146,8 +160,8 @@ public class GardsSampleDataServiceImpl extends ServiceImpl uncertaintyList = new LinkedList<>(); LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); - calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "energy"); List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); + gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigs.stream().filter(item-> item.getCaltype().trim().equals("energy")).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { // Xvalue 对应 centroid channel @@ -168,39 +182,6 @@ public class GardsSampleDataServiceImpl extends ServiceImpl> map = new HashMap<>(); - //封装存储 energy - List energyList = new LinkedList<>(); - //封装存储 efficiency - List efficiencyList = new LinkedList<>(); - //封装存储 Uncertainty - List uncertaintyList = new LinkedList<>(); - LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); - calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); - calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "efficiency"); - List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); - if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ - for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { - // Xvalue 对应 energy - energyList.add(orig.getXvalue()); - // YValue 对应 efficiency - efficiencyList.add(orig.getYvalue()); - // UncyValue 对应 Uncertainty - uncertaintyList.add(orig.getUncyvalue()); - } - } - map.put("energy", energyList); - map.put("efficiency", efficiencyList); - map.put("Uncertainty", uncertaintyList); - result.setSuccess(true); - result.setResult(map); - return result; - } - - @Override - public Result findParticulateEfficiency(Integer sampleId) { Result result = new Result(); //map 封装三个数组 Map> map = new HashMap<>(); @@ -212,8 +193,8 @@ public class GardsSampleDataServiceImpl extends ServiceImpl uncertaintyList = new LinkedList<>(); LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); - calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "Resolution"); List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); + gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigs.stream().filter(item-> item.getCaltype().trim().equals("Resolution")).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { // Xvalue 对应 energy @@ -232,6 +213,38 @@ public class GardsSampleDataServiceImpl extends ServiceImpl> map = new HashMap<>(); + //封装存储 energy + List energyList = new LinkedList<>(); + //封装存储 efficiency + List efficiencyList = new LinkedList<>(); + //封装存储 Uncertainty + List uncertaintyList = new LinkedList<>(); + LambdaQueryWrapper calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>(); + calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId); + List gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper); + gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigs.stream().filter(item->item.getCaltype().trim().equals("efficiency")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){ + for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) { + // Xvalue 对应 energy + energyList.add(orig.getXvalue()); + // YValue 对应 efficiency + efficiencyList.add(orig.getYvalue()); + // UncyValue 对应 Uncertainty + uncertaintyList.add(orig.getUncyvalue()); + } + } + map.put("energy", energyList); + map.put("efficiency", efficiencyList); + map.put("Uncertainty", uncertaintyList); + result.setSuccess(true); + result.setResult(map); + return result; + } @Transactional(propagation = Propagation.REQUIRES_NEW,rollbackFor = Exception.class) public Result findPageBySampleIds(QueryRequest queryRequest, Integer[] stationIds, Date startTime, Date endTime, List sampleIds){ From 66640852caf537801bbcc0f37291548bcafbf223 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Jun 2023 13:53:49 +0800 Subject: [PATCH 61/64] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2resol?= =?UTF-8?q?ution=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C=E5=88=97=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=A6=96=E5=AD=97=E6=AF=8D=E5=A4=A7=E5=86=99=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2efficiency=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=BB=93=E6=9E=9C=E5=88=97=E5=AD=97=E6=AE=B5=E9=A6=96?= =?UTF-8?q?=E5=AD=97=E6=AF=8D=E5=A4=A7=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/GardsSampleDataServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java index 5f38a899..6076eb51 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -205,7 +205,7 @@ public class GardsSampleDataServiceImpl extends ServiceImpl Date: Wed, 21 Jun 2023 14:48:47 +0800 Subject: [PATCH 62/64] =?UTF-8?q?fix=EF=BC=9ADate=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-abnormal-alarm/pom.xml | 6 +++++ .../controller/AlarmLogController.java | 25 +++++++++++++++++++ .../controller/SysEmailLogController.java | 25 ++++++++++++++++--- .../jeecg-abnormal-alarm-start/pom.xml | 5 ---- 4 files changed, 53 insertions(+), 8 deletions(-) diff --git a/jeecg-module-abnormal-alarm/pom.xml b/jeecg-module-abnormal-alarm/pom.xml index b15009c7..738e3429 100644 --- a/jeecg-module-abnormal-alarm/pom.xml +++ b/jeecg-module-abnormal-alarm/pom.xml @@ -16,6 +16,12 @@ + + + org.jeecgframework.boot + jeecg-system-cloud-api + + org.jeecgframework.boot jeecg-boot-base-core diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index e5f84f53..bc5d7bee 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -2,19 +2,29 @@ package org.jeecg.modules.controller; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; +import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.enums.MessageTypeEnum; +import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.modules.entity.AlarmLog; import org.jeecg.modules.service.IAlarmLogService; import org.jeecg.modules.vo.AlarmVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; +import java.util.Map; + @RestController @RequestMapping("alarmLog") public class AlarmLogController { @Autowired private IAlarmLogService alarmLogService; + + @Autowired + private ISysBaseAPI sysBaseAPI; + @ApiOperation("报警日志量总览-柱状图") @PostMapping("viewAll") public Result viewAll(@RequestBody AlarmVo alarmVo){ return alarmLogService.viewAll(alarmVo); } @@ -57,4 +67,19 @@ public class AlarmLogController { public Result deleteById(String id){ return alarmLogService.deleteById(id); } + + @GetMapping("test") + public void test(){ + MessageDTO message = new MessageDTO(); + message.setFromUser("admin"); + message.setToUser("nieziyan"); + message.setTitle("测试消息"); + message.setType(MessageTypeEnum.XT.getType()); + message.setTemplateCode("SYS001"); + Map data = new HashMap<>(); + data.put("userName","聂子炎"); + data.put("taskName","请假申请"); + message.setData(data); + sysBaseAPI.sendTemplateMessage(message); + } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java index f12573c4..8809fb5b 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailLogController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -100,9 +101,18 @@ public class SysEmailLogController { String todayEnd = today + " 23:59:59"; wrapper.between(SysEmailLog::getReceiveTime,todayStart,todayEnd); List emailLogs = sysEmailLogService.list(wrapper); - List allTime = emailLogs.stream() + // 将Date转换为LocalDateTime + List allDate = emailLogs.stream() .map(SysEmailLog::getReceiveTime) .collect(Collectors.toList()); + List allTime = allDate.stream() + .map(item -> { + ZoneId zoneId = ZoneId.systemDefault(); + return item.toInstant() + .atZone(zoneId) + .toLocalDateTime(); + }) + .collect(Collectors.toList()); // 按照小时分组 Map statistic = new TreeMap<>(); Map> groupTime = allTime.stream() @@ -136,8 +146,17 @@ public class SysEmailLogController { Collection yData = new ArrayList<>(); Map statistic = new TreeMap<>(); Map result = new HashMap<>(); - List allDate = sysEmailLogService.listObjs(wrapper, + List allDate = sysEmailLogService.listObjs(wrapper, emailLog -> ((SysEmailLog) emailLog).getReceiveTime()); + // 将Date转换为LocalDateTime + List allTime = allDate.stream() + .map(item -> { + ZoneId zoneId = ZoneId.systemDefault(); + return item.toInstant() + .atZone(zoneId) + .toLocalDateTime(); + }) + .collect(Collectors.toList()); if (CollUtil.isEmpty(allDate)){ result.put("xData",xData); result.put("yData",yData); @@ -147,7 +166,7 @@ public class SysEmailLogController { /* 支持跨年跨月选择 */ // 通过年月日进行分组 例:2023-06-06 DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE; - Map> group = allDate.stream() + Map> group = allTime.stream() .collect(Collectors.groupingBy(datetime -> datetime.format(formatter))); // 列举出startDate-endDate中所有日期(包括闰年) diff --git a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml index fd53e604..7e5f8266 100644 --- a/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml +++ b/jeecg-server-cloud/jeecg-abnormal-alarm-start/pom.xml @@ -12,11 +12,6 @@ jeecg-abnormal-alarm-start - - - org.jeecgframework.boot - jeecg-system-cloud-api - org.jeecgframework.boot From 12d586c7c392f0efbd764ae591cf72cab382e9fa Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 26 Jun 2023 09:01:47 +0800 Subject: [PATCH 63/64] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=AD=E6=96=B0=E5=A2=9E=E5=8F=B0=E7=AB=99=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=EF=BC=8C=E5=8F=B0=E7=AB=99=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=9C=80=E5=B0=8Fid=EF=BC=8C=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E7=B1=BB=E5=9E=8B=E5=88=A4=E6=96=AD=E6=9C=80=E5=A4=A7?= =?UTF-8?q?id=20=E6=96=B0=E5=A2=9E=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E5=8F=B0=E7=AB=99=E7=B1=BB=E5=9E=8B=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=95=B0=E7=BB=84=E4=BF=A1=E6=81=AF=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=EF=BC=8C?= =?UTF-8?q?=E6=A0=B8=E8=AE=BE=E6=96=BD=E7=B1=BB=E5=9E=8B=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=EF=BC=8C=E6=A0=B8?= =?UTF-8?q?=E8=AE=BE=E6=96=BD=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=A0=B9=E6=8D=AE=E5=8F=B0=E7=AB=99=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/StationTypeUtil.java | 37 ++++++++++++++----- .../StationOperationController.java | 11 +++++- .../org/jeecg/modules/entity/StationType.java | 24 ++++++++++++ .../modules/entity/SysUserFocusStation.java | 6 +++ .../service/IStationOperationService.java | 8 +++- .../impl/StationOperationServiceImpl.java | 22 ++++++++--- .../impl/SysUserFocusStationServiceImpl.java | 7 +++- 7 files changed, 96 insertions(+), 19 deletions(-) create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationType.java diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java index a4428678..9ac4a4b2 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java @@ -1,17 +1,36 @@ package org.jeecg.common; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.modules.entity.StationType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.stream.Collectors; + +@Component 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"; + @Autowired + private StationType stationType; + + public List findAllStationType(){ + List stationTypeList = stationType.getTypes(); + List stationTypes = stationTypeList.stream().map(StationType::getName).collect(Collectors.toList()); + return stationTypes; + } + + public String getStationType(Integer stationId){ + String type = ""; + List stationTypeList = stationType.getTypes(); + for (StationType stationType:stationTypeList) { + if (StringUtils.isNotBlank(stationType.getMinId()) && StringUtils.isNotBlank(stationType.getMaxId())){ + if (stationId>Integer.valueOf(stationType.getMinId()) && stationId<=Integer.valueOf(stationType.getMaxId())){ + type = stationType.getName(); + } + } } - return stationType; + return type; } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index 0fa899dc..aa6d7b1a 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -24,10 +24,17 @@ public class StationOperationController { @Autowired private IStationOperationService stationOperationService; + @GetMapping("findStationType") + @ApiOperation(value = "查询台站,核设施类型", notes = "查询台站,核设施类型") + public List findStationType(){ + List result = stationOperationService.findStationType(); + return result; + } + @GetMapping("findList") @ApiOperation(value = "查询所有台站,核设施信息", notes = "查询所有台站,核设施信息") - public List findList(String status){ - List result = stationOperationService.findList(status); + public List findList(String status, String stationType){ + List result = stationOperationService.findList(status, stationType); return result; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationType.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationType.java new file mode 100644 index 00000000..87b50d82 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationType.java @@ -0,0 +1,24 @@ +package org.jeecg.modules.entity; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Data +@Component +@ConfigurationProperties(prefix = "station") +public class StationType implements Serializable { + + private String name; + + private String minId; + + private String maxId; + + private List types = new ArrayList<>(); + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java index 2bc4d491..5b012fa3 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -86,4 +86,10 @@ public class SysUserFocusStation implements Serializable { @TableField(exist = false) private String status; + /** + * 台站编码 + */ + @TableField(exist = false) + private String stationCode; + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index c6043d52..2d508031 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -11,12 +11,18 @@ import java.util.List; public interface IStationOperationService extends IService { + /** + * 查询台站,核设施类型 + * @return + */ + List findStationType(); + /** * 查询台站,核设施信息 * @param status * @return */ - List findList(String status); + List findList(String status, String stationType); /** * 查看台站,核设施详情信息 diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 6746a9c8..08c10a6e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -47,11 +47,20 @@ public class StationOperationServiceImpl extends ServiceImpl findList(String status) { + public List findStationType() { + List allStationType = stationTypeUtil.findAllStationType(); + allStationType.add("Nuclear Facility"); + return allStationType; + } + + @Override + public List findList(String status, String stationType) { //声明结果集合 List result = new LinkedList<>(); //查询全部台站信息 @@ -65,8 +74,7 @@ public class StationOperationServiceImpl extends ServiceImpl StringUtils.isNotBlank(item.getStatus())&&item.getStatus().equalsIgnoreCase(status)).collect(Collectors.toList()); + result = result.stream().filter(item-> StringUtils.isNotBlank(item.getStatus()) && item.getStatus().equalsIgnoreCase(status)).collect(Collectors.toList()); + } + //如果类型不为空 + if (StringUtils.isNotBlank(stationType)){ + result = result.stream().filter(item-> StringUtils.isNotBlank(item.getStationType()) && item.getStationType().equalsIgnoreCase(stationType)).collect(Collectors.toList()); } return result; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java index 7a48156e..0327a8e5 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -41,6 +41,8 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl findList() { @@ -52,8 +54,9 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl Date: Mon, 26 Jun 2023 18:32:50 +0800 Subject: [PATCH 64/64] =?UTF-8?q?tableId=E5=AF=BC=E8=87=B4=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=90=AF=E5=8A=A8=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/entity/GardsSampleDescription.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java index 6bed25ca..d23e6873 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java @@ -1,5 +1,6 @@ package org.jeecg.modules.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -10,10 +11,10 @@ import java.io.Serializable; @TableName(value = "gards_sample_description") public class GardsSampleDescription implements Serializable { - @TableId(value = "SAMPLE_ID") + @TableField(value = "SAMPLE_ID") private Integer sampleId; - @TableId(value = "DESCRIPTION") + @TableField(value = "DESCRIPTION") private String description; }