From e6d42c929290ac87af1c69c631bb034f3b41dbeb Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 27 Jun 2023 14:55:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E5=90=88=E5=90=8C=E6=AD=A5=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bir/controller/BirRoiRateController.java | 1 - .../service/impl/BirRoiRateServiceImpl.java | 1 - .../controller/BmsCostCenterController.java | 2 + .../bms/entity/vo/BmsSubjectTreeVo.java | 2 + .../modules/tbs/entity/TbsCostApply.java | 1 + .../service/impl/TbsActivityServiceImpl.java | 2 +- src/main/java/com/qs/serve/task/BitTask.java | 39 ++++++ src/main/java/com/qs/serve/task/HisTask.java | 1 - .../qs/serve/task/TaskActivityController.java | 121 ++++++++++++++++++ .../qs/serve/task/TaskPolicyController.java | 58 +++++++++ .../qs/serve/task/TaskSupplierController.java | 65 ++++++++++ .../qs/serve/task/TaskWechatController.java | 45 +++++++ .../mapper/tbs/TbsCostApplyMapper.xml | 12 +- 13 files changed, 340 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/qs/serve/task/BitTask.java create mode 100644 src/main/java/com/qs/serve/task/TaskActivityController.java create mode 100644 src/main/java/com/qs/serve/task/TaskPolicyController.java create mode 100644 src/main/java/com/qs/serve/task/TaskSupplierController.java create mode 100644 src/main/java/com/qs/serve/task/TaskWechatController.java diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java index f6faa936..be090deb 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirRoiRateController.java @@ -41,7 +41,6 @@ public class BirRoiRateController { * @return */ @GetMapping("/test22") - @Scheduled(cron="0 0 1 * * ?") public R getPage(){ //移除当年所有 int year = 2023; diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java index 0d0bfa6c..c02f5794 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java @@ -106,7 +106,6 @@ public class BirRoiRateServiceImpl extends ServiceImpl supplierCodeList = new ArrayList<>(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.ne(BmsSupplier::getId,supplierId); lqw.select(BmsSupplier::getId,BmsSupplier::getCode); if(loadType.equals(0)){ //0->客户 diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java index de74f4f6..7c983ffe 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java @@ -83,6 +83,8 @@ public class BmsCostCenterController { List centerIds = masterUsers.stream().map(BmsMasterUser::getTargetId).collect(Collectors.toList()); if(centerIds.size()>0){ + LambdaQueryWrapper centerLambdaQueryWrapper = new LambdaQueryWrapper<>(); + centerLambdaQueryWrapper.in(BmsCostCenter::getId,centerIds).or().eq(BmsCostCenter::getVisibleFlag,1); List costCenters = bmsCostCenterService.listByIds(centerIds); Map> listMap = costCenters.stream().collect(Collectors.groupingBy(BmsCostCenter::getLevel)); List list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSubjectTreeVo.java b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSubjectTreeVo.java index 51358e0f..9bc4359b 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSubjectTreeVo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSubjectTreeVo.java @@ -45,4 +45,6 @@ public class BmsSubjectTreeVo extends TreeNode { /** supplierId,编辑客户费用申请时,科目是否可选 */ private Integer apiSelectAble; + /** 是否进场费用 */ + private Integer slottingFlag; } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java index 7cdb9828..ee6a6c4b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java @@ -160,6 +160,7 @@ public class TbsCostApply implements Serializable { /** * 逾期结果(拼接,非持久化) + * 0=>未逾期、1=>已逾期、2=>即将逾期 */ @TableField(exist = false) LocalDate nowDate; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java index fc1176f8..c0360574 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java @@ -271,7 +271,7 @@ public class TbsActivityServiceImpl extends ServiceImpl rmLqw = new LambdaQueryWrapper<>(); + rmLqw.likeRight(BirBaseActivity::getKeyNum,year); + activityService.remove(rmLqw); + //重新生成记录 + for (int i = 0; i < 12; i++) { + activityService.buildReport(year,i+1); + } + } + +} diff --git a/src/main/java/com/qs/serve/task/HisTask.java b/src/main/java/com/qs/serve/task/HisTask.java index 5a89c223..cd34d466 100644 --- a/src/main/java/com/qs/serve/task/HisTask.java +++ b/src/main/java/com/qs/serve/task/HisTask.java @@ -53,7 +53,6 @@ public class HisTask { redisService.set(RedisCacheKeys.HIS_UPDATE,0); log.warn("======================执行同步完成,耗时[ {} 秒]======================",diff); } - } diff --git a/src/main/java/com/qs/serve/task/TaskActivityController.java b/src/main/java/com/qs/serve/task/TaskActivityController.java new file mode 100644 index 00000000..9b522b6a --- /dev/null +++ b/src/main/java/com/qs/serve/task/TaskActivityController.java @@ -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 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 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 preStartList = activityTemplateService.list(lqw); + if(CollectionUtil.isNotEmpty(preStartList)){ + preStartList.forEach(a->a.setTemplateState(1)); + activityTemplateService.updateBatchById(preStartList); + } + LambdaQueryWrapper 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 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 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); + } + +} diff --git a/src/main/java/com/qs/serve/task/TaskPolicyController.java b/src/main/java/com/qs/serve/task/TaskPolicyController.java new file mode 100644 index 00000000..67667176 --- /dev/null +++ b/src/main/java/com/qs/serve/task/TaskPolicyController.java @@ -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(); + } + +} diff --git a/src/main/java/com/qs/serve/task/TaskSupplierController.java b/src/main/java/com/qs/serve/task/TaskSupplierController.java new file mode 100644 index 00000000..0e5735e3 --- /dev/null +++ b/src/main/java/com/qs/serve/task/TaskSupplierController.java @@ -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(); + } + + + +} diff --git a/src/main/java/com/qs/serve/task/TaskWechatController.java b/src/main/java/com/qs/serve/task/TaskWechatController.java new file mode 100644 index 00000000..8a1b8b99 --- /dev/null +++ b/src/main/java/com/qs/serve/task/TaskWechatController.java @@ -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(); + } + + + +} diff --git a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml index f5a72b32..ec860b3f 100644 --- a/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml +++ b/src/main/resources/mapper/tbs/TbsCostApplyMapper.xml @@ -80,22 +80,22 @@ and `tbs_activity`.`del_flag` = 0 - and `tbs_activity`.`activity_state` = 0 + and `tbs_activity`.`activity_state` != 2 and `tbs_cost_apply`.`charge_state` = 2 - and `tbs_activity`.pre_check_date > #{query.nowDate} + and `tbs_activity`.pre_check_date >= #{query.nowDate} and `tbs_activity`.`del_flag` = 0 - and `tbs_activity`.`activity_state` = 0 + and `tbs_activity`.`activity_state` != 2 and `tbs_cost_apply`.`charge_state` = 2 - and `tbs_activity`.pre_check_date <= #{query.nowDate} + and `tbs_activity`.pre_check_date < #{query.nowDate} and `tbs_activity`.`del_flag` = 0 - and `tbs_activity`.`activity_state` = 0 + and `tbs_activity`.`activity_state` != 2 and `tbs_cost_apply`.`charge_state` = 2 and `tbs_activity`.pre_check_date >= #{query.startNowDate} - and `tbs_activity`.pre_check_date < #{query.nowDate} + and `tbs_activity`.pre_check_date <= #{query.nowDate}