From 0fe6cc1996a8edfc93f86728da58d2a1894110de Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期一, 08 四月 2024 10:16:43 +0800 Subject: [PATCH] 更新 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java | 39 ++++++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java | 18 ++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java | 26 ++++++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/TransferTableDataJob.java | 91 ++++++++++++++++++++++++++++++ 4 files changed, 171 insertions(+), 3 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/TransferTableDataJob.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/TransferTableDataJob.java new file mode 100644 index 0000000..bed9ddd --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/TransferTableDataJob.java @@ -0,0 +1,91 @@ +package org.jeecg.modules.mdc.job; + +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.mdc.entity.Equipment; +import org.jeecg.modules.mdc.service.IEquipmentService; +import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.mdc.util.ThrowableUtil; +import org.jeecg.modules.quartz.entity.QuartzJob; +import org.jeecg.modules.quartz.entity.SysQuartzLog; +import org.jeecg.modules.quartz.service.IQuartzJobService; +import org.jeecg.modules.quartz.service.ISysQuartzLogService; +import org.jeecg.modules.system.service.ISysAnnouncementService; +import org.quartz.*; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * @Description 鏁版嵁杩佺Щ浠诲姟 + * @author Lius + * @date 2024/4/3 10:39 + */ +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +@Slf4j +public class TransferTableDataJob implements Job { + + @Resource + private ISysQuartzLogService sysQuartzLogService; + + @Resource + private IQuartzJobService quartzJobService; + + @Resource + private ISysAnnouncementService sysAnnouncementService; + + @Resource + private IEquipmentService equipmentService; + + @Override + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + SysQuartzLog quartzLog = new SysQuartzLog(); + quartzLog.setCreateTime(new Date()); + List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName()); + if (byJobClassName != null && !byJobClassName.isEmpty()) { + quartzLog.setJobId(byJobClassName.get(0).getId()); + } + log.info("鏁版嵁杩佺Щ浠诲姟 TransferTableDataJob start! 鏃堕棿:" + DateUtils.getNow()); + long startTime = System.currentTimeMillis(); + try { + List<Equipment> list = equipmentService.list(); + Equipment info = new Equipment(); + info.setSavetablename("EquipmentLog"); + list.add(info); + String day = DateUtils.format(DateUtils.plusTime(DateUtils.getNow(), -30), DateUtils.STR_DATE_TIME_SMALL); + for (Equipment equipment : list) { + if (StringUtils.isNotBlank(equipment.getSavetablename())) { + String tableName = equipmentService.checkTableExists(equipment.getSavetablename()); + if (StringUtils.isNotBlank(tableName)) { + String backupTableName = equipmentService.checkTableExists(equipment.getSavetablename() + "_backup"); + if (StringUtils.isNotBlank(backupTableName)) { + Integer num = equipmentService.checkTableDataNum(equipment.getSavetablename(), day); + if (num > 0) { + equipmentService.insertTableData(backupTableName, tableName, day); + equipmentService.deleteTableData(tableName, day); + } + } else { + //澶囦唤琛ㄤ笉瀛樺湪鍒涘缓澶囦唤琛ㄥ苟杩佺Щ鏁版嵁 + equipmentService.insertNoTableData(tableName + "_backup", tableName, day); + equipmentService.deleteTableData(tableName, day); + } + } + } + } + quartzLog.setIsSuccess(0); + } catch (Exception e) { + quartzLog.setIsSuccess(-1); + quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); + // 鍙戦�佹秷鎭�氱煡 + sysAnnouncementService.jobSendMessage("鏁版嵁杩佺Щ浠诲姟", quartzLog.getExceptionDetail()); + } + long endTime = System.currentTimeMillis(); + quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); + sysQuartzLogService.save(quartzLog); + } +} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java index 9a8c00f..5cdf91e 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentMapper.java @@ -1,6 +1,10 @@ package org.jeecg.modules.mdc.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.jeecg.modules.mdc.entity.Equipment; /** @@ -12,4 +16,18 @@ public interface EquipmentMapper extends BaseMapper<Equipment> { + @Select(" SELECT name FROM SysObjects Where XType='U' AND name = '${saveTableName}' ") + String checkTableExists(@Param("saveTableName") String saveTableName); + + @Select(" SELECT COUNT(CollectTime) num FROM ${saveTableName} WHERE CollectTime < '${day}' ") + Integer checkTableDataNum(@Param("saveTableName") String saveTableName, @Param("day") String day); + + @Insert(" INSERT INTO ${tableName} SELECT * FROM ${lastTableName} WHERE CollectTime < '${date}' ") + void insertTableData(@Param("tableName") String tableName, @Param("lastTableName") String lastTableName, @Param("date") String date); + + @Delete(" delete from ${tableName} where CollectTime < '${day}' ") + void deleteTableData(@Param("tableName") String saveTableName, @Param("day") String day); + + @Insert(" SELECT * INTO ${tableName} FROM ${lastTableName} WHERE CollectTime < '${date}' ") + void insertNoTableData(@Param("tableName") String tableName, @Param("lastTableName") String lastTableName, @Param("date") String date); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java index 02dbaa7..8dfe74b 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentService.java @@ -1,7 +1,7 @@ package org.jeecg.modules.mdc.service; -import org.jeecg.modules.mdc.entity.Equipment; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.mdc.entity.Equipment; /** * @Description: 閲囬泦璁惧琛� @@ -11,4 +11,41 @@ */ public interface IEquipmentService extends IService<Equipment> { + /** + * 鏍规嵁鏁版嵁琛ㄥ悕绉版煡璇㈡暟鎹〃鏄惁瀛樺湪 + * @param saveTableName + * @return + */ + String checkTableExists(String saveTableName); + + /** + * 鏌ヨ闇�澶囦唤鏁版嵁閲� + * @param saveTableName + * @param day + * @return + */ + Integer checkTableDataNum(String saveTableName, String day); + + /** + * 鏁版嵁杩佺Щ + * @param backupTableName + * @param tableName + * @param day + */ + void insertTableData(String backupTableName, String tableName, String day); + + /** + * 鍒犻櫎鍘熸暟鎹〃鏁版嵁 + * @param tableName + * @param day + */ + void deleteTableData(String tableName, String day); + + /** + * 鍒涘缓澶囦唤琛� + * @param backupTableName + * @param tableName + * @param day + */ + void insertNoTableData(String backupTableName, String tableName, String day); } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java index f6295e2..3db46bc 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentServiceImpl.java @@ -6,8 +6,6 @@ import org.jeecg.modules.mdc.service.IEquipmentService; import org.springframework.stereotype.Service; -import java.util.List; - /** * @Description: 閲囬泦璁惧琛� * @Author: liuS @@ -17,4 +15,28 @@ @Service public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment> implements IEquipmentService { + @Override + public String checkTableExists(String saveTableName) { + return this.baseMapper.checkTableExists(saveTableName); + } + + @Override + public Integer checkTableDataNum(String saveTableName, String day) { + return this.baseMapper.checkTableDataNum(saveTableName, day); + } + + @Override + public void insertTableData(String backupTableName, String tableName, String day) { + this.baseMapper.insertTableData(backupTableName, tableName, day); + } + + @Override + public void deleteTableData(String tableName, String day) { + this.baseMapper.deleteTableData(tableName, day); + } + + @Override + public void insertNoTableData(String backupTableName, String tableName, String day) { + this.baseMapper.insertNoTableData(backupTableName, tableName, day); + } } -- Gitblit v1.9.3