From ef75232c959807f5ac96488181a0c2e68f194e6d Mon Sep 17 00:00:00 2001 From: hanrenchun Date: Fri, 8 Dec 2023 16:23:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=89=E7=A8=B3,=E5=88=97=E7=AE=A1=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E6=B8=85=E6=B4=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/VLgryGjxxOracle.java | 59 +++++ .../mapper/TransitImpUserRecordMapper.java | 3 +- .../mapper/TransitImpVehicleRecordMapper.java | 3 +- .../mapper/VLgryGjxxOracleMapper.java | 30 +++ .../service/TransitImpUserRecordService.java | 3 +- .../TransitImpVehicleRecordService.java | 4 +- .../service/VLgryGjxxOracleService.java | 23 ++ .../impl/TransitImpUserRecordServiceImpl.java | 15 +- .../TransitImpVehicleRecordServiceImpl.java | 14 +- .../impl/VLgryGjxxOracleServiceImpl.java | 50 ++++ .../mysqloracletest/task/VLgryGjxxTask.java | 186 +++++++++++++++ .../mysqloracletest/task/VSwryGjxxTask.java | 224 ++++++++---------- .../mysqloracletest/utils/ConfigParam.java | 1 + src/main/resources/logback.xml | 2 +- .../mapper/TransitImpUserRecordMapper.xml | 40 ++++ .../mapper/TransitImpVehicleRecordMapper.xml | 40 ++++ .../mapper/VLgryGjxxOracleMapper.xml | 81 +++++++ 17 files changed, 649 insertions(+), 129 deletions(-) create mode 100644 src/main/java/com/ssf/mysqloracletest/domain/VLgryGjxxOracle.java create mode 100644 src/main/java/com/ssf/mysqloracletest/mapper/VLgryGjxxOracleMapper.java create mode 100644 src/main/java/com/ssf/mysqloracletest/service/VLgryGjxxOracleService.java create mode 100644 src/main/java/com/ssf/mysqloracletest/service/impl/VLgryGjxxOracleServiceImpl.java create mode 100644 src/main/java/com/ssf/mysqloracletest/task/VLgryGjxxTask.java create mode 100644 src/main/resources/mapper/TransitImpUserRecordMapper.xml create mode 100644 src/main/resources/mapper/TransitImpVehicleRecordMapper.xml create mode 100644 src/main/resources/mapper/VLgryGjxxOracleMapper.xml diff --git a/src/main/java/com/ssf/mysqloracletest/domain/VLgryGjxxOracle.java b/src/main/java/com/ssf/mysqloracletest/domain/VLgryGjxxOracle.java new file mode 100644 index 0000000..a73cf50 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/domain/VLgryGjxxOracle.java @@ -0,0 +1,59 @@ +package com.ssf.mysqloracletest.domain; + +import lombok.Data; + +@Data +public class VLgryGjxxOracle { + private String YJXXID; + private String YJLX; + private String HDFSSJ; + private String YJJDZB; + private String YJWDZB; + private String YJFBSJ; + private String PCZT; + private String YJDXLX; + private String YJDXMC; + private String YJDXHM; + private String KEY1; + private String VALUE1; + private String KEY2; + private String VALUE2; + private String KEY3; + private String VALUE3; + private String KEY4; + private String VALUE4; + private String KEY5; + private String VALUE5; + private String KEY6; + private String VALUE6; + private String KEY7; + private String VALUE7; + private String KEY8; + private String VALUE8; + private String KEY9; + private String VALUE9; + private String KEY10; + private String VALUE10; + private String KEY11; + private String VALUE11; + private String KEY12; + private String VALUE12; + private String KEY13; + private String VALUE13; + private String HDFSDD; + private String ZPDT; + private String ZPXT; + private String RXURL; + private String PCMS; + private String PCRXM; + private String PCRSFZH; + private String PCRDWDM; + private String PCRDWMC; + private String PCSJ; + private String HDFSDDDM; + private String KEY14; + private String VALUE14; + private String KEY15; + private String VALUE15; + +} diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpUserRecordMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpUserRecordMapper.java index 8c8ecf2..1fa9264 100644 --- a/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpUserRecordMapper.java +++ b/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpUserRecordMapper.java @@ -6,11 +6,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @author 28758 * @description 针对表【transit_imp_user_record(涉稳列管人员人脸抓拍记录表)】的数据库操作Mapper -* @createDate 2023-12-05 16:27:16 +* @createDate 2023-12-08 14:34:28 * @Entity com.ssf.mysqloracletest.domain.TransitImpUserRecord */ public interface TransitImpUserRecordMapper extends BaseMapper { + public TransitImpUserRecord selectMaxTime(String impUserTypeName); } diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpVehicleRecordMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpVehicleRecordMapper.java index 5a8636d..78267c4 100644 --- a/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpVehicleRecordMapper.java +++ b/src/main/java/com/ssf/mysqloracletest/mapper/TransitImpVehicleRecordMapper.java @@ -6,11 +6,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @author 28758 * @description 针对表【transit_imp_vehicle_record(重点人车辆记录表)】的数据库操作Mapper -* @createDate 2023-12-05 16:27:27 +* @createDate 2023-12-08 14:45:04 * @Entity com.ssf.mysqloracletest.domain.TransitImpVehicleRecord */ public interface TransitImpVehicleRecordMapper extends BaseMapper { + public TransitImpVehicleRecord selectMaxTime(String impUserTypeName); } diff --git a/src/main/java/com/ssf/mysqloracletest/mapper/VLgryGjxxOracleMapper.java b/src/main/java/com/ssf/mysqloracletest/mapper/VLgryGjxxOracleMapper.java new file mode 100644 index 0000000..207ad42 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/mapper/VLgryGjxxOracleMapper.java @@ -0,0 +1,30 @@ +package com.ssf.mysqloracletest.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ssf.mysqloracletest.domain.VLgryGjxxOracle; +import com.ssf.mysqloracletest.domain.VSwryGjxxOracle; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** +* @author 28758 +* @description 针对表【v_sy_sydw_cyry】的数据库操作Mapper +* @createDate 2023-11-29 20:30:59 +* @Entity com.ssf.mysqloracletest.domain.VSySydwCyry +*/ +@Mapper +public interface VLgryGjxxOracleMapper extends BaseMapper { + public int countLgry(); + + public List getLgryList(Map map); + + public List getLgryListByTime(Map map); + + public List getRealTimeRecording(String maxTime); +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/service/TransitImpUserRecordService.java b/src/main/java/com/ssf/mysqloracletest/service/TransitImpUserRecordService.java index 018b2b6..071ef10 100644 --- a/src/main/java/com/ssf/mysqloracletest/service/TransitImpUserRecordService.java +++ b/src/main/java/com/ssf/mysqloracletest/service/TransitImpUserRecordService.java @@ -6,8 +6,9 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @author 28758 * @description 针对表【transit_imp_user_record(涉稳列管人员人脸抓拍记录表)】的数据库操作Service -* @createDate 2023-12-05 16:27:16 +* @createDate 2023-12-08 14:34:28 */ public interface TransitImpUserRecordService extends IService { + public Long selectMaxTime(String impUserTypeName); } diff --git a/src/main/java/com/ssf/mysqloracletest/service/TransitImpVehicleRecordService.java b/src/main/java/com/ssf/mysqloracletest/service/TransitImpVehicleRecordService.java index bc6be31..97574a4 100644 --- a/src/main/java/com/ssf/mysqloracletest/service/TransitImpVehicleRecordService.java +++ b/src/main/java/com/ssf/mysqloracletest/service/TransitImpVehicleRecordService.java @@ -6,9 +6,9 @@ import com.baomidou.mybatisplus.extension.service.IService; /** * @author 28758 * @description 针对表【transit_imp_vehicle_record(重点人车辆记录表)】的数据库操作Service -* @createDate 2023-12-05 16:27:27 +* @createDate 2023-12-08 14:45:05 */ public interface TransitImpVehicleRecordService extends IService { - + public Long selectMaxTime(String impUserTypeName); } diff --git a/src/main/java/com/ssf/mysqloracletest/service/VLgryGjxxOracleService.java b/src/main/java/com/ssf/mysqloracletest/service/VLgryGjxxOracleService.java new file mode 100644 index 0000000..fcd7838 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/VLgryGjxxOracleService.java @@ -0,0 +1,23 @@ +package com.ssf.mysqloracletest.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ssf.mysqloracletest.domain.VLgryGjxxOracle; +import com.ssf.mysqloracletest.domain.VLgryGjxxOracle; + +import java.util.List; +import java.util.Map; + +/** +* @author 28758 +* @description 针对表【v_sy_sydw_Lgry】的数据库操作Service +* @createDate 2023-11-29 20:30:59 +*/ +public interface VLgryGjxxOracleService extends IService { + public int countLgry(); + + public List getLgryList(Map map); + + public List getLgryListByTime(Map map); + + public List getRealTimeRecording(String maxTime); +} diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpUserRecordServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpUserRecordServiceImpl.java index 9585f6d..557837d 100644 --- a/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpUserRecordServiceImpl.java +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpUserRecordServiceImpl.java @@ -1,20 +1,33 @@ package com.ssf.mysqloracletest.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ssf.mysqloracletest.domain.TransitImpUserRecord; import com.ssf.mysqloracletest.service.TransitImpUserRecordService; import com.ssf.mysqloracletest.mapper.TransitImpUserRecordMapper; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; /** * @author 28758 * @description 针对表【transit_imp_user_record(涉稳列管人员人脸抓拍记录表)】的数据库操作Service实现 -* @createDate 2023-12-05 16:27:16 +* @createDate 2023-12-08 14:34:28 */ @Service +@DS("mysql") +@RequiredArgsConstructor public class TransitImpUserRecordServiceImpl extends ServiceImpl implements TransitImpUserRecordService{ + private final TransitImpUserRecordMapper mapper; + + + public Long selectMaxTime(String impUserTypeName){ + if (mapper.selectMaxTime(impUserTypeName) == null){ + return null; + } + return mapper.selectMaxTime(impUserTypeName).getPassTime(); + } } diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpVehicleRecordServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpVehicleRecordServiceImpl.java index a692d75..56536bf 100644 --- a/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpVehicleRecordServiceImpl.java +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/TransitImpVehicleRecordServiceImpl.java @@ -1,20 +1,32 @@ package com.ssf.mysqloracletest.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ssf.mysqloracletest.domain.TransitImpVehicleRecord; import com.ssf.mysqloracletest.service.TransitImpVehicleRecordService; import com.ssf.mysqloracletest.mapper.TransitImpVehicleRecordMapper; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; /** * @author 28758 * @description 针对表【transit_imp_vehicle_record(重点人车辆记录表)】的数据库操作Service实现 -* @createDate 2023-12-05 16:27:27 +* @createDate 2023-12-08 14:45:05 */ @Service +@DS("mysql") +@RequiredArgsConstructor public class TransitImpVehicleRecordServiceImpl extends ServiceImpl implements TransitImpVehicleRecordService{ +private final TransitImpVehicleRecordMapper mapper; + + public Long selectMaxTime(String impUserTypeName){ + if (mapper.selectMaxTime(impUserTypeName) == null){ + return null; + } + return mapper.selectMaxTime(impUserTypeName).getPassTime(); + } } diff --git a/src/main/java/com/ssf/mysqloracletest/service/impl/VLgryGjxxOracleServiceImpl.java b/src/main/java/com/ssf/mysqloracletest/service/impl/VLgryGjxxOracleServiceImpl.java new file mode 100644 index 0000000..6e051c6 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/service/impl/VLgryGjxxOracleServiceImpl.java @@ -0,0 +1,50 @@ +package com.ssf.mysqloracletest.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ssf.mysqloracletest.domain.VLgryGjxxOracle; +import com.ssf.mysqloracletest.mapper.VLgryGjxxOracleMapper; +import com.ssf.mysqloracletest.service.VLgryGjxxOracleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +/** +* @author 28758 +* @description 针对表【Lgry】的数据库操作Service实现 +* @createDate 2023-11-29 20:30:59 +*/ +@Service +@DS("oracleSydz") +public class VLgryGjxxOracleServiceImpl extends ServiceImpl + implements VLgryGjxxOracleService { + + @Resource + private VLgryGjxxOracleMapper oracleMapper; + + @Override + public int countLgry() { + return oracleMapper.countLgry(); + } + + @Override + public List getLgryList(Map map) { + return oracleMapper.getLgryList(map); + } + + @Override + public List getLgryListByTime(Map map) { + return oracleMapper.getLgryListByTime(map); + } + + @Override + public List getRealTimeRecording(String time) { + return oracleMapper.getRealTimeRecording(time); + } +} + + + + diff --git a/src/main/java/com/ssf/mysqloracletest/task/VLgryGjxxTask.java b/src/main/java/com/ssf/mysqloracletest/task/VLgryGjxxTask.java new file mode 100644 index 0000000..a5b8e92 --- /dev/null +++ b/src/main/java/com/ssf/mysqloracletest/task/VLgryGjxxTask.java @@ -0,0 +1,186 @@ +package com.ssf.mysqloracletest.task; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.ssf.mysqloracletest.domain.TransitImpUserRecord; +import com.ssf.mysqloracletest.domain.TransitImpVehicleRecord; +import com.ssf.mysqloracletest.domain.VLgryGjxxOracle; +import com.ssf.mysqloracletest.service.TransitImpUserRecordService; +import com.ssf.mysqloracletest.service.TransitImpVehicleRecordService; +import com.ssf.mysqloracletest.service.VLgryGjxxOracleService; +import com.ssf.mysqloracletest.utils.ConfigParam; +import com.ssf.mysqloracletest.utils.NumKit; +import com.ssf.mysqloracletest.utils.StringKit; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * 用户数据接入 + */ +@Component +@RequiredArgsConstructor +public class VLgryGjxxTask { + + private static final Logger logger = LoggerFactory.getLogger(VLgryGjxxTask.class); + + + String pattern = "yyyyMMddHHmmss"; + + SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); + + private final VLgryGjxxOracleService vLgryGjxxOracleService; + + private final TransitImpUserRecordService transitImpUserRecordService; + + private final TransitImpVehicleRecordService transitImpVehicleRecordService; + + /** + * 连云港 对接海康平台获取人员基础数据 + * // + */ + @Scheduled(initialDelay = 100, fixedDelay = 3000) + public void translgry() { + + if (!"true".equals(ConfigParam.LgrySwitch)) { + return; + } + + + try { + long currentTimeMillis = System.currentTimeMillis(); + // Convert long to DateTime + DateTime currentDateTime = DateUtil.date(currentTimeMillis); + String currentFormattedDate = null; + Long maxTime1 = transitImpVehicleRecordService.selectMaxTime("列管人员"); + Long maxTime = transitImpUserRecordService.selectMaxTime("列管人员"); + if (maxTime1 == null && maxTime == null) { + // 获取当前时间的格式化字符串 + currentFormattedDate = currentDateTime.toString("yyyyMMddHHmmss"); + System.out.println("Current Formatted Date: " + currentFormattedDate); + } else { + if (maxTime1 <= maxTime) { + currentFormattedDate = maxTime1.toString(); + } else { + currentFormattedDate = maxTime.toString(); + } + System.out.println("库中的最大时间" + currentFormattedDate); + } + System.out.println("最大时间" + currentFormattedDate); + // 获取1年后的时间 + DateTime oneYearLaterDateTime = currentDateTime.offset(DateField.YEAR, 1); + String oneYearLaterFormattedDate = oneYearLaterDateTime.toString("yyyyMMddHHmmss"); + System.out.println("1 Year Later Formatted Date: " + oneYearLaterFormattedDate); + Map lgryMap = new HashMap(); + lgryMap.put("maxTime", currentFormattedDate); + lgryMap.put("minTime", oneYearLaterFormattedDate); + List list = vLgryGjxxOracleService.getLgryListByTime(lgryMap); + CountDownLatch latch = new CountDownLatch(list.size()); + ExecutorService LgryPool = Executors.newFixedThreadPool(5); + LgryPool.submit(() -> { + try { + for (VLgryGjxxOracle lgry : list) { + if ("10".equals(lgry.getYJLX())) { + TransitImpVehicleRecord transitImpVehicleRecord = new TransitImpVehicleRecord(); + transitImpVehicleRecord.setDeviceCode(lgry.getHDFSDDDM()); + transitImpVehicleRecord.setLongitude(NumKit.checkBigDecimal(lgry.getYJJDZB())); + transitImpVehicleRecord.setLatitude(NumKit.checkBigDecimal(lgry.getYJWDZB())); + transitImpVehicleRecord.setDeviceAddress(lgry.getHDFSDD()); + transitImpVehicleRecord.setOrientation(lgry.getVALUE7()); + transitImpVehicleRecord.setPlateNo(lgry.getVALUE2()); + transitImpVehicleRecord.setGlobalPic(lgry.getZPDT()); + transitImpVehicleRecord.setPlatePic(lgry.getZPXT()); + transitImpVehicleRecord.setUserPic(lgry.getRXURL()); + transitImpVehicleRecord.setOwnerName(lgry.getYJDXMC()); + transitImpVehicleRecord.setIdCard(lgry.getYJDXHM()); + transitImpVehicleRecord.setPassTime(NumKit.checkLong(lgry.getYJFBSJ())); + transitImpVehicleRecord.setPartitionField(dateFormat.parse(lgry.getYJFBSJ())); + transitImpVehicleRecord.setPoliceStationName(lgry.getVALUE8()); + transitImpVehicleRecord.setControlBasis(lgry.getVALUE9()); + transitImpVehicleRecord.setControlBasisNotes(lgry.getVALUE10()); + transitImpVehicleRecord.setImpUserTypeName("列管人员"); + TransitImpVehicleRecord one = transitImpVehicleRecordService.lambdaQuery().eq(TransitImpVehicleRecord::getGlobalPic, lgry.getZPDT()).one(); + if (one == null) { + boolean save = transitImpVehicleRecordService.save(transitImpVehicleRecord); + if (save) { + logger.info("Lgry-" + lgry.getYJXXID() + ":插入成功"); + } + } else { + UpdateWrapper transitImpVehicleRecordUpdateWrapper = new UpdateWrapper<>(); + transitImpVehicleRecordUpdateWrapper.eq("global_pic", lgry.getZPDT()); + boolean update = transitImpVehicleRecordService.update(transitImpVehicleRecord, transitImpVehicleRecordUpdateWrapper); + if (update) { + logger.info("Lgry-" + lgry.getYJXXID() + ":更新成功"); + } + } + } + if ("09".equals(lgry.getYJLX())) { + TransitImpUserRecord transitImpUserRecord = new TransitImpUserRecord(); + transitImpUserRecord.setDeviceCode(lgry.getHDFSDDDM()); + transitImpUserRecord.setLongitude(NumKit.checkBigDecimal(lgry.getYJJDZB())); + transitImpUserRecord.setLatitude(NumKit.checkBigDecimal(lgry.getYJWDZB())); + transitImpUserRecord.setDeviceAddress(lgry.getHDFSDD()); + transitImpUserRecord.setGlobalPic(lgry.getZPDT()); + transitImpUserRecord.setUserPic(lgry.getZPXT()); + transitImpUserRecord.setSimilarity(lgry.getVALUE2()); + transitImpUserRecord.setOwnerName(lgry.getYJDXMC()); + transitImpUserRecord.setIdCard(lgry.getYJDXHM()); + transitImpUserRecord.setPassTime(NumKit.checkLong(lgry.getYJFBSJ())); + transitImpUserRecord.setPartitionField(dateFormat.parse(lgry.getYJFBSJ())); + transitImpUserRecord.setPoliceStationName(lgry.getVALUE8()); + transitImpUserRecord.setControlBasis(lgry.getVALUE9()); + transitImpUserRecord.setControlBasisNotes(lgry.getVALUE10()); + transitImpUserRecord.setImpUserTypeName("列管人员"); + TransitImpUserRecord one = transitImpUserRecordService.lambdaQuery().eq(TransitImpUserRecord::getGlobalPic, lgry.getZPDT()).one(); + if (one == null) { + boolean save = transitImpUserRecordService.save(transitImpUserRecord); + if (save) { + logger.info("Lgry-" + lgry.getYJXXID() + ":插入成功"); + } + } else { + UpdateWrapper transitImpUserRecordUpdateWrapper = new UpdateWrapper<>(); + transitImpUserRecordUpdateWrapper.eq("global_pic", lgry.getZPDT()); + boolean update = transitImpUserRecordService.update(transitImpUserRecord, transitImpUserRecordUpdateWrapper); + if (update) { + logger.info("Lgry-" + lgry.getYJXXID() + ":更新成功"); + } + } + + } + + } + } catch (Exception e) { + logger.info("Lgrys:" + StringKit.getTrace(e)); + } + latch.countDown(); + }); + + try { + // Wait for all threads to complete + latch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 关闭线程池 + LgryPool.shutdown(); + + } catch ( + Exception e) { + logger.info(StringKit.getTrace(e)); + } + } + + +} diff --git a/src/main/java/com/ssf/mysqloracletest/task/VSwryGjxxTask.java b/src/main/java/com/ssf/mysqloracletest/task/VSwryGjxxTask.java index 583c7f3..09f4ebf 100644 --- a/src/main/java/com/ssf/mysqloracletest/task/VSwryGjxxTask.java +++ b/src/main/java/com/ssf/mysqloracletest/task/VSwryGjxxTask.java @@ -41,17 +41,12 @@ public class VSwryGjxxTask { SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); - private final VSySwryGjxxOracleService vSySwryGjxxOracleService; private final TransitImpUserRecordService transitImpUserRecordService; private final TransitImpVehicleRecordService transitImpVehicleRecordService; - final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts); - - private boolean SwryTag = false; - /** * 连云港 对接海康平台获取人员基础数据 * // @@ -59,139 +54,126 @@ public class VSwryGjxxTask { @Scheduled(initialDelay = 100, fixedDelay = 3000) public void transSwry() { - if (SwryTag) { - return; - } - if (!"true".equals(ConfigParam.SwrySwitch)) { return; } try { - int countSwry = vSySwryGjxxOracleService.countSwry(); - logger.info("countSwry:" + countSwry); - - logger.info("countSwry:" + countSwry); - if (countSwry > 0) { - - SwryTag = true; - - int count = countSwry / oncesCounts; - CountDownLatch latch = new CountDownLatch(count); - ExecutorService SwryPool = Executors.newFixedThreadPool(50); - - for (int i = 0; i <= count; i++) { - Map SwryMap = new HashMap(); - SwryMap.put("rowStart", i * oncesCounts); - SwryMap.put("rowEnd", (i + 1) * oncesCounts); - SwryPool.submit(() -> { - try { - List Swrys = vSySwryGjxxOracleService.getSwryList(SwryMap); - for (VSwryGjxxOracle swry : Swrys) { - if ("02".equals(swry.getGJLX())) { - TransitImpVehicleRecord transitImpVehicleRecord = new TransitImpVehicleRecord(); - transitImpVehicleRecord.setDeviceCode(swry.getVALUE3()); - transitImpVehicleRecord.setLongitude(NumKit.checkBigDecimal(swry.getJDZB())); - transitImpVehicleRecord.setLatitude(NumKit.checkBigDecimal(swry.getWDZB())); - transitImpVehicleRecord.setDeviceAddress(swry.getVALUE1()); - transitImpVehicleRecord.setPlateNo(swry.getVALUE2()); - transitImpVehicleRecord.setGlobalPic(swry.getVALUE5()); - transitImpVehicleRecord.setPlatePic(swry.getVALUE4()); - transitImpVehicleRecord.setOwnerName(swry.getZDRYXM()); - transitImpVehicleRecord.setIdCard(swry.getZDRYSFZH()); - transitImpVehicleRecord.setPassTime(NumKit.checkLong(swry.getRYWKSJ())); - transitImpVehicleRecord.setPartitionField(dateFormat.parse(swry.getRYWKSJ())); - TransitImpVehicleRecord one = transitImpVehicleRecordService.lambdaQuery().eq(TransitImpVehicleRecord::getGlobalPic, swry.getVALUE5()).one(); - if (one == null) { - boolean save = transitImpVehicleRecordService.save(transitImpVehicleRecord); - if (save) { - logger.info("Swry-" + swry.getGJXXID() + ":插入成功"); - } - } else { - UpdateWrapper transitImpVehicleRecordUpdateWrapper = new UpdateWrapper<>(); - transitImpVehicleRecordUpdateWrapper.eq("global_pic", swry.getVALUE5()); - boolean update = transitImpVehicleRecordService.update(transitImpVehicleRecord, transitImpVehicleRecordUpdateWrapper); - if (update) { - logger.info("Swry-" + swry.getGJXXID() + ":更新成功"); - } - } + long currentTimeMillis = System.currentTimeMillis(); + // Convert long to DateTime + DateTime currentDateTime = DateUtil.date(currentTimeMillis); + String currentFormattedDate = null; + Long maxTime1 = transitImpVehicleRecordService.selectMaxTime("涉稳人员"); + Long maxTime = transitImpUserRecordService.selectMaxTime("涉稳人员"); + if (maxTime1 == null && maxTime == null) { + // 获取当前时间的格式化字符串 + currentFormattedDate = currentDateTime.toString("yyyyMMddHHmmss"); + System.out.println("Current Formatted Date: " + currentFormattedDate); + } else { + if (maxTime1 <= maxTime) { + currentFormattedDate = maxTime1.toString(); + } else { + currentFormattedDate = maxTime.toString(); + } + System.out.println("库中的最大时间" + currentFormattedDate); + } + System.out.println("最大时间" + currentFormattedDate); + // 获取1年后的时间 + DateTime oneYearLaterDateTime = currentDateTime.offset(DateField.YEAR, 1); + String oneYearLaterFormattedDate = oneYearLaterDateTime.toString("yyyyMMddHHmmss"); + System.out.println("1 Year Later Formatted Date: " + oneYearLaterFormattedDate); + Map SwryMap = new HashMap(); + SwryMap.put("maxTime", currentFormattedDate); + SwryMap.put("minTime", oneYearLaterFormattedDate); + List Swrys = vSySwryGjxxOracleService.getSwryListByTime(SwryMap); + CountDownLatch latch = new CountDownLatch(Swrys.size()); + ExecutorService SwryPool = Executors.newFixedThreadPool(5); + SwryPool.submit(() -> { + try { + for (VSwryGjxxOracle swry : Swrys) { + if ("02".equals(swry.getGJLX())) { + TransitImpVehicleRecord transitImpVehicleRecord = new TransitImpVehicleRecord(); + transitImpVehicleRecord.setDeviceCode(swry.getVALUE3()); + transitImpVehicleRecord.setLongitude(NumKit.checkBigDecimal(swry.getJDZB())); + transitImpVehicleRecord.setLatitude(NumKit.checkBigDecimal(swry.getWDZB())); + transitImpVehicleRecord.setDeviceAddress(swry.getVALUE1()); + transitImpVehicleRecord.setPlateNo(swry.getVALUE2()); + transitImpVehicleRecord.setGlobalPic(swry.getVALUE5()); + transitImpVehicleRecord.setPlatePic(swry.getVALUE4()); + transitImpVehicleRecord.setOwnerName(swry.getZDRYXM()); + transitImpVehicleRecord.setIdCard(swry.getZDRYSFZH()); + transitImpVehicleRecord.setPassTime(NumKit.checkLong(swry.getGJSJ())); + transitImpVehicleRecord.setPartitionField(dateFormat.parse(swry.getGJSJ())); + transitImpVehicleRecord.setImpUserTypeName("涉稳人员"); + TransitImpVehicleRecord one = transitImpVehicleRecordService.lambdaQuery().eq(TransitImpVehicleRecord::getGlobalPic, swry.getVALUE5()).one(); + if (one == null) { + boolean save = transitImpVehicleRecordService.save(transitImpVehicleRecord); + if (save) { + logger.info("Swry-" + swry.getGJXXID() + ":插入成功"); } - if ("03".equals(swry.getGJSJ())) { - TransitImpUserRecord transitImpUserRecord = new TransitImpUserRecord(); - transitImpUserRecord.setDeviceCode(swry.getVALUE6()); - transitImpUserRecord.setLongitude(NumKit.checkBigDecimal(swry.getJDZB())); - transitImpUserRecord.setLatitude(NumKit.checkBigDecimal(swry.getWDZB())); - transitImpUserRecord.setDeviceAddress(swry.getVALUE1()); - transitImpUserRecord.setGlobalPic(swry.getVALUE4()); - transitImpUserRecord.setUserPic(swry.getVALUE3()); - transitImpUserRecord.setSimilarity(swry.getVALUE2()); - transitImpUserRecord.setOwnerName(swry.getZDRYXM()); - transitImpUserRecord.setIdCard(swry.getZDRYSFZH()); - transitImpUserRecord.setPassTime(NumKit.checkLong(swry.getRYWKSJ())); - transitImpUserRecord.setPartitionField(dateFormat.parse(swry.getRYWKSJ())); - TransitImpUserRecord one = transitImpUserRecordService.lambdaQuery().eq(TransitImpUserRecord::getGlobalPic, swry.getVALUE4()).one(); - if (one == null) { - boolean save = transitImpUserRecordService.save(transitImpUserRecord); - if (save) { - logger.info("Swry-" + swry.getGJXXID() + ":插入成功"); - } - } else { - UpdateWrapper transitImpUserRecordUpdateWrapper = new UpdateWrapper<>(); - transitImpUserRecordUpdateWrapper.eq("global_pic", swry.getVALUE4()); - boolean update = transitImpUserRecordService.update(transitImpUserRecord, transitImpUserRecordUpdateWrapper); - if (update) { - logger.info("Swry-" + swry.getGJXXID() + ":更新成功"); - } - } - + } else { + UpdateWrapper transitImpVehicleRecordUpdateWrapper = new UpdateWrapper<>(); + transitImpVehicleRecordUpdateWrapper.eq("global_pic", swry.getVALUE5()); + boolean update = transitImpVehicleRecordService.update(transitImpVehicleRecord, transitImpVehicleRecordUpdateWrapper); + if (update) { + logger.info("Swry-" + swry.getGJXXID() + ":更新成功"); } - } - } catch (Exception e) { - logger.info("Swrys:" + StringKit.getTrace(e)); } - latch.countDown(); - }); - logger.info("SwryMap数据总量:" + countSwry + "," + "当前处理下标:" + SwryMap.get("rowStart") + "/" + SwryMap.get("rowEnd")); - } + if ("03".equals(swry.getGJLX())) { + TransitImpUserRecord transitImpUserRecord = new TransitImpUserRecord(); + transitImpUserRecord.setDeviceCode(swry.getVALUE6()); + transitImpUserRecord.setLongitude(NumKit.checkBigDecimal(swry.getJDZB())); + transitImpUserRecord.setLatitude(NumKit.checkBigDecimal(swry.getWDZB())); + transitImpUserRecord.setDeviceAddress(swry.getVALUE1()); + transitImpUserRecord.setGlobalPic(swry.getVALUE4()); + transitImpUserRecord.setUserPic(swry.getVALUE3()); + transitImpUserRecord.setSimilarity(swry.getVALUE2()); + transitImpUserRecord.setOwnerName(swry.getZDRYXM()); + transitImpUserRecord.setIdCard(swry.getZDRYSFZH()); + transitImpUserRecord.setPassTime(NumKit.checkLong(swry.getGJSJ())); + transitImpUserRecord.setPartitionField(dateFormat.parse(swry.getGJSJ())); + transitImpUserRecord.setImpUserTypeName("涉稳人员"); + TransitImpUserRecord one = transitImpUserRecordService.lambdaQuery().eq(TransitImpUserRecord::getGlobalPic, swry.getVALUE4()).one(); + if (one == null) { + boolean save = transitImpUserRecordService.save(transitImpUserRecord); + if (save) { + logger.info("Swry-" + swry.getGJXXID() + ":插入成功"); + } + } else { + UpdateWrapper transitImpUserRecordUpdateWrapper = new UpdateWrapper<>(); + transitImpUserRecordUpdateWrapper.eq("global_pic", swry.getVALUE4()); + boolean update = transitImpUserRecordService.update(transitImpUserRecord, transitImpUserRecordUpdateWrapper); + if (update) { + logger.info("Swry-" + swry.getGJXXID() + ":更新成功"); + } + } - try { - // Wait for all threads to complete - latch.await(); - } catch (InterruptedException e) { - e.printStackTrace(); + } + + } + } catch (Exception e) { + logger.info("Swrys:" + StringKit.getTrace(e)); } - // 关闭线程池 - SwryPool.shutdown(); + latch.countDown(); + }); + + try { + // Wait for all threads to complete + latch.await(); + } catch (InterruptedException e) { + e.printStackTrace(); } + // 关闭线程池 + SwryPool.shutdown(); - } catch (Exception e) { + + } catch ( + Exception e) { logger.info(StringKit.getTrace(e)); } } - - public static void main(String[] args) { - - //首先从数据库取记录里面的最大时间 - //取到了之后 查询的时候 >最大时间 <当前时间一年之后的时间 - - long currentTimeMillis = System.currentTimeMillis(); - // Convert long to DateTime - DateTime currentDateTime = DateUtil.date(currentTimeMillis); - - // 获取当前时间的格式化字符串 - String currentFormattedDate = currentDateTime.toString("yyyyMMddHHmmss"); - System.out.println("Current Formatted Date: " + currentFormattedDate); - - // 获取1年后的时间 - DateTime oneYearLaterDateTime = currentDateTime.offset(DateField.YEAR, 1); - String oneYearLaterFormattedDate = oneYearLaterDateTime.toString("yyyyMMddHHmmss"); - System.out.println("1 Year Later Formatted Date: " + oneYearLaterFormattedDate); - - - } - } diff --git a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java index 529159a..21785ab 100644 --- a/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java +++ b/src/main/java/com/ssf/mysqloracletest/utils/ConfigParam.java @@ -15,6 +15,7 @@ public class ConfigParam { public static String syfwSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syfwSwitch")); public static String syrkSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("syrkSwitch")); public static String SwrySwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("SwrySwitch")); + public static String LgrySwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("LgrySwitch")); public static String jksbSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("jksbSwitch")); public static String cjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("cjxxSwitch")); diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 5aefe11..7f8efdb 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/src/main/resources/mapper/TransitImpUserRecordMapper.xml b/src/main/resources/mapper/TransitImpUserRecordMapper.xml new file mode 100644 index 0000000..cb37e4c --- /dev/null +++ b/src/main/resources/mapper/TransitImpUserRecordMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/mapper/TransitImpVehicleRecordMapper.xml b/src/main/resources/mapper/TransitImpVehicleRecordMapper.xml new file mode 100644 index 0000000..6aeec45 --- /dev/null +++ b/src/main/resources/mapper/TransitImpVehicleRecordMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/mapper/VLgryGjxxOracleMapper.xml b/src/main/resources/mapper/VLgryGjxxOracleMapper.xml new file mode 100644 index 0000000..33ffa12 --- /dev/null +++ b/src/main/resources/mapper/VLgryGjxxOracleMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +