package com.ruoyi.cwgl.service.impl;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.ruoyi.common.utils.http.HttpUtils;
|
import com.ruoyi.cwgl.domain.PayableFeeManagement;
|
import com.ruoyi.cwgl.domain.ReceivableFeeManagement;
|
import com.ruoyi.cwgl.domain.dto.PayableAuditLog;
|
import com.ruoyi.cwgl.domain.dto.ReceivableAuditLog;
|
import com.ruoyi.cwgl.service.IPayableFeeManagementService;
|
import com.ruoyi.cwgl.service.IReceivableFeeManagementService;
|
import com.ruoyi.cwgl.service.ITmsAuditLogPushService;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
import java.util.List;
|
|
/**
|
* TMS审核日志推送服务实现类
|
*/
|
@Service
|
public class TmsAuditLogPushServiceImpl implements ITmsAuditLogPushService {
|
|
private static final Logger log = LoggerFactory.getLogger(TmsAuditLogPushServiceImpl.class);
|
|
@Value("${custom.tms.url}")
|
private String tmsBaseUrl;
|
|
@Autowired
|
private IPayableFeeManagementService payableFeeManagementService;
|
|
@Autowired
|
private IReceivableFeeManagementService receivableFeeManagementService;
|
|
@Override
|
public boolean pushPayableAuditLog(PayableAuditLog auditLog) {
|
try {
|
String url = tmsBaseUrl + "/api/third/audit/ap-bill";
|
String jsonBody = JSON.toJSONString(auditLog);
|
|
log.info("推送应付账单审核日志到TMS: {}", jsonBody);
|
|
String response = HttpUtils.sendPost(url, jsonBody);
|
log.info("TMS应付账单审核日志推送响应: {}", response);
|
|
return true;
|
} catch (Exception e) {
|
log.error("推送应付账单审核日志到TMS失败", e);
|
return false;
|
}
|
}
|
|
@Override
|
public boolean pushReceivableAuditLog(ReceivableAuditLog auditLog) {
|
try {
|
String url = tmsBaseUrl + "/api/third/audit/ar-bill";
|
String jsonBody = JSON.toJSONString(auditLog);
|
|
log.info("推送应收账单审核日志到TMS: {}", jsonBody);
|
|
String response = HttpUtils.sendPost(url, jsonBody);
|
log.info("TMS应收账单审核日志推送响应: {}", response);
|
|
return true;
|
} catch (Exception e) {
|
log.error("推送应收账单审核日志到TMS失败", e);
|
return false;
|
}
|
}
|
|
/**
|
* 判断应付账单是否来自TMS系统
|
* @param billNo 账单编号
|
* @return 是否来自TMS系统
|
*/
|
public boolean isPayableBillFromTms(String billNo) {
|
try {
|
PayableFeeManagement query = new PayableFeeManagement();
|
query.setRelatedBillNo(billNo);
|
List<PayableFeeManagement> fees = payableFeeManagementService.selectPayableFeeManagementList(query);
|
|
if (fees != null && !fees.isEmpty()) {
|
// 检查是否有费用来自TMS系统
|
return fees.stream()
|
.anyMatch(fee -> "TMS".equalsIgnoreCase(fee.getSourceSystem()));
|
}
|
return false;
|
} catch (Exception e) {
|
log.error("判断应付账单来源系统失败", e);
|
return false;
|
}
|
}
|
|
/**
|
* 判断应收账单是否来自TMS系统
|
* @param billNo 账单编号
|
* @return 是否来自TMS系统
|
*/
|
public boolean isReceivableBillFromTms(String billNo) {
|
try {
|
ReceivableFeeManagement query = new ReceivableFeeManagement();
|
query.setRelatedBillNo(billNo);
|
List<ReceivableFeeManagement> fees = receivableFeeManagementService.selectReceivableFeeManagementList(query);
|
|
if (fees != null && !fees.isEmpty()) {
|
// 检查是否有费用来自TMS系统
|
return fees.stream()
|
.anyMatch(fee -> "tms".equalsIgnoreCase(fee.getSourceSystem()));
|
}
|
return false;
|
} catch (Exception e) {
|
log.error("判断应收账单来源系统失败", e);
|
return false;
|
}
|
}
|
|
/**
|
* 获取应付账单的来源系统
|
* @param billNo 账单编号
|
* @return 来源系统,如果多个来源系统则返回第一个TMS系统,否则返回第一个非空系统
|
*/
|
public String getPayableBillSourceSystem(String billNo) {
|
try {
|
PayableFeeManagement query = new PayableFeeManagement();
|
query.setRelatedBillNo(billNo);
|
List<PayableFeeManagement> fees = payableFeeManagementService.selectPayableFeeManagementList(query);
|
|
if (fees != null && !fees.isEmpty()) {
|
// 优先返回TMS系统
|
return fees.stream()
|
.map(PayableFeeManagement::getSourceSystem)
|
.filter(source -> source != null && !source.trim().isEmpty())
|
.findFirst()
|
.orElse(null);
|
}
|
return null;
|
} catch (Exception e) {
|
log.error("获取应付账单来源系统失败", e);
|
return null;
|
}
|
}
|
|
/**
|
* 获取应收账单的来源系统
|
* @param billNo 账单编号
|
* @return 来源系统,如果多个来源系统则返回第一个TMS系统,否则返回第一个非空系统
|
*/
|
public String getReceivableBillSourceSystem(String billNo) {
|
try {
|
ReceivableFeeManagement query = new ReceivableFeeManagement();
|
query.setRelatedBillNo(billNo);
|
List<ReceivableFeeManagement> fees = receivableFeeManagementService.selectReceivableFeeManagementList(query);
|
|
if (fees != null && !fees.isEmpty()) {
|
// 优先返回TMS系统
|
return fees.stream()
|
.map(ReceivableFeeManagement::getSourceSystem)
|
.filter(source -> source != null && !source.trim().isEmpty())
|
.findFirst()
|
.orElse(null);
|
}
|
return null;
|
} catch (Exception e) {
|
log.error("获取应收账单来源系统失败", e);
|
return null;
|
}
|
}
|
}
|