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