diff --git a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/TbsTask.java b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/TbsTask.java index 7f7c90c..dd06a66 100644 --- a/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/TbsTask.java +++ b/cms-api/cms-admin-svc/src/main/java/com/qs/serve/task/TbsTask.java @@ -8,6 +8,7 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.service.TbsActivityService; import com.qs.serve.modules.tbs.service.TbsActivityTemplateService; import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.third.service.PortalOfCostApplication; import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -31,6 +32,7 @@ public class TbsTask { private final TbsCostApplyService tbsCostApplyService; private final TbsActivityTemplateService activityTemplateService; private final VtbVerificationService vtbVerificationService; + private final PortalOfCostApplication portalOfCostApplication; //每日更新过期的活动,过期则进行冻结 @@ -68,6 +70,7 @@ public class TbsTask { @Scheduled(cron="0 0/30 * * * ?") public void syncPayToErp(){ AuthContextUtils.setTenant("001"); + portalOfCostApplication.fixSuccessButErrorState(); vtbVerificationService.toPayRequest(); } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java index 7eac6b4..afc8f1b 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java @@ -11,6 +11,7 @@ import com.qs.serve.framework.base.model.R; import com.qs.serve.modules.oms.entity.OmsPromotionGift; import com.qs.serve.modules.oms.entity.bo.OmsPromotionGiftBo; import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftVo; +import com.qs.serve.modules.oms.service.OmsPromotionGiftOptionsService; import com.qs.serve.modules.oms.service.OmsPromotionGiftService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -31,6 +32,7 @@ import java.util.List; public class OmsPromotionGiftController { private OmsPromotionGiftService omsPromotionGiftService; + private OmsPromotionGiftOptionsService omsPromotionGiftOptionsService; /** * 获取客户所有搭赠方案 @@ -64,6 +66,13 @@ public class OmsPromotionGiftController { @SysLog(module = SystemModule.BASE, title = "搭赠方案", biz = BizType.QUERY) public R getById(@PathVariable("id") String id){ OmsPromotionGiftVo omsPromotionGift = omsPromotionGiftService.getDetailVo(id); + if (omsPromotionGift!=null&&omsPromotionGift.getGiftStatus()==1){ + try { + omsPromotionGiftOptionsService.runCompensate(id); + } finally { + + } + } return R.ok(omsPromotionGift); } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java index 4832520..c2ed753 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java @@ -245,7 +245,7 @@ public class OmsPromotionGiftOptionsServiceImpl implements OmsPromotionGiftOptio public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { OmsPromotionGift entity = omsPromotionGiftService.getById(affairCommit.getTargetId()); if(entity!=null&&entity.getSyFormId()!=null){ - if (!entity.getGiftStatus().equals(OmsPromGitStatus.STATUS_0_Save) + if (!entity.getGiftStatus().equals(OmsPromGitStatus.STATUS_1_Checking) &&!entity.getGiftStatus().equals(OmsPromGitStatus.STATUS_3_Back)){ Assert.throwEx("单据状态已更新,请刷新当前页面"); } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java index 923bec6..16eebef 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java @@ -23,6 +23,7 @@ import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; import com.qs.serve.modules.tbs.entity.vo.TbsActivityCenterGoodsVo; import com.qs.serve.modules.tbs.entity.vo.TbsActivityDefaultCenterVo; import com.qs.serve.modules.tbs.service.*; +import com.qs.serve.modules.third.service.PortalOfCostApplication; import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -63,9 +64,16 @@ public class TbsActivityController { private final TbsActivityApplicationService tbsActivityApplicationService; private final TbsCostApplyPart1Service tbsCostApplyPart1Service; private final TbsCostApplyService tbsCostApplyService; + private final PortalOfCostApplication portalOfCostApplication; TbsActivityDebugApplicationService tbsActivityDebugApplicationService; + @GetMapping("/fixErrorSuccess") + public R fixErrorSuccess(){ + portalOfCostApplication.fixSuccessButErrorState(); + return R.ok(); + } + /** * 跳过支付 * @param id diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java index 23b2781..7f9c29b 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/controller/TbsBudgetController.java @@ -27,6 +27,7 @@ import com.qs.serve.modules.tbs.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.qs.serve.modules.tbs.entity.so.TbsBudgetSo; @@ -201,6 +202,18 @@ public class TbsBudgetController { return R.ok(vo); } + /** + * 预算不运作状态 + * @return + */ + @SysLog(module = SystemModule.Budget, title = "停用预算条件", biz = BizType.GRANT) + @PostMapping("/updateConditionMatchFlag/{conditionId}") + public R updateConditionMatchFlag(@PathVariable("conditionId")Long conditionId, + @RequestBody @Validated TbsBudgetConditionStateBo param){ + tbsBudgetService.updateConditionMatchFlag(param.getBudgetId(),conditionId,param.getStopMatchFlag()); + return R.ok(); + } + /** * 更新 * @param param diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java index 48b8626..d0bf768 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetCondition.java @@ -37,6 +37,9 @@ public class TbsBudgetCondition implements Serializable { private Long changeId; + /** 暂用这个匹配条件,仅限与匹配预算流程,不影响历史匹配的费用 */ + private Integer stopMatchFlag; + /** 目标类型(brand、category、series、spu、sku) */ @NotBlank(message = "目标类型(brand、category、series、spu、sku)不能为空") @Length(max = 30,message = "目标类型(brand、category、series、spu、sku)长度不能超过30字") diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetConditionStateBo.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetConditionStateBo.java new file mode 100644 index 0000000..e09a702 --- /dev/null +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsBudgetConditionStateBo.java @@ -0,0 +1,20 @@ +package com.qs.serve.modules.tbs.entity.bo; + +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2025/6/19 + */ +@Data +public class TbsBudgetConditionStateBo { + + @NotNull + private Long budgetId; + + @NotNull + private Integer stopMatchFlag; + +} diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java index 3321d75..f5d950f 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostApplyMapper.java @@ -23,6 +23,19 @@ import java.util.List; */ public interface TbsCostApplyMapper extends BaseMapper { + /** + * 单据正常,但是主表状态异常的费用id + * @return + */ + @Select(" SELECT id FROM tbs_cost_apply WHERE charge_state = 2 AND del_flag = 0 AND id in ( " + + " SELECT cost_apply_id FROM tbs_activity WHERE del_flag = 0 " + + " GROUP BY cost_apply_id " + + " HAVING COUNT(*) > 0 " + + " AND SUM( CASE WHEN activity_state NOT IN ( 2, 4, 5 ) THEN 1 ELSE 0 END ) = 0 " + + " AND COUNT( DISTINCT activity_state ) > 0 " + + ") ") + List listSuccessButErrorStateCostApplyIds(); + /** * 更新协议类状态 * @return diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java index 0df9867..b339574 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.bo.*; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; +import org.springframework.web.bind.annotation.PathVariable; /** * 预算 服务接口 @@ -12,6 +13,14 @@ import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo; */ public interface TbsBudgetService extends IService { + /** + * 停用预算的匹配条件 + * @param budgetId + * @param conditionId + * @param matchFlag + */ + void updateConditionMatchFlag(Long budgetId,Long conditionId,Integer matchFlag); + /** * 提交申请 * @param id diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 70beef9..6262fa5 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java @@ -93,6 +93,15 @@ public class TbsBudgetServiceImpl extends ServiceImpl private SeeYonRequestService seeYonService; private ProjectProperties projectProperties; + @Override + public void updateConditionMatchFlag(Long budgetId, Long conditionId, Integer matchFlag) { + TbsBudgetCondition condition = budgetConditionService.getById(conditionId); + if (condition==null || !condition.getBudgetId().equals(budgetId)){ + Assert.throwEx("请求参数与业务不匹配"); + } + condition.setStopMatchFlag(matchFlag); + budgetConditionService.updateById(condition); + } @Override public void commitApply(Long id) { diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 9e70844..caee0f7 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -1,8 +1,10 @@ package com.qs.serve.modules.third.service; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.qs.serve.framework.base.config.properties.ProjectApisProperties; import com.qs.serve.common.exception.Assert; import com.qs.serve.framework.base.model.consts.SysConfigKey; @@ -133,6 +135,18 @@ public class PortalOfCostApplication { private ProjectApisProperties projectApisProperties; private SysConfigService sysConfigService; + + public void fixSuccessButErrorState(){ + List ids = tbsCostApplyMapper.listSuccessButErrorStateCostApplyIds(); + if (CollUtil.isNotEmpty(ids)){ + costApplyService.update( + new LambdaUpdateWrapper() + .in(TbsCostApply::getId,ids) + .set(TbsCostApply::getChargeState,3) + ); + } + } + /** * * @param recId