From 07e79bb42ff74e3fce912fcdfd65adc85f5c1910 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Wed, 20 Dec 2023 15:35:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E9=83=A8=E7=BD=B2=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kqapi/scheduler/contants/TaskContant.java | 14 +++++ .../kqapi/scheduler/controller/TaskController.java | 51 ++++++++++++++++ .../kqapi/scheduler/manage/SynManage.java | 71 ++++++++++++++++++++++ .../kqapi/scheduler/task/RemoveMattersTask.java | 63 +++++++++++++++++++ .../kqapi/scheduler/task/model/CommonLog.java | 43 +++++++++++++ .../ningdatech/kqapi/scheduler/utils/DateUtil.java | 37 +++++++++++ .../zzsfw/controller/NdKqZzsfwMenuController.java | 30 ++++++++- .../controller/PolicyRegulationsController.java | 18 ++++-- .../entity/dto/NdKqZzsfwMattersDeduplicateDTO.java | 35 +++++++++++ .../kqapi/zzsfw/entity/dto/NdKqZzsfwMenuDTO.java | 50 +++++++++++++++ .../kqapi/zzsfw/entity/dto/NdKqZzsfwPolicyDTO.java | 56 +++++++++++++++++ .../kqapi/zzsfw/manage/MatterManage.java | 39 ++++++++++++ .../kqapi/zzsfw/manage/PolicyManage.java | 21 +++++++ kqapi/src/main/resources/application-dev.yml | 2 +- kqapi/src/main/resources/application-pre.yml | 2 +- kqapi/src/main/resources/application-prod.yml | 10 +-- kqapi/src/test/resources/application-prod.yml | 8 +-- kqapi/src/test/resources/application.yml | 2 +- 18 files changed, 533 insertions(+), 19 deletions(-) create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/scheduler/contants/TaskContant.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/scheduler/controller/TaskController.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/scheduler/manage/SynManage.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/scheduler/task/RemoveMattersTask.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/scheduler/task/model/CommonLog.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/scheduler/utils/DateUtil.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwMattersDeduplicateDTO.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwMenuDTO.java create mode 100644 kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwPolicyDTO.java diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/contants/TaskContant.java b/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/contants/TaskContant.java new file mode 100644 index 0000000..c853264 --- /dev/null +++ b/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/contants/TaskContant.java @@ -0,0 +1,14 @@ +package com.ningdatech.kqapi.scheduler.contants; + +/** + * @author PoffyZhang + * @Classname TaskContant + * @Description + * @Date 2023/1/18 11:00 + */ +public interface TaskContant { + + public static final String DEV = "dev"; + public static final String PRE = "pre"; + public static final String PROD = "prod"; +} diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/controller/TaskController.java b/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/controller/TaskController.java new file mode 100644 index 0000000..7f75a5b --- /dev/null +++ b/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/controller/TaskController.java @@ -0,0 +1,51 @@ +package com.ningdatech.kqapi.scheduler.controller; + + +import com.ningdatech.kqapi.scheduler.manage.SynManage; +import com.ningdatech.kqapi.scheduler.task.RemoveMattersTask; +import com.ningdatech.kqapi.zzsfw.entity.vo.MatterTopVO; +import com.ningdatech.kqapi.zzsfw.entity.vo.TreeVO; +import com.ningdatech.kqapi.zzsfw.manage.MatterManage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.net.UnknownHostException; +import java.util.List; + +/** + *
+ * 前端控制器 + *
+ * + * @author ZPF + * @since 2023-10-27 + */ +@Slf4j +@Validated +@RestController +@RequestMapping("/api/v1/task/") +@Api(value = "TaskController", tags = "柯桥-定时控制器") +@RequiredArgsConstructor +public class TaskController { + private final RemoveMattersTask removeMattersTask; + + private final SynManage synManage; + + @ApiOperation(value = "主动调删除数据", notes = "主动调删除数据") + @GetMapping("/remove-matters") + public void removeMatters() throws UnknownHostException { + removeMattersTask.doTask(); + } + + @ApiOperation(value = "主动同步三表", notes = "主动同步三表") + @GetMapping("/syn-data") + public void synData() throws UnknownHostException { + synManage.synData(); + } +} diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/manage/SynManage.java b/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/manage/SynManage.java new file mode 100644 index 0000000..f0af5d5 --- /dev/null +++ b/kqapi/src/main/java/com/ningdatech/kqapi/scheduler/manage/SynManage.java @@ -0,0 +1,71 @@ +package com.ningdatech.kqapi.scheduler.manage; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSON; +import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMattersDeduplicateDTO; +import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMenuDTO; +import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwPolicyDTO; +import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate; +import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMenu; +import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwPolicy; +import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMatterDeduplicateService; +import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMenuService; +import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwPolicyService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +import java.util.List; + +/** + * @Classname SynManage + * @Description + * @Date 2023/12/20 15:18 + * @Author PoffyZhang + */ +@Component +@Slf4j +@RequiredArgsConstructor +public class SynManage { + + private final INdKqZzsfwMatterDeduplicateService deduplicateService; + + private final INdKqZzsfwMenuService menuService; + + private final INdKqZzsfwPolicyService policyService; + + private final RestTemplate restTemplate; + + public void synData() { + log.info("同步数据开始"); + //1.去重数据 + List+ * + *
+ * + * @author ZPF + * @since 2023-10-27 + */ +@Data +@ApiModel(value = "NdKqZzsfwMattersDeduplicate", description = "") +public class NdKqZzsfwMattersDeduplicateDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("数据同步时间") + private LocalDateTime createOn; + + @ApiModelProperty("事项名称") + private String qlName; + + @ApiModelProperty("链接") + private String webapplyurl; + + @ApiModelProperty("重复数") + private Integer countNum; +} diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwMenuDTO.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwMenuDTO.java new file mode 100644 index 0000000..e3d537f --- /dev/null +++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwMenuDTO.java @@ -0,0 +1,50 @@ +package com.ningdatech.kqapi.zzsfw.entity.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *+ * + *
+ * + * @author ZPF + * @since 2023-10-27 + */ +@Data +@ApiModel(value = "NdKqZzsfwMenu对象", description = "") +public class NdKqZzsfwMenuDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("数据同步时间") + private LocalDateTime createOn; + + @ApiModelProperty("社区名") + private String zoneName; + + @ApiModelProperty("窗口") + private String window; + + @ApiModelProperty("部门") + private String department; + + @ApiModelProperty("事项名称") + private String itemName; + + @ApiModelProperty("事项在政务中心的rowid") + private String itemRowid; + + @ApiModelProperty("排序") + private Integer sort; + + @ApiModelProperty("链接") + private String webapplyurl; + + @ApiModelProperty("是否在政务中心查到url") + private Integer hasUrl; +} diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwPolicyDTO.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwPolicyDTO.java new file mode 100644 index 0000000..b9f794b --- /dev/null +++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/dto/NdKqZzsfwPolicyDTO.java @@ -0,0 +1,56 @@ +package com.ningdatech.kqapi.zzsfw.entity.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *+ * + *
+ * + * @author ZPF + * @since 2023-11-02 + */ +@Data +@ApiModel(value = "NdKqZzsfwPolicyDTO", description = "") +public class NdKqZzsfwPolicyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("数据同步时间") + private LocalDateTime createOn; + + @ApiModelProperty("抬头") + private String header; + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("二级标题") + private String secondTitle; + + @ApiModelProperty("适用地区") + private String regionName; + + @ApiModelProperty("责任部门") + private String department; + + @ApiModelProperty("发文日期") + private String issueDate; + + @ApiModelProperty("状态") + private String status; + + @ApiModelProperty("申报时间") + private String applyTime; + + @ApiModelProperty("在线咨询url") + private String onlineConsultationUrl; + + @ApiModelProperty("排序") + private Integer sort; +} diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java index 5f92786..944b0b9 100644 --- a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java +++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java @@ -5,8 +5,11 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ningdatech.kqapi.common.enumeration.CommonEnum; import com.ningdatech.kqapi.zzsfw.constants.ZzsfwMenuConstant; +import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMattersDeduplicateDTO; +import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwMenuDTO; import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate; import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMenu; +import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwPolicy; import com.ningdatech.kqapi.zzsfw.entity.vo.MatterTopVO; import com.ningdatech.kqapi.zzsfw.entity.vo.TreeVO; import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMatterDeduplicateService; @@ -107,4 +110,40 @@ public class MatterManage { return vo; }).collect(Collectors.toList()); } + + public String save(NdKqZzsfwMenuDTO dto) { + if(Objects.isNull(dto)){ + return "保存失败 传入为空"; + } + + NdKqZzsfwMenu entity = BeanUtil.copyProperties(dto,NdKqZzsfwMenu.class); + if(menuService.save(entity)){ + return "保存成功 :" + entity; + }else{ + return "保存失败"; + } + } + + public String saveDup(NdKqZzsfwMattersDeduplicateDTO dto) { + if(Objects.isNull(dto)){ + return "保存失败 传入为空"; + } + + NdKqZzsfwMattersDeduplicate entity = BeanUtil.copyProperties(dto,NdKqZzsfwMattersDeduplicate.class); + if(matterDeduplicateService.save(entity)){ + return "保存成功 :" + entity; + }else{ + return "保存失败"; + } + } + + public String removeAll() { + menuService.remove(Wrappers.lambdaQuery(NdKqZzsfwMenu.class)); + return "删除成功"; + } + + public String removeAllDup() { + matterDeduplicateService.remove(Wrappers.lambdaQuery(NdKqZzsfwMattersDeduplicate.class)); + return "删除成功"; + } } diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/PolicyManage.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/PolicyManage.java index 3aa804b..59d061a 100644 --- a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/PolicyManage.java +++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/PolicyManage.java @@ -5,6 +5,8 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ningdatech.basic.model.PageVo; +import com.ningdatech.kqapi.zzsfw.entity.dto.NdKqZzsfwPolicyDTO; +import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMenu; import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwPolicy; import com.ningdatech.kqapi.zzsfw.entity.vo.NdKqZzsfwPolicyVO; import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwPolicyService; @@ -13,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -42,4 +45,22 @@ public class PolicyManage { .collect(Collectors.toList()); return PageVo.of(res,pageRes.getTotal()); } + + public String save(NdKqZzsfwPolicyDTO dto) { + if(Objects.isNull(dto)){ + return "保存失败 传入为空"; + } + + NdKqZzsfwPolicy entity = BeanUtil.copyProperties(dto,NdKqZzsfwPolicy.class); + if(policyService.save(entity)){ + return "保存成功 :" + entity; + }else{ + return "保存失败"; + } + } + + public String removeAll() { + policyService.remove(Wrappers.lambdaQuery(NdKqZzsfwPolicy.class)); + return "删除成功"; + } } diff --git a/kqapi/src/main/resources/application-dev.yml b/kqapi/src/main/resources/application-dev.yml index 0bb9896..959525d 100644 --- a/kqapi/src/main/resources/application-dev.yml +++ b/kqapi/src/main/resources/application-dev.yml @@ -61,7 +61,7 @@ spring: # 配置从池返回的连接的默认自动提交行为。默认值为true。 auto-commit: true # 开启连接监测泄露 - leak-detection-threshold: 10000 + leak-detection-threshold: 500000 # 测试连接数据库 connection-test-query: SELECT 1 #设置上传 单个文件的大小 diff --git a/kqapi/src/main/resources/application-pre.yml b/kqapi/src/main/resources/application-pre.yml index 908d625..9b9a163 100644 --- a/kqapi/src/main/resources/application-pre.yml +++ b/kqapi/src/main/resources/application-pre.yml @@ -61,7 +61,7 @@ spring: # 配置从池返回的连接的默认自动提交行为。默认值为true。 auto-commit: true # 开启连接监测泄露 - leak-detection-threshold: 5000 + leak-detection-threshold: 500000 # 测试连接数据库 connection-test-query: SELECT 1 #设置上传 单个文件的大小 diff --git a/kqapi/src/main/resources/application-prod.yml b/kqapi/src/main/resources/application-prod.yml index 4728dca..07a43c9 100644 --- a/kqapi/src/main/resources/application-prod.yml +++ b/kqapi/src/main/resources/application-prod.yml @@ -1,5 +1,5 @@ server: - port: 33060 + port: 33061 servlet: context-path: /kq @@ -43,9 +43,9 @@ spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://47.98.125.47:3306/kqzzsfw?serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:mysql://10.42.248.27:3306/kqzzsfw?serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false username: root - password: NingdaKeji123! + password: Nd@20231116 # 数据源 hikari: # 是客户端等待连接池连接的最大毫秒数 @@ -61,7 +61,7 @@ spring: # 配置从池返回的连接的默认自动提交行为。默认值为true。 auto-commit: true # 开启连接监测泄露 - leak-detection-threshold: 5000 + leak-detection-threshold: 500000 # 测试连接数据库 connection-test-query: SELECT 1 #设置上传 单个文件的大小 @@ -118,6 +118,6 @@ log: swagger: enabled: true -hostname: iZbp13nwyvib53j4j1p2xoZ +hostname: iZut201mqskxt0mwme4tjfZ diff --git a/kqapi/src/test/resources/application-prod.yml b/kqapi/src/test/resources/application-prod.yml index 4728dca..68d6de2 100644 --- a/kqapi/src/test/resources/application-prod.yml +++ b/kqapi/src/test/resources/application-prod.yml @@ -43,9 +43,9 @@ spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://47.98.125.47:3306/kqzzsfw?serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:mysql://10.42.248.27:3306/kqzzsfw?serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false username: root - password: NingdaKeji123! + password: Nd@20231116 # 数据源 hikari: # 是客户端等待连接池连接的最大毫秒数 @@ -61,7 +61,7 @@ spring: # 配置从池返回的连接的默认自动提交行为。默认值为true。 auto-commit: true # 开启连接监测泄露 - leak-detection-threshold: 5000 + leak-detection-threshold: 500000 # 测试连接数据库 connection-test-query: SELECT 1 #设置上传 单个文件的大小 @@ -118,6 +118,6 @@ log: swagger: enabled: true -hostname: iZbp13nwyvib53j4j1p2xoZ +hostname: iZut201mqskxt0mwme4tjfZ diff --git a/kqapi/src/test/resources/application.yml b/kqapi/src/test/resources/application.yml index 3d7808a..9f96606 100644 --- a/kqapi/src/test/resources/application.yml +++ b/kqapi/src/test/resources/application.yml @@ -1,3 +1,3 @@ spring: profiles: - active: dev + active: prod