|  |  | @ -0,0 +1,159 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | package com.glxp.api.task; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import cn.hutool.core.date.DateUtil; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.monitor.SysLogininforMapper; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.monitor.SysOperLogMapper; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.schedule.ScheduledDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.schedule.SystemParamConfigDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.sync.BasicDownloadDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.sync.BasicExportDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.system.SysErpLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.dao.thrsys.*; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.entity.system.ScheduledEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.req.system.ScheduledRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import lombok.extern.slf4j.Slf4j; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.springframework.scheduling.annotation.SchedulingConfigurer; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.springframework.scheduling.config.ScheduledTaskRegistrar; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.springframework.scheduling.support.CronTrigger; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.springframework.stereotype.Component; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import java.util.Date; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  * 清理日志定时任务 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | @Slf4j | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | @Component | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | public class CleanLogTask implements SchedulingConfigurer { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ScheduledDao scheduledDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private SystemParamConfigDao systemParamConfigDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private SysOperLogMapper sysOperLogMapper; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private SysLogininforMapper sysLogininforMapper; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrCorpExportLogDao thrCorpExportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrCorpImportLogDao thrCorpImportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrInvProductsExportLogDao thrInvProductsExportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrInvProductsImportLogDao thrInvProductsImportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrOrderExportLogDao thrOrderExportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrOrderImportLogDao thrOrderImportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrProductsExportLogDao thrProductsExportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private ThrProductsImportLogDao thrProductsImportLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private SysErpLogDao sysErpLogDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private BasicDownloadDao basicDownloadDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Resource | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private BasicExportDao basicExportDao; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         taskRegistrar.addTriggerTask(this::process, triggerContext -> { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ScheduledRequest scheduledRequest = new ScheduledRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             scheduledRequest.setCronName("clean_log_task"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             String cron = scheduledEntity.getCron(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (StrUtil.isBlank(cron)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 log.error("清理日志定时任务参数未配置"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return new CronTrigger(cron).nextExecutionTime(triggerContext); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         }); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private void process() { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //查询删除日志时间配置
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         String value = systemParamConfigDao.selectValueByParamKey("clean_log_days"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (StrUtil.isBlank(value)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             log.info("删除日志天数参数未配置,结束任务"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             int days = Integer.parseInt(value); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (days > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String date = DateUtil.offsetDay(new Date(), -days).toString("yyyy-MM-dd"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //查询系统日志删除是否开启
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String cleanSystemLogValue = systemParamConfigDao.selectValueByParamKey("clean_system_log"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if ("1".equals(cleanSystemLogValue)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     cleanSystemLog(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String cleanThrLogValue = systemParamConfigDao.selectValueByParamKey("clean_thr_log"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if ("1".equals(cleanThrLogValue)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     cleanThrLog(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String cleanSyncLogValue = systemParamConfigDao.selectValueByParamKey("clean_sync_log"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if ("1".equals(cleanSyncLogValue)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     cleanSyncLog(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 log.info("配置删除日志天数为0,不进行删除"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * 删除系统日志 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @param date 时间 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private void cleanSystemLog(String date) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除操作系统日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         sysOperLogMapper.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除系统访问日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         sysLogininforMapper.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * 删除第三方系统日志 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @param date 时间 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private void cleanThrLog(String date) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("删除第三方系统日志"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方往来单位导出日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrCorpExportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方往来单位导入日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrCorpImportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方库存产品导出日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrInvProductsExportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方库存产品导入日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrInvProductsImportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方单据导出日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrOrderExportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方单据导入日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrOrderImportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方产品导出日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrProductsExportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方产品导入日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         thrProductsImportLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除第三方接口服务日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         sysErpLogDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("第三方系统日志删除完成"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * 删除同步日志 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * @param date 时间 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private void cleanSyncLog(String date) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("开始删除同步日志"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除下载日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         basicDownloadDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //删除上传日志
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         basicExportDao.deleteByDate(date); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | } |