diff --git a/pom.xml b/pom.xml
index 2d30e69..3b39444 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,19 +49,6 @@
org.apache.maven.plugins
maven-dependency-plugin
-
-
- copy-lib
-
- copy-dependencies
-
-
- false
- false
- runtime
-
-
-
diff --git a/src/main/java/com/gunshi/project/xyt/Main.java b/src/main/java/com/gunshi/project/xyt/Main.java
index 0727ee8..2b971ed 100644
--- a/src/main/java/com/gunshi/project/xyt/Main.java
+++ b/src/main/java/com/gunshi/project/xyt/Main.java
@@ -6,12 +6,6 @@ import io.swagger.v3.oas.annotations.servers.Server;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.servlet.ServletComponentScan;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 类描述
diff --git a/src/main/java/com/gunshi/project/xyt/controller/BzProtocolInfoController.java b/src/main/java/com/gunshi/project/xyt/controller/BzProtocolInfoController.java
new file mode 100644
index 0000000..df762e5
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/controller/BzProtocolInfoController.java
@@ -0,0 +1,68 @@
+package com.gunshi.project.xyt.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.core.result.R;
+import com.gunshi.project.xyt.model.BzProtocolInfo;
+import com.gunshi.project.xyt.model.BzProtocolInfoAutoDao;
+import com.gunshi.project.xyt.service.ProtocolInfoService;
+import com.gunshi.project.xyt.so.BzProtocolInfoSo;
+import com.gunshi.project.xyt.validate.markers.Insert;
+import com.gunshi.project.xyt.validate.markers.Update;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ * 协议信息控制器接口类
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@RestController
+@RequestMapping("/protocolInfo")
+@Tag(name = "系统管理-统一接收-协议管理")
+public class BzProtocolInfoController {
+ @Autowired
+ private BzProtocolInfoAutoDao dao;
+
+ @Autowired
+ private ProtocolInfoService service;
+
+ @Operation(summary = "新增协议信息")
+ @PostMapping("/save")
+ public R save(@Validated({Insert.class}) @RequestBody BzProtocolInfo entity) {
+ // todo 无论是数据库设置默认值为GETDATE()还是使用注解fill = FieldFill.INSERT都不能自动插入当前时间
+ entity.setCreateTm(new Date());
+ entity.setEnable(1);
+ return R.ok(dao.save(entity));
+ }
+
+ @Operation(summary = "更新协议信息")
+ @PostMapping("/update")
+ public R update(@Validated({Update.class}) @RequestBody BzProtocolInfo entity) {
+ return R.ok(dao.updateById(entity));
+ }
+
+ @Operation(summary = "删除协议信息")
+ @GetMapping("/delete/{id}")
+ public R delete(@PathVariable String id) {
+ return R.ok(dao.removeById(id));
+ }
+
+ @Operation(summary = "按id查询接口")
+ @GetMapping("/get/{id}")
+ public R getById(@PathVariable("id") String id) {
+ return R.ok(dao.getById(id));
+ }
+
+ @Operation(summary = "分页查询接口")
+ @PostMapping("/page")
+ public R> page(@Validated @RequestBody BzProtocolInfoSo so) {
+ return R.ok(service.page(so));
+ }
+}
diff --git a/src/main/java/com/gunshi/project/xyt/controller/BzServiceResourceController.java b/src/main/java/com/gunshi/project/xyt/controller/BzServiceResourceController.java
new file mode 100644
index 0000000..58074a9
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/controller/BzServiceResourceController.java
@@ -0,0 +1,138 @@
+package com.gunshi.project.xyt.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.core.result.R;
+import com.gunshi.project.xyt.model.BzServiceResource;
+import com.gunshi.project.xyt.model.BzServiceResourceAutoDao;
+import com.gunshi.project.xyt.model.BzServiceResourceType;
+import com.gunshi.project.xyt.model.BzServiceResourceTypeAutoDao;
+import com.gunshi.project.xyt.service.BzServiceResourceMonitorRService;
+import com.gunshi.project.xyt.so.BzServiceResourceSo;
+import com.gunshi.project.xyt.so.BzServiceResourceTypeSo;
+import com.gunshi.project.xyt.validate.markers.Insert;
+import com.gunshi.project.xyt.validate.markers.QueryPage;
+import com.gunshi.project.xyt.validate.markers.QueryTimeRange;
+import com.gunshi.project.xyt.validate.markers.Update;
+import com.gunshi.project.xyt.vo.BzServiceResourceMonitorVo;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ * 服务资源及监控控制器接口类
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@RestController
+@RequestMapping("/serviceResource")
+@Tag(name = "系统管理-数据共享服务-服务资源及监控")
+public class BzServiceResourceController {
+
+ @Autowired
+ private BzServiceResourceAutoDao serviceResourceDao;
+
+ @Autowired
+ private BzServiceResourceMonitorRService serviceMonitorService;
+
+ @Autowired
+ private BzServiceResourceTypeAutoDao serviceTypeDao;
+
+ @Operation(summary = "新增服务资源")
+ @PostMapping("/save")
+ public R save(@Validated(Insert.class) @RequestBody BzServiceResource entity) {
+ entity.setId(IdWorker.getIdStr());
+ entity.setRegisterDate(new Date());
+ entity.setEnable(1);
+ return R.ok(serviceResourceDao.save(entity));
+ }
+
+ @Operation(summary = "更新服务资源")
+ @PostMapping("/update")
+ public R update(@Validated(Update.class) @RequestBody BzServiceResource entity) {
+ BzServiceResource byId = serviceResourceDao.getById(entity.getId());
+ if (byId == null) {
+ return R.error(400, "数据不存在", false);
+ }
+
+ entity.setRegisterDate(byId.getRegisterDate());
+ return R.ok(serviceResourceDao.updateById(entity));
+ }
+
+ @Operation(summary = "删除服务资源")
+ @GetMapping("/delete/{id}")
+ public R delete(@PathVariable("id") String id) {
+ return R.ok(serviceMonitorService.removeById(id));
+ }
+
+ @Operation(summary = "分页查询服务资源")
+ @PostMapping("/page")
+ public R> page(
+ @Validated({QueryPage.class, QueryTimeRange.class}) @RequestBody BzServiceResourceSo so
+ ) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotEmpty(so.getName())) {
+ query.like(BzServiceResource::getName, so.getName());
+ }
+
+ query.le(BzServiceResource::getRegisterDate, so.getTimeSo().getEnd());
+ query.ge(BzServiceResource::getRegisterDate, so.getTimeSo().getStart());
+ query.orderByDesc(BzServiceResource::getRegisterDate);
+
+ Page page = serviceResourceDao.page(so.getPageSo().toPage(), query);
+ return R.ok(page);
+ }
+
+ @Operation(summary = "分页查询服务资源监控")
+ @PostMapping("/monitor/page")
+ public R> pageMonitorR(
+ @Validated({QueryPage.class, QueryTimeRange.class}) @RequestBody BzServiceResourceSo so
+ ) {
+ Page page = serviceMonitorService.page(so.getPageSo().toPage(), so);
+ return R.ok(page);
+ }
+
+ @Operation(summary = "新增服务资源类型")
+ @PostMapping("/type/save")
+ public R saveType(@Validated(Insert.class) @RequestBody BzServiceResourceType entity) {
+ entity.setId(IdWorker.getIdStr());
+ return R.ok(serviceTypeDao.save(entity));
+ }
+
+ @Operation(summary = "更新服务资源类型")
+ @PostMapping("/type/update")
+ public R updateType(@Validated(Update.class) @RequestBody BzServiceResourceType entity) {
+ return R.ok(serviceTypeDao.updateById(entity));
+ }
+
+ @Operation(summary = "删除服务资源类型")
+ @GetMapping("/type/delete/{id}")
+ public R deleteType(@PathVariable("id") String id) {
+ return R.ok(serviceTypeDao.removeById(id));
+ }
+
+ @Operation(summary = "分页查询服务资源类型")
+ @PostMapping("/type/page")
+ public R> pageType(
+ @Validated({QueryPage.class}) @RequestBody BzServiceResourceTypeSo so
+ ) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotEmpty(so.getName())) {
+ query.like(BzServiceResourceType::getName, so.getName());
+ }
+ if (StringUtils.isNotEmpty(so.getType())) {
+ query.like(BzServiceResourceType::getType, so.getType());
+ }
+
+ Page page = serviceTypeDao.page(so.getPageSo().toPage(), query);
+ return R.ok(page);
+ }
+}
diff --git a/src/main/java/com/gunshi/project/xyt/controller/PingController.java b/src/main/java/com/gunshi/project/xyt/controller/PingController.java
index 0a7766d..a705294 100644
--- a/src/main/java/com/gunshi/project/xyt/controller/PingController.java
+++ b/src/main/java/com/gunshi/project/xyt/controller/PingController.java
@@ -1,5 +1,6 @@
package com.gunshi.project.xyt.controller;
+import com.gunshi.logging.access.annotation.LoginLogging;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
@@ -18,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/ping")
public class PingController {
@Operation(summary = "测试接口")
+ @LoginLogging
@GetMapping("")
public String ping() {
return "pong";
diff --git a/src/main/java/com/gunshi/project/xyt/mapper/BzServiceResourceMonitorRMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/BzServiceResourceMonitorRMapper.java
new file mode 100644
index 0000000..5173a19
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/mapper/BzServiceResourceMonitorRMapper.java
@@ -0,0 +1,36 @@
+package com.gunshi.project.xyt.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.project.xyt.so.BzServiceResourceSo;
+import com.gunshi.project.xyt.vo.BzServiceResourceMonitorVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * 服务资源及监控联合查询Mapper
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@Mapper
+public interface BzServiceResourceMonitorRMapper {
+ @Select("""
+
+ """)
+ Page page(@Param("page") Page page, @Param("so") BzServiceResourceSo so);
+}
diff --git a/src/main/java/com/gunshi/project/xyt/model/BzProtocolInfo.java b/src/main/java/com/gunshi/project/xyt/model/BzProtocolInfo.java
new file mode 100644
index 0000000..fb4fbc0
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/model/BzProtocolInfo.java
@@ -0,0 +1,68 @@
+package com.gunshi.project.xyt.model;
+
+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 com.gunshi.core.dateformat.DateFormatString;
+import com.gunshi.project.xyt.validate.markers.Insert;
+import com.gunshi.project.xyt.validate.markers.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+
+/**
+ * 接收协议
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@Data
+@ToString
+@Schema(description = "接收协议")
+@TableName("BZ_PROTOCOL_INFO")
+public class BzProtocolInfo {
+
+ @NotEmpty(message = "协议编码不能为空", groups = {Insert.class, Update.class})
+ @Schema(description = "协议编码")
+ @TableId("ID")
+ private String id;
+
+ @NotEmpty(message = "协议名称不能为空", groups = {Insert.class})
+ @Schema(description = "协议名称")
+ @TableField("NAME")
+ private String name;
+
+ @NotEmpty(message = "IP地址不能为空", groups = {Insert.class})
+ @Schema(description = "IP地址")
+ @TableField("IP")
+ private String ip;
+
+ @NotNull(message = "监听端口不能为空", groups = {Insert.class})
+ @Schema(description = "监听端口")
+ @TableField("PORT")
+ private Integer port;
+
+ @NotEmpty(message = "协议标准不能为空", groups = {Insert.class})
+ @Schema(description = "协议标准")
+ @TableField("STD")
+ private String std;
+
+ @Schema(description = "传输协议,TCP或UDP")
+ @TableField("TRANS")
+ private String trans;
+
+ @Schema(description = "是否启用", $comment = "1启用,0不启用,默认1")
+ @TableField(value = "ENABLE")
+ private Integer enable;
+
+ @Schema(description = "创建时间")
+ @TableField(value = "CREATE_TM")
+ @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
+ private Date createTm;
+}
diff --git a/src/main/java/com/gunshi/project/xyt/model/BzServiceResource.java b/src/main/java/com/gunshi/project/xyt/model/BzServiceResource.java
new file mode 100644
index 0000000..123f821
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/model/BzServiceResource.java
@@ -0,0 +1,102 @@
+package com.gunshi.project.xyt.model;
+
+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 com.gunshi.core.dateformat.DateFormatString;
+import com.gunshi.project.xyt.validate.markers.Insert;
+import com.gunshi.project.xyt.validate.markers.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+
+/**
+ * 数据共享服务公共资源属性
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@Data
+@ToString
+@Schema(description = "服务资源")
+@TableName("BZ_SERVICE_RESOURCE")
+public class BzServiceResource {
+
+ @Schema(description = "id")
+ @TableId("ID")
+ @NotEmpty(message = "服务ID不能为空", groups = {Update.class})
+ private String id;
+
+ @Schema(description = "服务名称")
+ @TableField("NAME")
+ @NotEmpty(message = "服务名称不能为空", groups = {Insert.class})
+ private String name;
+
+ @Schema(description = "服务描述")
+ @TableField("DESCRIPTION")
+ private String description;
+
+ @Schema(description = "服务类型")
+ @TableField("SERVICE_TYPE")
+ private String serviceType;
+
+ @Schema(description = "服务地址")
+ @TableField("URL")
+ private String url;
+
+ @Schema(description = "服务端口")
+ @TableField("PORT")
+ private Integer port;
+
+ @Schema(description = "服务提供者")
+ @TableField("PROVIDER")
+ private String provider;
+
+ @Schema(description = "目标表")
+ @TableField("TARGET_TABLE")
+ private String targetTable;
+
+ @Schema(description = "目标时间依据字段")
+ @TableField("TARGET_TM_FIELD")
+ private String targetTmField;
+
+ @Schema(description = "路由")
+ @TableField("ROUTE")
+ private String route;
+
+ @Schema(description = "联系人")
+ @TableField("CONTACT")
+ private String contact;
+
+ @Schema(description = "联系电话")
+ @TableField("PHONE")
+ private String phone;
+
+ @Schema(description = "注册日期")
+ @JsonFormat(pattern = DateFormatString.YYYY_MM_DD, timezone = "GMT+8")
+ @TableField("REGISTER_DATE")
+ private Date registerDate;
+
+ @Schema(description = "修改日期")
+ @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
+ @TableField("UPDATE_TM")
+ private Date updateTm;
+
+ @Schema(description = "是否启用,0-停用,1-启用")
+ @TableField("ENABLE")
+ private Integer enable;
+
+ @Schema(description = "状态,0-不在线/异常,1-在线/正常")
+ @TableField("STATUS")
+ private Integer status;
+
+ @Schema(description = "最近数据时间")
+ @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
+ @TableField("LAST_DATA_TM")
+ private Date lastChangeTm;
+}
diff --git a/src/main/java/com/gunshi/project/xyt/model/BzServiceResourceMonitorR.java b/src/main/java/com/gunshi/project/xyt/model/BzServiceResourceMonitorR.java
new file mode 100644
index 0000000..eb8251c
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/model/BzServiceResourceMonitorR.java
@@ -0,0 +1,64 @@
+package com.gunshi.project.xyt.model;
+
+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 com.gunshi.core.dateformat.DateFormatString;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.Date;
+
+/**
+ * 服务资源监控记录
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@Data
+@ToString
+@Schema(description = "服务资源监控记录")
+@TableName("BZ_SERVICE_RESOURCE_R")
+public class BzServiceResourceMonitorR {
+
+ @Schema(description = "id")
+ @TableId("ID")
+ private Long id;
+
+ @Schema(description = "服务资源id")
+ @TableField("SR_ID")
+ private String srId;
+
+ @Schema(description = "最近数据时间")
+ @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
+ @TableField("LAST_CHANGE_TM")
+ private Date lastChangeTm;
+
+ @Schema(description = "共享数据(条)")
+ @TableField("RECORD_COUNT")
+ private Long recordCount;
+
+ @Schema(description = "共享站点数量")
+ @TableField("ST_COUNT")
+ private Integer stCount;
+
+ @Schema(description = "今日共享数据(条)")
+ @TableField("TODAY_COUNT")
+ private Long todayCount;
+
+ @Schema(description = "本周共享数据(条)")
+ @TableField("WEEKLY_COUNT")
+ private Long weeklyCount;
+
+ @Schema(description = "本月共享数据(条)")
+ @TableField("MONTHLY_COUNT")
+ private Long monthlyCount;
+
+ @Schema(description = "本年共享数据(条)")
+ @TableField("YEARLY_COUNT")
+ private Long yearlyCount;
+
+}
diff --git a/src/main/java/com/gunshi/project/xyt/model/BzServiceResourceType.java b/src/main/java/com/gunshi/project/xyt/model/BzServiceResourceType.java
new file mode 100644
index 0000000..3dcfe7f
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/model/BzServiceResourceType.java
@@ -0,0 +1,39 @@
+package com.gunshi.project.xyt.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.gunshi.project.xyt.validate.markers.Insert;
+import com.gunshi.project.xyt.validate.markers.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+import lombok.ToString;
+
+/**
+ * 服务类型
+ * 纯字典,无意义,无关联,应标
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@Data
+@ToString
+@Schema(description = "服务类型")
+@TableName("BZ_SERVICE_RESOURCE_TYPE")
+public class BzServiceResourceType {
+ @Schema(description = "id")
+ @TableId("ID")
+ private String id;
+
+ @Schema(description = "服务类型")
+ @TableField("TYPE")
+ @NotEmpty(message = "服务类型不能为空", groups = {Insert.class, Update.class})
+ private String type;
+
+ @Schema(description = "服务名称")
+ @TableField("NAME")
+ @NotEmpty(message = "服务类型不能为空", groups = {Insert.class, Update.class})
+ private String name;
+}
diff --git a/src/main/java/com/gunshi/project/xyt/service/BzServiceResourceMonitorRService.java b/src/main/java/com/gunshi/project/xyt/service/BzServiceResourceMonitorRService.java
new file mode 100644
index 0000000..473b190
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/service/BzServiceResourceMonitorRService.java
@@ -0,0 +1,64 @@
+package com.gunshi.project.xyt.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.project.xyt.mapper.BzServiceResourceMonitorRMapper;
+import com.gunshi.project.xyt.model.BzServiceResource;
+import com.gunshi.project.xyt.model.BzServiceResourceAutoDao;
+import com.gunshi.project.xyt.model.BzServiceResourceMonitorR;
+import com.gunshi.project.xyt.model.BzServiceResourceMonitorRAutoDao;
+import com.gunshi.project.xyt.so.BzServiceResourceSo;
+import com.gunshi.project.xyt.vo.BzServiceResourceMonitorVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@Service
+public class BzServiceResourceMonitorRService {
+ @Autowired
+ private BzServiceResourceAutoDao serviceResourceDao;
+
+ @Autowired
+ private BzServiceResourceMonitorRAutoDao serviceMonitorDao;
+
+ @Autowired
+ private BzServiceResourceMonitorRMapper serviceMonitorMapper;
+
+ public Page page(Page page, BzServiceResourceSo so) {
+ return serviceMonitorMapper.page(page, so);
+ }
+
+ @Transactional
+ public Boolean removeById(String id) {
+ BzServiceResource byId = serviceResourceDao.getById(id);
+ if (byId == null) {
+ return false;
+ }
+
+ return serviceResourceDao.removeById(id) &&
+ serviceMonitorDao.remove(
+ new LambdaQueryWrapper()
+ .eq(BzServiceResourceMonitorR::getSrId, id)
+ );
+ }
+
+ public void scanByTm() {
+ List serviceResources = serviceResourceDao.list();
+ for (BzServiceResource serviceResource : serviceResources) {
+ if (StringUtils.isNotEmpty(serviceResource.getTargetTable()) &&
+ StringUtils.isNotEmpty(serviceResource.getTargetTmField())) {
+// Db.getMap(new QueryWrapper<>().orderByDesc(serviceResource.getTargetTmField()).last("limit 1"), serviceResource.getTargetTable());
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/gunshi/project/xyt/service/ProtocolInfoService.java b/src/main/java/com/gunshi/project/xyt/service/ProtocolInfoService.java
new file mode 100644
index 0000000..bb22ca5
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/service/ProtocolInfoService.java
@@ -0,0 +1,60 @@
+package com.gunshi.project.xyt.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gunshi.project.xyt.model.BzProtocolInfo;
+import com.gunshi.project.xyt.model.BzProtocolInfoAutoDao;
+import com.gunshi.project.xyt.so.BzProtocolInfoSo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@Service
+public class ProtocolInfoService {
+ @Autowired
+ private BzProtocolInfoAutoDao dao;
+
+
+ public Page page(BzProtocolInfoSo so) {
+ if (StringUtils.isNotEmpty(so.getId())) {
+ BzProtocolInfo entity = dao.getById(so.getId());
+ if (entity == null) {
+ return null;
+ }
+ List records = List.of(entity);
+ return new Page(1, 1, 1).setRecords(records);
+ }
+
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ if (StringUtils.isNotEmpty(so.getName())) {
+ query.like(StringUtils.isNotEmpty(so.getName()), BzProtocolInfo::getName, so.getName());
+ }
+ if (StringUtils.isNotEmpty(so.getIp())) {
+ query.like(BzProtocolInfo::getIp, so.getIp());
+ }
+ if (so.getPort() != null) {
+ query.eq(BzProtocolInfo::getPort, so.getPort());
+ }
+ if (StringUtils.isNotEmpty(so.getStd())) {
+ query.like(BzProtocolInfo::getStd, so.getStd());
+ }
+ if (StringUtils.isNotEmpty(so.getTrans())) {
+ query.like(BzProtocolInfo::getTrans, so.getTrans());
+ }
+ if (so.getEnable() != null) {
+ query.eq(BzProtocolInfo::getEnable, so.getEnable());
+ }
+ query.orderByDesc(BzProtocolInfo::getCreateTm);
+
+ return dao.page(so.getPageSo().toPage(), query);
+ }
+}
diff --git a/src/main/java/com/gunshi/project/xyt/so/BzProtocolInfoSo.java b/src/main/java/com/gunshi/project/xyt/so/BzProtocolInfoSo.java
new file mode 100644
index 0000000..a2f017d
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/so/BzProtocolInfoSo.java
@@ -0,0 +1,46 @@
+package com.gunshi.project.xyt.so;
+
+import com.gunshi.db.dto.PageSo;
+import com.gunshi.project.xyt.validate.markers.Query;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 协议信息查询参数
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@Data
+@Schema(description = "协议信息查询参数")
+public class BzProtocolInfoSo {
+
+ @NotNull(message = "分页参数不能为空")
+ private PageSo pageSo;
+
+ @Schema(description = "协议编码")
+ @NotEmpty(groups = {Query.class})
+ private String id;
+
+ @Schema(description = "协议名称")
+ private String name;
+
+ @Schema(description = "IP地址")
+ private String ip;
+
+ @Schema(description = "监听端口")
+ private Integer port;
+
+ @Schema(description = "协议标准")
+ private String std;
+
+ @Schema(description = "传输协议,TCP或UDP")
+ private String trans;
+
+ @Schema(description = "是否启用, 1启用,0不启用,默认1")
+ private Integer enable;
+
+}
diff --git a/src/main/java/com/gunshi/project/xyt/so/BzServiceResourceSo.java b/src/main/java/com/gunshi/project/xyt/so/BzServiceResourceSo.java
new file mode 100644
index 0000000..ba2e239
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/so/BzServiceResourceSo.java
@@ -0,0 +1,30 @@
+package com.gunshi.project.xyt.so;
+
+import com.gunshi.db.dto.DateTimeRangeSo;
+import com.gunshi.db.dto.PageSo;
+import com.gunshi.project.xyt.validate.markers.QueryPage;
+import com.gunshi.project.xyt.validate.markers.QueryTimeRange;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 服务资源查询参数
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@Data
+@Schema(description = "服务资源查询参数")
+public class BzServiceResourceSo {
+
+ @NotNull(message = "分页参数不能为空", groups = {QueryPage.class})
+ private PageSo pageSo;
+
+ @NotNull(message = "时间范围不能为空", groups = {QueryTimeRange.class})
+ private DateTimeRangeSo timeSo;
+
+ @Schema(description = "服务名称")
+ private String name;
+}
diff --git a/src/main/java/com/gunshi/project/xyt/so/BzServiceResourceTypeSo.java b/src/main/java/com/gunshi/project/xyt/so/BzServiceResourceTypeSo.java
new file mode 100644
index 0000000..a7552ce
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/so/BzServiceResourceTypeSo.java
@@ -0,0 +1,28 @@
+package com.gunshi.project.xyt.so;
+
+import com.gunshi.db.dto.PageSo;
+import com.gunshi.project.xyt.validate.markers.QueryPage;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 服务资源查询参数
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+@Data
+@Schema(description = "服务资源查询参数")
+public class BzServiceResourceTypeSo {
+
+ @NotNull(message = "分页参数不能为空", groups = {QueryPage.class})
+ private PageSo pageSo;
+
+ @Schema(description = "服务名称")
+ private String name;
+
+ @Schema(description = "服务类型")
+ private String type;
+}
diff --git a/src/main/java/com/gunshi/project/xyt/validate/markers/Delete.java b/src/main/java/com/gunshi/project/xyt/validate/markers/Delete.java
new file mode 100644
index 0000000..ce1fd19
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/validate/markers/Delete.java
@@ -0,0 +1,11 @@
+package com.gunshi.project.xyt.validate.markers;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+public interface Delete {
+}
diff --git a/src/main/java/com/gunshi/project/xyt/validate/markers/Insert.java b/src/main/java/com/gunshi/project/xyt/validate/markers/Insert.java
new file mode 100644
index 0000000..133f5d8
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/validate/markers/Insert.java
@@ -0,0 +1,11 @@
+package com.gunshi.project.xyt.validate.markers;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+public interface Insert {
+}
diff --git a/src/main/java/com/gunshi/project/xyt/validate/markers/Query.java b/src/main/java/com/gunshi/project/xyt/validate/markers/Query.java
new file mode 100644
index 0000000..b841456
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/validate/markers/Query.java
@@ -0,0 +1,11 @@
+package com.gunshi.project.xyt.validate.markers;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+public interface Query {
+}
diff --git a/src/main/java/com/gunshi/project/xyt/validate/markers/QueryPage.java b/src/main/java/com/gunshi/project/xyt/validate/markers/QueryPage.java
new file mode 100644
index 0000000..8ec1cc8
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/validate/markers/QueryPage.java
@@ -0,0 +1,11 @@
+package com.gunshi.project.xyt.validate.markers;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+public interface QueryPage {
+}
diff --git a/src/main/java/com/gunshi/project/xyt/validate/markers/QueryTimeRange.java b/src/main/java/com/gunshi/project/xyt/validate/markers/QueryTimeRange.java
new file mode 100644
index 0000000..40abca7
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/validate/markers/QueryTimeRange.java
@@ -0,0 +1,11 @@
+package com.gunshi.project.xyt.validate.markers;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+public interface QueryTimeRange {
+}
diff --git a/src/main/java/com/gunshi/project/xyt/validate/markers/Update.java b/src/main/java/com/gunshi/project/xyt/validate/markers/Update.java
new file mode 100644
index 0000000..c18fed3
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/validate/markers/Update.java
@@ -0,0 +1,11 @@
+package com.gunshi.project.xyt.validate.markers;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+public interface Update {
+}
diff --git a/src/main/java/com/gunshi/project/xyt/vo/BzServiceResourceMonitorVo.java b/src/main/java/com/gunshi/project/xyt/vo/BzServiceResourceMonitorVo.java
new file mode 100644
index 0000000..93944cd
--- /dev/null
+++ b/src/main/java/com/gunshi/project/xyt/vo/BzServiceResourceMonitorVo.java
@@ -0,0 +1,63 @@
+package com.gunshi.project.xyt.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.gunshi.core.dateformat.DateFormatString;
+import io.swagger.v3.oas.annotations.media.Schema;
+
+import java.util.Date;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-24
+ */
+public class BzServiceResourceMonitorVo {
+ //region BzServiceResourceMonitorR
+ @Schema(description = "id")
+ @TableId("ID")
+ private Long id;
+
+ @Schema(description = "服务资源id")
+ @TableField("SR_ID")
+ private String srId;
+
+ @Schema(description = "最近数据时间")
+ @JsonFormat(pattern = DateFormatString.YYYY_MM_DD_HH_MM_SS, timezone = "GMT+8")
+ @TableField("LAST_CHANGE_TM")
+ private Date lastChangeTm;
+
+ @Schema(description = "共享数据(条)")
+ @TableField("RECORD_COUNT")
+ private Long recordCount;
+
+ @Schema(description = "共享站点数量")
+ @TableField("ST_COUNT")
+ private Integer stCount;
+
+ @Schema(description = "今日共享数据(条)")
+ @TableField("TODAY_COUNT")
+ private Long todayCount;
+
+ @Schema(description = "本周共享数据(条)")
+ @TableField("WEEKLY_COUNT")
+ private Long weeklyCount;
+
+ @Schema(description = "本月共享数据(条)")
+ @TableField("MONTHLY_COUNT")
+ private Long monthlyCount;
+
+ @Schema(description = "本年共享数据(条)")
+ @TableField("YEARLY_COUNT")
+ private Long yearlyCount;
+ //endregion
+
+ //region BzServiceResource
+ @Schema(description = "服务名称")
+ @TableField("NAME")
+ private String name;
+ //endregion
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index ebfff32..b5a8433 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -56,3 +56,6 @@ gunshi:
username: gunshi_logger
password: 1234567a
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
diff --git a/src/main/resources/sql/ServiceResource.sql b/src/main/resources/sql/ServiceResource.sql
new file mode 100644
index 0000000..167433a
--- /dev/null
+++ b/src/main/resources/sql/ServiceResource.sql
@@ -0,0 +1,168 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : dev-mssql
+ Source Server Type : SQL Server
+ Source Server Version : 16001000
+ Source Host : 10.0.41.115:1433
+ Source Catalog : xyt
+ Source Schema : dbo
+
+ Target Server Type : SQL Server
+ Target Server Version : 16001000
+ File Encoding : 65001
+
+ Date: 24/01/2024 16:12:30
+*/
+
+
+-- ----------------------------
+-- Table structure for SERVICE_RESOURCE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[SERVICE_RESOURCE]') AND type IN ('U'))
+ DROP TABLE [dbo].[SERVICE_RESOURCE]
+GO
+
+CREATE TABLE [dbo].[SERVICE_RESOURCE] (
+ [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [NAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [SERVICE_TYPE] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [URL] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [PORT] int NULL,
+ [PROVIDER] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [TARGET_TABLE] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [TARGET_TM_FIELD] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [ROUTE] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [CONTACT] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [PHONE] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL,
+ [REGISTER_DATE] datetime NULL,
+ [UPDATE_TM] datetime NULL,
+ [ENABLE] int NULL,
+ [STATUS] int NULL,
+ [LAST_DATA_TM] datetime NULL
+)
+GO
+
+ALTER TABLE [dbo].[SERVICE_RESOURCE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'id',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'ID'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务名称',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'NAME'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务描述',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'DESCRIPTION'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务类型',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'SERVICE_TYPE'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务地址',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'URL'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务端口',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'PORT'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务提供者',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'PROVIDER'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'目标表',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'TARGET_TABLE'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'目标时间依据字段',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'TARGET_TM_FIELD'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'路由',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'ROUTE'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系人',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'CONTACT'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系电话',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'PHONE'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'注册日期',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'REGISTER_DATE'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改日期',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'UPDATE_TM'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'启用, 0-停用,1-启用',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'ENABLE'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态, 0-不在线/异常,1-在线/正常',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'STATUS'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'最近数据时间',
+'SCHEMA', N'dbo',
+'TABLE', N'SERVICE_RESOURCE',
+'COLUMN', N'LAST_DATA_TM'
+GO
+
diff --git a/src/test/java/com/gunshi/project/xyt/TestMain.java b/src/test/java/com/gunshi/project/xyt/TestMain.java
new file mode 100644
index 0000000..8911183
--- /dev/null
+++ b/src/test/java/com/gunshi/project/xyt/TestMain.java
@@ -0,0 +1,16 @@
+package com.gunshi.project.xyt;
+
+import com.gunshi.core.annotation.GunShiApplication;
+import org.mybatis.spring.annotation.MapperScan;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@GunShiApplication
+@MapperScan(basePackages = {"com.gunshi.**.mapper", "com.gunshi.**.model"})
+public class TestMain {
+}
diff --git a/src/test/java/com/gunshi/project/xyt/controller/TestController.java b/src/test/java/com/gunshi/project/xyt/controller/TestController.java
new file mode 100644
index 0000000..7e14c48
--- /dev/null
+++ b/src/test/java/com/gunshi/project/xyt/controller/TestController.java
@@ -0,0 +1,23 @@
+package com.gunshi.project.xyt.controller;
+
+import com.gunshi.logging.access.annotation.LoginLogging;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 类描述
+ *
+ * @author lyf
+ * @version 1.0.0
+ * @since 2024-01-23
+ */
+@RestController
+@RequestMapping("/test")
+public class TestController {
+ @LoginLogging
+ @GetMapping("/ping")
+ public String pong() {
+ return "pong";
+ }
+}
diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml
index 24dfed1..ebfff32 100644
--- a/src/test/resources/application.yml
+++ b/src/test/resources/application.yml
@@ -28,6 +28,13 @@ spring:
gunshi:
core:
appName: project-xyt
+ file:
+ key: test.by_lyf.tmp
+ secret: xPXPAb63FphkGkPU0ZZkNIXmDzjDVeF3PBH6ZEKw
+ endpoint: http://223.75.53.141:9102
+ publicBucket: test.by-lyf.tmp
+ loginBucket: test.by-lyf.tmp
+ privateBucket: test.by-lyf.tmp
access:
logging:
enabled: true
@@ -48,10 +55,4 @@ gunshi:
database: gunshi-logging
username: gunshi_logger
password: 1234567a
- file:
- key: test.by_lyf.tmp
- secret: xPXPAb63FphkGkPU0ZZkNIXmDzjDVeF3PBH6ZEKw
- endpoint: http://223.75.53.141:9102
- publicBucket: test.by-lyf.tmp
- loginBucket: test.by-lyf.tmp
- privateBucket: test.by-lyf.tmp
\ No newline at end of file
+