Browse Source

feat(order): 搭赠通案对接订单;核销性能优化;费用OA表单关联预算字段

master
Yen 3 weeks ago
parent
commit
5d3d028164
  1. 5
      cms-api/cms-admin-svc/pom.xml
  2. 30
      cms-common/src/main/java/com/qs/serve/common/utils/PrintUtil.java
  3. 3
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java
  4. 7
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java
  5. 26
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java
  6. 4
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java
  7. 2
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java
  8. 36
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java
  9. 1
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/sync/AsyncFactory.java
  10. 1
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java
  11. 44
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  12. 20
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/common/VerificationUtil.java
  13. 11
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java
  14. 72
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  15. 7
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

5
cms-api/cms-admin-svc/pom.xml

@ -17,6 +17,11 @@
</properties>
<dependencies>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>3.9.1</version>
</dependency>
<dependency>
<groupId>com.qs</groupId>
<artifactId>cms-common</artifactId>

30
cms-common/src/main/java/com/qs/serve/common/utils/PrintUtil.java

@ -0,0 +1,30 @@
package com.qs.serve.common.utils;
import cn.hutool.core.date.StopWatch;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.TimeUnit;
/**
* @author YenHex
* @since 2024/6/21
*/
@Slf4j
public class PrintUtil {
public static void startLog(StopWatch stopWatch,String title){
stopWatch.start(title);
}
public static void stop(StopWatch stopWatch){
stop(stopWatch,false,null);
}
public static void stop(StopWatch stopWatch,boolean printFlag,String title){
stopWatch.stop();
if (printFlag){
log.error("\n{}:\n{}",title,stopWatch.prettyPrint(TimeUnit.MILLISECONDS));
}
}
}

3
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java

@ -39,18 +39,15 @@ public class OmsPromotionGiftGoods implements Serializable {
private Long giftItemId;
/** 商品类型 */
@Length(max = 255,message = "商品类型长度不能超过255字")
private String goodsType;
/** 商品id */
private Long goodsId;
/** 商品编码 */
@Length(max = 255,message = "商品编码长度不能超过255字")
private String goodsCode;
/** 商品名称 */
@Length(max = 255,message = "商品名称长度不能超过255字")
private String goodsName;
/** 优先级(ASC) */

7
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java

@ -36,12 +36,5 @@ public class OmsPromotionGiftGoodsBo implements Serializable {
@Length(max = 600,message = "备注长度不能超过600字")
private String remark;
// promotionGiftGoods.setGiftId(source.getGiftId());
// promotionGiftGoods.setGiftItemId(source.getGiftItemId());
// promotionGiftGoods.setGoodsCode(source.getGoodsCode());
// promotionGiftGoods.setGoodsName(source.getGoodsName());
}

26
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java

@ -15,25 +15,21 @@ import java.util.List;
@Data
public class OmsPromotionGiftItemVo {
private Long id;
/** 通案id */
@NotNull(message = "通案id不能为空")
private Long giftId;
private Long id;
/** 商品类型 */
@Length(max = 255,message = "商品类型长度不能超过255字")
private String goodsType;
/** 商品id */
private Long goodsId;
/** 商品编码 */
@Length(max = 255,message = "商品编码长度不能超过255字")
private String goodsCode;
/** 商品名称 */
@Length(max = 255,message = "商品名称长度不能超过255字")
private String goodsName;
/** 起订量 */
@ -45,14 +41,6 @@ public class OmsPromotionGiftItemVo {
/** 赠品数量 */
private Integer giftQty;
private Integer goodsFlag;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
List<OmsPromotionGiftGoods> goodsList;
/** 通案标题 */
private String giftTitle;
@ -62,4 +50,14 @@ public class OmsPromotionGiftItemVo {
/** 搭赠说明 */
private String explainText;
/** 备注 */
private String remark;
/**
* 指定赠送的商品列表
*/
List<OmsPromotionGiftGoods> goodsList;
private Integer goodsFlag;
}

4
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java

@ -181,8 +181,8 @@ public class OmsSaleOrderItemGift implements Serializable {
saleOrderItemGift.setMarketPrice(source.getMarketPrice());
saleOrderItemGift.setWeight(source.getWeight());
saleOrderItemGift.setVolume(source.getVolume());
saleOrderItemGift.setPreProductionDate(source.getPreProductionDate());
saleOrderItemGift.setProductionRemark(source.getProductionRemark());
//saleOrderItemGift.setPreProductionDate(source.getPreProductionDate());
//saleOrderItemGift.setProductionRemark(source.getProductionRemark());
return saleOrderItemGift;
}

2
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java

@ -1469,7 +1469,7 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl<OmsSaleOrderMapper, Oms
.multiply(new BigDecimal(currentItem.getGiftQty()))
.divide(new BigDecimal(currentItem.getMeetQty()),0, RoundingMode.HALF_UP).intValue();
}else {
Assert.throwEx("未能满足起订数量,不能选中:"+currentItem.getGiftTitle());
Assert.throwEx("未能满足起订数量,不能选中:"+currentItem.getGiftTitle()+";"+currentItem.getGoodsName());
}
// // 加载默认赠送的商品
// if (CollUtil.isNotEmpty(currentItem.getGoodsList())){}

36
cms-modules/cms-system/src/main/java/com/qs/serve/modules/seeyon/service/SeeYonOperationService.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.seeyon.service;
import cn.hutool.core.date.StopWatch;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.common.utils.PrintUtil;
import com.qs.serve.common.utils.SpringUtils;
import com.qs.serve.framework.base.model.PageVo;
import com.qs.serve.framework.base.model.R;
@ -347,45 +349,73 @@ public interface SeeYonOperationService extends SeeYonBaseService{
* @return
*/
default R<?> commitAffair(TbsAffairCommitBo affairCommit){
String targetId = affairCommit.getTargetId();
if (targetId == null){
if (affairCommit.getCostApplyId()!=null){
targetId = affairCommit.getCostApplyId()+"";
}else if (affairCommit.getPolicyId() != null){
targetId = affairCommit.getPolicyId()+"";
}
}
String templateCode = getTemplateCode();
StopWatch stopWatch = new StopWatch(templateCode);
stopWatch.start("测试连接");
getRequestService().testConnection();
stopWatch.stop();
stopWatch.start("获取FormId");
String syFormId = this.getSyFormIdByTargetInfo(affairCommit);
stopWatch.stop();
if(syFormId==null){
Assert.throwEx("["+affairCommit.getTargetId()+"]__syFormId is null");
}
stopWatch.start("前置校验参数");
boolean preCheckResult = this.preCheckCommitAffair(affairCommit);
stopWatch.stop();
if(!preCheckResult){
return R.error("提交失败,参数异常");
}
R<String> result = getRequestService().commonCommit(affairCommit, getTemplateCode(),syFormId);
stopWatch.start("提交审批结果到OA");
R<String> result = getRequestService().commonCommit(affairCommit, templateCode,syFormId);
stopWatch.stop();
boolean isBackCommit = affairCommit.getState()==2;
if(result.getStatus()==200){
// 判断是否含有下个节点
//String flag = result.getData();
//取消异步防止导致各种异常
stopWatch.start("获取OA流程状态(睡眠3s)");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
String flag = checkAffairSummery(affairCommit.getTargetId());
stopWatch.stop();
//封装提交审批的记录
stopWatch.start("封装提交审批的记录");
this.buildAffairCommitData(affairCommit, flag);
stopWatch.stop();
if(flag!=null && isBackCommit){
stopWatch.start("审批doBacked回调");
this.doBacked(affairCommit);
PrintUtil.stop(stopWatch,true,"耗时统计,模板类型:"+templateCode+",ID:"+targetId);
return R.ok();
}
//审批中(next)、完成(finish)、拒绝(refused)
if("finished".equals(flag)){
stopWatch.start("审批doFinished回调");
this.doFinished(affairCommit);
PrintUtil.stop(stopWatch,true,"耗时统计,模板类型:"+templateCode+",ID:"+targetId);
return R.ok();
}else if ("refuse".equals(flag)||"backed".equals(flag)){
stopWatch.start("审批doRefuse回调");
this.doRefuse(affairCommit);
PrintUtil.stop(stopWatch,true,"耗时统计,模板类型:"+templateCode+",ID:"+targetId);
return R.ok();
}else if ("next".equals(flag)){
stopWatch.start("审批doNext回调");
this.doNext(affairCommit);
doCommitBacked(getTargetId(affairCommit));
PrintUtil.stop(stopWatch,true,"耗时统计,模板类型:"+templateCode+",ID:"+targetId);
return R.ok();
}
}else if (result.getStatus()==500){

1
cms-modules/cms-system/src/main/java/com/qs/serve/modules/sync/AsyncFactory.java

@ -280,7 +280,6 @@ public class AsyncFactory {
verificationOperationService.runCompensate(verificationId+"");
}
} catch (Exception e) {
e.printStackTrace();
}

1
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java

@ -108,6 +108,7 @@ public class TbsCostSubItem {
}
private String chengBenZhongXin;
private String chengBenZhongXinId;
private String budgetName;
private String centertype;
private String centerCode;
private String centerId;

44
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -141,6 +141,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private BmsSupplierTargetMapper bmsSupplierTargetMapper;
private TbsBudgetMatchApplication tbsBudgetMatchApplication;
private TbsBudgetLogMapper tbsBudgetLogMapper;
private BmsSubjectRegionService bmsSubjectRegionService;
private TbsCostCheckStateMapper costCheckStateMapper;
@ -378,7 +379,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data,contracts,costTodoList,new HashMap<>());
}else {
//创建通用的费用申请Data
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data);
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data,null);
}
return data;
}
@ -442,7 +443,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data,contracts,costTodoList,newWayData);
}else {
//创建通用的费用申请Data
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data);
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data, null);
}
//协议类走新流程
String templateCode = tbsCostApply.getContractFlag().equals(1)
@ -823,7 +824,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
this.buildContractApplyData(id, tbsCostApply, activityList, payConditions, supplier, sysUser, data,contracts,costTodoList,newWayData);
}else {
//创建通用的费用申请Data
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data);
this.buildCommonApplyData(id, tbsCostApply, activityList, supplier,sysUser, data,result1);
}
//协议类走新流程
String templateCode = tbsCostApply.getContractFlag().equals(1)
@ -1566,7 +1567,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
return cusCenterRateList;
}
private void buildCommonApplyData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList, BmsSupplier supplier ,SysUser sysUser, Map<String, Object> data) {
private void buildCommonApplyData(String id, TbsCostApply tbsCostApply, List<TbsActivity> activityList,
BmsSupplier supplier ,SysUser sysUser, Map<String, Object> data,TbsBudgetTableResultVo result) {
String actTitles = activityList.stream().map(TbsActivity::getActTitle).collect(Collectors.joining("; "));
data.put("costApplyCode", tbsCostApply.getCode());
data.put("applyUserCode", sysUser.getCode());
@ -1618,7 +1620,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
List<String> subjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).distinct().collect(Collectors.toList());
List<Object> subList = new ArrayList<>();
//创建子表数据(任由异常 这里数据用来判断流程走向)
this.buildSubList(tbsActivityCenters, subjectNames, subList,supplier.getCode());
this.buildSubList(tbsActivityCenters, subjectNames, subList,supplier.getCode(),result);
//创建商品抬头列表
List<TbsActivityGoods> tbsActivityGoods = tbsActivityGoodsService.listByCostApplyId(Long.parseLong(id));
@ -1669,10 +1671,29 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
* @param subjectNames
* @param subList
*/
private void buildSubList(List<TbsActivityCenter> tbsActivityCenters, List<String> subjectNames, List<Object> subList,String supplierCode) {
private void buildSubList(List<TbsActivityCenter> tbsActivityCenters, List<String> subjectNames, List<Object> subList,String supplierCode,TbsBudgetTableResultVo result) {
for (String subjectName : subjectNames) {
subList.add(new TbsCostSubItem.Subject(subjectName));
}
Map<String,Set<String>> centerBudgetMap = new HashMap<>();
try {
for (TbsActivityCenterGoods centerGoods : result.getActivityCenterGoodsList()) {
String key = centerGoods.getCenterType()+"-"+centerGoods.getCenterId();
Set<String> budgetCodeList = centerBudgetMap.get(key);
if (budgetCodeList==null){
budgetCodeList = new HashSet<>();
}
for (TbsScheduleItemBudget budget : centerGoods.getMatch2ScheduleItemBudgetList()) {
if (budget.getId()!=null&&budget.getId().equals(centerGoods.getScheduleItemBudgetId())){
budgetCodeList.add(budget.getBudgetName());
}
}
centerBudgetMap.put(key,budgetCodeList);
}
} catch (Exception e) {
e.printStackTrace();
}
//成本中心去重
Map<String,List<TbsActivityCenter>> centerMapList = tbsActivityCenters.stream().collect(Collectors.groupingBy(a->a.getCenterType()+"-"+a.getCenterId()));
List<TbsActivityCenter> centerList = centerMapList.values().stream().map(a->a.get(0)).collect(Collectors.toList());
@ -1690,9 +1711,20 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
costCenter.setChengBenZhongXin(center.getCenterName());
costCenter.setChengBenZhongXinId(center.getCenterType()+"-"+center.getId());
}
Set<String> budgetNames = centerBudgetMap.get(costCenter.getChengBenZhongXinId());
if (CollUtil.isNotEmpty(budgetNames)){
log.warn("有预算日志");
for (String budgetName : budgetNames) {
TbsCostSubItem.CostCenterTranStr copy = CopierUtil.copy(costCenter,new TbsCostSubItem.CostCenterTranStr());
copy.setBudgetName(budgetName);
subList.add(copy);
}
}else {
log.warn("无预算日志");
subList.add(costCenter);
}
}
}
/**
* 保存预算使用日志

20
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/common/VerificationUtil.java

@ -1,22 +1,40 @@
package com.qs.serve.modules.vtb.common;
import cn.hutool.core.date.StopWatch;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.TimeUnit;
/**
* @author YenHex
* @since 2024/6/21
*/
@Slf4j
public class VerificationUtil {
private final static ThreadLocal<Integer> AUTO_FLAG = new ThreadLocal<>();
public static void removeThreadLocal(){
AUTO_FLAG.remove();
}
public static void startLog(StopWatch stopWatch,String title){
stopWatch.start(title);
}
public static void stop(StopWatch stopWatch){
stop(stopWatch,false,null);
}
public static void stop(StopWatch stopWatch,boolean printFlag,String code){
stopWatch.stop();
if (printFlag){
log.error("\n耗时统计,核销[{}]耗时记录:\n{}",code,stopWatch.prettyPrint(TimeUnit.MILLISECONDS));
}
}
public static Integer getAutoFlag(){
Integer value = AUTO_FLAG.get();
if (value==null){

11
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java

@ -41,6 +41,7 @@ import com.qs.serve.modules.vtb.service.*;
import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@ -343,15 +344,21 @@ public class VtbVerificationController {
seeYonService.testConnection();
R r = verificationApplication.commitAffair(affairCommit);
if(affairCommit.getState().equals(2)){
runCompensate(affairCommit);
}
return r;
}
@Async
public void runCompensate(TbsAffairCommitBo affairCommit) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
AuthContextUtils.setTenant("001");
vtbVerificationOperationService.runCompensate(affairCommit.getCostApplyId()+"");
}
return r;
}
/**
* 加签

72
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.vtb.service;
import cn.hutool.core.date.StopWatch;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.common.utils.SpringUtils;
@ -29,6 +30,7 @@ import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.service.TbsActivityPayConditionService;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import com.qs.serve.modules.vtb.common.VerificationUtil;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
@ -36,6 +38,7 @@ import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
@ -48,6 +51,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
@ -77,10 +81,11 @@ public class VtbVerificationApplication {
private VtbVerificationOperationServiceImpl verificationOperationService;
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
//临时测试
boolean devFlag = false;
StopWatch stopWatch = new StopWatch();
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId());
String verificationCode = verification.getVerificationCode();
//更新释放标识
VerificationUtil.startLog(stopWatch,"更新释放标识");
if(affairCommit.getReleaseFlag()!=null){
VtbVerification vtbVer = new VtbVerification();
vtbVer.setId(verification.getId());
@ -90,6 +95,9 @@ public class VtbVerificationApplication {
//完成时会调用更新
verification.setRegReleaseFlag(affairCommit.getReleaseFlag());
}
VerificationUtil.stop(stopWatch);
VerificationUtil.startLog(stopWatch,"检验核销单据状态变更");
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
VtbVerificationOperationServiceImpl optSvc = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class);
optSvc.runCompensate(verification.getId()+"");
@ -98,27 +106,27 @@ public class VtbVerificationApplication {
Assert.throwEx("核销单据状态已变更,请刷新页面");
}
}
VerificationUtil.stop(stopWatch);
List<VtbVerificationSubjectCenter> verificationSubjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(verification.getId());
List<VtbVerificationSubject> verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verification.getId());
//检测参数的金额
log.debug("checkParamAmount 检测参数的核销金额");
this.checkParamAmount(affairCommit, verificationSubjectCenterList, verificationSubjects);
boolean isBackCommit = affairCommit.getState()==2;
R<String> result;
if(!devFlag){
result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId());
}else {
result = R.ok();
}
VerificationUtil.startLog(stopWatch,"提交到OA接口");
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId());
VerificationUtil.stop(stopWatch,true,verificationCode);
//提交审批
log.warn("提交审批到致远,{}",JsonUtil.objectToJson(result));
if(result.getStatus()==200 ){
VerificationUtil.startLog(stopWatch,"二次校验审批状态");
String templateCode = verificationOperationService.getTemplateCode();
SyAffairStateResult stateResult = verificationOperationService.checkAffairState(verification.getId()+"",templateCode);
VerificationUtil.stop(stopWatch);
SyAffairState affairState = stateResult.getState();
String summeryResult = affairState.toString();
if(affairState.equals(SyAffairState.backed)||affairState.equals(SyAffairState.refuse)){
@ -126,21 +134,26 @@ public class VtbVerificationApplication {
}
//提交审批
log.warn("提交审批到致远,检查单据[{}]状态:{}",verification.getVerificationCode(),affairState);
//要确保所有不为next才支持回调
if(result.getData().equals("next")){
summeryResult = "next";
}
// 判断是否含有下个节点
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
VerificationUtil.startLog(stopWatch,"成功回调");
R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult);
VerificationUtil.stop(stopWatch);
VerificationUtil.startLog(stopWatch,"异步更新冻结状态");
asyncFlushBandingState();
VerificationUtil.stop(stopWatch,true,verificationCode);
return r;
}else if (result.getStatus()==500){
return result;
}
return R.ok();
}
@Async
public void asyncFlushBandingState() {
AuthContextUtils.setTenant("001");
//解决同步冻结时有过期的活动
tbsActivityService.initReopenState();
LambdaQueryWrapper<TbsCostApply> lqwApply = new LambdaQueryWrapper<>();
@ -150,11 +163,6 @@ public class VtbVerificationApplication {
List<Long> costApplyIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList());
// 更新费用申请的活动的冻结状态
tbsActivityService.flushBandingState(costApplyIds);
return r;
}else if (result.getStatus()==500){
return result;
}
return R.ok();
}
/**
@ -218,7 +226,6 @@ public class VtbVerificationApplication {
try {
//保存记录
// 判断是否含有下个节点
DataAffairCommit dataAffairCommit = new DataAffairCommit();
dataAffairCommit.setTargetCode(TbsSeeYonConst.CostCheckConf.Code());
dataAffairCommit.setTargetId(verification.getId()+"");
@ -285,7 +292,6 @@ public class VtbVerificationApplication {
Integer countSession = null;
Integer countPerson = null;
List<TbsAffairCommitBo.AffairSubjectCenterItemLine> centerItemLineList = null;
// if(isCenterCommit){
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){
for (TbsAffairCommitBo.AffairSubjectCenterLine centerLine : affairCommit.getAffairSubjectCenterLines()) {
if(currVs.getSubjectId().equals(centerLine.getSubjectId())){
@ -302,18 +308,6 @@ public class VtbVerificationApplication {
}
}
}
// }else {
// if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){
// for (TbsAffairCommitBo.AffairSubjectLine affairSubjectLine : affairCommit.getAffairSubjectLines()) {
// if(currVs.getSubjectId().equals(affairSubjectLine.getSubjectId())){
// changeAmount = affairSubjectLine.getAmount();
// countSession = affairSubjectLine.getCountSession();
// countPerson = affairSubjectLine.getCountPerson();
// break;
// }
// }
// }
// }
//保存明细判断是否更变金额
VtbVerificationYardItem yardItem = CopierUtil.copy(currVs,new VtbVerificationYardItem());
yardItem.setYardId(yard.getId());

7
cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -968,7 +968,12 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(orgData!=null){
orgData.setVerificationState(VtbVerificationState.Close.getCode());
vtbFundFlowService.removeByVerificationId(verification.getId());
this.updateById(orgData);
VtbVerification updateOrgData = new VtbVerification();
updateOrgData.setId(orgData.getId());
updateOrgData.setVerificationState(VtbVerificationState.Close.getCode());
this.updateById(updateOrgData);
}
// //记录核销状态到费用申请
// costApply.setLogCheckState(costApply.getCheckState());

Loading…
Cancel
Save