Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

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

98
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -2,11 +2,23 @@ package com.qs.serve.common.framework.manager;
import com.qs.serve.common.config.DevEnvironmentConfig; import com.qs.serve.common.config.DevEnvironmentConfig;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.SpringUtils; import com.qs.serve.common.util.SpringUtils;
import com.qs.serve.modules.sys.entity.SysOperationLog; import com.qs.serve.modules.sys.entity.SysOperationLog;
import com.qs.serve.modules.sys.mapper.SysOperationLogMapper; import com.qs.serve.modules.sys.mapper.SysOperationLogMapper;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl;
import com.qs.serve.modules.tzc.service.impl.TzcPolicyOperationServiceImpl;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.service.VtbVerificationApplication;
import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.scheduling.annotation.Async;
import java.math.BigDecimal;
import java.util.TimerTask; import java.util.TimerTask;
/** /**
@ -14,6 +26,7 @@ import java.util.TimerTask;
* @author YenHex * @author YenHex
* @since 2022/2/24 * @since 2022/2/24
*/ */
@Slf4j
public class AsyncFactory { public class AsyncFactory {
/** /**
@ -33,4 +46,89 @@ public class AsyncFactory {
}; };
} }
/**
* 异步保存政策状态
* @param policyId
* @return
*/
public static TimerTask submitPolicy(Long policyId) {
return new TimerTask() {
@Override
public void run() {
try {
AuthContextUtils.setTenant("001");
Thread.sleep(10*1000);
log.debug("submitPolicy");
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 (Exception e) {
e.printStackTrace();
}
}
};
}
/**
* 异步保存费用申请状态
* @param costApply
* @return
*/
public static TimerTask submitCostApply(TbsCostApply costApply) {
return new TimerTask() {
@Override
public void run() {
try {
AuthContextUtils.setTenant("001");
Thread.sleep(10*1000);
log.debug("submitCostApply");
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 (Exception e) {
e.printStackTrace();
}
}
};
}
/**
* 异步保存核销状态
* @param verification
* @param totalAmount
* @return
*/
public static TimerTask saveVtbSubmit(VtbVerification verification, BigDecimal totalAmount) {
return new TimerTask() {
@Override
public void run() {
try {
AuthContextUtils.setTenant("001");
Thread.sleep(10*1000);
log.debug("saveVtbSubmit");
VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class);
String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString());
if(summeryResult.equals(VtbVerificationOperationServiceImpl.SummeryState_Success)){
//调用成功回调方法
VtbVerificationApplication verificationApplication = SpringUtils.getBean(VtbVerificationApplication.class);
verificationApplication.finishCallBack(verification, totalAmount);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
}
} }

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

@ -85,7 +85,7 @@ public class BmsCostCenterController {
if(centerIds.size()>0){ if(centerIds.size()>0){
LambdaQueryWrapper<BmsCostCenter> centerLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BmsCostCenter> centerLambdaQueryWrapper = new LambdaQueryWrapper<>();
centerLambdaQueryWrapper.in(BmsCostCenter::getId,centerIds).or().eq(BmsCostCenter::getVisibleFlag,1); 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)); 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> list1 = listMap.get(1)==null?new ArrayList<>():listMap.get(1);
List<BmsCostCenter> list2 = listMap.get(2)==null?new ArrayList<>():listMap.get(2); 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 = "渠道名称不能为空") @NotNull(message = "渠道名称不能为空")
private Long channelId; private Long channelId;
private String channelCode;
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String channelName; private String channelName;
@ -204,7 +206,5 @@ public class BmsChannelPoint implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String channelType; 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()); channel = bmsChannelService.getById(channelPoint.getChannelId());
if(channel!=null) { if(channel!=null) {
channelPoint.setChannelName(channel.getChannelName()); channelPoint.setChannelName(channel.getChannelName());
channelPoint.setChannelCode(channel.getChannelCode());
}else{ }else{
Assert.throwEx("无相关渠道信息"); 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.setId(cate.getId()+"");
treeNode.setParentId(cate.getParentId().toString()); treeNode.setParentId(cate.getParentId().toString());
treeNode.setCostFlag(cate.getCostFlag()); treeNode.setCostFlag(cate.getCostFlag());
treeNode.setSort(0); treeNode.setSort(cate.getSort()==null ? 0 : cate.getSort());
treeNode.setEnable(cate.getEnable()+""); treeNode.setEnable(cate.getEnable()+"");
if(loadSpuData && cate.getLevel().equals(3)){ if(loadSpuData && cate.getLevel().equals(3)){
LambdaQueryWrapper<GoodsSpu> spuLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<GoodsSpu> spuLqw = new LambdaQueryWrapper<>();
@ -129,6 +129,7 @@ public class GoodsCategoryController {
} }
return treeNode; return treeNode;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
treeVoList.sort((o1,o2) -> (o2.getSort()-o1.getSort()));
treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); treeVoList = TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING);
return R.ok(treeVoList); 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{ public interface SeeYonOperationService extends SeeYonBaseService{
/**
* 流程完成
*/
String SummeryState_Success = "finished";
/** /**
* 获取提交的目标ID(因前期未规范id需要实现该接口进行补偿) * 获取提交的目标ID(因前期未规范id需要实现该接口进行补偿)
* @param affairCommit * @param affairCommit
@ -214,6 +219,20 @@ public interface SeeYonOperationService extends SeeYonBaseService{
return R.ok(0L); 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 * @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); 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); 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_LIST_AFFAIR = "/process/listFormAffair";
String API_ADD_NODE = "/process/addNode"; String API_ADD_NODE = "/process/addNode";
String API_COUNT_NOT_OK = "/process/countUnfinished"; String API_COUNT_NOT_OK = "/process/countUnfinished";
String API_CHECK_SUMMERY = "/process/checkAffairSummery";
String OA_USER_LIST = "/process/getUsersByCode"; String OA_USER_LIST = "/process/getUsersByCode";
String OA_USER_LIST_1 = "/process/getUsersList"; 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; package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; 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.PageUtil;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils; 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.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; 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 javax.validation.Valid;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 预算 活动进场费 * 预算 活动进场费
@ -32,6 +34,10 @@ import java.util.List;
public class TbsActivitySlottingFeeController { public class TbsActivitySlottingFeeController {
private TbsActivitySlottingFeeService tbsActivitySlottingFeeService; 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 * @param param
* @return * @return
*/ */
@GetMapping("/page2") @GetMapping("/page2")
public R<PageVo<TbsActivitySlottingFee>> getPage2(TbsActivitySlottingFee param){ public R<PageVo<TbsActivitySlottingFee>> getPage2(TbsActivitySlottingFee param){
return R.byEmptyList(); TbsCostApply costApply = costApplyService.getById(param.getCostApplyId());
// LambdaQueryWrapper<TbsActivitySlottingFee> lqw = new LambdaQueryWrapper<>(); if(!costApply.getContractFlag().equals(2)){
// PageUtil.startPage(); log.warn("非进场费请求当前接口,申请id:{}",param.getCostApplyId());
// List<TbsActivitySlottingFee> list = tbsActivitySlottingFeeService.list(lqw); return R.byEmptyList();
// return R.byPageHelperList(list); }
//查询费用申请所有的网点和商品
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.NotNull;
import javax.validation.constraints.NotBlank; 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; private String syFlowId;
/** /**
* 合同类型:0->1->有合同 * 合同类型:0->1->有合同;2->进场费
*/ */
private Integer contractFlag; 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()); Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size());
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).distinct().collect(Collectors.toList()); 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<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).distinct().collect(Collectors.toList());
List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId); if(scheduleItemIdsFromScheduleItemList.size()>0&&budgetIdsFromScheduleItemList.size()>0){
for (TbsScheduleItemBudget itemBudget : scheduleItemList) { List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId);
boolean isNotMatch = true; for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) { boolean isNotMatch = true;
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){ for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) {
BigDecimal budgetItemAmount = logPreAmount.getAmount(); if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){
isNotMatch = false; BigDecimal budgetItemAmount = logPreAmount.getAmount();
//因为已使用的预算费用为负数,需去相反数 isNotMatch = false;
budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate(); //因为已使用的预算费用为负数,需去相反数
budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount); 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) { 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) { for (TbsActivitySubject activitySubject : activitySubjects) {
//判断是否进场费科目 //判断是否进场费科目
if(activitySubject.getSlottingFlag().equals(1)){ if(activityChannelList.size()>0){
if(activityChannelList.size()>0){ List<Long> channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList());
List<Long> channelIds = activityChannelList.stream().map(TbsActivityChannel::getChannelId).collect(Collectors.toList()); LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>();
LambdaQueryWrapper<BmsChannelPoint> pointLqw = new LambdaQueryWrapper<>(); pointLqw.in(BmsChannelPoint::getChannelId,channelIds);
pointLqw.in(BmsChannelPoint::getChannelId,channelIds); List<BmsChannelPoint> pointList = channelPointService.list(pointLqw);
List<BmsChannelPoint> pointList = channelPointService.list(pointLqw); for (BmsChannelPoint channelPoint : pointList) {
for (BmsChannelPoint channelPoint : pointList) { for (TbsActivityGoods activityGoods : activityGoodsList) {
for (TbsActivityGoods activityGoods : activityGoodsList) { TbsActivitySlottingFee slottingFee = new TbsActivitySlottingFee();
TbsActivitySlottingFee slottingFee = new TbsActivitySlottingFee(); slottingFee.setCostApplyId(costApply.getId());
slottingFee.setCostApplyId(costApply.getId()); slottingFee.setActivityId(activity.getId());
slottingFee.setActivityId(activity.getId()); slottingFee.setTargetType(activityGoods.getTargetType());
slottingFee.setTargetType(activityGoods.getTargetType()); slottingFee.setTargetId(activityGoods.getTargetId());
slottingFee.setTargetId(activityGoods.getTargetId()); slottingFee.setTargetCode(activityGoods.getTargetCode());
slottingFee.setTargetCode(activityGoods.getTargetCode()); slottingFee.setTargetName(activityGoods.getTargetName());
slottingFee.setTargetName(activityGoods.getTargetName()); slottingFee.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds());
slottingFee.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); slottingFee.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames());
slottingFee.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); slottingFee.setChannelId(channelPoint.getChannelId());
slottingFee.setChannelId(channelPoint.getChannelId()); slottingFee.setChannelCode(channelPoint.getChannelCode()==null ? "" : channelPoint.getChannelCode());
slottingFee.setChannelCode(channelPoint.getChannelCode()); slottingFee.setChannelName(channelPoint.getChannelName());
slottingFee.setChannelName(channelPoint.getChannelName()); slottingFee.setPointId(channelPoint.getId());
slottingFee.setPointId(channelPoint.getId()); slottingFee.setPointCode(channelPoint.getPointCode());
slottingFee.setPointCode(channelPoint.getPointCode()); slottingFee.setPointName(channelPoint.getPointName());
slottingFee.setPointName(channelPoint.getPointName()); slottingFee.setSubjectId(activitySubject.getSubjectId());
slottingFee.setSubjectId(activitySubject.getSubjectId()); slottingFee.setSubjectCode(activitySubject.getSubjectCode());
slottingFee.setSubjectCode(activitySubject.getSubjectCode()); slottingFee.setSubjectName(activitySubject.getSubjectName());
slottingFee.setSubjectName(activitySubject.getSubjectName()); slottingFeeList.add(slottingFee);
slottingFeeList.add(slottingFee);
}
} }
} }
} }

29
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectProperties; import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
@ -11,9 +13,11 @@ import com.qs.serve.common.util.*;
import com.qs.serve.common.util.model.DateFormatString; import com.qs.serve.common.util.model.DateFormatString;
import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2; 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.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper; 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.bms.service.BmsSupplierService;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo; import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
@ -27,6 +31,7 @@ import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; 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.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
@ -69,6 +74,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private BmsSupplierService bmsSupplierService; private BmsSupplierService bmsSupplierService;
private BmsRegionMapper regionMapper; private BmsRegionMapper regionMapper;
private BmsRegion2Mapper region2Mapper; private BmsRegion2Mapper region2Mapper;
private BmsSubjectService subjectService;
private TbsActivitySlottingFeeMapper activitySlottingFeeMapper; private TbsActivitySlottingFeeMapper activitySlottingFeeMapper;
private TbsActivityPayConditionMapper tbsActivityPayConditionMapper; private TbsActivityPayConditionMapper tbsActivityPayConditionMapper;
private TbsActivityMapper tbsActivityMapper; private TbsActivityMapper tbsActivityMapper;
@ -142,6 +148,23 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
actLqw.eq(TbsActivity::getCostApplyId,id); actLqw.eq(TbsActivity::getCostApplyId,id);
List<TbsActivity> activityList = tbsActivityMapper.selectList(actLqw); 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)){ if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){
LambdaQueryWrapper<TbsActivityPayCondition> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbsActivityPayCondition> lqw = new LambdaQueryWrapper<>();
lqw.eq(TbsActivityPayCondition::getCostApplyId,id); lqw.eq(TbsActivityPayCondition::getCostApplyId,id);
@ -313,8 +336,14 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),costApply.getId()+""); BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),costApply.getId()+"");
seeYonService.createCallbackStatus(callbackBo); seeYonService.createCallbackStatus(callbackBo);
activitySlottingFeeMapper.updatePassFlagByCostApplyId(costApply.getId(),2); activitySlottingFeeMapper.updatePassFlagByCostApplyId(costApply.getId(),2);
//请求校验是否成功
AsyncManager.me().execute(AsyncFactory.submitCostApply(costApply));
} }
/** /**
* 保存预算使用日志 * 保存预算使用日志
* @param result * @param result

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

@ -2,6 +2,8 @@ package com.qs.serve.modules.tzc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.config.properties.ProjectProperties; import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.consts.BudgetLogRollbackFlag; import com.qs.serve.common.model.consts.BudgetLogRollbackFlag;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
@ -30,6 +32,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.TbsBudgetCostUtil;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; 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.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetItemCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetItemCostResult;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo; import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
@ -51,6 +54,7 @@ import com.qs.serve.modules.tzc.service.TzcPolicyService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -268,8 +272,22 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ
//创建流程后回调 //创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),tzcPolicy.getId()+""); BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.PolicyConf.Code(),tzcPolicy.getId()+"");
seeYonService.createCallbackStatus(callbackBo); 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);
// }
AsyncManager.me().execute(AsyncFactory.submitPolicy(policyId));
} }
@Override @Override
public TbsBudgetTableVo buildResultTable(Long policyId){ public TbsBudgetTableVo buildResultTable(Long policyId){
LambdaQueryWrapper<TzcPolicyItem> policyItemLqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TzcPolicyItem> policyItemLqw = new LambdaQueryWrapper<>();

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

@ -212,33 +212,7 @@ public class VtbVerificationApplication {
vtbVerificationSubjectService.updateBatchById(verSubject4Update); vtbVerificationSubjectService.updateBatchById(verSubject4Update);
//重新计算合计 //重新计算合计
if(isFinish){ if(isFinish){
if(verification.getPayConditionId()!=null){ finishCallBack(verification, totalAmount);
//支付条件完成
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());
}else { }else {
//更新金额 //更新金额
VtbVerification vtbVer = new VtbVerification(); VtbVerification vtbVer = new VtbVerification();
@ -250,6 +224,41 @@ public class VtbVerificationApplication {
return R.ok(); 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 * @param verification

15
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -3,6 +3,8 @@ package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectProperties; import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.enums.BudgetLogOptFlag;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
@ -28,7 +30,9 @@ import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; 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.*;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl;
import com.qs.serve.modules.vtb.common.VtbFundFlowType; import com.qs.serve.modules.vtb.common.VtbFundFlowType;
import com.qs.serve.modules.vtb.common.VtbVerificationState; import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*; import com.qs.serve.modules.vtb.entity.*;
@ -41,6 +45,9 @@ import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import com.qs.serve.modules.vtb.service.*; import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -57,6 +64,7 @@ import java.util.stream.Collectors;
* @author YenHex * @author YenHex
* @since 2022-11-24 * @since 2022-11-24
*/ */
@EnableAsync
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor @AllArgsConstructor
@ -348,8 +356,15 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
activityParam.setId(activity.getId()); activityParam.setId(activity.getId());
activityParam.setActivityState(TbsActivityState.STATE_1_Checking); activityParam.setActivityState(TbsActivityState.STATE_1_Checking);
activityService.updateById(activityParam); activityService.updateById(activityParam);
//判断是否直接跳过审批的申请
AsyncManager.me().execute(AsyncFactory.saveVtbSubmit(verification, totalAmount));
} }
/** /**
* 提交到致远审批流程 * 提交到致远审批流程
* @param actTitle * @param actTitle

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

@ -60,6 +60,11 @@
<if test="query.roleIds!=null and query.roleIds.size > 0"> <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 left join sys_user_role sys_user_role ON sys_user_role.user_id = sys_user.id
</if> </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> <where>
and sys_user.del_flag = '0' and sys_user.del_flag = '0'
<if test="query.id != null and query.id != ''"> and sys_user.id = #{query.id}</if> <if test="query.id != null and query.id != ''"> and sys_user.id = #{query.id}</if>
@ -99,6 +104,14 @@
#{selectId} #{selectId}
</foreach> </foreach>
</if> </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> </where>
</select> </select>

Loading…
Cancel
Save