From 650f86e200ce075f1b5fae5e64863546f964e589 Mon Sep 17 00:00:00 2001 From: Yen Date: Wed, 22 May 2024 16:41:26 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=8B=A6=E6=88=AA=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BC=A0=E5=8F=82=E5=BC=82=E5=B8=B8=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=87=BA=E7=8E=B0=E8=B4=9F=E6=95=B0=20feat:=20?= =?UTF-8?q?=E6=8B=93=E5=B1=95=E4=BF=AE=E5=A4=8D=E9=87=8A=E6=94=BE=E8=B4=B9?= =?UTF-8?q?=E7=94=A8=E8=A1=A5=E5=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BirActivityCenterGoodsController.java | 6 +- .../impl/BirBaseActivityServiceImpl.java | 2 +- .../tbs/common/consts/ReleaseConst.java | 14 ++++ .../tbs/controller/TbsActivityController.java | 10 +++ .../serve/modules/tbs/entity/TbsActivity.java | 6 ++ .../modules/tbs/mapper/TbsActivityMapper.java | 15 ++++ .../TbsActivityApplicationService.java | 35 +++++++++ .../service/impl/TbsActivityServiceImpl.java | 12 +++- .../impl/VtbVerificationServiceImpl.java | 71 ++++++++++++------- 9 files changed, 144 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tbs/common/consts/ReleaseConst.java diff --git a/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java b/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java index 4d51c929..46776980 100644 --- a/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java +++ b/src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java @@ -34,6 +34,7 @@ import com.qs.serve.modules.tbs.entity.TbsActivityChannel; import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostBirLog; import com.qs.serve.modules.tbs.mapper.TbsActivityCenterGoodsMapper; +import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsCostBirLogMapper; import com.qs.serve.modules.tbs.service.TbsActivityChannelService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; @@ -67,6 +68,7 @@ public class BirActivityCenterGoodsController { private ProjectProperties projectProperties; private TbsCostBirLogMapper tbsCostBirLogMapper; private TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper; + private TbsActivityMapper tbsActivityMapper; @GetMapping("/toSyncBir") public R syncBir(Long costId){ @@ -90,9 +92,11 @@ public class BirActivityCenterGoodsController { @GetMapping("/toSyncBirToday") public R toSyncBirEcro2(){ //Long[] ids = new Long[]{301897L}; - Set ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds(); + List ids = tbsActivityMapper.selectReleaseCostIds(); + //Set ids = tbsActivityCenterGoodsMapper.selectUpdateCostApplyIds(); List errIds = new ArrayList<>(); for (Long id : ids) { + log.error("执行ID XXXX:{}",id); try { centerGoodsService.rebuildBir(Arrays.asList(id)); } catch (Exception e) { diff --git a/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java b/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java index b2131bcd..c64004fb 100644 --- a/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java @@ -52,7 +52,7 @@ public class BirBaseActivityServiceImpl extends ServiceImpl ids = activityList.stream().filter(a->a.getId()!=null) .map(TbsActivity::getId).collect(Collectors.toList()); LambdaQueryWrapper birBaseActivityLqw = new LambdaQueryWrapper<>(); - birBaseActivityLqw.in(BirBaseActivity::getActivityId,ids); + birBaseActivityLqw.in(BirBaseActivity::getCostApplyId,costId); super.baseMapper.delete(birBaseActivityLqw); LambdaQueryWrapper activityLqw = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/qs/serve/modules/tbs/common/consts/ReleaseConst.java b/src/main/java/com/qs/serve/modules/tbs/common/consts/ReleaseConst.java new file mode 100644 index 00000000..91aa4790 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tbs/common/consts/ReleaseConst.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.tbs.common.consts; + +/** + * @author YenHex + * @since 2024/5/22 + */ +public class ReleaseConst { + + /** + * 默认开启true,需要修复数据时打开false + */ + public static final boolean UseFilter = true; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java index de3f8b09..84de8b65 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java @@ -443,6 +443,16 @@ public class TbsActivityController { return R.ok(); } + /** + * 释放活动费用 + * @return + */ + @PostMapping("/compenstateRelease") + @SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.DELETE) + public R release(){ + tbsActivityApplicationService.compenstateRelease(); + return R.ok(); + } /** * 释放活动费用 diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java index 1b16b289..b1d9fbbb 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java @@ -291,6 +291,12 @@ public class TbsActivity implements Serializable { @TableField(exist = false) private Long birActId; + /** + * 核销ID + */ + @JsonIgnore + @TableField(exist = false) + private Long verificationId; /** * 处理预警时间 diff --git a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java index 396826f9..6880e851 100644 --- a/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java +++ b/src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityMapper.java @@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * 费用活动 Mapper @@ -15,6 +16,20 @@ import java.util.List; */ public interface TbsActivityMapper extends BaseMapper { + @Select("SELECT cost_apply_id FROM `tbs_activity` where del_flag = 0 and release_flag = 1 and activity_code LIKE '24%' GROUP BY cost_apply_id order by cost_apply_id") + List selectReleaseCostIds(); + + @Select("select vtb.id as verification_id ,act.* from tbs_activity act left join vtb_verification vtb on act.id = vtb.activity_id " + + " where " + + " vtb.verification_state = 1 and " + + " reg_release_flag = 1 " + + " and act.release_flag = 0 " + + " and act.del_flag = 0 and vtb.del_flag = 0 " + + " and act.activity_code like '2%' " + + " and act.cancel_flag = 0 " + + " and act.used_amount != act.total_amount") + List selectUnRelease(); + @Select("select sum(tbs_activity.used_amount) from tbs_activity where cost_apply_id = #{costId} and del_flag = 0") BigDecimal sumCostUsedAmount(@Param("costId") Long costId); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java index 4127dbbd..210d8b0c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsActivityApplicationService.java @@ -8,6 +8,8 @@ import com.qs.serve.common.util.CopierUtil; import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.data.entity.DataAffairCommit; +import com.qs.serve.modules.data.service.DataAffairCommitService; import com.qs.serve.modules.goods.entity.dto.TbsCenterDto; import com.qs.serve.modules.sys.service.SysConfigService; import com.qs.serve.modules.tbs.common.TbsGoodsType; @@ -22,6 +24,9 @@ import com.qs.serve.modules.tbs.mapper.TbsActivityGoodsMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.service.impl.TbsActivityServiceImpl; +import com.qs.serve.modules.vtb.entity.VtbFundFlow; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.A; @@ -48,7 +53,10 @@ public class TbsActivityApplicationService { private TbsBudgetCostItemService tbsBudgetCostItemService; private SysConfigService configService; private TbsActivityServiceImpl activityService; + private TbsActivityMapper activityMapper; private final BmsSupplierService supplierService; + private final VtbVerificationService verificationService; + private DataAffairCommitService dataAffairCommitService; /** * 对比预算 @@ -242,4 +250,31 @@ public class TbsActivityApplicationService { budgetIds.addAll(budgetIdsSet); return budgetItemList; } + + /** + * 补偿不执行释放的活动 + */ + public void compenstateRelease(){ + List activityList = activityMapper.selectUnRelease(); + for (TbsActivity activity : activityList) { + Long[] ids = new Long[]{1676500L}; + if(Arrays.stream(ids).anyMatch(a->a.equals(activity.getId()))){ + continue; + } + List affairCommitList = dataAffairCommitService.list(new LambdaQueryWrapper() + .eq(DataAffairCommit::getTargetCode,"CheckCost") + .eq(DataAffairCommit::getTargetId,activity.getVerificationId()) + ); + // 判断特殊情况 + // 1.是否有继续核销,有新则发送短信通知 + // 2.判断是否已核销没更新字段 + for (DataAffairCommit affairCommit : affairCommitList) { + if(affairCommit.getReleaseFlag().equals(1)){ + verificationService.release(activity.getId(),affairCommit.getUserCode(),false); + break; + } + } + } + } + } 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 3d2357c7..914d6625 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 @@ -225,7 +225,9 @@ public class TbsActivityServiceImpl extends ServiceImpl actCenterGoodsList = actCenterGoodsMap.get(subjectId); BigDecimal rate = BigDecimal.ZERO; for (TbsActivityCenterGoods centerGoods : actCenterGoodsList) { - rate = rate.add(centerGoods.getCenterGoodsRate()); + if(rate.compareTo(BigDecimal.ZERO)>=0){ + rate = rate.add(centerGoods.getCenterGoodsRate()); + } } BigDecimal tmp = rate.divide(new BigDecimal(100)); if(tmp.compareTo(new BigDecimal(tmp.longValue()))!=0){ @@ -254,6 +256,11 @@ public class TbsActivityServiceImpl extends ServiceImpl() + .eq(VtbFundFlow::getFundType,VtbFundFlowType.Release) + .eq(VtbFundFlow::getCostApplyId,activity.getCostApplyId()) + .eq(VtbFundFlow::getActivityId,activity.getId()) + ); VtbFundFlow fundFlow = new VtbFundFlow(); fundFlow.setFundType(VtbFundFlowType.Release); fundFlow.setVerificationId(0L); @@ -545,6 +558,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl() + .eq(TbsBudgetLog::getCostApplyId,activity.getCostApplyId()) + .eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_4.getCode()) + .eq(TbsBudgetLog::getActivityId,activity.getId()) + ); + //重新保存 if(CollectionUtil.isNotEmpty(budgetLogList)){ budgetLogService.saveBatch(budgetLogList); } @@ -1160,24 +1180,26 @@ public class VtbVerificationServiceImpl extends ServiceImpl fundFlowList = fundFlowService.listByActivity(activity.getId(),VtbFundFlowType.Verification); @@ -1187,6 +1209,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl