diff --git a/cms-api/cms-admin-svc/pom.xml b/cms-api/cms-admin-svc/pom.xml index 939482c..858af94 100644 --- a/cms-api/cms-admin-svc/pom.xml +++ b/cms-api/cms-admin-svc/pom.xml @@ -17,6 +17,11 @@ + + p6spy + p6spy + 3.9.1 + com.qs cms-common diff --git a/cms-common/src/main/java/com/qs/serve/common/utils/PrintUtil.java b/cms-common/src/main/java/com/qs/serve/common/utils/PrintUtil.java new file mode 100644 index 0000000..2a86948 --- /dev/null +++ b/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)); + } + } + +} diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java index 62c81ba..e237c1c 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/OmsPromotionGiftGoods.java +++ b/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) */ diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java index 71ad068..9aa3dad 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java +++ b/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()); - } diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java index f6b01dd..55ce788 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java +++ b/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 goodsList; - /** 通案标题 */ private String giftTitle; @@ -62,4 +50,14 @@ public class OmsPromotionGiftItemVo { /** 搭赠说明 */ private String explainText; + /** 备注 */ + private String remark; + + /** + * 指定赠送的商品列表 + */ + List goodsList; + + + private Integer goodsFlag; } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java index 0c9775f..ddb1d07 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrderItemGift.java +++ b/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; } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java index 1f0c2df..2692d36 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java +++ b/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 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 result = getRequestService().commonCommit(affairCommit, getTemplateCode(),syFormId); + stopWatch.start("提交审批结果到OA"); + R 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){ diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sync/AsyncFactory.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sync/AsyncFactory.java index 10dad5c..b5108a8 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/sync/AsyncFactory.java +++ b/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(); } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java index f0ffc5c..fa71071 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsCostSubItem.java +++ b/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; diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 4b7970a..58a8df3 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/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()); }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 activityList, BmsSupplier supplier ,SysUser sysUser, Map data) { + private void buildCommonApplyData(String id, TbsCostApply tbsCostApply, List activityList, + BmsSupplier supplier ,SysUser sysUser, Map 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 subjectNames = tbsActivitySubjects.stream().map(TbsActivitySubject::getSubjectName).distinct().collect(Collectors.toList()); List subList = new ArrayList<>(); //创建子表数据(任由异常 这里数据用来判断流程走向) - this.buildSubList(tbsActivityCenters, subjectNames, subList,supplier.getCode()); + this.buildSubList(tbsActivityCenters, subjectNames, subList,supplier.getCode(),result); //创建商品抬头列表 List tbsActivityGoods = tbsActivityGoodsService.listByCostApplyId(Long.parseLong(id)); @@ -1669,10 +1671,29 @@ public class TbsCostApplyServiceImpl extends ServiceImpl tbsActivityCenters, List subjectNames, List subList,String supplierCode) { + private void buildSubList(List tbsActivityCenters, List subjectNames, List subList,String supplierCode,TbsBudgetTableResultVo result) { for (String subjectName : subjectNames) { subList.add(new TbsCostSubItem.Subject(subjectName)); } + Map> centerBudgetMap = new HashMap<>(); + try { + for (TbsActivityCenterGoods centerGoods : result.getActivityCenterGoodsList()) { + String key = centerGoods.getCenterType()+"-"+centerGoods.getCenterId(); + Set 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> centerMapList = tbsActivityCenters.stream().collect(Collectors.groupingBy(a->a.getCenterType()+"-"+a.getCenterId())); List centerList = centerMapList.values().stream().map(a->a.get(0)).collect(Collectors.toList()); @@ -1690,7 +1711,18 @@ public class TbsCostApplyServiceImpl extends ServiceImpl 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); + } } } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/common/VerificationUtil.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/common/VerificationUtil.java index 9aa9813..363f4fb 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/common/VerificationUtil.java +++ b/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 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){ diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index fbda34e..63334d8 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/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,16 +344,22 @@ public class VtbVerificationController { seeYonService.testConnection(); R r = verificationApplication.commitAffair(affairCommit); if(affairCommit.getState().equals(2)){ - try { - Thread.sleep(500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - vtbVerificationOperationService.runCompensate(affairCommit.getCostApplyId()+""); + 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()+""); + } + /** * 加签 * @param param diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java index d90938d..6221800 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java +++ b/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 verificationSubjectCenterList = vtbVerificationSubjectCenterService.listByVerificationId(verification.getId()); List verificationSubjects = vtbVerificationSubjectService.listByVerificationId(verification.getId()); //检测参数的金额 log.debug("checkParamAmount 检测参数的核销金额"); this.checkParamAmount(affairCommit, verificationSubjectCenterList, verificationSubjects); boolean isBackCommit = affairCommit.getState()==2; - R result; - if(!devFlag){ - result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId()); - }else { - result = R.ok(); - } + + VerificationUtil.startLog(stopWatch,"提交到OA接口"); + R 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,30 +134,16 @@ 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); - - //解决同步冻结时有过期的活动 - tbsActivityService.initReopenState(); - LambdaQueryWrapper lqwApply = new LambdaQueryWrapper<>(); - lqwApply.select(TbsCostApply::getId); - lqwApply.eq(TbsCostApply::getChargeState, TbsCostApplyState.State_2_actioning.getCode()); - List costApplyList = tbsCostApplyService.list(lqwApply); - List costApplyIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList()); - // 更新费用申请的活动的冻结状态 - tbsActivityService.flushBandingState(costApplyIds); + VerificationUtil.stop(stopWatch); + VerificationUtil.startLog(stopWatch,"异步更新冻结状态"); + asyncFlushBandingState(); + VerificationUtil.stop(stopWatch,true,verificationCode); return r; }else if (result.getStatus()==500){ return result; @@ -157,6 +151,20 @@ public class VtbVerificationApplication { return R.ok(); } + @Async + public void asyncFlushBandingState() { + AuthContextUtils.setTenant("001"); + //解决同步冻结时有过期的活动 + tbsActivityService.initReopenState(); + LambdaQueryWrapper lqwApply = new LambdaQueryWrapper<>(); + lqwApply.select(TbsCostApply::getId); + lqwApply.eq(TbsCostApply::getChargeState, TbsCostApplyState.State_2_actioning.getCode()); + List costApplyList = tbsCostApplyService.list(lqwApply); + List costApplyIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList()); + // 更新费用申请的活动的冻结状态 + tbsActivityService.flushBandingState(costApplyIds); + } + /** * 检查参数的金额 * @param affairCommit @@ -218,7 +226,6 @@ public class VtbVerificationApplication { try { //保存记录 - // 判断是否含有下个节点 DataAffairCommit dataAffairCommit = new DataAffairCommit(); dataAffairCommit.setTargetCode(TbsSeeYonConst.CostCheckConf.Code()); dataAffairCommit.setTargetId(verification.getId()+""); @@ -285,35 +292,22 @@ public class VtbVerificationApplication { Integer countSession = null; Integer countPerson = null; List centerItemLineList = null; -// if(isCenterCommit){ - if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ - for (TbsAffairCommitBo.AffairSubjectCenterLine centerLine : affairCommit.getAffairSubjectCenterLines()) { - if(currVs.getSubjectId().equals(centerLine.getSubjectId())){ - changeAmount = BigDecimal.ZERO; - if(centerLine.getCenterItemLines()!=null){ - for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : centerLine.getCenterItemLines()) { - changeAmount = changeAmount.add(itemLine.getAmount()); - } + if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ + for (TbsAffairCommitBo.AffairSubjectCenterLine centerLine : affairCommit.getAffairSubjectCenterLines()) { + if(currVs.getSubjectId().equals(centerLine.getSubjectId())){ + changeAmount = BigDecimal.ZERO; + if(centerLine.getCenterItemLines()!=null){ + for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : centerLine.getCenterItemLines()) { + changeAmount = changeAmount.add(itemLine.getAmount()); } - centerItemLineList = centerLine.getCenterItemLines(); - countSession = centerLine.getCountSession(); - countPerson = centerLine.getCountPerson(); - break; } + centerItemLineList = centerLine.getCenterItemLines(); + countSession = centerLine.getCountSession(); + countPerson = centerLine.getCountPerson(); + break; } } -// }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()); diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 4e36d45..f08561f 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/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