Browse Source

进场费;审批调整

contract
Yen 2 years ago
parent
commit
b9ad8de63f
  1. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java
  2. 4
      src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java
  3. 1
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java
  4. 3
      src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java
  5. 19
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  6. 8
      src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java
  7. 17
      src/main/java/com/qs/serve/modules/seeyon/service/impl/SeeYonRequestServiceImpl.java
  8. 1
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  9. 53
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivitySlottingFeeController.java
  10. 1
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySlottingFee.java
  11. 2
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  12. 28
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java
  13. 57
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  14. 36
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  15. 25
      src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java
  16. 63
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  17. 18
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  18. 13
      src/main/resources/mapper/sys/SysUserMapper.xml

2
src/main/java/com/qs/serve/modules/bms/controller/BmsCostCenterController.java

@ -85,7 +85,7 @@ public class BmsCostCenterController {
if(centerIds.size()>0){
LambdaQueryWrapper<BmsCostCenter> centerLambdaQueryWrapper = new LambdaQueryWrapper<>();
centerLambdaQueryWrapper.in(BmsCostCenter::getId,centerIds).or().eq(BmsCostCenter::getVisibleFlag,1);
List<BmsCostCenter> costCenters = bmsCostCenterService.listByIds(centerIds);
List<BmsCostCenter> costCenters = bmsCostCenterService.list(centerLambdaQueryWrapper);
Map<Integer,List<BmsCostCenter>> listMap = costCenters.stream().collect(Collectors.groupingBy(BmsCostCenter::getLevel));
List<BmsCostCenter> list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1);
List<BmsCostCenter> list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2);

4
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;
}

1
src/main/java/com/qs/serve/modules/bms/service/impl/BmsChannelPointServiceImpl.java

@ -58,6 +58,7 @@ public class BmsChannelPointServiceImpl extends ServiceImpl<BmsChannelPointMappe
channel = bmsChannelService.getById(channelPoint.getChannelId());
if(channel!=null) {
channelPoint.setChannelName(channel.getChannelName());
channelPoint.setChannelCode(channel.getChannelCode());
}else{
Assert.throwEx("无相关渠道信息");
}

3
src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java

@ -110,7 +110,7 @@ public class GoodsCategoryController {
treeNode.setId(cate.getId()+"");
treeNode.setParentId(cate.getParentId().toString());
treeNode.setCostFlag(cate.getCostFlag());
treeNode.setSort(0);
treeNode.setSort(cate.getSort()==null ? 0 : cate.getSort());
treeNode.setEnable(cate.getEnable()+"");
if(loadSpuData && cate.getLevel().equals(3)){
LambdaQueryWrapper<GoodsSpu> 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);
}

19
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<String> result = getRequestService().checkAffairSummery(getTemplateCode(),targetId);
if(result.getData()==null){
return "next";
}
return result.getData();
}
/**
* 审批提交
* @param affairCommit

8
src/main/java/com/qs/serve/modules/seeyon/service/SeeYonRequestService.java

@ -107,4 +107,12 @@ public interface SeeYonRequestService {
*/
R<Long> getUnfinishedAffair(String templateCode,String memberId);
/**
*
* @param templateCode
* @param targetId
* @return
*/
R<String> checkAffairSummery(String templateCode,String targetId);
}

17
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<String> checkAffairSummery(String templateCode, String targetId) {
String title = "【流程状态检验】";
Map<String,String> param = new HashMap<>();
param.put("templateCode",templateCode);
param.put("targetId",targetId);
R<String> 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","");
}
}

1
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";

53
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<PageVo<TbsActivitySlottingFee>> getPage2(TbsActivitySlottingFee param){
return R.byEmptyList();
// LambdaQueryWrapper<TbsActivitySlottingFee> lqw = new LambdaQueryWrapper<>();
// PageUtil.startPage();
// List<TbsActivitySlottingFee> 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<TbsActivityGoods> goodsList = activityGoodsService.list(qw);
List<TbsActivityChannel> channelList = channelService.list(qw);
List<TbsActivityChannelPoint> pointList = channelPointService.list(qw);
List<Long> goodsIds = goodsList.stream().map(TbsActivityGoods::getTargetId).collect(Collectors.toList());
List<Long> channelIds = channelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList());
List<Long> pointIds = pointList.stream().map(TbsActivityChannelPoint::getPointId).collect(Collectors.toList());
LambdaQueryWrapper<TbsActivitySlottingFee> 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<TbsActivitySlottingFee> list = tbsActivitySlottingFeeService.list(lqw);
return R.byPageHelperList(list);
}
/**

1
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;
/**
* 活动进场费 实体类

2
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;

28
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

@ -252,20 +252,22 @@ public class TbsBudgetApplicationService {
Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size());
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList());
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList());
List<TbsBudgetLogPreAmount> 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<TbsBudgetLogPreAmount> 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);
}
}

57
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java

@ -223,36 +223,37 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
}
private void buildSlottingFeeList(TbsCostApply costApply, TbsActivity activity, List<TbsActivityGoods> activityGoodsList, List<TbsActivitySubject> activitySubjects, List<TbsActivityChannelPoint> activityChannelPointList, List<TbsActivityChannel> activityChannelList, List<TbsActivitySlottingFee> slottingFeeList) {
if(!costApply.getContractFlag().equals(2)){
return;
}
for (TbsActivitySubject activitySubject : activitySubjects) {
//判断是否进场费科目
if(activitySubject.getSlottingFlag().equals(1)){
if(activityChannelList.size()>0){
List<Long> channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList());
LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>();
pointLqw.in(BmsChannelPoint::getChannelId,channelIds);
List<BmsChannelPoint> 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<Long> channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList());
LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>();
pointLqw.in(BmsChannelPoint::getChannelId,channelIds);
List<BmsChannelPoint> 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);
}
}
}

36
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<TbsCostApplyMapper,TbsC
private BmsSupplierService bmsSupplierService;
private BmsRegionMapper regionMapper;
private BmsRegion2Mapper region2Mapper;
private BmsSubjectService subjectService;
private TbsActivitySlottingFeeMapper activitySlottingFeeMapper;
private TbsActivityPayConditionMapper tbsActivityPayConditionMapper;
private TbsActivityMapper tbsActivityMapper;
@ -142,6 +146,23 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
actLqw.eq(TbsActivity::getCostApplyId,id);
List<TbsActivity> activityList = tbsActivityMapper.selectList(actLqw);
//判断是否进场费
if(tbsCostApply.getContractFlag().equals(2)){
if (activityList.size()>1){
Assert.throwEx("进场费类型只能有一个活动");
}
List<TbsActivitySubject> activitySubjects = tbsActivitySubjectService.listByCostApplyId(tbsCostApply.getId());
List<Long> subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList());
LambdaQueryWrapper<BmsSubject> 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<TbsActivityPayCondition> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityPayCondition::getCostApplyId,id);
@ -313,6 +334,21 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),costApply.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
activitySlottingFeeMapper.updatePassFlagByCostApplyId(costApply.getId(),2);
//请求校验是否成功
try {
TbsCostApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsCostApplyOperationServiceImpl.class);
String summeryResult = applyOperationService.checkAffairSummery(costApply.getId().toString());
if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
TbsAffairCommitBo finishedParam = new TbsAffairCommitBo();
finishedParam.setCostApplyId(costApply.getId());
applyOperationService.doFinished(finishedParam);
}
} catch (BeansException e) {
e.printStackTrace();
}
}
/**

25
src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java

@ -30,6 +30,7 @@ import com.qs.serve.modules.tbs.common.util.CostSortWrapperUtil;
import com.qs.serve.modules.tbs.common.util.TbsBudgetCostUtil;
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.TbsBudgetItemCostResult;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
@ -51,6 +52,7 @@ import com.qs.serve.modules.tzc.service.TzcPolicyService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -268,6 +270,29 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),tzcPolicy.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
////请求校验是否成功
// TbsCostApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsCostApplyOperationServiceImpl.class);
// String summeryResult = applyOperationService.checkAffairSummery(costApply.getId().toString());
// if(summeryResult.equals(TbsCostApplyOperationServiceImpl.SummeryState_Success)){
// //调用成功回调方法
// TbsAffairCommitBo finishedParam = new TbsAffairCommitBo();
// finishedParam.setCostApplyId(costApply.getId());
// applyOperationService.doFinished(finishedParam);
// }
try {
TzcPolicyOperationServiceImpl operationService = SpringUtils.getBean(TzcPolicyOperationServiceImpl.class);
String summeryResult = operationService.checkAffairSummery(policyId.toString());
if(summeryResult.equals(TzcPolicyOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
TbsAffairCommitBo finishedParam = new TbsAffairCommitBo();
finishedParam.setPolicyId(policyId);
operationService.doFinished(finishedParam);
}
} catch (BeansException e) {
e.printStackTrace();
}
}
@Override

63
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -212,33 +212,7 @@ public class VtbVerificationApplication {
vtbVerificationSubjectService.updateBatchById(verSubject4Update);
//重新计算合计
if(isFinish){
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());
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

18
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<VtbVerificationMappe
activityParam.setId(activity.getId());
activityParam.setActivityState(TbsActivityState.STATE_1_Checking);
activityService.updateById(activityParam);
//判断是否直接跳过审批的申请
try {
VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class);
String summeryResult = verificationOperationService.checkAffairSummery(costApply.getId().toString());
if(summeryResult.equals(VtbVerificationOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
VtbVerificationApplication verificationApplication = SpringUtils.getBean(VtbVerificationApplication.class);
verificationApplication.finishCallBack(verification,totalAmount);
}
} catch (BeansException e) {
e.printStackTrace();
}
}
/**

13
src/main/resources/mapper/sys/SysUserMapper.xml

@ -60,6 +60,11 @@
<if test="query.roleIds!=null and query.roleIds.size > 0">
left join sys_user_role sys_user_role ON sys_user_role.user_id = sys_user.id
</if>
<if test="query.selectPostIds!=null and query.selectPostIds.size > 0">
left join sys_post_user sys_post_user ON sys_post_user.user_id = sys_user.id
</if>
<where>
and sys_user.del_flag = '0'
<if test="query.id != null and query.id != ''"> and sys_user.id = #{query.id}</if>
@ -99,6 +104,14 @@
#{selectId}
</foreach>
</if>
<if test="query.selectPostIds!=null and query.selectPostIds.size > 0">
and sys_post_user.post_id in
<foreach collection="query.selectPostIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</where>
</select>

Loading…
Cancel
Save