From b9ad8de63fbece190c243fb11ead5728a4bf3b7f Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 30 Jun 2023 18:15:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E5=9C=BA=E8=B4=B9=EF=BC=9B=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BmsCostCenterController.java | 2 +- .../modules/bms/entity/BmsChannelPoint.java | 4 +- .../impl/BmsChannelPointServiceImpl.java | 1 + .../controller/GoodsCategoryController.java | 3 +- .../service/SeeYonOperationService.java | 19 ++++++ .../seeyon/service/SeeYonRequestService.java | 8 +++ .../impl/SeeYonRequestServiceImpl.java | 17 +++++ .../modules/tbs/common/TbsSeeYonConst.java | 1 + .../TbsActivitySlottingFeeController.java | 53 +++++++++++++--- .../tbs/entity/TbsActivitySlottingFee.java | 1 + .../modules/tbs/entity/TbsCostApply.java | 2 +- .../service/TbsBudgetApplicationService.java | 28 +++++---- .../service/impl/TbsActivityServiceImpl.java | 57 ++++++++--------- .../service/impl/TbsCostApplyServiceImpl.java | 36 +++++++++++ .../impl/TzcPolicyApplicationServiceImpl.java | 25 ++++++++ .../service/VtbVerificationApplication.java | 63 +++++++++++-------- .../impl/VtbVerificationServiceImpl.java | 18 ++++++ .../resources/mapper/sys/SysUserMapper.xml | 13 ++++ 18 files changed, 269 insertions(+), 82 deletions(-) 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 7c983ffe..935cea66 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 @@ -85,7 +85,7 @@ public class BmsCostCenterController { if(centerIds.size()>0){ LambdaQueryWrapper centerLambdaQueryWrapper = new LambdaQueryWrapper<>(); centerLambdaQueryWrapper.in(BmsCostCenter::getId,centerIds).or().eq(BmsCostCenter::getVisibleFlag,1); - List costCenters = bmsCostCenterService.listByIds(centerIds); + List costCenters = bmsCostCenterService.list(centerLambdaQueryWrapper); Map> listMap = costCenters.stream().collect(Collectors.groupingBy(BmsCostCenter::getLevel)); List list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1); List list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java index b7957c01..23feaa9e 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java @@ -41,6 +41,8 @@ public class BmsChannelPoint implements Serializable { @NotNull(message = "渠道名称不能为空") private Long channelId; + private String channelCode; + @TableField(condition = SqlCondition.LIKE) private String channelName; @@ -204,7 +206,5 @@ public class BmsChannelPoint implements Serializable { @TableField(exist = false) private String channelType; - @TableField(exist = false) - private String channelCode; } diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java index a7281b36..812306a5 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java @@ -58,6 +58,7 @@ public class BmsChannelPointServiceImpl extends ServiceImpl spuLqw = new LambdaQueryWrapper<>(); @@ -129,6 +129,7 @@ public class GoodsCategoryController { } return treeNode; }).collect(Collectors.toList()); + treeVoList.sort((o1,o2) -> (o2.getSort()-o1.getSort())); treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); return R.ok(treeVoList); } diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java index aa986f50..59e4427c 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java @@ -27,6 +27,11 @@ import java.util.stream.Collectors; */ public interface SeeYonOperationService extends SeeYonBaseService{ + /** + * 流程完成 + */ + String SummeryState_Success = "finished"; + /** * 获取提交的目标ID(因前期未规范id,需要实现该接口进行补偿) * @param affairCommit @@ -214,6 +219,20 @@ public interface SeeYonOperationService extends SeeYonBaseService{ return R.ok(0L); } + + /** + * 获取流程状态,该方法尽量捕获异常,防止回调 + * @param targetId + * @return + */ + default String checkAffairSummery(String targetId){ + R result = getRequestService().checkAffairSummery(getTemplateCode(),targetId); + if(result.getData()==null){ + return "next"; + } + return result.getData(); + } + /** * 审批提交 * @param affairCommit diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java index 507c54c1..e746d06b 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java @@ -107,4 +107,12 @@ public interface SeeYonRequestService { */ R getUnfinishedAffair(String templateCode,String memberId); + /** + * + * @param templateCode + * @param targetId + * @return + */ + R checkAffairSummery(String templateCode,String targetId); + } diff --git a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java index 03479876..da39a01c 100644 --- a/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java @@ -213,4 +213,21 @@ public class SeeYonRequestServiceImpl implements SeeYonRequestService { } return R.ok(0L); } + + @Override + public R checkAffairSummery(String templateCode, String targetId) { + String title = "【流程状态检验】"; + Map param = new HashMap<>(); + param.put("templateCode",templateCode); + param.put("targetId",targetId); + R result = seeYonRequestBaseService.postBase(TbsSeeYonConst.API_CHECK_SUMMERY,param,title); + if(result.getStatus()==200){ + try { + return R.ok(result.getData(),""); + } catch (NumberFormatException e) { + log.error(title+" param==>{} \n ==> {}",JsonUtil.objectToJson(param),JsonUtil.objectToJson(result)); + } + } + return R.ok("next",""); + } } diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 05306852..41e003c1 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -45,6 +45,7 @@ public interface TbsSeeYonConst { String API_LIST_AFFAIR = "/process/listFormAffair"; String API_ADD_NODE = "/process/addNode"; String API_COUNT_NOT_OK = "/process/countUnfinished"; + String API_CHECK_SUMMERY = "/process/checkAffairSummery"; String OA_USER_LIST = "/process/getUsersByCode"; String OA_USER_LIST_1 = "/process/getUsersList"; diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySlottingFeeController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySlottingFeeController.java index 5c5240f7..b53dc518 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySlottingFeeController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySlottingFeeController.java @@ -1,6 +1,7 @@ package com.qs.serve.modules.tbs.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; @@ -9,16 +10,17 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.tbs.entity.*; +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.web.bind.annotation.*; -import com.qs.serve.modules.tbs.entity.TbsActivitySlottingFee; -import com.qs.serve.modules.tbs.service.TbsActivitySlottingFeeService; - import javax.validation.Valid; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 预算 活动进场费 @@ -32,6 +34,10 @@ import java.util.List; public class TbsActivitySlottingFeeController { private TbsActivitySlottingFeeService tbsActivitySlottingFeeService; + private TbsActivityChannelPointService channelPointService; + private TbsActivityChannelService channelService; + private TbsActivityGoodsService activityGoodsService; + private TbsCostApplyService costApplyService; /** * 列表 @@ -60,17 +66,46 @@ public class TbsActivitySlottingFeeController { } /** - * TODO 翻页 + * 翻页 * @param param * @return */ @GetMapping("/page2") public R> getPage2(TbsActivitySlottingFee param){ - return R.byEmptyList(); -// LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); -// PageUtil.startPage(); -// List list = tbsActivitySlottingFeeService.list(lqw); -// return R.byPageHelperList(list); + TbsCostApply costApply = costApplyService.getById(param.getCostApplyId()); + if(!costApply.getContractFlag().equals(2)){ + log.warn("非进场费请求当前接口,申请id:{}",param.getCostApplyId()); + return R.byEmptyList(); + } + //查询费用申请所有的网点和商品 + QueryWrapper qw = new QueryWrapper(); + qw.eq("cost_apply_id",param.getCostApplyId()); + List goodsList = activityGoodsService.list(qw); + List channelList = channelService.list(qw); + List pointList = channelPointService.list(qw); + List goodsIds = goodsList.stream().map(TbsActivityGoods::getTargetId).collect(Collectors.toList()); + List channelIds = channelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList()); + List pointIds = pointList.stream().map(TbsActivityChannelPoint::getPointId).collect(Collectors.toList()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + if(goodsIds.size()>0){ + lqw.in(TbsActivitySlottingFee::getTargetId,goodsIds); + }else { + //防止查其他数据 + lqw.eq(TbsActivitySlottingFee::getId,"0"); + } + lqw.eq(TbsActivitySlottingFee::getTargetType,"spu"); + if(channelIds.size()>0){ + lqw.eq(TbsActivitySlottingFee::getChannelId,channelIds); + }else if (pointIds.size()>0){ + lqw.eq(TbsActivitySlottingFee::getPointId,pointIds); + }else { + //防止查其他数据 + lqw.eq(TbsActivitySlottingFee::getId,"0"); + } + lqw.eq(TbsActivitySlottingFee::getPassFlag,1); + PageUtil.startPage(); + List list = tbsActivitySlottingFeeService.list(lqw); + return R.byPageHelperList(list); } /** diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySlottingFee.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySlottingFee.java index 8655cba2..ab86d4cc 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySlottingFee.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySlottingFee.java @@ -15,6 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank; +import java.util.List; /** * 活动进场费 实体类 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 ee6a6c4b..77932a2b 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 @@ -94,7 +94,7 @@ public class TbsCostApply implements Serializable { private String syFlowId; /** - * 合同类型:0->无;1->有合同 + * 合同类型:0->无;1->有合同;2->进场费 */ private Integer contractFlag; diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 14f4065f..22c6e5aa 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -252,20 +252,22 @@ public class TbsBudgetApplicationService { Map budgetItemAmountMap = new HashMap<>(scheduleItemList.size()); List budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); List scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList()); - List budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); - for (TbsScheduleItemBudget itemBudget : scheduleItemList) { - boolean isNotMatch = true; - for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { - if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ - BigDecimal budgetItemAmount = logPreAmount.getAmount(); - isNotMatch = false; - //因为已使用的预算费用为负数,需去相反数 - budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); - budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); + if(scheduleItemIdsFromScheduleItemList.size()>0&&budgetIdsFromScheduleItemList.size()>0){ + List budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); + for (TbsScheduleItemBudget itemBudget : scheduleItemList) { + boolean isNotMatch = true; + for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { + if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ + BigDecimal budgetItemAmount = logPreAmount.getAmount(); + isNotMatch = false; + //因为已使用的预算费用为负数,需去相反数 + budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); + budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); + } + } + if(isNotMatch){ + budgetItemAmountMap.put(itemBudget.getId(),BigDecimal.ZERO); } - } - if(isNotMatch){ - budgetItemAmountMap.put(itemBudget.getId(),BigDecimal.ZERO); } } 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 c0360574..f2c3853b 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 @@ -223,36 +223,37 @@ public class TbsActivityServiceImpl extends ServiceImpl activityGoodsList, List activitySubjects, List activityChannelPointList, List activityChannelList, List slottingFeeList) { + if(!costApply.getContractFlag().equals(2)){ + return; + } for (TbsActivitySubject activitySubject : activitySubjects) { //判断是否进场费科目 - if(activitySubject.getSlottingFlag().equals(1)){ - if(activityChannelList.size()>0){ - List channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList()); - LambdaQueryWrapper pointLqw = new LambdaQueryWrapper<>(); - pointLqw.in(BmsChannelPoint::getChannelId,channelIds); - List pointList = channelPointService.list(pointLqw); - for (BmsChannelPoint channelPoint : pointList) { - for (TbsActivityGoods activityGoods : activityGoodsList) { - TbsActivitySlottingFee slottingFee = new TbsActivitySlottingFee(); - slottingFee.setCostApplyId(costApply.getId()); - slottingFee.setActivityId(activity.getId()); - slottingFee.setTargetType(activityGoods.getTargetType()); - slottingFee.setTargetId(activityGoods.getTargetId()); - slottingFee.setTargetCode(activityGoods.getTargetCode()); - slottingFee.setTargetName(activityGoods.getTargetName()); - slottingFee.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); - slottingFee.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); - slottingFee.setChannelId(channelPoint.getChannelId()); - slottingFee.setChannelCode(channelPoint.getChannelCode()); - slottingFee.setChannelName(channelPoint.getChannelName()); - slottingFee.setPointId(channelPoint.getId()); - slottingFee.setPointCode(channelPoint.getPointCode()); - slottingFee.setPointName(channelPoint.getPointName()); - slottingFee.setSubjectId(activitySubject.getSubjectId()); - slottingFee.setSubjectCode(activitySubject.getSubjectCode()); - slottingFee.setSubjectName(activitySubject.getSubjectName()); - slottingFeeList.add(slottingFee); - } + if(activityChannelList.size()>0){ + List channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList()); + LambdaQueryWrapper pointLqw = new LambdaQueryWrapper<>(); + pointLqw.in(BmsChannelPoint::getChannelId,channelIds); + List pointList = channelPointService.list(pointLqw); + for (BmsChannelPoint channelPoint : pointList) { + for (TbsActivityGoods activityGoods : activityGoodsList) { + TbsActivitySlottingFee slottingFee = new TbsActivitySlottingFee(); + slottingFee.setCostApplyId(costApply.getId()); + slottingFee.setActivityId(activity.getId()); + slottingFee.setTargetType(activityGoods.getTargetType()); + slottingFee.setTargetId(activityGoods.getTargetId()); + slottingFee.setTargetCode(activityGoods.getTargetCode()); + slottingFee.setTargetName(activityGoods.getTargetName()); + slottingFee.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); + slottingFee.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); + slottingFee.setChannelId(channelPoint.getChannelId()); + slottingFee.setChannelCode(channelPoint.getChannelCode()==null ? "" : channelPoint.getChannelCode()); + slottingFee.setChannelName(channelPoint.getChannelName()); + slottingFee.setPointId(channelPoint.getId()); + slottingFee.setPointCode(channelPoint.getPointCode()); + slottingFee.setPointName(channelPoint.getPointName()); + slottingFee.setSubjectId(activitySubject.getSubjectId()); + slottingFee.setSubjectCode(activitySubject.getSubjectCode()); + slottingFee.setSubjectName(activitySubject.getSubjectName()); + slottingFeeList.add(slottingFee); } } } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 0a82ec75..60b92f9c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -11,9 +11,11 @@ import com.qs.serve.common.util.*; import com.qs.serve.common.util.model.DateFormatString; import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.BmsSubject; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegionMapper; +import com.qs.serve.modules.bms.service.BmsSubjectService; import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; @@ -27,6 +29,7 @@ import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; @@ -69,6 +72,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl activityList = tbsActivityMapper.selectList(actLqw); + //判断是否进场费 + if(tbsCostApply.getContractFlag().equals(2)){ + if (activityList.size()>1){ + Assert.throwEx("进场费类型只能有一个活动"); + } + List activitySubjects = tbsActivitySubjectService.listByCostApplyId(tbsCostApply.getId()); + List subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()); + LambdaQueryWrapper subjectLqw = new LambdaQueryWrapper<>(); + subjectLqw.in(BmsSubject::getId,subjectIds); + subjectLqw.eq(BmsSubject::getSlottingFlag,0); + long count = subjectService.count(subjectLqw); + if(count>0){ + Assert.throwEx("改申请含非进场费类型科目"); + } + } + + if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(TbsActivityPayCondition::getCostApplyId,id); @@ -313,6 +334,21 @@ public class TbsCostApplyServiceImpl extends ServiceImpl=0){ - activity4Upd.setActivityState(TbsActivityState.STATE_1_Finished); - }else { - activity4Upd.setActivityState(TbsActivityState.STATE_0_Todo); - } - tbsActivityService.updateById(activity4Upd); - } - //更新金额,已完成 - VtbVerification vtbVer = new VtbVerification(); - vtbVer.setId(verification.getId()); - vtbVer.setVerificationState(VtbVerificationState.Finished.getCode()); - vtbVer.setAmount(totalAmount); - vtbVer.setFinishedTime(LocalDateTime.now()); - vtbVerificationService.updateById(vtbVer); - vtbVerificationService.successCommit(verification.getId()); + finishCallBack(verification, totalAmount); }else { //更新金额 VtbVerification vtbVer = new VtbVerification(); @@ -250,6 +224,41 @@ public class VtbVerificationApplication { return R.ok(); } + /** + * 审批后完成回调 + * @param verification + * @param totalAmount + */ + public void finishCallBack(VtbVerification verification, BigDecimal totalAmount) { + if(verification.getPayConditionId()!=null){ + //支付条件完成 + TbsActivityPayCondition payCondition = activityPayConditionService.getById(verification.getPayConditionId()); + payCondition.setFinishedFlag(1); + activityPayConditionService.updateById(payCondition); + }else { + //刷新活动金额 + TbsActivity activity = tbsActivityService.getById(verification.getActivityId()); + BigDecimal totalUsed = activity.getUsedAmount().add(totalAmount); + TbsActivity activity4Upd = new TbsActivity(); + activity4Upd.setId(activity.getId()); + activity4Upd.setUsedAmount(totalUsed); + if(totalUsed.compareTo(activity.getTotalAmount())>=0){ + activity4Upd.setActivityState(TbsActivityState.STATE_1_Finished); + }else { + activity4Upd.setActivityState(TbsActivityState.STATE_0_Todo); + } + tbsActivityService.updateById(activity4Upd); + } + //更新金额,已完成 + VtbVerification vtbVer = new VtbVerification(); + vtbVer.setId(verification.getId()); + vtbVer.setVerificationState(VtbVerificationState.Finished.getCode()); + vtbVer.setAmount(totalAmount); + vtbVer.setFinishedTime(LocalDateTime.now()); + vtbVerificationService.updateById(vtbVer); + vtbVerificationService.successCommit(verification.getId()); + } + /** * 回滚或中止 * @param verification diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 878a1fcc..42179286 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -28,7 +28,9 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; +import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.service.*; +import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; import com.qs.serve.modules.vtb.common.VtbFundFlowType; import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.entity.*; @@ -41,6 +43,7 @@ import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; import com.qs.serve.modules.vtb.service.*; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -348,6 +351,21 @@ public class VtbVerificationServiceImpl extends ServiceImpl left join sys_user_role sys_user_role ON sys_user_role.user_id = sys_user.id + + + left join sys_post_user sys_post_user ON sys_post_user.user_id = sys_user.id + + and sys_user.del_flag = '0' and sys_user.id = #{query.id} @@ -99,6 +104,14 @@ #{selectId} + + + and sys_post_user.post_id in + + #{selectId} + + +