From c9637ef8bd48a96684269a414361613a9c2c2b35 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 2 Feb 2024 14:17:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=94=AF=E4=BB=98=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controller/PayPaymentController.java | 15 + .../common/util/TbsBudgetLogBuildUtil.java | 5 +- .../modules/tbs/entity/TbsBudgetLog.java | 3 + .../modules/third/PortalOfCostController.java | 24 +- .../modules/third/PortalPolicyController.java | 21 + .../service/PortalOfCostApplication.java | 218 +++++---- .../tran/mapper/TranOldCostMapper.java | 39 ++ .../tran/service/TranOldCostService.java | 434 ++++++++++++++++++ .../tzc/controller/TzcPolicyController.java | 11 + .../service/TzcPolicyApplicationService.java | 2 + .../impl/TzcPolicyApplicationServiceImpl.java | 6 + .../vtb/service/VtbVerificationService.java | 2 + .../impl/VtbVerificationServiceImpl.java | 28 ++ 13 files changed, 716 insertions(+), 92 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/third/PortalPolicyController.java create mode 100644 src/main/java/com/qs/serve/modules/tran/mapper/TranOldCostMapper.java create mode 100644 src/main/java/com/qs/serve/modules/tran/service/TranOldCostService.java diff --git a/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java b/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java index 3db3d70b..242ba056 100644 --- a/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java +++ b/src/main/java/com/qs/serve/modules/pay/controller/PayPaymentController.java @@ -233,6 +233,21 @@ public class PayPaymentController { return R.ok(payPayment); } + + /** + * 取消不再支付 + * @param param + * @return + */ + @PostMapping("/cancelUnPayment") + @SysLog(module = SystemModule.Payment, title = "支付", biz = BizType.INSERT) + @PreAuthorize("hasRole('pay:payment:pay')") + public R cancelUnPayment(@RequestBody @Valid Object param){ + //PayPayment payPayment = payPaymentService.unpayment(param); + //TODO cancelUnPayment; + return R.error(); + } + /** * 新增支付 * @param param diff --git a/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java b/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java index bdca7dd7..ff8e2a9c 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/util/TbsBudgetLogBuildUtil.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.common.util; import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tzc.entity.TzcPolicy; @@ -139,10 +140,10 @@ public class TbsBudgetLogBuildUtil { budgetLog.setSupplierName(centerGoods.getSupplierName()); budgetLog.setActivityId(centerGoods.getActivityId()); budgetLog.setActivityCode(centerGoods.getActivityCode()); - budgetLog.setActivityTheme(activity.getActTitle()); + budgetLog.setActivityTheme(StringUtils.tailorLen(activity.getActTitle(),230)); budgetLog.setCostApplyId(costApply.getId()); budgetLog.setCostApplyCode(costApply.getCode()); - budgetLog.setCostApplyTheme(costApply.getChargeTheme()); + budgetLog.setCostApplyTheme(StringUtils.tailorLen(costApply.getChargeTheme(),140)); budgetLog.setTargetType(centerGoods.getTargetType()); budgetLog.setTargetId(centerGoods.getTargetId()); budgetLog.setTargetCode(centerGoods.getTargetCode()); 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 dc4b20a1..00645645 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 @@ -207,6 +207,9 @@ public class TbsBudgetLog implements Serializable { @TableField(condition = SqlCondition.LIKE) private String policyItemCode; + /** 政策生成的费用ID */ + private Long createCostId; + /** 费用申请id */ private Long costApplyId; diff --git a/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java b/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java index c21c8beb..13df6baa 100644 --- a/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java +++ b/src/main/java/com/qs/serve/modules/third/PortalOfCostController.java @@ -10,6 +10,7 @@ import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.JsonUtil; import com.qs.serve.modules.sys.entity.SysSyncLog; import com.qs.serve.modules.sys.service.SysSyncLogService; +import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.third.consts.ThirtyConst; import com.qs.serve.modules.third.entity.ProcessCreateContractCheckBo; import com.qs.serve.modules.third.entity.ProcessCreateCostApplyBo; @@ -26,10 +27,7 @@ import com.qs.serve.modules.vtb.service.VtbVerificationService; import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @@ -173,10 +171,14 @@ public class PortalOfCostController { return R.error("支付异常"); } - + /** + * 伟成那边调用,用于排查遗漏的核销 + * @param codesDTO + * @return + */ @PostMapping("/updateCheckSyncPayFlag") public R updateSyncPayFlag(@RequestBody VtbVerificationCodesDTO codesDTO){ - String verifyCode = codesDTO.getCode(); + String verifyCode = codesDTO.getCode().trim(); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.select(VtbVerification::getId,VtbVerification::getVerificationCode) .eq(VtbVerification::getVerificationCode,verifyCode) @@ -205,4 +207,14 @@ public class PortalOfCostController { return R.ok(); } + /** + * 修复数据方法,修复后可删除 + * @return + */ + @GetMapping("/cpSyncLogByDong") + public R cpSyncLogByDong(){ + portalOfCostApplication.repairCaCost(); + return R.ok(); + } + } diff --git a/src/main/java/com/qs/serve/modules/third/PortalPolicyController.java b/src/main/java/com/qs/serve/modules/third/PortalPolicyController.java new file mode 100644 index 00000000..430b806b --- /dev/null +++ b/src/main/java/com/qs/serve/modules/third/PortalPolicyController.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.third; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author YenHex + * @since 2024/1/31 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("thirty/policy") +public class PortalPolicyController { + + + + +} 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 34820180..49026e1e 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 @@ -1,6 +1,7 @@ package com.qs.serve.modules.third.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.qs.serve.common.config.properties.ProjectApisProperties; import com.qs.serve.common.model.enums.BudgetLogOptFlag; import com.qs.serve.common.model.consts.ResultFlag; @@ -471,8 +472,15 @@ public class PortalOfCostApplication { TbsBudgetLog dropPolicyBudgetLog = new TbsBudgetLog(); CopierUtil.copy(oriPolicyBudgetLog,dropPolicyBudgetLog); dropPolicyBudgetLog.setId(null); + dropPolicyBudgetLog.setCreateTime(null); + dropPolicyBudgetLog.setUpdateTime(null); + dropPolicyBudgetLog.setCreateBy(null); + dropPolicyBudgetLog.setUpdateBy(null); dropPolicyBudgetLog.setOptType(BudgetLogOptFlag.State_13.getCode()); dropPolicyBudgetLog.setAmount(totalAmount); + //拓展关联 + dropPolicyBudgetLog.setCreateCostId(costApply.getId()); + dropPolicyBudgetLog.setRemark("政策生成费用"); List budgetLogList = new ArrayList<>(); @@ -489,6 +497,8 @@ public class PortalOfCostApplication { TbsBudget currBudget = tbsBudgetMapper.selectById(dropPolicyBudgetLog.getBudgetId()); TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,user, costApply, costItem, currBudget,centerGoodItem.getCenterGoodsAmount(),activity); + budgetLog.setCreateCostId(costApply.getId()); + budgetLog.setRemark("政策生成费用"); budgetLogList.add(budgetLog); costItemList.add(costItem); } @@ -501,11 +511,11 @@ public class PortalOfCostApplication { TzcPolicyItemLog policyItemLog = TzcPolicyItemLog.toNewObject(policyItem,totalAmount); policyItemLogService.save(policyItemLog); - //更新项使用情况 - TzcPolicyItem policyItemParam = new TzcPolicyItem(); - policyItemParam.setId(policyItem.getId()); - policyItemParam.setUsedAmount(policyItem.getUsedAmount().add(totalAmount)); - policyItemServiceService.updateById(policyItemParam); + //TODO DEV 更新项使用情况 +// TzcPolicyItem policyItemParam = new TzcPolicyItem(); +// policyItemParam.setId(policyItem.getId()); +// policyItemParam.setUsedAmount(policyItem.getUsedAmount().add(totalAmount)); +// policyItemServiceService.updateById(policyItemParam); //保存核销申请 VtbVerification verification = new VtbVerification(); @@ -916,7 +926,7 @@ public class PortalOfCostApplication { verificationSubject.setCountSession(0); verificationSubjectService.save(verificationSubject); - //保存支付信息 + //保存支付信息(DHX赠品) if(costCode.indexOf("DHX")==0) { //发货单的 String json = ThirtyVerificationUtil.buildJson(supplier, subject, totalAmount, activityTitle, verification); @@ -963,48 +973,48 @@ public class PortalOfCostApplication { } log.info("COST_TO_PAY_API 支付单信息:{},结果:{}", verification.getVerificationCode(), rs); } - //保存支付 - if(costCode.indexOf("SHX")==0) { - //发票的要直接支付 - 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.setCostApplyId(costApply.getId()); - payPayment.setUserId(user.getId()); - payPayment.setUserCode(user.getCode()); - payPayment.setUserName(user.getName()); - payPayment.setPayTime(nowTime); - payPayment.setErpCode(erpCode); - payPayment.setBillNumber(billNumber); - payPayment.setCreateBy(user.getName()); - payPayment.setCreateTime(LocalDateTime.now()); - 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.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()); - paymentItem.setPayTime(nowTime); - - paymentItemService.save(paymentItem); - } + //保存支付(SHX试吃品) +// if(costCode.indexOf("SHX")==0) { +// //发票的要直接支付 +// 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.setCostApplyId(costApply.getId()); +// payPayment.setUserId(user.getId()); +// payPayment.setUserCode(user.getCode()); +// payPayment.setUserName(user.getName()); +// payPayment.setPayTime(nowTime); +// payPayment.setErpCode(erpCode); +// payPayment.setBillNumber(billNumber); +// payPayment.setCreateBy(user.getName()); +// payPayment.setCreateTime(LocalDateTime.now()); +// 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.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()); +// paymentItem.setPayTime(nowTime); +// +// paymentItemService.save(paymentItem); +// } } @@ -1077,23 +1087,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); //保存核销费用结果 @@ -1134,31 +1144,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); } @@ -1212,4 +1222,44 @@ public class PortalOfCostApplication { return goodsSkus; } + + /** + * 修复数据方法,修复后可删除 + */ + public void repairCaCost(){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(SysSyncLog::getFromPlat,"一站式费用ByDong"); + //只处理成功的 + lqw.eq(SysSyncLog::getSuccessStatus,1); + lqw.eq(SysSyncLog::getId,13731L); + 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){ + costApplyService.removeById(costApply.getId()); + QueryWrapper costqw = new QueryWrapper(); + costqw.eq("cost_apply_id",costApply.getId()); + activityService.remove(costqw); + activitySubjectService.remove(costqw); + activityCenterService.remove(costqw); + activityGoodsService.remove(costqw); + activityCenterGoodsService.remove(costqw); + budgetLogService.remove(costqw); + costItemService.remove(costqw); + //policyItemLogService + //policyItemServiceService + verificationService.remove(costqw); + this.createCostProcessByPolicy(applyBo); + break; + } + + + } + } + } 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 new file mode 100644 index 00000000..8b2f4de2 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tran/mapper/TranOldCostMapper.java @@ -0,0 +1,39 @@ +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.Select; + +import java.util.List; + +/** + * @author YenHex + * @since 2024/1/24 + */ +public interface TranOldCostMapper { + + @InterceptorIgnore(tenantLine = "true") + @Select("SELECT " + + " old_cost.*, " + + " cus_code as supplierCode, cus_name as supplierName, " + + " usedAmount " + + "FROM " + + " `old_main_cost` old_cost " + + " LEFT JOIN ( " + + " SELECT " + + " cost_code, " + + " cus_code, cus_name, " + + " sum( check_amt ) AS usedAmount " + + " FROM " + + " ( SELECT * FROM old_main_verify UNION SELECT * FROM old_main_verify2 UNION SELECT * FROM old_main_verify3 ) tmp " + + " GROUP BY " + + " cost_code " + + " ) tmp2 on tmp2.cost_code = old_cost.cost_code ") + List listCost(); + + @InterceptorIgnore(tenantLine = "true") + @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 new file mode 100644 index 00000000..bc909fb0 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/tran/service/TranOldCostService.java @@ -0,0 +1,434 @@ +package com.qs.serve.modules.tran.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.config.properties.ProjectApisProperties; +import com.qs.serve.common.model.consts.ResultFlag; +import com.qs.serve.common.model.enums.BudgetLogOptFlag; +import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.bms.entity.BmsSubject; +import com.qs.serve.modules.bms.entity.BmsSupplier; +import com.qs.serve.modules.bms.service.BmsCostCenterService; +import com.qs.serve.modules.bms.service.BmsRegionService; +import com.qs.serve.modules.bms.service.BmsSubjectService; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.service.GoodsCategoryService; +import com.qs.serve.modules.goods.service.GoodsSkuService; +import com.qs.serve.modules.goods.service.GoodsSpuService; +import com.qs.serve.modules.pay.service.PayPaymentItemService; +import com.qs.serve.modules.pay.service.PayPaymentService; +import com.qs.serve.modules.seeyon.service.XiaoLuTonService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysUserCodeMathMapper; +import com.qs.serve.modules.sys.service.SysSyncLogService; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsActivityState; +import com.qs.serve.modules.tbs.common.TbsCostApplyState; +import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil; +import com.qs.serve.modules.tbs.entity.*; +import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; +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.TranOldCostMapper; +import com.qs.serve.modules.tzc.service.TzcPolicyGoodsSyncService; +import com.qs.serve.modules.tzc.service.TzcPolicyItemLogService; +import com.qs.serve.modules.tzc.service.TzcPolicyItemService; +import com.qs.serve.modules.vtb.common.VtbVerificationState; +import com.qs.serve.modules.vtb.entity.VtbVerification; +import com.qs.serve.modules.vtb.entity.VtbVerificationSubject; +import com.qs.serve.modules.vtb.service.VtbVerificationService; +import com.qs.serve.modules.vtb.service.VtbVerificationSubjectService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @author YenHex + * @since 2024/1/24 + */ +@Slf4j +@Service +@AllArgsConstructor +public class TranOldCostService { + + private TranOldCostMapper tranOldCostMapper; + private SysUserCodeMathMapper userCodeMathMapper; + private final SysSyncLogService sysSyncLogService; + + private TbsActivityService activityService; + private TbsActivityCenterService activityCenterService; + private TbsActivitySubjectService activitySubjectService; + private TbsActivityGoodsService activityGoodsService; + private TbsActivityCenterGoodsService activityCenterGoodsService; + + private BmsSupplierService supplierService; + private BmsSubjectService subjectService; + private BmsCostCenterService costCenterService; + private BmsRegionService saleRegionService; + + private SysUserService userService; + + private TbsCostApplyService costApplyService; + private TbsCostUnItemService costUnItemService; + private TbsBudgetCostItemService costItemService; + private TbsBudgetLogService budgetLogService; + private TbsBudgetApplicationService budgetApplicationService; + private TbsScheduleItemBudgetMapper scheduleItemBudgetMapper; + private TbsBudgetMapper tbsBudgetMapper; + + + private GoodsSkuService goodsSkuService; + private GoodsSpuService goodsSpuService; + private GoodsCategoryService goodsCategoryService; + + private PayPaymentService paymentService; + private PayPaymentItemService paymentItemService; + + private VtbVerificationService verificationService; + private VtbVerificationSubjectService verificationSubjectService; + + private TzcPolicyItemService policyItemServiceService; + private TzcPolicyItemLogService policyItemLogService; + private TzcPolicyGoodsSyncService tzcPolicyGoodsSyncService; + private final XiaoLuTonService xiaoLuTonService; + + private ProjectApisProperties projectApisProperties; + + + + + public void syncOldCost(){ + Long scheduleItemBudgetId = 4896L; + + String centerType = "center"; + String centerId = "71"; + String centerName = "BI历史记录"; + String centerCode = "HIS2022"; + + BmsSubject subject = new BmsSubject(); + subject.setId(79L); + subject.setSubjectName("原BI科目"); + subject.setSubjectCode("10001"); + + TbsScheduleItemBudget itemBudget = scheduleItemBudgetMapper.selectById(scheduleItemBudgetId); + + final BigDecimal OneHundred = new BigDecimal("100"); + + List costList = tranOldCostMapper.listCost(); + + for (OldCost oldCost : costList) { + + String costCode = oldCost.getCostCode(); + + LambdaQueryWrapper costLqwCount = new LambdaQueryWrapper<>(); + costLqwCount.eq(TbsCostApply::getCode,costCode); + + if(costApplyService.count(costLqwCount)>0){ + log.warn("已存:{}",costCode); + continue; + } + + BmsSupplier supplier = supplierService.getByNameOrCode(oldCost.getSupplierCode()); + + if(supplier==null){ + supplier = new BmsSupplier(); + supplier.setId("0"); + if(oldCost.getSupplierCode()==null){ + supplier.setCode("未指定客户"); + supplier.setName("未指定客户"); + }else { + supplier.setCode(oldCost.getSupplierCode()); + supplier.setName(oldCost.getSupplierName()); + } + } + + Long supplierId = Long.parseLong(supplier.getId()); + + SysUser user = new SysUser(); + if(oldCost.getCheckUser()!=null&&oldCost.getCheckUser().contains(" - ")){ + String[] users = oldCost.getCheckUser().split(" - "); + user.setId("0"); + user.setCode(users[0]); + user.setName(users[1]); + }else { + user.setId("0"); + user.setCode("系统导入"); + user.setName("系统导入"); + } + + BigDecimal usedAmt = oldCost.getUsedAmount(); + BigDecimal totalAmount = oldCost.getCostPrice(); + + //构建费用申请 + TbsCostApply costApply = new TbsCostApply(); + costApply.setCode(oldCost.getCostCode()); + costApply.setMatchType(-1); + String chargeTheme = StringUtils.tailorLen(oldCost.getCostTitle(),590); + costApply.setChargeTheme(chargeTheme); + costApply.setChargeState(TbsCostApplyState.State_3_finished.getCode()); + costApply.setSupplierId(Long.parseLong(supplier.getId())); + costApply.setSupplierName(supplier.getName()); + costApply.setSupplierCode(supplier.getCode()); + costApply.setUserId(user.getId()); + costApply.setUserCode(user.getCode()); + costApply.setUserName(user.getName()); + costApply.setTotalActivity(1); + costApply.setTotalActivityAmount(totalAmount); + costApply.setTotalActivityUsedAmount(usedAmt); + costApply.setSubmitTime(oldCost.getCreateTime()); + costApply.setCreateTime(oldCost.getCreateTime()); + costApply.setRemark(StringUtils.tailorLen(oldCost.getRemark(),590)); + + //构建活动 + TbsActivity activity = new TbsActivity(); + activity.setActivityCode(oldCost.getCostCode()); + activity.setActivityState(TbsActivityState.STATE_1_Finished); + activity.setCostPassFlag(1); + activity.setCostPassTime(oldCost.getCheckTime()); + activity.setActTitle(chargeTheme); + activity.setSupplierId(supplierId); + activity.setSupplierName(supplier.getName()); + activity.setSupplierCode(supplier.getCode()); + activity.setActStartDate(oldCost.getStartDate()); + activity.setActEndDate(oldCost.getEndDate()); + activity.setPreStartDate(oldCost.getStartDate()); + activity.setPreEndDate(oldCost.getEndDate()); + activity.setPreCheckDate(oldCost.getEndDate()); + activity.setPreActQuantity(oldCost.getCostPrePrice()); + activity.setTotalAmount(totalAmount); + activity.setUsedAmount(usedAmt); + activity.setFinishedFlag(ResultFlag.OK); + activity.setFinishedTime(oldCost.getCreateTime()); + + //活动-科目 + TbsActivitySubject activitySubject = new TbsActivitySubject(); + activitySubject.setSubjectId(subject.getId()); + activitySubject.setSubjectCode(subject.getSubjectCode()); + activitySubject.setSubjectName(subject.getSubjectName()); + activitySubject.setAmount(totalAmount); + activitySubject.setUsedAmount(usedAmt); + activitySubject.setCountSession(0); + activitySubject.setCountPerson(0); + + //活动-成本中心 + TbsActivityCenter activityCenter = new TbsActivityCenter(); + activityCenter.setSubjectId(subject.getId()); + activityCenter.setCenterAmount(totalAmount); + activityCenter.setCenterRate(OneHundred); + activityCenter.setCenterType(centerType); + activityCenter.setCenterId(centerId); + activityCenter.setCenterName(centerName); + activityCenter.setCenterCode(centerCode); + activityCenter.setUsedAmount(totalAmount); + + //品类 + TbsActivityGoods activityGoods = new TbsActivityGoods(); + activityGoods.setTargetType("brand"); + activityGoods.setTargetId(102L); + activityGoods.setTargetCode("B101"); + activityGoods.setTargetName("原BI品牌"); + activityGoods.setTargetLevelPathIds("102"); + activityGoods.setTargetLevelPathNames("原BI品牌"); + + TbsActivityCenterGoods centerGoods = new TbsActivityCenterGoods(); + centerGoods.setActivityCode(activity.getActivityCode()); + centerGoods.setCenterGoodsCode(activity.getActivityCode()); + centerGoods.setSupplierId(supplierId); + centerGoods.setSupplierCode(supplier.getCode()); + centerGoods.setSupplierName(supplier.getName()); + //设置成本中心 + centerGoods.setCenterType(centerType); + centerGoods.setCenterId(centerId); + centerGoods.setCenterName(centerName); + centerGoods.setCenterCode(centerCode); + centerGoods.setCenterRate(OneHundred); + centerGoods.setCenterAmount(totalAmount); + //设置科目 + centerGoods.setSubjectId(subject.getId()); + centerGoods.setSubjectCode(subject.getSubjectCode()); + centerGoods.setSubjectName(subject.getSubjectName()); + //设置活动时间 + centerGoods.setActEndDate(oldCost.getEndDate()); + centerGoods.setActStartDate(oldCost.getStartDate()); + centerGoods.setPreEndDate(oldCost.getEndDate()); + centerGoods.setPreStartDate(oldCost.getStartDate()); + centerGoods.setPreCheckDate(oldCost.getEndDate()); + //设置目标 + centerGoods.setTargetId(activityGoods.getTargetId()); + centerGoods.setTargetType(activityGoods.getTargetType()); + centerGoods.setTargetCode(activityGoods.getTargetCode()); + centerGoods.setTargetName(activityGoods.getTargetName()); + centerGoods.setTargetLevelPathIds(activityGoods.getTargetLevelPathIds()); + centerGoods.setTargetLevelPathNames(activityGoods.getTargetLevelPathNames()); + // 分配金额 + centerGoods.setCenterGoodsAmount(totalAmount); + centerGoods.setCenterGoodsRate(OneHundred); + centerGoods.setUsedAmount(usedAmt); + + + //保存活动有关数据 + costApplyService.save(costApply); + activity.setCostApplyId(costApply.getId()); + activityService.save(activity); + + activitySubject.setCostApplyId(costApply.getId()); + activitySubject.setActivityId(activity.getId()); + activitySubjectService.save(activitySubject); + + activityCenter.setCostApplyId(costApply.getId()); + activityCenter.setActivityId(activity.getId()); + activityCenterService.save(activityCenter); + + activityGoods.setCostApplyId(costApply.getId()); + activityGoods.setActivityId(activity.getId()); + activityGoodsService.save(activityGoods); + + centerGoods.setCostApplyId(costApply.getId()); + centerGoods.setActivityId(activity.getId()); + activityCenterGoodsService.save(centerGoods); + + //匹配的商品,生成预算日志 + TbsBudgetCostItem costItem = new TbsBudgetCostItem(); + costItem.setCenterGoodsCode(centerGoods.getCenterGoodsCode()); + costItem.setCostApplyId(centerGoods.getCostApplyId()); + costItem.setActivityId(centerGoods.getActivityId()); + costItem.setActivityCode(centerGoods.getActivityCode()); + costItem.setSupplierId(centerGoods.getSupplierId()); + costItem.setSupplierCode(centerGoods.getSupplierCode()); + costItem.setSupplierName(centerGoods.getSupplierName()); + costItem.setSubjectId(centerGoods.getSubjectId()); + costItem.setSubjectCode(centerGoods.getSubjectCode()); + costItem.setSubjectName(centerGoods.getSubjectName()); + costItem.setCenterType(centerGoods.getCenterType()); + costItem.setCenterId(centerGoods.getCenterId()); + costItem.setCenterCode(centerGoods.getCenterCode()); + costItem.setCenterName(centerGoods.getCenterName()); + costItem.setCenterAmount(centerGoods.getCenterAmount()); + costItem.setCenterRate(centerGoods.getCenterRate()); + costItem.setCenterGoodsAmount(centerGoods.getCenterGoodsAmount()); + costItem.setCenterGoodsRate(centerGoods.getCenterGoodsRate()); + costItem.setTargetType(centerGoods.getTargetType()); + costItem.setTargetId(centerGoods.getTargetId()); + costItem.setTargetCode(centerGoods.getTargetCode()); + costItem.setTargetName(centerGoods.getTargetName()); + costItem.setTargetLevelPathIds(centerGoods.getTargetLevelPathIds()); + costItem.setTargetLevelPathNames(centerGoods.getTargetLevelPathNames()); + costItem.setActStartDate(centerGoods.getActStartDate()); + costItem.setActEndDate(centerGoods.getActEndDate()); + costItem.setPreStartDate(centerGoods.getPreStartDate()); + costItem.setPreEndDate(centerGoods.getPreEndDate()); + costItem.setPreCheckDate(centerGoods.getPreCheckDate()); + costItem.setCenterGoodItemId(centerGoods.getId()); + + + TbsBudgetLog budgetLog = TbsBudgetLogBuildUtil.buildTbsBudgetLog(BudgetLogOptFlag.State_1,user, costApply, itemBudget, centerGoods,centerGoods.getCenterGoodsAmount(),activity); + costItem.setBudgetId(itemBudget.getBudgetId()); + costItem.setScheduleId(itemBudget.getScheduleId()); + costItem.setScheduleItemId(itemBudget.getScheduleItemId()); + costItem.setScheduleItemName(itemBudget.getItemName()); + costItem.setScheduleItemAmount(itemBudget.getFinalBudgetAmount()); + costItem.setScheduleItemAmountUsed(itemBudget.getUsedBudgetAmount()); + costItem.setScheduleItemAmountApply(itemBudget.getUnUsedBudgetAmount()); + costItem.setScheduleItemBudgetId(itemBudget.getId()); + budgetLogService.save(budgetLog); + + } + } + + + public void syncVerify(){ + + BmsSubject subject = new BmsSubject(); + subject.setId(79L); + subject.setSubjectName("原BI科目"); + subject.setSubjectCode("10001"); + + List oldVerifyList = tranOldCostMapper.listVerifyList(); + + for (OldVerify oldVerify : oldVerifyList) { + TbsCostApply costApply = costApplyService.getByCode(oldVerify.getCostCode()); + //if(oldVerify.getCode()) + long count = verificationService.count(new LambdaQueryWrapper() + .eq(VtbVerification::getVerificationCode,oldVerify.getCostCode())); + if(count>0L){ + log.warn("已存"); + continue; + } + if(costApply==null){ + log.warn("费用缺失"); + continue; + } + + TbsActivity activity = activityService.listByCostApplyId(costApply.getId()).get(0); + + String verifyCode = oldVerify.getCode(); + + BigDecimal totalAmount = oldVerify.getCheckAmt(); + + LocalDateTime nowTime = oldVerify.getSubmitDate(); + + SysUser user = new SysUser(); + if(oldVerify.getCheckUser()!=null&&oldVerify.getCheckUser().contains(" - ")){ + String[] users = oldVerify.getCheckUser().split(" - "); + user.setId("0"); + user.setCode(users[0]); + user.setName(users[1]); + }else { + user.setId("0"); + user.setCode("系统导入"); + user.setName("系统导入"); + } + + //保存核销申请 + VtbVerification verification = new VtbVerification(); + verification.setVerificationCode(verifyCode); + verification.setVerificationMainCode(verification.getVerificationCode()); + verification.setCostApplyId(costApply.getId()); + verification.setFinishedTime(nowTime); + verification.setVerificationState(VtbVerificationState.Finished.getCode()); + verification.setActivityId(activity.getId()); + verification.setSupplierId(activity.getSupplierId()); + verification.setSupplierCode(activity.getSupplierCode()); + verification.setSupplierName(activity.getSupplierName()); + verification.setUserId(user.getId()); + verification.setUserCode(user.getCode()); + verification.setUserName(user.getName()); + verification.setAmount(totalAmount); + verification.setAmountRecord(totalAmount); + verification.setPaymentState(ResultFlag.OK); + String remark = StringUtils.tailorLen("["+oldVerify.getSubjectName()+"]"+oldVerify.getTitle()+"备注:"+oldVerify.getRemark(),580); + verification.setRemark(remark); + verificationService.save(verification); + + //保存核销费用结果 + VtbVerificationSubject verificationSubject = new VtbVerificationSubject(); + verificationSubject.setVerificationId(verification.getId()); + verificationSubject.setVerificationSubCode(verification.getVerificationCode()+"_1"); + verificationSubject.setCostApplyId(costApply.getId()); + verificationSubject.setActivityId(activity.getId()); + verificationSubject.setSubjectId(costApply.getId()); + verificationSubject.setSubjectCode(subject.getSubjectCode()); + verificationSubject.setSubjectName(subject.getSubjectName()); + verificationSubject.setSupplierId(costApply.getSupplierId()); + verificationSubject.setSupplierCode(costApply.getSupplierCode()); + verificationSubject.setSupplierName(costApply.getSupplierName()); + verificationSubject.setPayFinishedFlag(ResultFlag.OK); + verificationSubject.setUsedAmount(totalAmount); + verificationSubject.setUsedAmountRecord(totalAmount); + verificationSubject.setCountPerson(0); + verificationSubject.setCountSession(0); + verificationSubjectService.save(verificationSubject); + + } + + } + +} diff --git a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java index 3efc9e8c..56fb460e 100644 --- a/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java +++ b/src/main/java/com/qs/serve/modules/tzc/controller/TzcPolicyController.java @@ -478,6 +478,17 @@ public class TzcPolicyController { } + /** + * 释放政策 + * @param policyId + * @return + */ + @GetMapping("/releasePolicy") + public R releasePolicy(Long policyId){ + policyApplicationService.releasePolicy(policyId); + return R.ok(); + } + private List getCateIds(String province,String city,String area){ LambdaQueryWrapper region2Lqw = new LambdaQueryWrapper<>(); boolean search = false; diff --git a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java index c5cbb32e..324d7d52 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/TzcPolicyApplicationService.java @@ -21,6 +21,8 @@ public interface TzcPolicyApplicationService { void syncPolicy(Long policyId); + void releasePolicy(Long policyId); + /** * 创建费用占用结果 * @param policyId diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java index 5597ebfb..1c7931ee 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java @@ -112,6 +112,12 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ } } + @Override + public void releasePolicy(Long policyId) { + + } + + @Override public void syncPolicyItem(Long policyItemId) { TzcPolicyItem policyItem = tzcPolicyItemService.getById(policyItemId); 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 637ab02f..94d2ae4c 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 @@ -91,5 +91,7 @@ public interface VtbVerificationService extends IService { */ void toPayRequest(); + void toPayRequest(Long verificationId); + } diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 5880019c..9901d6d8 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -1290,6 +1290,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl verificationSubjects = verificationSubjectService.listByVerificationId(verificationId); + + VtbVerification verification = this.getById(verificationId); + TbsActivity activity = activityService.getById(verification.getActivityId()); + //调用支付接口 + BmsSubject subject = new BmsSubject(); + BmsSupplier supplier = new BmsSupplier(); + supplier.setCode(activity.getSupplierCode()); + supplier.setName(activity.getSupplierName()); + + for (VtbVerificationSubject verificationSubject : verificationSubjects) { + subject.setSubjectCode(verificationSubject.getSubjectCode()); + subject.setSubjectName(verificationSubject.getSubjectName()); + String COST_TO_PAY_API = projectApisProperties.getCostToPay(); + String json = ThirtyVerificationUtil.buildJson(supplier, subject, verification.getAmount() + , activity.getActTitle(),activity.getActStartDate().atStartOfDay(),activity.getActEndDate().atTime(23,59,59), verification); + SysSyncLog syncLog = ThirtyVerificationUtil.requestToPayment("to支付请求",verification.getVerificationCode(), COST_TO_PAY_API, json); + syncLog.setTodoState(1); + sysSyncLogService.save(syncLog); + } + + + } + }