13 changed files with 340 additions and 10 deletions
@ -0,0 +1,39 @@ |
|||||
|
package com.qs.serve.task; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.modules.bir.entity.BirBaseActivity; |
||||
|
import com.qs.serve.modules.bir.service.BirBaseActivityService; |
||||
|
import com.qs.serve.modules.bir.service.BirRoiRateService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.scheduling.annotation.Scheduled; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
/** |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/26 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Component |
||||
|
@AllArgsConstructor |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class BitTask { |
||||
|
|
||||
|
private BirBaseActivityService activityService; |
||||
|
|
||||
|
@Scheduled(cron="0 0 1 * * ?") |
||||
|
public void buildTempTable(){ |
||||
|
//移除当年所有
|
||||
|
int year = 2023; |
||||
|
LambdaQueryWrapper<BirBaseActivity> rmLqw = new LambdaQueryWrapper<>(); |
||||
|
rmLqw.likeRight(BirBaseActivity::getKeyNum,year); |
||||
|
activityService.remove(rmLqw); |
||||
|
//重新生成记录
|
||||
|
for (int i = 0; i < 12; i++) { |
||||
|
activityService.buildReport(year,i+1); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,121 @@ |
|||||
|
package com.qs.serve.task; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.common.util.AuthContextUtils; |
||||
|
import com.qs.serve.common.util.CollectionUtil; |
||||
|
import com.qs.serve.modules.bir.entity.BirBaseActivity; |
||||
|
import com.qs.serve.modules.bir.service.BirBaseActivityService; |
||||
|
import com.qs.serve.modules.tbs.common.TbsActivityState; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivity; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityService; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 【同步】 活动相关 |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/27 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/task/activity") |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class TaskActivityController { |
||||
|
|
||||
|
private final TbsActivityService activityService; |
||||
|
private final TbsActivityTemplateService activityTemplateService; |
||||
|
private final BirBaseActivityService birBaseActivityService; |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 同步费率底表记录 |
||||
|
* @param month 月份,不指定当前月 |
||||
|
* @param year 年份,不指定当前年 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("birActivity") |
||||
|
public R task1(Integer year,Integer month){ |
||||
|
//移除当年所有
|
||||
|
if(year==null){ |
||||
|
year = LocalDate.now().getYear(); |
||||
|
} |
||||
|
if(month==null){ |
||||
|
month = LocalDate.now().getMonthValue(); |
||||
|
syncYearMonthActivity(month, year); |
||||
|
}else { |
||||
|
syncYearMonthActivity(month, year); |
||||
|
} |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 每日更新过期的活动,过期则进行冻结 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("lockActivity") |
||||
|
public R task2(){ |
||||
|
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>(); |
||||
|
lqw.le(TbsActivity::getPreEndDate, LocalDate.now()); |
||||
|
lqw.eq(TbsActivity::getReopenFlag,0); |
||||
|
TbsActivity param = new TbsActivity(); |
||||
|
param.setActivityState(TbsActivityState.STATE_1_Baning); |
||||
|
activityService.update(param,lqw); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 启用和停用模板规则 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("startAndStopActivityTemplates") |
||||
|
public R task3(){ |
||||
|
LocalDateTime nowTime = LocalDateTime.now(); |
||||
|
LambdaQueryWrapper<TbsActivityTemplate> lqw = new LambdaQueryWrapper<>(); |
||||
|
lqw.select(TbsActivityTemplate::getId); |
||||
|
lqw.ge(TbsActivityTemplate::getStartTime,nowTime.with(LocalDateTime.MIN)); |
||||
|
lqw.le(TbsActivityTemplate::getStartTime,nowTime.with(LocalDateTime.MAX)); |
||||
|
lqw.eq(TbsActivityTemplate::getTemplateState,0); |
||||
|
List<TbsActivityTemplate> preStartList = activityTemplateService.list(lqw); |
||||
|
if(CollectionUtil.isNotEmpty(preStartList)){ |
||||
|
preStartList.forEach(a->a.setTemplateState(1)); |
||||
|
activityTemplateService.updateBatchById(preStartList); |
||||
|
} |
||||
|
LambdaQueryWrapper<TbsActivityTemplate> lqw2 = new LambdaQueryWrapper<>(); |
||||
|
lqw2.select(TbsActivityTemplate::getId); |
||||
|
lqw2.ge(TbsActivityTemplate::getEndTime,nowTime.with(LocalDateTime.MIN)); |
||||
|
lqw2.le(TbsActivityTemplate::getEndTime,nowTime.with(LocalDateTime.MAX)); |
||||
|
lqw2.eq(TbsActivityTemplate::getTemplateState,1); |
||||
|
List<TbsActivityTemplate> preCloseList = activityTemplateService.list(lqw2); |
||||
|
if(CollectionUtil.isNotEmpty(preCloseList)){ |
||||
|
preCloseList.forEach(a->a.setTemplateState(0)); |
||||
|
activityTemplateService.updateBatchById(preCloseList); |
||||
|
} |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
private void syncYearMonthActivity(Integer month, Integer year) { |
||||
|
LambdaQueryWrapper<BirBaseActivity> rmLqw = new LambdaQueryWrapper<>(); |
||||
|
if (month <10){ |
||||
|
rmLqw.eq(BirBaseActivity::getKeyNum, year +"0"+ month); |
||||
|
}else { |
||||
|
rmLqw.eq(BirBaseActivity::getKeyNum, year +""+ month); |
||||
|
} |
||||
|
birBaseActivityService.remove(rmLqw); |
||||
|
birBaseActivityService.buildReport(year, month); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,58 @@ |
|||||
|
package com.qs.serve.task; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.common.util.CollectionUtil; |
||||
|
import com.qs.serve.modules.bir.entity.BirBaseActivity; |
||||
|
import com.qs.serve.modules.bir.service.BirBaseActivityService; |
||||
|
import com.qs.serve.modules.tbs.common.TbsActivityState; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivity; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityService; |
||||
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 【同步】 政策相关 |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/27 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/task/policy") |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class TaskPolicyController { |
||||
|
|
||||
|
//TzcPolicyTask policyTask;
|
||||
|
|
||||
|
/** |
||||
|
* 根据销路通支付数据,和本系统政策匹对,并生成本系统核销及支付信息 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("loadXltPayment") |
||||
|
public R syncFromXltPolicyPayment(){ |
||||
|
//policyTask.syncFromXltPolicyPayment();
|
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 同步政策到销路通 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("syncPolicyToXlt") |
||||
|
public R syncPolicyToXlt(){ |
||||
|
//policyTask.syncPolicyToXlt();
|
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,65 @@ |
|||||
|
package com.qs.serve.task; |
||||
|
|
||||
|
import com.qs.serve.common.framework.redis.RedisService; |
||||
|
import com.qs.serve.common.model.consts.RedisCacheKeys; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.modules.his.service.HisUserSupplierTempService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.time.Duration; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.concurrent.TimeUnit; |
||||
|
|
||||
|
/** |
||||
|
* 【同步】 客户相关 |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/27 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/task/supplier") |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class TaskSupplierController { |
||||
|
|
||||
|
RedisService redisService; |
||||
|
HisUserSupplierTempService tempService; |
||||
|
|
||||
|
/** |
||||
|
* 通过客户底表 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("syncToTemp") |
||||
|
public R test(){ |
||||
|
Integer opt = redisService.getInteger(RedisCacheKeys.HIS_UPDATE); |
||||
|
log.warn("======================执行状态:"+opt+"======================"); |
||||
|
//设置默认值
|
||||
|
if (opt==null){ |
||||
|
redisService.set(RedisCacheKeys.HIS_UPDATE,0); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
//忽略状态
|
||||
|
if (opt==1){ |
||||
|
//执行同步
|
||||
|
log.warn("======================执行同步======================"); |
||||
|
LocalDateTime s1 = LocalDateTime.now(); |
||||
|
//防卡死,加入超时
|
||||
|
redisService.set(RedisCacheKeys.HIS_UPDATE,2,1, TimeUnit.HOURS); |
||||
|
tempService.reloadHis(); |
||||
|
LocalDateTime s2 = LocalDateTime.now(); |
||||
|
long diff = Duration.between(s1, s2).getSeconds(); |
||||
|
tempService.selectInfoHis(); |
||||
|
redisService.set(RedisCacheKeys.HIS_UPDATE,0); |
||||
|
log.warn("======================执行同步完成,耗时[ {} 秒]======================",diff); |
||||
|
} |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,45 @@ |
|||||
|
package com.qs.serve.task; |
||||
|
|
||||
|
import com.qs.serve.common.framework.redis.RedisService; |
||||
|
import com.qs.serve.common.model.consts.RedisCacheKeys; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.modules.his.service.HisUserSupplierTempService; |
||||
|
import com.qs.serve.modules.wx.service.WxUserService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.time.Duration; |
||||
|
import java.time.LocalDateTime; |
||||
|
import java.util.concurrent.TimeUnit; |
||||
|
|
||||
|
/** |
||||
|
* 【同步】 微信相关 |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/27 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/task/wechat") |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class TaskWechatController { |
||||
|
|
||||
|
private WxUserService wxUserService; |
||||
|
|
||||
|
/** |
||||
|
* 同步订阅用户流程 |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("syncSubscribe") |
||||
|
public R test(){ |
||||
|
wxUserService.syncSubscribe(); |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
Loading…
Reference in new issue