From dc5672066c07d18bdee54f3b2ce5a4ef33d84d0c Mon Sep 17 00:00:00 2001 From: bonus Date: Tue, 1 Apr 2025 15:07:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=20.idea/shelf/Uncommitte?= =?UTF-8?q?d=5Fchanges=5Fbefore=5FUpdate=5Fat=5F2025=5F3=5F31=5F10=5F04=5F?= =?UTF-8?q?=5F=5F.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ncommitted_changes_before_Update_at_2025_3_31_10_04___.xml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04___.xml diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04___.xml b/.idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04___.xml deleted file mode 100644 index 21ad424..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04___.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file From 76758eaeac4e3ab4c78ffc2388a9fbfaf0206111 Mon Sep 17 00:00:00 2001 From: bonus Date: Tue, 1 Apr 2025 15:07:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=20.idea/shelf/Uncommitte?= =?UTF-8?q?d=5Fchanges=5Fbefore=5FUpdate=5Fat=5F2025=5F3=5F31=5F10=5F04=5F?= =?UTF-8?q?[=E6=9B=B4=E6=94=B9]/shelved.patch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shelved.patch | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04_[更改]/shelved.patch diff --git a/.idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04_[更改]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04_[更改]/shelved.patch deleted file mode 100644 index 3df3fc4..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Update_at_2025_3_31_10_04_[更改]/shelved.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: pom.xml -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>\r\n\r\n 4.0.0\r\n \r\n org.springframework.boot\r\n spring-boot-starter-parent\r\n 2.4.5\r\n \r\n \r\n com.bonus.boot\r\n szgqj-service\r\n 1.0.0.1-SNAPSHOT\r\n szgqj-service\r\n szgqj-service\r\n \r\n 1.8\r\n \r\n \r\n \r\n \r\n net.javacrumbs.shedlock\r\n shedlock-spring\r\n 2.2.1\r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-freemarker\r\n 3.2.5\r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-web\r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-test\r\n test\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n com.itextpdf\r\n layout\r\n 7.1.16\r\n \r\n \r\n com.itextpdf\r\n itextpdf\r\n 5.5.12\r\n \r\n \r\n com.itextpdf\r\n forms\r\n 7.1.16\r\n \r\n\r\n \r\n com.squareup.okhttp3\r\n okhttp\r\n 4.9.1\r\n \r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-websocket\r\n \r\n \r\n org.mybatis.spring.boot\r\n mybatis-spring-boot-starter\r\n 2.1.3\r\n \r\n \r\n com.alibaba\r\n druid-spring-boot-starter\r\n 1.1.9\r\n \r\n \r\n redis.clients\r\n jedis\r\n 2.9.0\r\n jar\r\n compile\r\n \r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-data-redis\r\n \r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-security\r\n \r\n \r\n \r\n cn.hutool\r\n hutool-all\r\n 5.5.2\r\n \r\n \r\n \r\n mysql\r\n mysql-connector-java\r\n runtime\r\n \r\n \r\n \r\n tk.mybatis\r\n mapper\r\n 4.1.5\r\n \r\n \r\n \r\n io.jsonwebtoken\r\n jjwt\r\n 0.9.0\r\n \r\n \r\n \r\n org.quartz-scheduler\r\n quartz\r\n \r\n \r\n \r\n org.apache.poi\r\n poi\r\n 4.1.2\r\n \r\n \r\n \r\n org.springframework.boot\r\n spring-boot-starter-amqp\r\n \r\n\r\n \r\n \r\n org.apache.poi\r\n poi-ooxml\r\n 4.1.2\r\n \r\n \r\n javax.xml.bind\r\n jaxb-api\r\n 2.3.0\r\n \r\n \r\n com.sun.xml.bind\r\n jaxb-impl\r\n 2.3.0\r\n \r\n \r\n com.sun.xml.bind\r\n jaxb-core\r\n 2.3.0\r\n \r\n \r\n org.apache.commons\r\n commons-lang3\r\n 3.7\r\n \r\n \r\n commons-io\r\n commons-io\r\n 1.4\r\n \r\n \r\n commons-fileupload\r\n commons-fileupload\r\n 1.3\r\n \r\n \r\n \r\n com.alibaba\r\n fastjson\r\n 1.2.83\r\n \r\n \r\n \r\n junit\r\n junit\r\n \r\n \r\n \r\n javax.xml.rpc\r\n javax.xml.rpc-api\r\n 1.1.1\r\n \r\n \r\n org.apache.axis\r\n axis\r\n 1.4\r\n \r\n \r\n commons-logging\r\n commons-logging\r\n 1.2\r\n \r\n \r\n commons-discovery\r\n commons-discovery\r\n 0.5\r\n \r\n \r\n wsdl4j\r\n wsdl4j\r\n 1.6.2\r\n \r\n \r\n ws.schild\r\n jave-core\r\n 2.4.5\r\n \r\n \r\n ws.schild\r\n jave-native-win64\r\n 2.4.5\r\n \r\n \r\n ws.schild\r\n jave-native-linux64\r\n 2.4.5\r\n \r\n \r\n \r\n org.projectlombok\r\n lombok\r\n 1.16.18\r\n provided\r\n \r\n \r\n io.springfox\r\n springfox-swagger2\r\n 2.8.0\r\n \r\n \r\n io.springfox\r\n springfox-bean-validators\r\n 2.8.0\r\n \r\n \r\n io.springfox\r\n springfox-swagger-ui\r\n 2.8.0\r\n \r\n \r\n org.aspectj\r\n aspectjweaver\r\n 1.9.6\r\n \r\n \r\n org.bouncycastle\r\n bcpkix-jdk15on\r\n 1.64\r\n \r\n\r\n \r\n org.bouncycastle\r\n bcprov-jdk15on\r\n 1.64\r\n \r\n\r\n \r\n com.google.zxing\r\n core\r\n 3.3.3\r\n \r\n\r\n \r\n com.google.zxing\r\n javase\r\n 3.3.0\r\n \r\n \r\n core\r\n com.google.zxing\r\n \r\n \r\n \r\n\r\n \r\n com.github.pagehelper\r\n pagehelper-spring-boot-starter\r\n 1.4.5\r\n \r\n \r\n org.hibernate\r\n hibernate-validator\r\n 6.0.18.Final\r\n \r\n \r\n org.apache.commons\r\n commons-collections4\r\n 4.4\r\n \r\n \r\n org.apache.httpcomponents\r\n httpclient\r\n 4.5.3\r\n \r\n \r\n org\r\n jaudiotagger\r\n 2.0.1\r\n \r\n\r\n\t\t\r\n\t\t\r\n\t\t\tjna-1.1.0\r\n\t\t\tjna\r\n\t\t\t1.3.0\r\n\t\t\tsystem\r\n\t\t\t${project.basedir}/src/main/resources/lib/jna-1.1.0.jar\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\tminacore-1.0\r\n\t\t\tminacore\r\n\t\t\t1.3.0\r\n\t\t\tsystem\r\n\t\t\t${project.basedir}/src/main/resources/lib/minacore-1.0.jar\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\tarcsoft-sdk-face-3.0.0.0\r\n\t\t\tarcsoft\r\n\t\t\t1.3.0\r\n\t\t\tsystem\r\n\t\t\t${project.basedir}/src/main/resources/lib/arcsoft-sdk-face-3.0.0.0.jar\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\texamples-1.0\r\n\t\t\texamples\r\n\t\t\t1.3.0\r\n\t\t\tsystem\r\n\t\t\t${project.basedir}/src/main/resources/lib/examples-1.0.jar\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\tjson\r\n\t\t\texamples\r\n\t\t\t1.3.0\r\n\t\t\tsystem\r\n\t\t\t${project.basedir}/src/main/resources/lib/json.jar\r\n\t\t\t\r\n\t\t\r\n \r\n cn.afterturn\r\n easypoi-base\r\n 4.1.2\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n org.springframework.boot\r\n spring-boot-maven-plugin\r\n \r\n true\r\n \r\n \r\n \r\n org.apache.maven.plugins\r\n 2.6\r\n maven-resources-plugin\r\n \r\n UTF-8\r\n \r\n \r\n \r\n \r\n\r\n\r\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/pom.xml b/pom.xml ---- a/pom.xml (revision 9460c74a4870ef088df0ca994710949ac4fc0573) -+++ b/pom.xml (date 1743386519254) -@@ -9,7 +9,7 @@ - - - com.bonus.boot -- szgqj-service -+ yn_img_tool - 1.0.0.1-SNAPSHOT - szgqj-service - szgqj-service From 8889e38c2204427cde907ea9ec69eb17a545f7bc Mon Sep 17 00:00:00 2001 From: fl <3098731433@qq.com> Date: Tue, 1 Apr 2025 15:10:29 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E6=8B=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/imgTool/basic/vo/dto/ProDto.java | 122 ++++++++++++++++ .../bonus/imgTool/task/dao/ProPullDao.java | 18 +++ .../bonus/imgTool/task/job/ProPullTask.java | 83 +++++++++++ .../resources/mappers/basic/ProPullMapper.xml | 132 ++++++++++++++++++ 4 files changed, 355 insertions(+) create mode 100644 src/main/java/com/bonus/imgTool/basic/vo/dto/ProDto.java create mode 100644 src/main/java/com/bonus/imgTool/task/dao/ProPullDao.java create mode 100644 src/main/java/com/bonus/imgTool/task/job/ProPullTask.java create mode 100644 src/main/resources/mappers/basic/ProPullMapper.xml diff --git a/src/main/java/com/bonus/imgTool/basic/vo/dto/ProDto.java b/src/main/java/com/bonus/imgTool/basic/vo/dto/ProDto.java new file mode 100644 index 0000000..d314e0f --- /dev/null +++ b/src/main/java/com/bonus/imgTool/basic/vo/dto/ProDto.java @@ -0,0 +1,122 @@ +package com.bonus.imgTool.basic.vo.dto; + +import lombok.Data; + +/** + * @className:SelectDto + * @author:cwchen + * @date:2024-07-19-13:14 + * @version:1.0 + * @description:下拉选-dto + */ +@Data +public class ProDto { + + + /** + * 工程id + */ + private Long proId; + + /** + * 工程名称 + */ + private String proName; + + /** + * 简称 + */ + private String abbreviation; + + + /** + * 工程类型 + */ + private String proType; + + + /** + * 电压等级 + */ + private String voltageLevel; + + /** + * 公司名称 + */ + private String companyName; + + /** + * 工程地址 + */ + private String origin; + + /** + * 经度 + */ + private String lon; + + /** + * 纬度 + */ + private String lat; + + /** + * 工程状态 + */ + private String status; + + /** + * 修改时间 + */ + private String updateTime; + + + /** + * 是否可用 + */ + private Integer isActive; + + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ProDto)) return false; + ProDto proDto = (ProDto) o; + if (getProName() != null ? !getProName().equals(proDto.getProName()) : proDto.getProName() != null) + return false; + if (getAbbreviation() != null ? !getAbbreviation().equals(proDto.getAbbreviation()) : proDto.getAbbreviation() != null) + return false; + if (getProType() != null ? !getProType().equals(proDto.getProType()) : proDto.getProType() != null) + return false; + if (getVoltageLevel() != null ? !getVoltageLevel().equals(proDto.getVoltageLevel()) : proDto.getVoltageLevel() != null) + return false; + if (getCompanyName() != null ? !getCompanyName().equals(proDto.getCompanyName()) : proDto.getCompanyName() != null) + return false; + if (getOrigin() != null ? !getOrigin().equals(proDto.getOrigin()) : proDto.getOrigin() != null) + return false; + if (getLon() != null ? !getLon().equals(proDto.getLon()) : proDto.getLon() != null) + return false; + if (getLat() != null ? !getLat().equals(proDto.getLat()) : proDto.getLat() != null) + return false; + if (getStatus() != null ? !getStatus().equals(proDto.getStatus()) : proDto.getStatus() != null) + return false; + if (getUpdateTime() != null ? !getUpdateTime().equals(proDto.getUpdateTime()) : proDto.getUpdateTime() != null) + return false; + return getIsActive() != null ? getIsActive().equals(proDto.getIsActive()) : proDto.getIsActive() == null; + } + + public void update(ProDto source) { + this.setProName(source.getProName()); + this.setAbbreviation(source.getAbbreviation()); + this.setProType(source.getProType()); + this.setVoltageLevel(source.getVoltageLevel()); + this.setCompanyName(source.getCompanyName()); + this.setOrigin(source.getOrigin()); + this.setLon(source.getLon()); + this.setLat(source.getLat()); + this.setStatus(source.getStatus()); + this.setUpdateTime(source.getUpdateTime()); + this.setIsActive(source.getIsActive()); + } + +} diff --git a/src/main/java/com/bonus/imgTool/task/dao/ProPullDao.java b/src/main/java/com/bonus/imgTool/task/dao/ProPullDao.java new file mode 100644 index 0000000..1e4864b --- /dev/null +++ b/src/main/java/com/bonus/imgTool/task/dao/ProPullDao.java @@ -0,0 +1,18 @@ +package com.bonus.imgTool.task.dao; + +import com.bonus.imgTool.basic.vo.dto.ProDto; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface ProPullDao { + + List getProjectData(); + + List getImgProjectData(); + + void addProject(List list); + + void updateProject(ProDto imgProject); +} diff --git a/src/main/java/com/bonus/imgTool/task/job/ProPullTask.java b/src/main/java/com/bonus/imgTool/task/job/ProPullTask.java new file mode 100644 index 0000000..6f48e0b --- /dev/null +++ b/src/main/java/com/bonus/imgTool/task/job/ProPullTask.java @@ -0,0 +1,83 @@ +package com.bonus.imgTool.task.job; + +import cn.hutool.core.date.DateUtil; +import com.bonus.imgTool.basic.vo.dto.ProDto; +import com.bonus.imgTool.task.dao.ProPullDao; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author zys + * 考勤定时器 + */ +@Configuration +@EnableScheduling +@Slf4j +@EnableAsync +public class ProPullTask { + + @Resource + private ProPullDao dao; + + /** + * 拉取工程数据 + */ + @Scheduled(cron = "0 30 0 * * ?") + @Async + public void getAttTempDataTask() { + log.info("--------实名制工程数据拉取定时器开启------"); + //实名制工程 + List proList = dao.getProjectData(); + //影像系统工程 + List proImgList = dao.getImgProjectData(); + syncProjectData(proList, proImgList); + log.info("--------实名制工程数据拉取定时器完毕------"); + } + + // 假设 ProDto 类有一个方法叫做 update() 可以用来更新对象的数据 + public void syncProjectData(List proList, List proImgList) { + // 创建一个Map来快速查找proImgList中的元素 + Map imgProjectMap = new HashMap<>(); + for (ProDto imgProject : proImgList) { + imgProjectMap.put(imgProject.getProId(), imgProject); + } + // 遍历proList进行同步操作 + List addList = new ArrayList<>(); + for (ProDto project : proList) { + if (imgProjectMap.containsKey(project.getProId())) { + // 如果proId存在,比较并更新数据 + ProDto imgProject = imgProjectMap.get(project.getProId()); + if (!project.equals(imgProject)) { + project.update(imgProject); // 使用来自proImgList的数据更新project对象 + }else{ + // 相同的数据移出proImgList + imgProjectMap.remove(project.getProId()); + } + } else { + // 如果proId不存在于proImgList中,添加新项目 + addList.add(project); + + } + } + if (!addList.isEmpty()){ + dao.addProject(addList); + } + // 将proImgList中剩下的数据更新到数据库 + for (ProDto imgProject : imgProjectMap.values()) { + dao.updateProject(imgProject); + } + } + +} \ No newline at end of file diff --git a/src/main/resources/mappers/basic/ProPullMapper.xml b/src/main/resources/mappers/basic/ProPullMapper.xml new file mode 100644 index 0000000..0ac187d --- /dev/null +++ b/src/main/resources/mappers/basic/ProPullMapper.xml @@ -0,0 +1,132 @@ + + + + + + insert into tb_project ( + id, + `name`, + abbreviation, + pro_type, + voltage_level, + company_name, + origin, + lon, + lat, + `status`, + update_time, + is_active + ) + VALUES + + ( + #{item.proId}, + #{item.proName}, + #{item.abbreviation}, + #{item.proType}, + #{item.voltageLevel}, + #{item.companyName}, + #{item.origin}, + #{item.lon}, + #{item.lat}, + #{item.status}, + #{item.updateTime}, + #{item.isActive} + ) + + + + + update tb_project + + + `name` = #{proName}, + + + abbreviation = #{abbreviation}, + + + pro_type = #{proType}, + + + voltage_level = #{voltageLevel}, + + + company_name = #{companyName}, + + + project_address = #{origin}, + + + lon = #{lon}, + + + lat = #{lat}, + + + status = #{status} + + + update_time = #{updateTime}, + + + is_active = #{isActive} + + + WHERE + id = #{proId} + + + + + + +