diff --git a/pom.xml b/pom.xml
index b1678a2d..72fd6c9a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -153,11 +153,11 @@
8.0.15
-
+
org.springframework
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 40178c0d..6b03e215 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
@@ -25,8 +25,10 @@ import com.qs.serve.modules.pay.service.PayPaymentService;
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.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;
@@ -35,6 +37,7 @@ import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.third.entity.*;
+import com.qs.serve.modules.third.util.ThirtyVerificationUtil;
import com.qs.serve.modules.tzc.common.TzPolicyItemStatus;
import com.qs.serve.modules.tzc.entity.TzcPolicyGoodsSync;
import com.qs.serve.modules.tzc.entity.TzcPolicyItem;
@@ -49,6 +52,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.jetbrains.annotations.Nullable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -70,6 +74,7 @@ import java.util.stream.Collectors;
public class PortalOfCostApplication {
private SysUserCodeMathMapper userCodeMathMapper;
+ private final SysSyncLogService sysSyncLogService;
private TbsActivityService activityService;
private TbsActivityCenterService activityCenterService;
@@ -436,31 +441,37 @@ public class PortalOfCostApplication {
verificationService.save(verification);
if(createBo.getToSaveCostCheckFlag()!=null&&createBo.getToSaveCostCheckFlag().equals(1)){
- //发送请求到中间服务
- XltApticlaim apticlaim = new XltApticlaim();
- apticlaim.setVerificationCode(verification.getVerificationCode());
- apticlaim.setCostCode(costApply.getCode());
- apticlaim.setCostCode2(activity.getActivityCode());
- apticlaim.setCusCode(verification.getSupplierCode());
- apticlaim.setAmount(totalAmount);
- apticlaim.setSubjectCode(subject.getSubjectCode());
- apticlaim.setSubjectName(subject.getSubjectName());
- apticlaim.setExpType("TI");
- apticlaim.setApplyType("01");
- apticlaim.setEffDate(nowDate_);
- apticlaim.setInvoiced("2");
- apticlaim.setCreateTime(nowDate_);
- apticlaim.setStatus("00");
- apticlaim.setDealTime(nowDate_);
- apticlaim.setTopic(costApply.getChargeTheme());
- try {
- //todo 如果失败做补偿处理
- xiaoLuTonService.saveApticlaim(apticlaim);
- log.info("发送对象(apticlaim)到OA服务成功");
- } catch (Exception e) {
- e.printStackTrace();
- log.error("发送对象到OA服务失败,数据内容如下:{}", JsonUtil.objectToJson(apticlaim));
- }
+ //保存支付信息
+ 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);
+ sysSyncLogService.save(syncLog);
+// //发送请求到中间服务
+// XltApticlaim apticlaim = new XltApticlaim();
+// apticlaim.setVerificationCode(verification.getVerificationCode());
+// apticlaim.setCostCode(costApply.getCode());
+// apticlaim.setCostCode2(activity.getActivityCode());
+// apticlaim.setCusCode(verification.getSupplierCode());
+// apticlaim.setAmount(totalAmount);
+// apticlaim.setSubjectCode(subject.getSubjectCode());
+// apticlaim.setSubjectName(subject.getSubjectName());
+// apticlaim.setExpType("TI");
+// apticlaim.setApplyType("01");
+// apticlaim.setEffDate(nowDate_);
+// apticlaim.setInvoiced("2");
+// apticlaim.setCreateTime(nowDate_);
+// apticlaim.setStatus("00");
+// apticlaim.setDealTime(nowDate_);
+// apticlaim.setTopic(costApply.getChargeTheme());
+// try {
+// //todo 如果失败做补偿处理
+// xiaoLuTonService.saveApticlaim(apticlaim);
+// log.info("发送对象(apticlaim)到OA服务成功");
+// } catch (Exception e) {
+// e.printStackTrace();
+// log.error("发送对象到OA服务失败,数据内容如下:{}", JsonUtil.objectToJson(apticlaim));
+// }
}
//保存核销费用结果
@@ -810,28 +821,8 @@ public class PortalOfCostApplication {
verificationSubjectService.save(verificationSubject);
//保存支付信息
- String timeString = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
-
- ThirtyVerification tv = new ThirtyVerification();
- tv.setId(IdUtil.getSnowFlakeId()+"");
- tv.setVerificationCode(verification.getVerificationCode());
- tv.setActivityTitle(activityTitle);
- //tv.setActivityCode(activityCode);
- tv.setCreateDate(timeString);
- tv.setStartDate(timeString);
- tv.setEndDate(timeString);
- tv.setSubjectCode(subject.getSubjectCode());
- tv.setSubjectName(subject.getSubjectName());
- tv.setMoney(totalAmount);
- //tv.setCreateUser();
- tv.setCreateTime(timeString);
- //tv.setCheckUser(user.getName());
- tv.setCheckTime(timeString);
- tv.setCusCode(supplier.getCode());
- tv.setCusName(supplier.getName());
- tv.setRecId(verification.getVerificationCode());
+ String json = ThirtyVerificationUtil.buildJson(supplier, subject, totalAmount, activityTitle, verification);
String COST_TO_PAY_API = projectApisProperties.getCostToPay();
- String json = JsonUtil.objectToJson(tv);
log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}",verification.getVerificationCode(),json);
String rs = HttpUtil.doPost(COST_TO_PAY_API,json,null);
if(rs==null||!rs.contains("200")){
@@ -891,6 +882,8 @@ public class PortalOfCostApplication {
}
+
+
/**
* 创建流程中,初始化SKU列表
* @param invCodes
diff --git a/src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java b/src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java
new file mode 100644
index 00000000..0a16faf6
--- /dev/null
+++ b/src/main/java/com/qs/serve/modules/third/util/ThirtyVerificationUtil.java
@@ -0,0 +1,122 @@
+package com.qs.serve.modules.third.util;
+
+import com.qs.serve.common.util.HttpUtil;
+import com.qs.serve.common.util.IdUtil;
+import com.qs.serve.common.util.JsonUtil;
+import com.qs.serve.modules.bms.entity.BmsSubject;
+import com.qs.serve.modules.bms.entity.BmsSupplier;
+import com.qs.serve.modules.sys.entity.SysSyncLog;
+import com.qs.serve.modules.third.entity.ThirtyVerification;
+import com.qs.serve.modules.vtb.entity.VtbVerification;
+import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @author YenHex
+ * @since 2023/9/14
+ */
+@Slf4j
+public class ThirtyVerificationUtil {
+
+ /**
+ * 用于全过程生成
+ * @param supplier
+ * @param subject
+ * @param totalAmount
+ * @param activityTitle
+ * @param verification
+ * @return
+ */
+ @Nullable
+ public static String buildJson(BmsSupplier supplier, BmsSubject subject, BigDecimal totalAmount, String activityTitle, VtbVerification verification) {
+ LocalDateTime nowTime = LocalDateTime.now();
+ String timeString = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ ThirtyVerification tv = new ThirtyVerification();
+ tv.setId(IdUtil.getSnowFlakeId()+"");
+ tv.setVerificationCode(verification.getVerificationCode());
+ tv.setActivityTitle(activityTitle);
+ //tv.setActivityCode(activityCode);
+ tv.setCreateDate(timeString);
+ tv.setStartDate(timeString);
+ tv.setEndDate(timeString);
+ tv.setSubjectCode(subject.getSubjectCode());
+ tv.setSubjectName(subject.getSubjectName());
+ tv.setMoney(totalAmount);
+ //tv.setCreateUser();
+ tv.setCreateTime(timeString);
+ //tv.setCheckUser(user.getName());
+ tv.setCheckTime(timeString);
+ tv.setCusCode(supplier.getCode());
+ tv.setCusName(supplier.getName());
+ tv.setRecId(verification.getVerificationCode());
+ String json = JsonUtil.objectToJson(tv);
+ return json;
+ }
+
+ /**
+ * 用于全过程生成
+ * @param supplier
+ * @param subject
+ * @param totalAmount
+ * @param activityTitle
+ * @param verification
+ * @return
+ */
+ @Nullable
+ public static String buildJson(BmsSupplier supplier, BmsSubject subject, BigDecimal totalAmount, String activityTitle,
+ LocalDateTime startTime,LocalDateTime endTime, VtbVerification verification) {
+ LocalDateTime nowTime = LocalDateTime.now();
+ String timeString = nowTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ String startTimeString = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ String endTimeString = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ ThirtyVerification tv = new ThirtyVerification();
+ tv.setId(IdUtil.getSnowFlakeId()+"");
+ tv.setVerificationCode(verification.getVerificationCode());
+ tv.setActivityTitle(activityTitle);
+ //tv.setActivityCode(activityCode);
+ tv.setCreateDate(timeString);
+ tv.setStartDate(startTimeString);
+ tv.setEndDate(endTimeString);
+ tv.setSubjectCode(subject.getSubjectCode());
+ tv.setSubjectName(subject.getSubjectName());
+ tv.setMoney(totalAmount);
+ //tv.setCreateUser();
+ tv.setCreateTime(timeString);
+ //tv.setCheckUser(user.getName());
+ tv.setCheckTime(timeString);
+ tv.setCusCode(supplier.getCode());
+ tv.setCusName(supplier.getName());
+ tv.setRecId(verification.getVerificationCode());
+ return JsonUtil.objectToJson(tv);
+ }
+
+ @NotNull
+ public static SysSyncLog requestToPayment(String title,String keyCode, String api, String json) {
+ log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}", keyCode, json);
+ String rs = null;
+ try {
+ rs = HttpUtil.doPost(api, json,null);
+ } catch (Exception e) {
+ rs = e.getMessage();
+ }
+ SysSyncLog syncLog = new SysSyncLog();
+ syncLog.setFrom(title);
+ syncLog.setUrl(api);
+ syncLog.setRequestJson(json);
+ if(rs==null||!rs.contains("200")){
+ log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}", json, keyCode,rs);
+ syncLog.setEntityClass("ThirtyVerification");
+ syncLog.setFailReason(rs);
+ syncLog.setRemark("支付失败:["+ keyCode+"]");
+ }else {
+ syncLog.setSuccessStatus(1);
+ syncLog.setRemark("支付完成:["+ keyCode+"]");
+ }
+ return syncLog;
+ }
+}
diff --git a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java
index a0e14d69..195a13ab 100644
--- a/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java
+++ b/src/main/java/com/qs/serve/modules/vtb/entity/so/VtbActivityCheckSo.java
@@ -39,17 +39,17 @@ public class VtbActivityCheckSo {
/** 提交结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- private String queryEndSubmitTime;
+ private LocalDateTime queryEndSubmitTime;
/** 核销开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- private String queryStartCheckTime;
+ private LocalDateTime queryStartCheckTime;
/** 核销开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
- private String queryEndCheckTime;
+ private LocalDateTime queryEndCheckTime;
private Integer pageSize;
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 98f7dc26..12fce4c8 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
@@ -3,6 +3,7 @@ package com.qs.serve.modules.vtb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.config.properties.ProjectProperties;
import com.qs.serve.common.framework.manager.AsyncFactory;
import com.qs.serve.common.framework.manager.AsyncManager;
@@ -24,7 +25,9 @@ import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.seeyon.service.XiaoLuTonService;
+import com.qs.serve.modules.sys.entity.SysSyncLog;
import com.qs.serve.modules.sys.entity.SysUser;
+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;
@@ -35,6 +38,7 @@ import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem;
import com.qs.serve.modules.tbs.mapper.TbsCostPercentMapper;
import com.qs.serve.modules.tbs.service.*;
+import com.qs.serve.modules.third.util.ThirtyVerificationUtil;
import com.qs.serve.modules.vtb.common.VtbFundFlowType;
import com.qs.serve.modules.vtb.common.VtbVerificationState;
import com.qs.serve.modules.vtb.entity.*;
@@ -47,6 +51,7 @@ import com.qs.serve.modules.vtb.service.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -84,6 +89,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl
+
and vtb.finished_time >= #{query.queryStartCheckTime}
-
+
and vtb.finished_time <= #{query.queryEndSubmitTime}
group by vtb.activity_id
) vvtb on vvtb.activity_id = tbs_activity.id
@@ -76,9 +76,9 @@
from vtb_verification vtb
where
vtb.del_flag = 0
-
+
and vtb.finished_time >= #{query.queryStartCheckTime}
-
+
and vtb.finished_time <= #{query.queryEndSubmitTime}
group by vtb.activity_id
) vvtb on vvtb.activity_id = tbs_activity.id
@@ -134,8 +134,8 @@
left join pay_payment pm
on pm.id = pay2.payment_id
where pm.cancel_flag= 0 and pay2.del_flag = 0 and pay2.pay_type = 'unPay'
- and pm.create_time <= #{query.startPayTime}
- and pm.create_time <= #{query.endPayTime}
+ and pm.create_time <= #{query.startPayTime}
+ and pm.create_time <= #{query.endPayTime}
group by pay2.verification_id
) pay_item2
on pay_item2.verification_id = vtb.id
@@ -155,8 +155,8 @@
and `cost`.`code` like concat('%',#{query.costApplyCode},'%')
and `cost`.`code` like concat('%',#{query.verificationCode},'%')
and `cost`.`charge_theme` like concat('%',#{query.chargeTheme},'%')
- and `vtb`.`finished_time` >= #{query.startCheckTime}
- and `vtb`.`finished_time` <= #{query.endCheckTime}
+ and `vtb`.`finished_time` >= #{query.startCheckTime}
+ and `vtb`.`finished_time` <= #{query.endCheckTime}
limit #{query.startRow},#{query.pageSize}