From d49f80d662f939418d07bcfaf002ec0df1bbb67e Mon Sep 17 00:00:00 2001 From: Yen Date: Sun, 4 Feb 2024 17:17:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DCA=E6=95=B0=E6=8D=AE=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=A6=E6=B3=B0=E5=8E=86=E5=8F=B2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../properties/ProjectApisProperties.java | 3 + .../common/model/enums/BudgetLogOptFlag.java | 4 +- .../modules/tbs/entity/TbsBudgetLog.java | 3 + .../service/PortalOfCostApplication.java | 168 ++++++++---------- .../tran/mapper/CpOldSupplierCodeMapper.java | 25 +++ .../tran/mapper/TranOldCostMapper.java | 2 + .../tran/service/TranOldCostService.java | 40 ++++- .../tzc/mapper/TzcPolicyItemMapper.java | 14 ++ .../controller/VtbVerificationController.java | 20 +++ .../vtb/mapper/VtbVerificationMapper.java | 22 +++ .../vtb/service/VtbVerificationService.java | 2 + src/main/java/com/qs/serve/task/PayTask.java | 27 +++ src/main/java/com/qs/serve/task/TzcTask.java | 51 ++++++ 13 files changed, 285 insertions(+), 96 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/tran/mapper/CpOldSupplierCodeMapper.java create mode 100644 src/main/java/com/qs/serve/task/TzcTask.java diff --git a/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java b/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java index 090b2419..8d81797a 100644 --- a/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java +++ b/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java @@ -18,6 +18,9 @@ public class ProjectApisProperties { /** 支付接口 */ private String costToPay; + /** 同步核销的支付状态 */ + private String checkPayStatus; + /** 调度系统-发货单 */ private String diaoduPlanOrder; diff --git a/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java b/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java index dee9f0f0..1c33b519 100644 --- a/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java +++ b/src/main/java/com/qs/serve/common/model/enums/BudgetLogOptFlag.java @@ -54,8 +54,8 @@ public enum BudgetLogOptFlag { /** 12-政策申请调增(政策申请,预算调增) */ State_12(12,true), - /** 13-政策申请调减(政策申请,预算调减) */ - State_13(13,false), + /** 13-政策因费用申请调增(政策申请,预算转移) */ + State_13(13,true), /** 14-政策释放(被拒绝后,政策释放) */ State_14(14,true), diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java index 00645645..2c887361 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java +++ b/src/main/java/com/qs/serve/modules/tbs/entity/TbsBudgetLog.java @@ -210,6 +210,9 @@ public class TbsBudgetLog implements Serializable { /** 政策生成的费用ID */ private Long createCostId; + /** 政策生成的政策ID */ + private Long createPolicyItemId; + /** 费用申请id */ private Long costApplyId; diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 49026e1e..3d56a625 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -29,7 +29,9 @@ import com.qs.serve.modules.seeyon.entity.XltApticlaim; import com.qs.serve.modules.seeyon.entity.XltPaymentRecord; import com.qs.serve.modules.seeyon.service.XiaoLuTonService; import com.qs.serve.modules.sys.entity.SysSyncLog; +import com.qs.serve.modules.sys.entity.SysTableTemp; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysTableTempMapper; import com.qs.serve.modules.sys.mapper.SysUserCodeMathMapper; import com.qs.serve.modules.sys.service.SysSyncLogService; import com.qs.serve.modules.sys.service.SysUserService; @@ -46,6 +48,7 @@ import com.qs.serve.modules.tzc.common.TzPolicyItemStatus; import com.qs.serve.modules.tzc.entity.TzcPolicyGoodsSync; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; import com.qs.serve.modules.tzc.entity.TzcPolicyItemLog; +import com.qs.serve.modules.tzc.mapper.TzcPolicyItemMapper; import com.qs.serve.modules.tzc.service.TzcPolicyGoodsSyncService; import com.qs.serve.modules.tzc.service.TzcPolicyItemLogService; import com.qs.serve.modules.tzc.service.TzcPolicyItemService; @@ -80,6 +83,7 @@ public class PortalOfCostApplication { private SysUserCodeMathMapper userCodeMathMapper; private final SysSyncLogService sysSyncLogService; + private SysTableTempMapper sysTableTempMapper; private TbsActivityService activityService; private TbsActivityCenterService activityCenterService; @@ -100,6 +104,7 @@ public class PortalOfCostApplication { private TbsBudgetLogService budgetLogService; private TbsBudgetApplicationService budgetApplicationService; private TbsBudgetMapper tbsBudgetMapper; + private TzcPolicyItemMapper tzcPolicyItemMapper; private GoodsSkuService goodsSkuService; @@ -311,6 +316,14 @@ public class PortalOfCostApplication { if(costApplyService.count(checkLqw)>0L){ Assert.throwEx("记录已存在"); } + + LambdaQueryWrapper tbsLogLqw = new LambdaQueryWrapper<>(); + tbsLogLqw.eq(TbsBudgetLog::getPolicyItemId,policyItem.getId()); + tbsLogLqw.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_11.getCode()); + TbsBudgetLog oriPolicyBudgetLog = budgetLogService.getOne(tbsLogLqw,false); + if(oriPolicyBudgetLog==null){ + Assert.throwEx("政策预算数据异常:"+policyItem.getPolicyItemCode()); + } //构建费用申请 TbsCostApply costApply = new TbsCostApply(); //2024年1月23日,添加 @@ -367,7 +380,6 @@ public class PortalOfCostApplication { activityCenter.setCenterAmount(totalAmount); activityCenter.setCenterRate(OneHundred); - activityCenter.setCenterType(policyItem.getCenterType()); activityCenter.setCenterId(policyItem.getCenterId()); activityCenter.setCenterName(policyItem.getCenterName()); @@ -459,16 +471,8 @@ public class PortalOfCostApplication { }); activityCenterGoodsService.saveBatch(activityCenterGoodsList); -// 活动申请扣除预算,这里需要进行保存 - LambdaQueryWrapper tbsLogLqw = new LambdaQueryWrapper<>(); - tbsLogLqw.eq(TbsBudgetLog::getPolicyItemId,policyItem.getId()); - tbsLogLqw.eq(TbsBudgetLog::getOptType,BudgetLogOptFlag.State_11.getCode()); - tbsLogLqw.isNull(TbsBudgetLog::getCostApplyId); - TbsBudgetLog oriPolicyBudgetLog = budgetLogService.getOne(tbsLogLqw); - if(oriPolicyBudgetLog==null){ - Assert.throwEx("政策预算数据异常"); - } + //活动申请扣除预算,这里需要进行保存 TbsBudgetLog dropPolicyBudgetLog = new TbsBudgetLog(); CopierUtil.copy(oriPolicyBudgetLog,dropPolicyBudgetLog); dropPolicyBudgetLog.setId(null); @@ -480,13 +484,13 @@ public class PortalOfCostApplication { dropPolicyBudgetLog.setAmount(totalAmount); //拓展关联 dropPolicyBudgetLog.setCreateCostId(costApply.getId()); + dropPolicyBudgetLog.setCreatePolicyItemId(policyItem.getId()); dropPolicyBudgetLog.setRemark("政策生成费用"); List budgetLogList = new ArrayList<>(); List costItemList = new ArrayList<>(); - for (TbsActivityCenterGoods centerGoodItem : activityCenterGoodsList) { TbsBudgetCostItem costItem = centerGoodItem.toBudgetCostItem(); costItem.setBudgetId(dropPolicyBudgetLog.getBudgetId()); @@ -498,6 +502,7 @@ public class PortalOfCostApplication { TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,user, costApply, costItem, currBudget,centerGoodItem.getCenterGoodsAmount(),activity); budgetLog.setCreateCostId(costApply.getId()); + budgetLog.setCreatePolicyItemId(policyItem.getId()); budgetLog.setRemark("政策生成费用"); budgetLogList.add(budgetLog); costItemList.add(costItem); @@ -511,11 +516,11 @@ public class PortalOfCostApplication { TzcPolicyItemLog policyItemLog = TzcPolicyItemLog.toNewObject(policyItem,totalAmount); policyItemLogService.save(policyItemLog); - //TODO DEV 更新项使用情况 -// TzcPolicyItem policyItemParam = new TzcPolicyItem(); -// policyItemParam.setId(policyItem.getId()); -// policyItemParam.setUsedAmount(policyItem.getUsedAmount().add(totalAmount)); -// policyItemServiceService.updateById(policyItemParam); + BigDecimal usedAmt = tzcPolicyItemMapper.sumPolicyItemTranAmt(policyItem.getId()); + TzcPolicyItem policyItemParam = new TzcPolicyItem(); + policyItemParam.setId(policyItem.getId()); + policyItemParam.setUsedAmount(usedAmt.add(totalAmount)); + policyItemServiceService.updateById(policyItemParam); //保存核销申请 VtbVerification verification = new VtbVerification(); @@ -557,38 +562,6 @@ public class PortalOfCostApplication { verificationSubject.setCountSession(0); verificationSubjectService.save(verificationSubject); - //保存支付 -// PayPayment payPayment = new PayPayment(); -// payPayment.setPayType(PaymentType.PAYMENT); -// payPayment.setPayCode("PM"+ StringUtils.genShortId()); -// payPayment.setSupplierId(supplierId); -// payPayment.setSupplierCode(supplier.getCode()); -// payPayment.setSupplierName(supplier.getName()); -// payPayment.setPayAmount(totalAmount); -// payPayment.setUserId(user.getId()); -// payPayment.setUserCode(user.getCode()); -// payPayment.setUserName(user.getName()); -// payPayment.setPayTime(nowTime); -// payPayment.setErpCode(erpCode); -// payPayment.setBillNumber(billNumber); -// paymentService.save(payPayment); -// -// PayPaymentItem paymentItem = new PayPaymentItem(); -// paymentItem.setPaymentId(payPayment.getId()); -// paymentItem.setPayType(PaymentType.PAYMENT); -// paymentItem.setSupplierId(supplierId); -// paymentItem.setItemPayAmount(totalAmount); -// paymentItem.setVerificationId(verification.getId()); -// paymentItem.setVerificationSubjectId(verificationSubject.getId()); -// paymentItem.setCostApplyId(costApply.getId()); -// paymentItem.setActivityId(activity.getId()); -// paymentItem.setActivityCode(activity.getActivityCode()); -// paymentItem.setSubjectId(subject.getId()); -// paymentItem.setSubjectCode(subject.getSubjectCode()); -// paymentItem.setSubjectName(subject.getSubjectName()); -// paymentItemService.save(paymentItem); - - } @@ -1087,23 +1060,23 @@ public class PortalOfCostApplication { verificationService.save(verification); //协议类的要直接支付 -// PayPayment payPayment = new PayPayment(); -// payPayment.setPayType(PaymentType.PAYMENT); -// payPayment.setPayCode("PM" + StringUtils.genShortId()); -// payPayment.setSupplierId(Long.parseLong(supplier.getId())); -// payPayment.setSupplierCode(supplier.getCode()); -// payPayment.setSupplierName(supplier.getName()); -// payPayment.setPayAmount(totalAmount); -// payPayment.setCostApplyId(costApply.getId()); -// payPayment.setUserId(user.getId()); -// payPayment.setUserCode(user.getCode()); -// payPayment.setUserName(user.getName()); -// payPayment.setPayTime(nowTime); -// payPayment.setErpCode(createBo.getDispatchCode()); -// payPayment.setBillNumber(createBo.getBillNumber()); -// payPayment.setCreateBy(user.getName()); -// payPayment.setCreateTime(LocalDateTime.now()); -// paymentService.save(payPayment); + PayPayment payPayment = new PayPayment(); + payPayment.setPayType(PaymentType.PAYMENT); + payPayment.setPayCode("PM" + StringUtils.genShortId()); + payPayment.setSupplierId(Long.parseLong(supplier.getId())); + payPayment.setSupplierCode(supplier.getCode()); + payPayment.setSupplierName(supplier.getName()); + payPayment.setPayAmount(totalAmount); + payPayment.setCostApplyId(costApply.getId()); + payPayment.setUserId(user.getId()); + payPayment.setUserCode(user.getCode()); + payPayment.setUserName(user.getName()); + payPayment.setPayTime(nowTime); + payPayment.setErpCode(createBo.getDispatchCode()); + payPayment.setBillNumber(createBo.getBillNumber()); + payPayment.setCreateBy(user.getName()); + payPayment.setCreateTime(LocalDateTime.now()); + paymentService.save(payPayment); //保存核销费用结果 @@ -1144,31 +1117,31 @@ public class PortalOfCostApplication { verificationSubject.setCountPerson(0); verificationSubject.setCountSession(0); -// PayPaymentItem paymentItem = new PayPaymentItem(); -// paymentItem.setPaymentId(payPayment.getId()); -// paymentItem.setPayType(PaymentType.PAYMENT); -// paymentItem.setSupplierId(Long.parseLong(supplier.getId())); -// paymentItem.setItemPayAmount(totalAmount); -// paymentItem.setPayTime(nowTime); -// paymentItem.setVerificationId(verification.getId()); -// paymentItem.setVerificationCode(verification.getVerificationCode()); -// paymentItem.setVerificationMainCode(verification.getVerificationCode()); -// paymentItem.setVerificationSubjectId(verificationSubject.getId()); -// paymentItem.setCostApplyId(costApply.getId()); -// paymentItem.setActivityId(activity.getId()); -// paymentItem.setActivityCode(activity.getActivityCode()); -// paymentItem.setSubjectId(subject.getId()); -// paymentItem.setSubjectCode(subject.getSubjectCode()); -// paymentItem.setSubjectName(subject.getSubjectName()); -// paymentItem.setCreateBy(user.getName()); -// paymentItem.setCreateTime(LocalDateTime.now()); + PayPaymentItem paymentItem = new PayPaymentItem(); + paymentItem.setPaymentId(payPayment.getId()); + paymentItem.setPayType(PaymentType.PAYMENT); + paymentItem.setSupplierId(Long.parseLong(supplier.getId())); + paymentItem.setItemPayAmount(totalAmount); + paymentItem.setPayTime(nowTime); + paymentItem.setVerificationId(verification.getId()); + paymentItem.setVerificationCode(verification.getVerificationCode()); + paymentItem.setVerificationMainCode(verification.getVerificationCode()); + paymentItem.setVerificationSubjectId(verificationSubject.getId()); + paymentItem.setCostApplyId(costApply.getId()); + paymentItem.setActivityId(activity.getId()); + paymentItem.setActivityCode(activity.getActivityCode()); + paymentItem.setSubjectId(subject.getId()); + paymentItem.setSubjectCode(subject.getSubjectCode()); + paymentItem.setSubjectName(subject.getSubjectName()); + paymentItem.setCreateBy(user.getName()); + paymentItem.setCreateTime(LocalDateTime.now()); //保存和更新项 TbsActivitySubject activitySubject = new TbsActivitySubject(); activitySubject.setId(subject.getId()); activitySubject.setUsedAmount(totalPay); activitySubjectService.updateById(subject); -// paymentItemService.save(paymentItem); + paymentItemService.save(paymentItem); verificationSubjectService.save(verificationSubject); } @@ -1227,20 +1200,27 @@ public class PortalOfCostApplication { * 修复数据方法,修复后可删除 */ public void repairCaCost(){ + Assert.throwEx("DEV"); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(SysSyncLog::getFromPlat,"一站式费用ByDong"); //只处理成功的 lqw.eq(SysSyncLog::getSuccessStatus,1); - lqw.eq(SysSyncLog::getId,13731L); + lqw.in(SysSyncLog::getId,13506L,13542L,13674L,8323L,12510L,12585L,12642L,12645L,12660L,12708L,13298L); List syncLogList = sysSyncLogService.list(lqw); for (SysSyncLog syncLog : syncLogList) { ProcessCreatePolicyCostBo applyBo = JsonUtil.jsonToPojo(syncLog.getRequestJson(),ProcessCreatePolicyCostBo.class); String title = applyBo.getCostTheme(); - LambdaQueryWrapper costLqw = new LambdaQueryWrapper<>(); costLqw.eq(TbsCostApply::getChargeTheme,title); - TbsCostApply costApply = costApplyService.getOne(costLqw); - if(costApply!=null){ + List costApplyList = costApplyService.list(costLqw); + + SysTableTemp sysTableTemp = new SysTableTemp(); + sysTableTemp.setTableName("sys_sync_log"); + sysTableTemp.setTableId(syncLog.getId()+""); + sysTableTemp.setOptionTitle("修复CA数据"); + + for (int i = 0; i < costApplyList.size(); i++) { + TbsCostApply costApply = costApplyList.get(i); costApplyService.removeById(costApply.getId()); QueryWrapper costqw = new QueryWrapper(); costqw.eq("cost_apply_id",costApply.getId()); @@ -1251,14 +1231,16 @@ public class PortalOfCostApplication { activityCenterGoodsService.remove(costqw); budgetLogService.remove(costqw); costItemService.remove(costqw); - //policyItemLogService - //policyItemServiceService verificationService.remove(costqw); + verificationSubjectService.remove(costqw); + } + try { this.createCostProcessByPolicy(applyBo); - break; + sysTableTemp.setDealState(1); + } catch (Exception e) { + sysTableTemp.setResultMsg(e.getMessage()); } - - + sysTableTempMapper.insert(sysTableTemp); } } diff --git a/src/main/java/com/qs/serve/modules/tran/mapper/CpOldSupplierCodeMapper.java b/src/main/java/com/qs/serve/modules/tran/mapper/CpOldSupplierCodeMapper.java new file mode 100644 index 00000000..700ad295 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tran/mapper/CpOldSupplierCodeMapper.java @@ -0,0 +1,25 @@ +package com.qs.serve.modules.tran.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.qs.serve.modules.tran.domain.OldCost; +import com.qs.serve.modules.tran.domain.OldVerify; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +/** + * @author YenHex + * @since 2024/1/24 + */ +public interface CpOldSupplierCodeMapper { + + + @Update("update ${tableName} set supplier_id = #{cusId},supplier_code = #{cusCode} where cost_apply_id = #{costId}") + int updateSupplierInfo(@Param("tableName")String tableName, + @Param("costId")Long costId, + @Param("cusId")String cusId, + @Param("cusCode")String cusCode); + +} diff --git a/src/main/java/com/qs/serve/modules/tran/mapper/TranOldCostMapper.java b/src/main/java/com/qs/serve/modules/tran/mapper/TranOldCostMapper.java index 8b2f4de2..12bc9941 100644 --- a/src/main/java/com/qs/serve/modules/tran/mapper/TranOldCostMapper.java +++ b/src/main/java/com/qs/serve/modules/tran/mapper/TranOldCostMapper.java @@ -36,4 +36,6 @@ public interface TranOldCostMapper { @Select("SELECT * FROM old_main_verify UNION SELECT * FROM old_main_verify2 UNION SELECT * FROM old_main_verify3") List listVerifyList(); + + } diff --git a/src/main/java/com/qs/serve/modules/tran/service/TranOldCostService.java b/src/main/java/com/qs/serve/modules/tran/service/TranOldCostService.java index bc909fb0..ed68d2f6 100644 --- a/src/main/java/com/qs/serve/modules/tran/service/TranOldCostService.java +++ b/src/main/java/com/qs/serve/modules/tran/service/TranOldCostService.java @@ -33,6 +33,7 @@ import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper; import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tran.domain.OldCost; import com.qs.serve.modules.tran.domain.OldVerify; +import com.qs.serve.modules.tran.mapper.CpOldSupplierCodeMapper; import com.qs.serve.modules.tran.mapper.TranOldCostMapper; import com.qs.serve.modules.tzc.service.TzcPolicyGoodsSyncService; import com.qs.serve.modules.tzc.service.TzcPolicyItemLogService; @@ -91,7 +92,7 @@ public class TranOldCostService { private PayPaymentService paymentService; private PayPaymentItemService paymentItemService; - + private CpOldSupplierCodeMapper oldSupplierCodeMapper; private VtbVerificationService verificationService; private VtbVerificationSubjectService verificationSubjectService; @@ -431,4 +432,41 @@ public class TranOldCostService { } + + public void cpSupplierCode(){ + LambdaQueryWrapper costLqw = new LambdaQueryWrapper<>(); + costLqw.eq(TbsCostApply::getMatchType,-1); + List costApplyList = costApplyService.list(costLqw); + for (TbsCostApply costApply : costApplyList) { + String cusCode = costApply.getSupplierCode(); + boolean jtCus = cusCode.contains("JT"); + if(!jtCus){ + cusCode = "JT"+cusCode; + } + String cusId = "0"; + BmsSupplier supplier = supplierService.getByCode(cusCode,null); + if(supplier==null){ + supplier = new BmsSupplier(); + supplier.setSupplierCode(cusCode); + }else { + cusId = supplier.getId(); + } + + //更新相关 + oldSupplierCodeMapper.updateSupplierInfo("tbs_activity",costApply.getId(),cusId,cusCode); + oldSupplierCodeMapper.updateSupplierInfo("tbs_activity_center_goods",costApply.getId(),cusId,cusCode); + oldSupplierCodeMapper.updateSupplierInfo("tbs_budget_cost_item",costApply.getId(),cusId,cusCode); + oldSupplierCodeMapper.updateSupplierInfo("tbs_budget_log",costApply.getId(),cusId,cusCode); + oldSupplierCodeMapper.updateSupplierInfo("vtb_verification",costApply.getId(),cusId,cusCode); + oldSupplierCodeMapper.updateSupplierInfo("vtb_verification_subject",costApply.getId(),cusId,cusCode); + + //标记为-2,代表成功 + costApply.setSupplierId(Long.parseLong(cusId)); + costApply.setSupplierCode(cusCode); + costApply.setMatchType(-2); + costApplyService.updateById(costApply); + + } + } + } diff --git a/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java index b759783e..43f8bff1 100644 --- a/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java +++ b/src/main/java/com/qs/serve/modules/tzc/mapper/TzcPolicyItemMapper.java @@ -1,7 +1,12 @@ package com.qs.serve.modules.tzc.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.math.BigDecimal; /** * 政策项 Mapper @@ -10,5 +15,14 @@ import com.qs.serve.modules.tzc.entity.TzcPolicyItem; */ public interface TzcPolicyItemMapper extends BaseMapper { + /** + * 查询所有转化费用的合计 + * @param policyItemId + * @return + */ + @InterceptorIgnore(tenantLine = "true") + @Select("select COALESCE(sum(amount),0) from tbs_budget_log where create_policy_item_id = #{policyItemId} and opt_type = '13'") + BigDecimal sumPolicyItemTranAmt(@Param("policyItemId")Long policyItemId); + } diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index 09980efb..1eb053ba 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -30,6 +30,7 @@ import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationSubjectCommitBo; import com.qs.serve.modules.vtb.entity.dto.VtbVerificationCodesDTO; import com.qs.serve.modules.vtb.entity.vo.VtbCostInfo; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; import com.qs.serve.modules.vtb.service.*; import com.qs.serve.modules.vtb.service.impl.VtbVerificationOperationServiceImpl; import lombok.AllArgsConstructor; @@ -58,6 +59,7 @@ import java.util.stream.Collectors; public class VtbVerificationController { private VtbVerificationService vtbVerificationService; + private VtbVerificationMapper vtbVerificationMapper; private VtbVerificationChannelService vtbVerificationChannelService; private VtbVerificationChannelPointService vtbVerificationChannelPointService; private VtbVerificationYardCenterItemService vtbVerificationYardCenterItemService; @@ -480,6 +482,24 @@ public class VtbVerificationController { return R.ok(costInfo); } + /** + * 去支付 + * @param verificationId + * @return + */ + @GetMapping("/toPayRequest") + public R toPayRequest(Long verificationId,Integer fullState){ + if(fullState!=null&&fullState.equals(1)){ + List vids = vtbVerificationMapper.listNotPayVerifyIds(); + for (Long vid : vids) { + vtbVerificationService.toPayRequest(vid); + } + }else { + vtbVerificationService.toPayRequest(verificationId); + } + return R.ok(); + } + /** * 成功提交回调 diff --git a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java index 187966ae..100d5583 100644 --- a/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java +++ b/src/main/java/com/qs/serve/modules/vtb/mapper/VtbVerificationMapper.java @@ -1,9 +1,11 @@ package com.qs.serve.modules.vtb.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.vtb.entity.VtbVerification; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.math.BigDecimal; @@ -16,6 +18,26 @@ import java.util.List; */ public interface VtbVerificationMapper extends BaseMapper { + @InterceptorIgnore(tenantLine = "true") + @Select("select v.id from vtb_verification v " + + "left join tbs_cost_apply t " + + "on t.id = v.cost_apply_id " + + "where " + + //协议类不需要支付,设置忽略 + "t.contract_flag != 1 " + + "and v.del_flag = 0 " + + "and t.del_flag = 0 " + + "and v.sync_pay_flag = 0 " + + "and verification_state = 1 " + + "and t.charge_state in (2,3) " + + "and (verification_code like 'HX%' or verification_code like 'DHX%') " + + //不维护CMS上线前导入的核销 + "and v.user_id <> '0' " + + //排除CA的单子 + "and length(v.verification_code)<18 "+ + "ORDER BY v.id asc") + List listNotPayVerifyIds(); + /** * 替换继承人 * @param userId diff --git a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java index 94d2ae4c..57fcc930 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationService.java @@ -9,6 +9,7 @@ import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationBo; import com.qs.serve.modules.vtb.entity.bo.VtbVerificationContactBo; +import java.util.List; import java.util.Map; /** @@ -18,6 +19,7 @@ import java.util.Map; */ public interface VtbVerificationService extends IService { + /** * 创建协议类核销记录 * @param param diff --git a/src/main/java/com/qs/serve/task/PayTask.java b/src/main/java/com/qs/serve/task/PayTask.java index da2cfb55..5272ee37 100644 --- a/src/main/java/com/qs/serve/task/PayTask.java +++ b/src/main/java/com/qs/serve/task/PayTask.java @@ -1,14 +1,18 @@ package com.qs.serve.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.config.properties.ProjectApisProperties; import com.qs.serve.common.model.AmountDTO; import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.HttpUtil; import com.qs.serve.modules.pay.entity.PayPayment; import com.qs.serve.modules.pay.mapper.PayPaymentItemMapper; import com.qs.serve.modules.pay.mapper.PayPaymentMapper; import com.qs.serve.modules.pay.service.PayPaymentService; import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; +import com.qs.serve.modules.vtb.service.VtbVerificationService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -30,9 +34,32 @@ import java.util.stream.Collectors; @ConditionalOnProperty(value = "project.task", havingValue = "true") public class PayTask { + private VtbVerificationService vtbVerificationService; + private VtbVerificationMapper vtbVerificationMapper; private final TbsCostApplyService costApplyService; private final PayPaymentItemMapper payPaymentItemMapper; private final PayPaymentMapper payPaymentMapper; + private ProjectApisProperties projectApisProperties; + + /** + * 将未支付的重新发起请求 + */ + @Scheduled(cron="0 0 2 * * ?") + public void checkToPay(){ + //预先调用伟成同步状态接口,减少查询记录数 + String url = projectApisProperties.getCheckPayStatus(); + HttpUtil.doGet(url,null); + List vids = vtbVerificationMapper.listNotPayVerifyIds(); + for (Long vid : vids) { + vtbVerificationService.toPayRequest(vid); + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + HttpUtil.doGet(url,null); + } /** * 同步支付 diff --git a/src/main/java/com/qs/serve/task/TzcTask.java b/src/main/java/com/qs/serve/task/TzcTask.java new file mode 100644 index 00000000..36f582f0 --- /dev/null +++ b/src/main/java/com/qs/serve/task/TzcTask.java @@ -0,0 +1,51 @@ +package com.qs.serve.task; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.AmountDTO; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.modules.pay.mapper.PayPaymentItemMapper; +import com.qs.serve.modules.pay.mapper.PayPaymentMapper; +import com.qs.serve.modules.tbs.entity.TbsCostApply; +import com.qs.serve.modules.tbs.service.TbsCostApplyService; +import com.qs.serve.modules.tzc.entity.TzcPolicyItem; +import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper; +import com.qs.serve.modules.vtb.service.VtbVerificationService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author YenHex + * @since 2023/11/7 + */ +@Slf4j +@Component +@AllArgsConstructor +@ConditionalOnProperty(value = "project.task", havingValue = "true") +public class TzcTask { + + + /** + * 同步未同步的政策项(排查数据,并无异常) + * 流程如下 + * 1.查询CMS未同步的政策项编码发送到中间服务 SELECT * FROM `tzc_policy` LEFT JOIN tzc_policy_item + * ON tzc_policy.id = tzc_policy_item.policy_id WHERE tzc_policy.del_flag = 0 AND tzc_policy_item.del_flag = 0 + * AND tzc_policy.policy_status = 2 AND tzc_policy_item.sync_status = 0 + * 2.中间服务返回已有的政策项编码 SELECT * FROM [dbo].[XLT_BI_GhDbf] where cGhMemo = '数据自动导入' and cGhCode like 'P%' + * 3.更新已有的政策项编码 update tzc_policy_item set sync_status = 1 where policy_item_code in (...) + * 4.重新请求未同步的政策编码 + * + */ + //@Scheduled(cron="0 0 3 * * ?") + public void checkToPay(){ + + } + +}