first commit

This commit is contained in:
陈现府
2025-11-20 10:45:16 +08:00
commit 8355431361
2643 changed files with 291314 additions and 0 deletions
@@ -0,0 +1,121 @@
package com.linke.finance.interfaces.assemble.accountManage;
import com.linke.finance.domain.accountManage.entity.AccountCashWallet;
import com.linke.finance.domain.accountManage.entity.AccountExpendRecords;
import com.linke.finance.interfaces.dto.*;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import java.util.Date;
/**
* entity dto 转换
*
* 2023年3月14日
*
*/
public class AccountAssembler {
/**
* 账户管理装配
* @param accountCashWalletDto
* @return
*/
public AccountCashWallet toDo(AccountCashWalletDto accountCashWalletDto) {
AccountCashWallet accountCashWallet = new AccountCashWallet();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(accountCashWalletDto, accountCashWallet);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
if(accountCashWalletDto.getAccountCashWalletId() != null){
if(userId != null){
accountCashWallet.setUpdateBy(userId);
accountCashWallet.setUpdateByName(SecurityUtils.getLoginUser().getUsername());
}else {
accountCashWallet.setUpdateBy(new Long("0"));
}
accountCashWallet.setUpdateTime(new Date());
}else {
if(userId != null){
accountCashWallet.setCreateBy(userId);
accountCashWallet.setUpdateByName(SecurityUtils.getLoginUser().getUsername());
}else {
accountCashWallet.setCreateBy(new Long("0"));
}
accountCashWallet.setCreateTime(new Date());
accountCashWallet.setDelFlag(1);
}
return accountCashWallet;
}
/**
* 消费记录表装配
* @param accountExpendRecordsDto
* @return
*/
public AccountExpendRecords toDo(AccountExpendRecordsDto accountExpendRecordsDto) {
AccountExpendRecords accountExpendRecords = new AccountExpendRecords();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(accountExpendRecordsDto, accountExpendRecords);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
String userName = SecurityUtils.getLoginUser().getUsername();
if(accountExpendRecordsDto.getAccountCashWalletId() != null){
if(userId != null){
accountExpendRecords.setUpdateBy(userId);
}else {
accountExpendRecords.setUpdateBy(new Long("0"));
}
accountExpendRecords.setUpdateTime(new Date());
accountExpendRecords.setUpdateByName(userName);
}else {
if(userId != null){
accountExpendRecords.setCreateBy(userId);
accountExpendRecords.setUpdateBy(userId);
}else {
accountExpendRecords.setCreateBy(new Long("0"));
accountExpendRecords.setUpdateBy(new Long("0"));
}
accountExpendRecords.setDelFlag(1);
accountExpendRecords.setCreateTime(new Date());
accountExpendRecords.setCreateByName(userName);
}
return accountExpendRecords;
}
/**
* 消费记录装配
* @param accountExpendRecords
* @return
*/
public AccountExpendRecords toDo(AccountExpendRecords accountExpendRecords) {
// 拷贝vehicleDto到vehicle中
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
String userName = SecurityUtils.getLoginUser().getUsername();
if(accountExpendRecords.getAccountCashWalletId() != null){
if(userId != null){
accountExpendRecords.setUpdateBy(userId);
}else {
accountExpendRecords.setUpdateBy(new Long("0"));
}
accountExpendRecords.setUpdateTime(new Date());
accountExpendRecords.setUpdateByName(userName);
}else {
accountExpendRecords.setCreateTime(new Date());
accountExpendRecords.setCreateByName(userName);
if(userId != null){
accountExpendRecords.setCreateBy(userId);
accountExpendRecords.setUpdateBy(userId);
}else {
accountExpendRecords.setCreateBy(new Long("0"));
accountExpendRecords.setUpdateBy(new Long("0"));
}
}
accountExpendRecords.setDelFlag(1);
return accountExpendRecords;
}
}
@@ -0,0 +1,65 @@
package com.linke.finance.interfaces.assemble.approvalDocument;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.approvalDocument.repository.todo.ApprovalDocumentDO;
import com.linke.finance.interfaces.dto.approvalDocument.ApprovalDocumentDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 审批单据Assembler
*
* @author gen
* @date 2025-07-16
*/
@Component
public class ApprovalDocumentAssembler {
/**
* 转换实体
*/
public ApprovalDocumentDO toDO(ApprovalDocumentDTO approvalDocumentDTO) {
ApprovalDocumentDO approvalDocumentDO = new ApprovalDocumentDO();
// 拷贝
BeanUtils.copyProperties(approvalDocumentDTO, approvalDocumentDO, IgnoreNullUtil.getNullPropertyNames(approvalDocumentDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
if(approvalDocumentDTO.getId() != null){
if(userId != null){
approvalDocumentDO.setUpdateBy(userId);
}else {
approvalDocumentDO.setUpdateBy(new Long("0"));
}
approvalDocumentDO.setUpdateByName(userName);
approvalDocumentDO.setUpdateTime(new Date());
}else {
if(userId != null){
approvalDocumentDO.setCreateBy(userId);
approvalDocumentDO.setUpdateBy(userId);
}else {
approvalDocumentDO.setCreateBy(new Long("0"));
approvalDocumentDO.setUpdateBy(new Long("0"));
}
approvalDocumentDO.setCreateByName(userName);
approvalDocumentDO.setUpdateByName(userName);
approvalDocumentDO.setCreateTime(new Date());
approvalDocumentDO.setUpdateTime(new Date());
approvalDocumentDO.setDelFlag(1);
}
return approvalDocumentDO;
}
}
@@ -0,0 +1,66 @@
package com.linke.finance.interfaces.assemble.approvalDocumentDetail;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.approvalDocumentDetail.repository.todo.ApprovalDocumentDetailDO;
import com.linke.finance.interfaces.dto.approvalDocumentDetail.ApprovalDocumentDetailDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 审批单据明细Assembler
*
* @author gen
* @date 2025-07-16
*/
@Component
public class ApprovalDocumentDetailAssembler {
/**
* 转换实体
*/
public ApprovalDocumentDetailDO toDO(ApprovalDocumentDetailDTO approvalDocumentDetailDTO) {
ApprovalDocumentDetailDO approvalDocumentDetailDO = new ApprovalDocumentDetailDO();
// 拷贝
BeanUtils.copyProperties(approvalDocumentDetailDTO, approvalDocumentDetailDO, IgnoreNullUtil.getNullPropertyNames(approvalDocumentDetailDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
if(approvalDocumentDetailDTO.getId() != null){
if(userId != null){
approvalDocumentDetailDO.setUpdateBy(userId);
}else {
approvalDocumentDetailDO.setUpdateBy(new Long("0"));
}
approvalDocumentDetailDO.setUpdateByName(userName);
approvalDocumentDetailDO.setUpdateTime(new Date());
}else {
if(userId != null){
approvalDocumentDetailDO.setCreateBy(userId);
approvalDocumentDetailDO.setUpdateBy(userId);
}else {
approvalDocumentDetailDO.setCreateBy(new Long("0"));
approvalDocumentDetailDO.setUpdateBy(new Long("0"));
}
approvalDocumentDetailDO.setCreateByName(userName);
approvalDocumentDetailDO.setUpdateByName(userName);
approvalDocumentDetailDO.setCreateTime(new Date());
approvalDocumentDetailDO.setUpdateTime(new Date());
approvalDocumentDetailDO.setDelFlag(1);
}
return approvalDocumentDetailDO;
}
}
@@ -0,0 +1,35 @@
package com.linke.finance.interfaces.assemble.branchBill;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.branchBill.repository.todo.BranchBillDO;
import com.linke.finance.interfaces.dto.BranchBillDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 网点账单Assembler
*
* @author gen
* @date 2023-11-04
*/
@Component
public class BranchBillAssembler {
/**
* 转换实体
*/
public BranchBillDO toDO(BranchBillDTO branchBillDTO) {
BranchBillDO branchBillDO = new BranchBillDO();
// 拷贝
BeanUtils.copyProperties(branchBillDTO, branchBillDO, IgnoreNullUtil.getNullPropertyNames(branchBillDTO));
return branchBillDO;
}
}
@@ -0,0 +1,35 @@
package com.linke.finance.interfaces.assemble.branchFreightBill;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.branchFreightBill.repository.todo.BranchFreightBillDO;
import com.linke.finance.interfaces.dto.BranchFreightBillDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 网点费用账单Assembler
*
* @author gen
* @date 2023-11-08
*/
@Component
public class BranchFreightBillAssembler {
/**
* 转换实体
*/
public BranchFreightBillDO toDO(BranchFreightBillDTO branchFreightBillDTO) {
BranchFreightBillDO branchFreightBillDO = new BranchFreightBillDO();
// 拷贝
BeanUtils.copyProperties(branchFreightBillDTO, branchFreightBillDO, IgnoreNullUtil.getNullPropertyNames(branchFreightBillDTO));
return branchFreightBillDO;
}
}
@@ -0,0 +1,269 @@
package com.linke.finance.interfaces.assemble.invoice;
import com.linke.finance.domain.accountManage.entity.AccountBankCard;
import com.linke.finance.domain.accountManage.entity.AccountTransferRecharge;
import com.linke.finance.domain.address.entity.ReceivingAddressManage;
import com.linke.finance.domain.invoice.entity.InvoiceInfo;
import com.linke.finance.domain.invoice.entity.InvoiceInfoDetails;
import com.linke.finance.domain.invoice.entity.InvoiceInfoManage;
import com.linke.finance.domain.invoice.entity.InvoiceOrder;
import com.linke.finance.interfaces.dto.*;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import java.util.Date;
/**
* entity dto 转换
*
* 2023年3月14日
*
*/
public class InvoiceAssembler {
/**
* 转换实体
*
* @param invoiceInfoManageDto dto
* @return entity
*/
public InvoiceInfoManage toDo(InvoiceInfoManageDto invoiceInfoManageDto) {
InvoiceInfoManage invoiceInfoManage = new InvoiceInfoManage();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(invoiceInfoManageDto, invoiceInfoManage);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
invoiceInfoManage.setUserId(userId);
if(invoiceInfoManageDto.getInvoiceInfoManageId() != null){
if(userId != null){
invoiceInfoManage.setUpdateBy(userId);
}else {
invoiceInfoManage.setUpdateBy(new Long("0"));
}
}else {
if(userId != null){
invoiceInfoManage.setCreateBy(userId);
invoiceInfoManage.setUpdateBy(userId);
}else {
invoiceInfoManage.setCreateBy(new Long("0"));
invoiceInfoManage.setUpdateBy(new Long("0"));
}
invoiceInfoManage.setDelFlag(1);
}
return invoiceInfoManage;
}
/**
* 收件地址装配
* @param receivingAddressManageDto
* @return
*/
public ReceivingAddressManage toDo(ReceivingAddressManageDto receivingAddressManageDto) {
ReceivingAddressManage receivingAddressManage = new ReceivingAddressManage();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(receivingAddressManageDto, receivingAddressManage);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
receivingAddressManage.setUserId(userId);
if(receivingAddressManageDto.getReceivingAddressId() != null){
if(userId != null){
receivingAddressManage.setUpdateBy(userId);
}else {
receivingAddressManage.setUpdateBy(new Long("0"));
}
}else {
if(userId != null){
receivingAddressManage.setCreateBy(userId);
receivingAddressManage.setUpdateBy(userId);
}else {
receivingAddressManage.setCreateBy(new Long("0"));
receivingAddressManage.setUpdateBy(new Long("0"));
}
receivingAddressManage.setDelFlag(1);
}
return receivingAddressManage;
}
/**
* 发票记录表装配
* @param invoiceInfoDto
* @return
*/
public InvoiceInfo toDo(InvoiceInfoDto invoiceInfoDto) {
InvoiceInfo invoiceInfo = new InvoiceInfo();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(invoiceInfoDto, invoiceInfo);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
String userName = SecurityUtils.getLoginUser().getUsername();
if(invoiceInfoDto.getInvoiceInfoId() != null){
if(userId != null){
invoiceInfo.setUpdateBy(userId);
}else {
invoiceInfo.setUpdateBy(new Long("0"));
}
invoiceInfo.setUpdateTime(new Date());
invoiceInfo.setUpdateByName(SecurityUtils.getUsername());
}else {
if(userId != null){
invoiceInfo.setCreateBy(userId);
invoiceInfo.setUpdateBy(userId);
}else {
invoiceInfo.setCreateBy(new Long("0"));
invoiceInfo.setUpdateBy(new Long("0"));
}
invoiceInfo.setDelFlag(1);
invoiceInfo.setCreateTime(new Date());
invoiceInfo.setCreateByName(SecurityUtils.getUsername());
}
return invoiceInfo;
}
/**
* 发票信息详情表装配
* @param invoiceInfoDetailsDto
* @return
*/
public InvoiceInfoDetails toDo(InvoiceInfoDetailsDto invoiceInfoDetailsDto) {
InvoiceInfoDetails invoiceInfoDetails = new InvoiceInfoDetails();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(invoiceInfoDetailsDto, invoiceInfoDetails);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
if(invoiceInfoDetailsDto.getInvoiceInfoDetailsId() != null){
if(userId != null){
invoiceInfoDetails.setUpdateBy(userId);
}else {
invoiceInfoDetails.setUpdateBy(new Long("0"));
}
invoiceInfoDetails.setUpdateTime(new Date());
invoiceInfoDetails.setUpdateByName(SecurityUtils.getUsername());
}else {
if(userId != null){
invoiceInfoDetails.setCreateBy(userId);
invoiceInfoDetails.setUpdateBy(userId);
}else {
invoiceInfoDetails.setCreateBy(new Long("0"));
invoiceInfoDetails.setUpdateBy(new Long("0"));
}
invoiceInfoDetails.setCreateTime(new Date());
invoiceInfoDetails.setCreateByName(SecurityUtils.getUsername());
invoiceInfoDetails.setDelFlag(1);
}
return invoiceInfoDetails;
}
/**
* 发票订单表装配
* @param invoiceOrderDto
* @return
*/
public InvoiceOrder toDo(InvoiceOrderDto invoiceOrderDto) {
InvoiceOrder invoiceOrder = new InvoiceOrder();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(invoiceOrderDto, invoiceOrder);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
String userName = SecurityUtils.getLoginUser().getUsername();
if(invoiceOrderDto.getInvoiceOrderId() != null){
if(userId != null){
invoiceOrder.setUpdateBy(userId);
}else {
invoiceOrder.setUpdateBy(new Long("0"));
}
invoiceOrder.setUpdateTime(new Date());
invoiceOrder.setUpdateByName(userName);
}else {
if(userId != null){
invoiceOrder.setCreateBy(userId);
invoiceOrder.setUpdateBy(userId);
}else {
invoiceOrder.setCreateBy(new Long("0"));
invoiceOrder.setUpdateBy(new Long("0"));
}
invoiceOrder.setWaybillVerifyFlag(2);
invoiceOrder.setApplyStatus(2);
invoiceOrder.setDelFlag(1);
invoiceOrder.setCreateTime(new Date());
invoiceOrder.setCreateByName(userName);
}
return invoiceOrder;
}
/**
* 银行卡表装配
* @param accountBankCardDto
* @return
*/
public AccountBankCard toDo(AccountBankCardDto accountBankCardDto) {
AccountBankCard accountBankCard = new AccountBankCard();
//拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(accountBankCardDto, accountBankCard);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
String userName = SecurityUtils.getLoginUser().getUsername();
if(accountBankCardDto.getAccountBankCardId() != null){
if(userId != null){
accountBankCard.setUpdateBy(userId);
}else {
accountBankCard.setUpdateBy(new Long("0"));
}
accountBankCard.setUpdateTime(new Date());
accountBankCard.setUpdateByName(userName);
}else {
if(userId != null){
accountBankCard.setCreateBy(userId);
accountBankCard.setUpdateBy(userId);
}else {
accountBankCard.setCreateBy(new Long("0"));
accountBankCard.setUpdateBy(new Long("0"));
}
accountBankCard.setDelFlag(1);
accountBankCard.setCreateTime(new Date());
accountBankCard.setCreateByName(userName);
}
//银行卡默认
if(accountBankCardDto.getDefaultStatus()==null || accountBankCardDto.getDefaultStatus()!=1){
accountBankCard.setDefaultStatus(2);
}
return accountBankCard;
}
/**
* 会员转账充值装配
* @param accountTransferRechargeDto
* @return
*/
public AccountTransferRecharge toDo(AccountTransferRechargeDto accountTransferRechargeDto) {
AccountTransferRecharge accountTransferRecharge = new AccountTransferRecharge();
// 拷贝vehicleDto到vehicle中
BeanUtils.copyProperties(accountTransferRechargeDto, accountTransferRecharge);
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
String userName = SecurityUtils.getLoginUser().getUsername();
if(accountTransferRechargeDto.getAccountTransferRechargeId()!= null){
if(userId != null){
accountTransferRecharge.setUpdateBy(userId);
}else {
accountTransferRecharge.setUpdateBy(new Long("0"));
}
accountTransferRecharge.setUpdateTime(new Date());
accountTransferRecharge.setUpdateByName(userName);
}else {
if(userId != null){
accountTransferRecharge.setCreateBy(userId);
accountTransferRecharge.setUpdateBy(userId);
}else {
accountTransferRecharge.setCreateBy(new Long("0"));
accountTransferRecharge.setUpdateBy(new Long("0"));
}
accountTransferRecharge.setCreateTime(new Date());
accountTransferRecharge.setDelFlag(1);
accountTransferRecharge.setAccountTransferStatus(1);
accountTransferRecharge.setCreateByName(userName);
}
return accountTransferRecharge;
}
}
@@ -0,0 +1,65 @@
package com.linke.finance.interfaces.assemble.loanManage;
import com.linke.finance.domain.loanManage.entity.LoanManage;
import com.linke.finance.interfaces.dto.LoanManageDto;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import java.util.Date;
/**
* entity dto 转换
*
* 2023-03-16
*
* @author 王子豪
*/
public class LoanManageAssembler {
/**
* 转换实体
*
* @param loanManageDto dto
* @return entity
*/
public LoanManage toDo(LoanManageDto loanManageDto) {
LoanManage loanManage = new LoanManage();
// 拷贝LoanManageDto到LoanManage中
BeanUtils.copyProperties(loanManageDto, loanManage);
//获取登录人
String userName = null;
// 获取登录人id
Long userId = null;
LoginUser loginUser = SecurityUtils.getLoginUser();
if (loginUser != null){
//获取登录人
userName = loginUser.getUsername();
// 获取登录人id
userId = loginUser.getUserid();
}
if(loanManageDto.getLoanManageId() != null){
if(userId != null){
loanManage.setUpdateBy(userId);
}else {
loanManage.setUpdateBy(new Long("0"));
}
loanManage.setUpdateByName(userName);
loanManage.setUpdateTime(new Date());
}else {
if(userId != null){
loanManage.setCreateBy(userId);
loanManage.setUpdateBy(userId);
}else {
loanManage.setCreateBy(new Long("0"));
loanManage.setUpdateBy(new Long("0"));
}
loanManage.setCreateByName(userName);
loanManage.setUpdateByName(userName);
loanManage.setCreateTime(new Date());
loanManage.setUpdateTime(new Date());
loanManage.setDelFlag(1);
}
return loanManage;
}
}
@@ -0,0 +1,74 @@
package com.linke.finance.interfaces.assemble.revenueExpensesRecord;
import com.linke.finance.domain.revenueExpensesRecord.entity.RevenueExpensesRecord;
import com.linke.finance.interfaces.dto.RevenueExpensesRecordDto;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import java.util.Date;
/**
* entity dto 转换
*
* 2023-03-18
*
* @author 王子豪
*/
public class RevenueExpensesRecordAssembler {
/**
* 转换实体
*
* @param revenueExpensesRecordDto dto
* @return entity
*/
public RevenueExpensesRecord toDo(RevenueExpensesRecordDto revenueExpensesRecordDto) {
RevenueExpensesRecord revenueExpensesRecord = new RevenueExpensesRecord();
// 拷贝RevenueExpensesRecordDto到RevenueExpensesRecord中
BeanUtils.copyProperties(revenueExpensesRecordDto, revenueExpensesRecord);
//获取登录人
String userName = SecurityUtils.getLoginUser().getUsername();
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
if(revenueExpensesRecordDto.getRevenueExpensesRecordId() != null){
if(userId != null){
revenueExpensesRecord.setUpdateBy(userId);
}else {
revenueExpensesRecord.setUpdateBy(new Long("0"));
}
revenueExpensesRecord.setUpdateByName(userName);
revenueExpensesRecord.setUpdateTime(new Date());
}else {
if(userId != null){
revenueExpensesRecord.setCreateBy(userId);
revenueExpensesRecord.setUpdateBy(userId);
}else {
revenueExpensesRecord.setCreateBy(new Long("0"));
revenueExpensesRecord.setUpdateBy(new Long("0"));
}
revenueExpensesRecord.setCreateByName(userName);
revenueExpensesRecord.setUpdateByName(userName);
revenueExpensesRecord.setCreateTime(new Date());
revenueExpensesRecord.setUpdateTime(new Date());
revenueExpensesRecord.setDelFlag(1);
}
return revenueExpensesRecord;
}
/**
* 新实体装配
* @param revenueExpensesRecord
* @return
*/
public RevenueExpensesRecord toDo(RevenueExpensesRecord revenueExpensesRecord) {
//获取登录人
String userName = SecurityUtils.getLoginUser().getUsername();
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
revenueExpensesRecord.setCreateBy(userId);
revenueExpensesRecord.setCreateByName(userName);
revenueExpensesRecord.setCreateTime(new Date());
revenueExpensesRecord.setDelFlag(1);
return revenueExpensesRecord;
}
}
@@ -0,0 +1,35 @@
package com.linke.finance.interfaces.assemble.serviceBill;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.serviceBill.repository.todo.ServiceBillDO;
import com.linke.finance.interfaces.dto.ServiceBillDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 服务费账单Assembler
*
* @author gen
* @date 2023-11-06
*/
@Component
public class ServiceBillAssembler {
/**
* 转换实体
*/
public ServiceBillDO toDO(ServiceBillDTO serviceBillDTO) {
ServiceBillDO serviceBillDO = new ServiceBillDO();
// 拷贝
BeanUtils.copyProperties(serviceBillDTO, serviceBillDO, IgnoreNullUtil.getNullPropertyNames(serviceBillDTO));
return serviceBillDO;
}
}
@@ -0,0 +1,57 @@
package com.linke.finance.interfaces.assemble.verification;
import com.mhd.common.core.domain.dto.VerificationDto;
import com.mhd.common.core.domain.entity.Verification;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.security.utils.SecurityUtils;
import java.util.Date;
/**
* entity dto 转换
*
* 2023-03-18
*
* @author 王子豪
*/
public class VerificationAssembler {
/**
* 转换实体
*
* @param verificationDto dto
* @return entity
*/
public Verification toDo(VerificationDto verificationDto) {
Verification verification = new Verification();
// 拷贝VerificationDto到Verification中
BeanUtils.copyProperties(verificationDto, verification);
//获取登录人
String userName = SecurityUtils.getLoginUser().getUsername();
// 获取登录人id
Long userId = SecurityUtils.getLoginUser().getUserid();
if(verificationDto.getVerificationId() != null){
if(userId != null){
verification.setUpdateBy(userId);
}else {
verification.setUpdateBy(new Long("0"));
}
verification.setUpdateByName(userName);
verification.setUpdateTime(new Date());
}else {
if(userId != null){
verification.setCreateBy(userId);
verification.setUpdateBy(userId);
}else {
verification.setCreateBy(new Long("0"));
verification.setUpdateBy(new Long("0"));
}
verification.setCreateByName(userName);
verification.setUpdateByName(userName);
verification.setCreateTime(new Date());
verification.setUpdateTime(new Date());
verification.setDelFlag(1);
}
return verification;
}
}
@@ -0,0 +1,35 @@
package com.linke.finance.interfaces.assembler.auditConfiguration;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.auditConfiguration.repository.todo.AuditConfigurationDO;
import com.linke.finance.interfaces.dto.AuditConfigurationDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 审核配置Assembler
*
* @author gen
* @date 2024-02-28
*/
@Component
public class AuditConfigurationAssembler {
/**
* 转换实体
*/
public AuditConfigurationDO toDO(AuditConfigurationDTO auditConfigurationDTO) {
AuditConfigurationDO auditConfigurationDO = new AuditConfigurationDO();
// 拷贝
BeanUtils.copyProperties(auditConfigurationDTO, auditConfigurationDO, IgnoreNullUtil.getNullPropertyNames(auditConfigurationDTO));
return auditConfigurationDO;
}
}
@@ -0,0 +1,86 @@
package com.linke.finance.interfaces.assembler.businessDocument;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.businessDocument.entity.BusinessDocument;
import com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO;
import com.mhd.common.core.domain.dto.BusinessDocumentDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 业务单据Assembler
*
* @author gen
* @date 2024-01-23
*/
@Component
public class BusinessDocumentAssembler {
/**
* 转换实体
*/
public BusinessDocumentDO toDO(BusinessDocumentDTO businessDocumentDTO) {
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
// 拷贝
BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO, IgnoreNullUtil.getNullPropertyNames(businessDocumentDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
if(businessDocumentDTO.getBusinessDocumentId() != null){
if(userId != null){
businessDocumentDO.setUpdateBy(userId);
}else {
businessDocumentDO.setUpdateBy(new Long("0"));
}
businessDocumentDO.setUpdateByName(userName);
businessDocumentDO.setUpdateTime(new Date());
}else {
if(userId != null){
businessDocumentDO.setCreateBy(userId);
businessDocumentDO.setUpdateBy(userId);
}else {
businessDocumentDO.setCreateBy(new Long("0"));
businessDocumentDO.setUpdateBy(new Long("0"));
}
businessDocumentDO.setCreateByName(userName);
businessDocumentDO.setUpdateByName(userName);
businessDocumentDO.setCreateTime(new Date());
businessDocumentDO.setUpdateTime(new Date());
businessDocumentDO.setDelFlag(1);
}
return businessDocumentDO;
}
public BusinessDocument toDO(BusinessDocument businessDocument) {
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
businessDocument.setCreateBy(userId);
businessDocument.setCreateByName(userName);
businessDocument.setCreateTime(new Date());
businessDocument.setDelFlag(1);
businessDocument.setOrganizationId(loginUser.getUserPo().getOrganizationId());
businessDocument.setOrganizationName(loginUser.getUserPo().getOrganizationName());
businessDocument.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
return businessDocument;
}
}
@@ -0,0 +1,65 @@
package com.linke.finance.interfaces.assembler.businessDocumentDetali;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.businessDocumentDetali.repository.todo.AuditRecordsDO;
import com.linke.finance.interfaces.dto.auditRecords.AuditRecordsDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 审核记录Assembler
*
* @author gen
* @date 2024-03-04
*/
@Component
public class AuditRecordsAssembler {
/**
* 转换实体
*/
public AuditRecordsDO toDO(AuditRecordsDTO auditRecordsDTO) {
AuditRecordsDO auditRecordsDO = new AuditRecordsDO();
// 拷贝
BeanUtils.copyProperties(auditRecordsDTO, auditRecordsDO, IgnoreNullUtil.getNullPropertyNames(auditRecordsDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
if(auditRecordsDTO.getAuditRecordsId() != null){
if(userId != null){
auditRecordsDO.setUpdateBy(userId);
}else {
auditRecordsDO.setUpdateBy(new Long("0"));
}
auditRecordsDO.setUpdateByName(userName);
auditRecordsDO.setUpdateTime(new Date());
}else {
if(userId != null){
auditRecordsDO.setCreateBy(userId);
auditRecordsDO.setUpdateBy(userId);
}else {
auditRecordsDO.setCreateBy(new Long("0"));
auditRecordsDO.setUpdateBy(new Long("0"));
}
auditRecordsDO.setCreateByName(userName);
auditRecordsDO.setUpdateByName(userName);
auditRecordsDO.setCreateTime(new Date());
auditRecordsDO.setUpdateTime(new Date());
auditRecordsDO.setDelFlag(1);
}
return auditRecordsDO;
}
}
@@ -0,0 +1,39 @@
package com.linke.finance.interfaces.assembler.businessDocumentDetali;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.businessDocumentDetali.repository.todo.BusinessDocumentDetaliDO;
import com.mhd.common.core.domain.dto.BusinessDocumentDetaliDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 业务单据详情Assembler
*
* @author gen
* @date 2024-01-23
*/
@Component
public class BusinessDocumentDetaliAssembler {
/**
* 转换实体
*/
public BusinessDocumentDetaliDO toDO(BusinessDocumentDetaliDTO businessDocumentDetaliDTO) {
BusinessDocumentDetaliDO businessDocumentDetaliDO = new BusinessDocumentDetaliDO();
// 拷贝
BeanUtils.copyProperties(businessDocumentDetaliDTO, businessDocumentDetaliDO, IgnoreNullUtil.getNullPropertyNames(businessDocumentDetaliDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
return businessDocumentDetaliDO;
}
}
@@ -0,0 +1,46 @@
package com.linke.finance.interfaces.assembler.reconciliation;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 对账单Assembler
*
* @author gen
* @date 2024-01-23
*/
@Component
public class ReconciliationAssembler {
/**
* 转换实体
*/
public ReconciliationDO toDO(ReconciliationDTO reconciliationDTO) {
ReconciliationDO reconciliationDO = new ReconciliationDO();
// 拷贝
BeanUtils.copyProperties(reconciliationDTO, reconciliationDO, IgnoreNullUtil.getNullPropertyNames(reconciliationDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
if(reconciliationDTO.getReconciliationId() != null){
reconciliationDO.setUpdateTime(new Date());
}else {
reconciliationDO.setUpdateTime(new Date());
reconciliationDO.setDelFlag(1);
}
return reconciliationDO;
}
}
@@ -0,0 +1,65 @@
package com.linke.finance.interfaces.assembler.withdrawApplication;
import cn.hutool.core.util.ObjectUtil;
import com.linke.finance.domain.withdrawApplication.repository.todo.WithdrawApplicationDO;
import com.linke.finance.interfaces.dto.WithdrawApplicationDTO;
import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException;
import com.mhd.common.core.exception.digitalLogisticsException.UserError;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 提现Assembler
*
* @author gen
* @date 2024-03-14
*/
@Component
public class WithdrawApplicationAssembler {
/**
* 转换实体
*/
public WithdrawApplicationDO toDO(WithdrawApplicationDTO withdrawApplicationDTO) {
WithdrawApplicationDO withdrawApplicationDO = new WithdrawApplicationDO();
// 拷贝
BeanUtils.copyProperties(withdrawApplicationDTO, withdrawApplicationDO, IgnoreNullUtil.getNullPropertyNames(withdrawApplicationDTO));
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isNull(loginUser)) {
throw new DigitalLogisticsException(UserError.TIMEOUT);
}
String userName = loginUser.getUsername();
// 获取登录人id
Long userId = loginUser.getUserid();
if(withdrawApplicationDTO.getWithdrawApplicationId() != null){
if(userId != null){
withdrawApplicationDO.setUpdateBy(userId);
}else {
withdrawApplicationDO.setUpdateBy(new Long("0"));
}
withdrawApplicationDO.setUpdateByName(userName);
withdrawApplicationDO.setUpdateTime(new Date());
}else {
if(userId != null){
withdrawApplicationDO.setCreateBy(userId);
withdrawApplicationDO.setUpdateBy(userId);
}else {
withdrawApplicationDO.setCreateBy(new Long("0"));
withdrawApplicationDO.setUpdateBy(new Long("0"));
}
withdrawApplicationDO.setCreateByName(userName);
withdrawApplicationDO.setUpdateByName(userName);
withdrawApplicationDO.setCreateTime(new Date());
withdrawApplicationDO.setUpdateTime(new Date());
withdrawApplicationDO.setDelFlag(1);
}
return withdrawApplicationDO;
}
}
@@ -0,0 +1,128 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.utils.validate.AddGroup;
import com.mhd.common.core.utils.validate.EditGroup;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 银行卡管理对象 account_bank_card
*
* @author mhd
* @date 2023-03-21
*/
@Data
public class AccountBankCardDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 银行卡管理表id */
@ApiModelProperty(name = "银行卡管理表id")
private Long accountBankCardId;
@ApiModelProperty(name = "银行卡管理表ids")
private Long[] accountBankCardIds;
/** 账户类型(1-对私账户,2-对公账户) */
@ApiModelProperty(name = "账户类型(1-对私账户,2-对公账户)")
@NotNull(message = "银行卡类型不能为空" ,groups = {AddGroup.class, EditGroup.class})
private Integer accountBankType;
/** 用户id */
@ApiModelProperty(name = "用户id")
private Long userId;
/** 用户账号 */
@ApiModelProperty(name = "用户账号")
private String userAccount;
/** 用户姓名 */
@ApiModelProperty(name = "用户姓名")
@NotEmpty(message = "用户姓名不能为空")
private String userName;
/** 用户手机号 */
@ApiModelProperty(name = "用户手机号")
@NotEmpty(message = "用户手机号不能为空")
private String userPhone;
/** 银行卡号 */
@ApiModelProperty(name = "银行卡号")
@NotEmpty(message = "银行卡号不能为空" ,groups = {AddGroup.class, EditGroup.class})
private String bankCardNumber;
/** 开户银行code */
@ApiModelProperty(name = "开户银行code")
@NotEmpty(message = "开户银行不能为空" ,groups = {AddGroup.class, EditGroup.class})
private String bankNameCode;
/** 开户银行名称 */
@ApiModelProperty(name = "开户银行名称")
private String bankName;
@ApiModelProperty(name = "开户银行图标地址")
private String bankImg;
/** 银行卡预留电话 */
@ApiModelProperty(name = "银行卡预留电话")
@NotEmpty(message = "银行卡预留电话不能为空" ,groups = {AddGroup.class, EditGroup.class})
private String bankBindingPhone;
/** 银行卡预留姓名 */
@ApiModelProperty(name = "银行卡预留姓名")
@NotEmpty(message = "开户名不能为空" ,groups = {AddGroup.class, EditGroup.class})
private String bankBindingName;
/** 用户身份证号 */
@ApiModelProperty(name = "用户身份证号")
@NotEmpty(message = "证件号码不能为空" ,groups = {AddGroup.class, EditGroup.class})
private String bankBindingIdNum;
/** 持卡人地址 */
@ApiModelProperty(name = "持卡人地址")
private String bankUserAddress;
@ApiModelProperty(name = "开户行支行名称")
private String bankBranchName;
@ApiModelProperty(name = "联行号")
private String bankNo;
@ApiModelProperty(name = "银行卡正面图片地址")
private String bankImgUrl;
@ApiModelProperty(name = "银行卡正面图片地址数组")
private List<String> bankImgUrls;
@ApiModelProperty(name = "默认地址状态(1-是,2-否)")
private Integer defaultStatus;
@ApiModelProperty(name = "车牌号")
private String vehicleLicensePlateNumber;
@ApiModelProperty(name = "用户信息")
private String userInfo;
@ApiModelProperty(name = "银行卡信息")
private String cardInfo;
@ApiModelProperty(name = "开户信息")
private String accountInfo;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(name = "公司名称")
private String companyName;
@ApiModelProperty(name = "组织id")
private Long organizationId;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
}
@@ -0,0 +1,137 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 用户钱包账户对象 account_cash_wallet
*
* @author mhd
* @date 2023-03-18
*/
@Data
public class AccountCashWalletDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 用户钱包账户id */
@ApiModelProperty(name = "用户钱包账户id")
private Long accountCashWalletId;
@ApiModelProperty(name = "用户钱包账户ids")
private Long[] accountCashWalletIds;
/** 钱包id */
@ApiModelProperty(name = "钱包id")
private Long accountWalletId;
/** 用户id */
@ApiModelProperty(name = "用户id")
private Long userId;
/** 姓名 */
@ApiModelProperty(name = "姓名")
private String userName;
/** 账号 */
@ApiModelProperty(name = "账号")
private String userAccount;
/** 身份证号 */
@ApiModelProperty(name = "身份证号")
private String userIdcardNumber;
/** 手机号 */
@ApiModelProperty(name = "手机号")
private String userPhone;
/** 公司名称 */
@ApiModelProperty(name = "公司名称")
private String enterpriseName;
/** 组织id */
@ApiModelProperty(name = "组织id")
private Long organizationId;
@ApiModelProperty(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
/** 组织名称 */
@ApiModelProperty(name = "组织名称")
private String organizationName;
/** 钱包余额 */
@ApiModelProperty(name = "钱包余额")
private BigDecimal walletBalance;
/** 可用金额 */
@ApiModelProperty(name = "可用金额")
private BigDecimal walletAvailableBalance;
/** 冻结金额 */
@ApiModelProperty(name = "冻结金额")
private BigDecimal walletFreezeBalance;
/** 账户状态(1-正常,2-锁定) */
@ApiModelProperty(name = "账户状态(1-正常,2-锁定)")
private Integer accountWalletStatus;
@ApiModelProperty(name = "变动日期查询条件开始日期")
private String updateTimeStart;
@ApiModelProperty(name = "变动日期查询条件结束日期")
private String updateTimeEnd;
@ApiModelProperty(name = "钱包余额开始")
private BigDecimal walletBalanceBegin;
@ApiModelProperty(name = "钱包余额结束")
private BigDecimal walletBalanceEnd;
@ApiModelProperty(name = "可用金额开始")
private BigDecimal walletAvailableBalanceBegin;
@ApiModelProperty(name = "可用金额结束")
private BigDecimal walletAvailableBalanceEnd;
@ApiModelProperty(name = "冻结金额开始")
private BigDecimal walletFreezeBalanceBegin;
@ApiModelProperty(name = "冻结金额结束")
private BigDecimal walletFreezeBalanceEnd;
@ApiModelProperty(name = "操作类型(1-充值,2-回收,3-退回,4-冻结,5-解冻)")
private Integer operationType;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty(name = "消费备注")
private String accountRecordsRemark;
@ApiModelProperty(name = "银行卡管理表id")
private Long accountBankCardId;
@ApiModelProperty(name = "银行卡号")
private String bankCardNumber;
@ApiModelProperty(name = "开户银行code")
private String bankNameCode;
@ApiModelProperty(name = "银行卡预留姓名")
private String bankBindingName;
@ApiModelProperty(name = "账户类型(1-个人,2-组织)")
private Integer accountType;
@ApiModelProperty(name = "授信额度")
private BigDecimal creditLimit;
@ApiModelProperty(name = "总授信额度")
private BigDecimal totalLimit;
@ApiModelProperty(name = "支付宝账户")
private String alipayAccount;
@ApiModelProperty(name = "支付宝账户名称")
private String alipayAccountName;
}
@@ -0,0 +1,184 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 账户消费记录对象 account_expend_records
*
* @author mhd
* @date 2023-03-18
*/
@Data
public class AccountExpendRecordsDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 消费记录表id */
@ApiModelProperty(name = "消费记录表id")
private Long accountExpendRecordsId;
@ApiModelProperty(name = "消费记录表ids")
private Long[] accountExpendRecordsIds;
/** 内部流水号 */
@ApiModelProperty(name = "内部流水号")
private String accountSerialNumber;
/** 一级账户code */
@ApiModelProperty(name = "一级账户code")
private String accountFirstCode;
/** 一级账户value */
@ApiModelProperty(name = "一级账户value")
private String accountFirstValue;
/** 二级账户code */
@ApiModelProperty(name = "二级账户code")
private String accountSecondCode;
/** 二级账户value */
@ApiModelProperty(name = "二级账户value")
private String accountSecondValue;
/** 一级科目code */
@ApiModelProperty(name = "一级科目code")
private String subjectFirstCode;
/** 一级科目value */
@ApiModelProperty(name = "一级科目value")
private String subjectFirstValue;
/** 二级科目code */
@ApiModelProperty(name = "二级科目code")
private String subjectSecondCode;
/** 二级科目value */
@ApiModelProperty(name = "二级科目value")
private String subjectSecondValue;
/** 收支类型(1-收入,2-支出) */
@ApiModelProperty(name = "收支类型")
private Integer accountExpenseType;
/** 经办人 */
@ApiModelProperty(name = "经办人")
private String accountExpendOperator;
/** 关联运单/订单号 */
@ApiModelProperty(name = "关联运单/订单号")
private String waybillNumber;
/** 银企直联流水号 */
@ApiModelProperty(name = "银企直联流水号")
private String bankSerialNumber;
/** 订单来源code */
@ApiModelProperty(name = "订单来源code")
private String orderSourceCode;
/** 订单来源value */
@ApiModelProperty(name = "订单来源value")
private String orderSourceValue;
/** 消费备注 */
@ApiModelProperty(name = "消费备注")
private String accountRecordsRemark;
/** 上笔余额 */
@ApiModelProperty(name = "上笔余额")
private BigDecimal accountLastBalance;
/** 交易金额 */
@ApiModelProperty(name = "交易金额")
private BigDecimal transactionAmount;
/** 账户余额 */
@ApiModelProperty(name = "账户余额")
private BigDecimal accountBalance;
/** 交易时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "交易时间")
private Date transactionTime;
/** 用户名 */
@ApiModelProperty(name = "用户名")
private String userName;
/** 用户id */
@ApiModelProperty(name = "用户id")
private Long userId;
/** 公司名称 */
@ApiModelProperty(name = "公司名称")
private String enterpriseName;
/** 用户账号 */
@ApiModelProperty(name = "用户账号")
private String userAccount;
/** 入账类型(1-系统入账,2-手工入账) */
@ApiModelProperty(name = "入账类型")
private Integer accountEnterType;
/** 流水状态(1-正常,2-作废) */
@ApiModelProperty(name = "流水状态")
private Integer capitalFlowStatus;
/** 用户钱包账户id */
@ApiModelProperty(name = "用户钱包账户id")
private Long accountCashWalletId;
/** 钱包id */
@ApiModelProperty(name = "钱包id")
private Long accountWalletId;
@ApiModelProperty(name = "交易日期查询条件开始日期")
private String transactionTimeStart;
@ApiModelProperty(name = "交易日期查询条件结束日期")
private String transactionTimeEnd;
@ApiModelProperty(name = "用户信息(用户名/账号/公司名称)")
private String accountUserInfo;
@ApiModelProperty(name = "交易金额开始")
private BigDecimal transactionAmountBegin;
@ApiModelProperty(name = "交易金额结束")
private BigDecimal transactionAmountEnd;
@ApiModelProperty(name = "银行卡管理表id")
private Long accountBankCardId;
@ApiModelProperty(name = "银行卡预留姓名")
private String bankBindingName;
@ApiModelProperty(name = "开户银行code")
private String bankNameCode;
@ApiModelProperty(name = "开户银行名称")
private String bankName;
@ApiModelProperty(name = "银行卡号")
private String bankCardNumber;
@ApiModelProperty(name = "APP收支明细查询条件(1-今天,2-本周,3-本月,4-最近半年,5-自定义)")
private Integer queryDateFlag;
@ApiModelProperty(name = "支付凭证")
private String paymentVoucher;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "获取凭证时间")
private Date voucherTime;
}
@@ -0,0 +1,29 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 会员转账充值对象 account_transfer_recharge
*
* @author mhd
* @date 2023-03-23
*/
@Data
public class AccountTransferAppDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L; /** 交易金额 */
@ApiModelProperty(name = "交易金额")
private BigDecimal accountTransferAmount;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty(name = "转账对方用户id")
private Long transferUserId;
}
@@ -0,0 +1,154 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 会员转账充值对象 account_transfer_recharge
*
* @author mhd
* @date 2023-03-23
*/
@Data
public class AccountTransferRechargeDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 会员转账充值表id */
@ApiModelProperty(name = "会员转账充值表id")
private Long accountTransferRechargeId;
@ApiModelProperty(name = "会员转账充值表ids")
private Long[] accountTransferRechargeIds;
/** 用户id */
@ApiModelProperty(name = "用户id")
private Long userId;
/** 用户账号 */
@ApiModelProperty(name = "用户账号")
private String userAccount;
/** 用户姓名 */
@ApiModelProperty(name = "用户姓名")
private String userName;
/** 用户手机号 */
@ApiModelProperty(name = "用户手机号")
private String userPhone;
/** 充值状态(1-待处理,2-已同意,3-已拒绝) */
@ApiModelProperty(name = "充值状态")
private Integer accountTransferStatus;
/** 一级账户code */
@ApiModelProperty(name = "一级账户code")
private String accountFirstCode;
/** 一级账户value */
@ApiModelProperty(name = "一级账户value")
private String accountFirstValue;
/** 二级账户code */
@ApiModelProperty(name = "二级账户code")
private String accountSecondCode;
/** 二级账户value */
@ApiModelProperty(name = "二级账户value")
private String accountSecondValue;
/** 交易流水 */
@ApiModelProperty(name = "交易流水")
private String accountTransferNumber;
/** 交易金额 */
@ApiModelProperty(name = "交易金额")
private BigDecimal accountTransferAmount;
/** 账户余额 */
@ApiModelProperty(name = "账户余额")
private BigDecimal accountBalance;
/** 交易方式code */
@ApiModelProperty(name = "交易方式code")
private String transferTypeCode;
/** 交易方式value */
@ApiModelProperty(name = "交易方式value")
private String transferTypeValue;
/** 交易时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "交易时间")
private Date accountTransferTime;
/** 收支类型(1-收入,2-支出) */
@ApiModelProperty(name = "收支类型(1-收入,2-支出)")
private Integer accountTransferType;
/** 经办人 */
@ApiModelProperty(name = "经办人")
private String accountTransferOperator;
/** 交易凭证图片地址 */
@ApiModelProperty(name = "交易凭证图片地址")
private String accountTransferVoucherUrl;
/** 备注 */
@ApiModelProperty(name = "备注")
private String accountTransferRemark;
/** 审核人id */
@ApiModelProperty(name = "审核人id")
private Long transferReviewerId;
/** 审核人 */
@ApiModelProperty(name = "审核人")
private String accountTransferReviewer;
/** 审核时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "审核时间")
private Date transferReviewerTime;
/** 驳回理由 */
@ApiModelProperty(name = "驳回理由")
private String accountTransferReject;
@ApiModelProperty(name = "用户信息")
private String userInfo;
@ApiModelProperty(name = "交易时间查询条件开始日期")
private String accountTransferTimeStart;
@ApiModelProperty(name = "交易时间查询条件结束日期")
private String accountTransferTimeEnd;
@ApiModelProperty(name = "交易金额开始")
private BigDecimal accountTransferAmountBegin;
@ApiModelProperty(name = "交易金额结束")
private BigDecimal accountTransferAmountEnd;
@ApiModelProperty(name = "提交时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "提交时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "审核时间查询条件开始日期")
private String transferReviewerTimeStart;
@ApiModelProperty(name = "审核时间查询条件结束日期")
private String transferReviewerTimeEnd;
@ApiModelProperty(name = "操作类型(1-同意,2-拒绝)")
private Integer operateType;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty(name = "支付方式(1-微信,2-对公转账)")
private Integer paymentMethod;
@ApiModelProperty(name = "银行卡管理表id")
private Long accountBankCardId;
}
@@ -0,0 +1,67 @@
package com.linke.finance.interfaces.dto;
import com.linke.finance.domain.auditConfiguration.repository.todo.AuditConfigurationDO;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 审核配置对象 audit_configuration
*
* @author gen
* @date 2024-02-28
*/
@Data
public class AuditConfigurationDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("审核配置id")
private Long auditConfigurationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("一级组织表id")
@Excel(name = "一级组织表id")
private Long topOrganizationId;
@ApiModelProperty("角色表id")
@Excel(name = "角色表id")
private Long roleId;
@ApiModelProperty("角色编码")
@Excel(name = "角色编码")
private String roleCode;
@ApiModelProperty("角色名称")
@Excel(name = "角色名称")
private String roleName;
@ApiModelProperty("排序")
@Excel(name = "排序")
private Integer sort;
@ApiModelProperty("审核类型:1-回单审核,2-支付审核,3-结算审核")
@Excel(name = "审核类型:1-回单审核,2-支付审核,3-结算审核")
private Integer auditType;
@ApiModelProperty("是否开启:1-开启,2-关闭")
private Integer isEnabled;
@ApiModelProperty("审核配置明细")
private List<AuditConfigurationDO> auditConfigurations;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,161 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 网点账单对象 branch_bill
*
* @author gen
* @date 2023-11-04
*/
@Data
public class BranchBillDTO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("网点账单id")
private Long branchBillId;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("网点id")
@Excel(name = "网点id")
private Long branchId;
@ApiModelProperty("收账网点id")
@Excel(name = "收账网点id")
private Long branchInId;
@ApiModelProperty("收账网点名称")
@Excel(name = "收账网点名称")
private String branchInName;
@ApiModelProperty("交账网点id")
@Excel(name = "交账网点id")
private Long branchOutId;
@ApiModelProperty("交账网点名称")
@Excel(name = "交账网点名称")
private String branchOutName;
@ApiModelProperty("交账记录号")
@Excel(name = "交账记录号")
private String billCode;
@ApiModelProperty("交账状态:1-未确认 2-驳回 3-确认")
@Excel(name = "交账状态:1-未确认 2-驳回 3-确认")
private Integer billStatus;
@ApiModelProperty("交账周期开始")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date billTimeStart;
@ApiModelProperty("交账周期结束")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date billTimeEnd;
@ApiModelProperty("应交金额 单位:元")
@Excel(name = "应交金额 单位:元")
private BigDecimal payableAmount;
@ApiModelProperty("上交金额 单位:元")
@Excel(name = "上交金额 单位:元")
private BigDecimal actualAmount;
@ApiModelProperty("合计收入 单位:元")
@Excel(name = "合计收入 单位:元")
private BigDecimal totalIncome;
@ApiModelProperty("合计支出 单位:元")
@Excel(name = "合计支出 单位:元")
private BigDecimal totalExpense;
@ApiModelProperty("上交笔数")
@Excel(name = "上交笔数")
private Long number;
@ApiModelProperty("上期结余 单位:元")
@Excel(name = "上期结余 单位:元")
private BigDecimal lastRemainingAmount;
@ApiModelProperty("当期结余:应交金额+上期结余-上交金额 单位:元")
@Excel(name = "当期结余:应交金额+上期结余-上交金额 单位:元")
private BigDecimal remainingAmount;
@ApiModelProperty(name = "截止时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date deadlineTime;
@ApiModelProperty("审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date authTime;
@ApiModelProperty("审核网点id")
@Excel(name = "审核网点id")
private Integer authBranchId;
@ApiModelProperty("审核网点名称")
@Excel(name = "审核网点名称")
private String authBranchName;
@ApiModelProperty("审核用户id")
@Excel(name = "审核用户id")
private Integer authUserId;
@ApiModelProperty("审核用户名称")
@Excel(name = "审核用户名称")
private String authUserName;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(name = "收入支出记录id集合")
private List<Long> revenueExpensesRecordIdList;
@ApiModelProperty(name = "服务费id集合")
private List<Long> serviceBillIdList;
@ApiModelProperty(name = "记录类型:1-收账记录 2-交账记录")
private Integer type;
@ApiModelProperty(name = "交账时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "交账时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty("上交方式(1-线下转账,2-钱包转账)")
@Excel(name = "上交方式(1-线下转账,2-钱包转账)")
private Integer payMethod;
}
@@ -0,0 +1,164 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.linke.finance.domain.branchBillOtherFee.repository.todo.BranchBillOtherFeeDO;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 网点费用账单对象 branch_freight_bill
*
* @author gen
* @date 2023-11-08
*/
@Data
public class BranchFreightBillDTO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("网点账单id")
private Long branchFreightId;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("网点id")
@Excel(name = "网点id")
private Long branchId;
@ApiModelProperty("收账网点id")
@Excel(name = "收账网点id")
private Long branchInId;
@ApiModelProperty("收账网点名称")
@Excel(name = "收账网点名称")
private String branchInName;
@ApiModelProperty("交账网点id")
@Excel(name = "交账网点id")
private Long branchOutId;
@ApiModelProperty("交账网点名称")
@Excel(name = "交账网点名称")
private String branchOutName;
@ApiModelProperty("网点费用账单编码")
@Excel(name = "网点费用账单编码")
private String billCode;
@ApiModelProperty("确认状态:1-未确认 2-已确认")
@Excel(name = "确认状态:1-未确认 2-已确认")
private Integer authStatus;
@ApiModelProperty("关联订单id")
@Excel(name = "关联订单id")
private Long associationOrderId;
@ApiModelProperty("关联订单编码")
@Excel(name = "关联订单编码")
private String associationOrderCode;
@ApiModelProperty("运单状态:1-未签收 2-已签收 3-已作废")
@Excel(name = "运单状态:1-未签收 2-已签收 3-已作废")
private Integer associationOrderStatus;
@ApiModelProperty("客户总运费:取运单中合计运费")
@Excel(name = "客户总运费:取运单中合计运费")
private BigDecimal customFreight;
@ApiModelProperty("运费:通过计价体系算出来的运费")
@Excel(name = "运费:通过计价体系算出来的运费")
private BigDecimal freight;
@ApiModelProperty("送货费:通过计价体系算出来的送货费")
@Excel(name = "送货费:通过计价体系算出来的送货费")
private BigDecimal deliveryExpense;
@ApiModelProperty("网点总运费:运费+送货费")
@Excel(name = "网点总运费:运费+送货费")
private BigDecimal totalFreight;
@ApiModelProperty("其他费用")
@Excel(name = "其他费用")
private BigDecimal otherExpenses;
@ApiModelProperty("留存金额:客户总运费-网点总运费")
@Excel(name = "留存金额:客户总运费-网点总运费")
private BigDecimal retainedAmount;
@ApiModelProperty("开单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "开单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date billingTime;
@ApiModelProperty("签收时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date signTime;
@ApiModelProperty("确认时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date authTime;
@ApiModelProperty("确认人id")
@Excel(name = "确认人id")
private String authId;
@ApiModelProperty("确认人姓名")
@Excel(name = "确认人姓名")
private String authName;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(name = "记录类型:1-收账记录 2-交账记录")
private Integer type;
@ApiModelProperty(name = "其他费用")
private List<BranchBillOtherFeeDO> branchBillOtherFeeDOList;
@ApiModelProperty("开单时间-开始")
private String billingTimeStart;
@ApiModelProperty("开单时间-结束")
private String billingTimeEnd;
@ApiModelProperty("签收时间-开始")
private String signTimeStart;
@ApiModelProperty("签收时间-开始")
private String signTimeEnd;
@ApiModelProperty("确认时间-开始")
private String authTimeStart;
@ApiModelProperty("确认时间-结束")
private String authTimeEnd;
@ApiModelProperty(value = "更新时间-开始")
private String updateTimeStart;
@ApiModelProperty(value = "更新时间-结束")
private String updateTimeEnd;
}
@@ -0,0 +1,36 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* App货单支付接口DTO
*
* @author mhd
* @date 2023-03-18
*/
@Data
public class FreightPayAppDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "业务单据号")
private String orderNo;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty(name = "业务单据来源")
private String orderSource;
@ApiModelProperty(name = "支付通道")
private String paymentChannel;
@ApiModelProperty(name = "专线支付实体")
private SpecialPayAppDto specialPayAppDto;
@ApiModelProperty(name = "网货支付实体")
private WlhyPayAppDto wlhyPayAppDto;
}
@@ -0,0 +1,43 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 开票记录详情对象 invoice_info_details
*
* @author mhd
* @date 2023-03-15
*/
@Data
public class InvoiceInfoDetailsDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 开票记录详情表id */
@ApiModelProperty(name = "开票记录详情表id")
private Long invoiceInfoDetailsId;
/** 开票记录表id */
@ApiModelProperty(name = "开票记录表id")
private Long invoiceInfoId;
/** 发票号码 */
@ApiModelProperty(name = "发票号码")
private String invoiceNumber;
/** 发票代码 */
@ApiModelProperty(name = "发票代码")
private String invoiceCode;
/** 发票金额 */
@ApiModelProperty(name = "发票金额")
private BigDecimal invoiceAmount;
@ApiModelProperty(name = "发票图片URL")
private String invoiceImageUrl;
}
@@ -0,0 +1,197 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 开票记录对象 invoice_info
*
* @author mhd
* @date 2023-03-15
*/
@Data
public class InvoiceInfoDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 开票记录表id */
@ApiModelProperty(value = "开票记录表id")
private Long invoiceInfoId;
@ApiModelProperty(value = "开票记录表ids")
private Long[] invoiceInfoIds;
/** 发票状态(1-未开票,2-已撤回,3-已驳回,4-已开票,5-已寄出,6-已取消,7-已作废) */
@ApiModelProperty(value = "发票状态")
private Integer invoiceStatus;
/** 发票类型(1-普票,2-专票) */
@ApiModelProperty(value = "发票类型")
private Integer invoiceType;
/** 发票性质(1-纸质,2-电子) */
@ApiModelProperty(value = "发票性质")
private Integer invoiceProperties;
/** 发票抬头 */
@ApiModelProperty(value = "发票抬头")
private String invoiceHeader;
/** 申请单号 */
@ApiModelProperty(value = "申请单号")
private String invoiceApplyNum;
/** 发票金额 */
@ApiModelProperty(value = "发票金额")
private BigDecimal invoiceCost;
/** 运单数量 */
@ApiModelProperty(value = "运单数量")
private BigDecimal waybillAmount;
/** 发票备注 */
@ApiModelProperty(value = "发票备注")
private String invoiceRemark;
/** 驳回原因 */
@ApiModelProperty(value = "驳回原因")
private String invoiceReject;
/** 作废原因 */
@ApiModelProperty(value = "作废原因")
private String invoiceNullify;
/** 驳回时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "驳回时间")
private Date invoiceRejectTime;
/** 开票时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开票时间")
private Date invoiceMakeTime;
/** 寄出时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "寄出时间")
private Date invoicePostTime;
/** 取消时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "取消时间")
private Date invoiceCancelTime;
/** 作废时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "作废时间")
private Date invoiceNullifyTime;
/** 快递公司code */
@ApiModelProperty(value = "快递公司code")
private String expressDelivery;
/** 快递公司value */
@ApiModelProperty(value = "快递公司value")
private String expressDeliveryValue;
/** 收件地址信息表id */
@ApiModelProperty(value = "收件地址信息表id")
private Long receivingAddressId;
/** 收件人姓名 */
@ApiModelProperty(value = "收件人姓名")
private String receivingvalue;
/** 收件人电话 */
@ApiModelProperty(value = "收件人电话")
private String phone;
/** 邮政编码 */
@ApiModelProperty(value = "邮政编码")
private String postalCode;
/** 收件地址 */
@ApiModelProperty(value = "收件地址")
private String address;
/** 快递单号 */
@ApiModelProperty(value = "快递单号")
private String courierNumber;
/** 运费 */
@ApiModelProperty(value = "运费")
private BigDecimal totalFreight;
@ApiModelProperty(value = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(value = "发票信息id")
private Long invoiceInfoManageId;
@ApiModelProperty(value = "选中开票订单信息id")
private Long[] invoiceOrderIds;
@ApiModelProperty(value = "发票开票税率")
private BigDecimal invoiceTaxRate;
@ApiModelProperty(value = "发票预览图片地址")
private String invoiceImgUrl;
@ApiModelProperty(value = "申请日期查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(value = "申请日期查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(value = "运单号")
private String waybillNumber;
@ApiModelProperty(value = "发票号码")
private String invoiceNumber;
@ApiModelProperty(value = "开票时间查询条件开始日期")
private String invoiceMakeTimeStart;
@ApiModelProperty(value = "开票时间查询条件结束日期")
private String invoiceMakeTimeEnd;
@ApiModelProperty(value = "驳回时间查询条件开始日期")
private String invoiceRejectTimeStart;
@ApiModelProperty(value = "驳回时间查询条件结束日期")
private String invoiceRejectTimeEnd;
@ApiModelProperty(value = "作废时间查询条件开始日期")
private String invoiceNullifyTimeStart;
@ApiModelProperty(value = "作废时间查询条件结束日期")
private String invoiceNullifyTimeEnd;
@ApiModelProperty(value = "是否导出:1-是,2-否")
private Integer exportFlag;
@ApiModelProperty(value = "是否寄出:1-是,2-否")
private Integer mailFlag;
@ApiModelProperty(value = "发票详情")
private List<InvoiceInfoDetailsDto> invoiceInfoDetailsDtoList;
@ApiModelProperty(value = "操作类型(1-撤销,2-驳回,3-作废)")
private Integer operateType;
@ApiModelProperty(value = "组织表ID")
private Long organizationId;
@ApiModelProperty(value = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty(value = "来源类型:1-业务单据,2-对账单据")
private Integer sourceType;
@ApiModelProperty(value = "来源类型:1-是,2-否")
private Integer isPc;
}
@@ -0,0 +1,71 @@
package com.linke.finance.interfaces.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 发票信息管理对象 invoice_info_manage
*
* @author mhd
* @date 2023-03-14
*/
@Data
public class InvoiceInfoManageDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 发票信息id */
@ApiModelProperty(name = "发票信息id")
@TableId(type = IdType.AUTO)
private Long invoiceInfoManageId;
/** 用户id */
@ApiModelProperty(name = "用户id")
private Long userId;
/** 发票类型 */
@ApiModelProperty(name = "发票类型(1-普票,2-专票)")
private Integer invoiceType;
/** 发票抬头 */
@ApiModelProperty(name = "发票抬头")
private String invoiceHeader;
@ApiModelProperty(value = "抬头类型(1-个人,2-企业,3-组织)")
private Integer invoiceHeaderType;
/** 税务登记号 */
@ApiModelProperty(name = "税务登记号")
private String taxRegistrationNum;
/** 开户银行名称 */
@ApiModelProperty(name = "开户银行名称")
private String accountBankName;
/** 开户账号 */
@ApiModelProperty(name = "开户账号")
private String accountNumber;
/** 注册地址 */
@ApiModelProperty(name = "注册地址")
private String registeredAddress;
/** 注册固定电话 */
@ApiModelProperty(name = "注册固定电话")
private String registeredPhone;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(name = "发票信息ids")
private Long[] invoiceInfoIds;
@ApiModelProperty(name = "组织表ID")
private Long organizationId;
@ApiModelProperty(name = "一级组织表ID")
private Long topOrganizationId;
}
@@ -0,0 +1,142 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 开票订单对象 invoice_order
*
* @author mhd
* @date 2023-03-15
*/
@Data
public class InvoiceOrderDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 开票订单信息id */
@ApiModelProperty(name = "开票订单信息id")
private Long invoiceOrderId;
/** 开票记录表id */
@ApiModelProperty(name = "开票记录表id")
private Long invoiceInfoId;
/** 运单id */
@ApiModelProperty(name = "运单id")
private Long waybillId;
/** 运单号 */
@ApiModelProperty(name = "运单号")
private String waybillNumber;
/** 订单核实状态(1-未核实,2-已核实) */
@ApiModelProperty(name = "订单核实状态(1-未核实,2-已核实)")
private Integer waybillVerifyFlag;
/** 标记核实时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "标记核实时间")
private Date waybillVerifyTime;
/** 付款时间 */
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "付款时间")
private Date waybillPayTime;
/** 订单实付金额 */
@ApiModelProperty(name = "订单实付金额")
private BigDecimal freight;
/** 可开票金额 */
@ApiModelProperty(name = "可开票金额")
private BigDecimal invoiceCostCan;
/** 可开票金额(不含服务费) */
@ApiModelProperty(name = "可开票金额")
private BigDecimal invoiceCostCanService;
/** 已开票金额 */
@ApiModelProperty(name = "已开票金额")
private BigDecimal invoiceCostHas;
/** 承运人姓名 */
@ApiModelProperty(name = "承运人姓名")
private String driverName;
/** 承运人电话 */
@ApiModelProperty(name = "承运人电话")
private String driverPhone;
/** 车牌号 */
@ApiModelProperty(name = "车牌号")
private String vehicleLicensePlateNumber;
/** 装货地 */
@ApiModelProperty(name = "装货地")
private String loadAddress;
/** 卸货地 */
@ApiModelProperty(name = "卸货地")
private String unloadAddress;
/** 货物类型 */
@ApiModelProperty(name = "货物类型")
private String freightName;
/** 重量 */
@ApiModelProperty(name = "重量")
private BigDecimal totalWeight;
/** 申请单位 */
@ApiModelProperty(name = "申请单位")
private String applicant;
/** 货主姓名 */
@ApiModelProperty(name = "货主姓名")
private String shipperName;
/** 货主手机号 */
@ApiModelProperty(name = "货主手机号")
private String shipperPhone;
/** 货主公司名称 */
@ApiModelProperty(name = "货主公司名称")
private String shipperCompany;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(name = "开单时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "开单时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "付款时间查询条件开始日期")
private String payTimeStart;
@ApiModelProperty(name = "付款时间查询条件结束日期")
private String payTimeEnd;
@ApiModelProperty(name = "开票订单信息ids")
private Long[] invoiceOrderIds;
/** 订单申请发票状态(1-已申请,2-未申请) */
@ApiModelProperty(name = "订单申请发票状态")
private Integer applyStatus;
@ApiModelProperty(name = "组织Id")
private Long organizationId;
@ApiModelProperty("创建人")
private String creatBy;
}
@@ -0,0 +1,175 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 货款管理对象 dto
*
* 2023-03-16
*
* @author 王子豪
*/
@Data
public class LoanManageDto extends BaseVOEntity implements Serializable
{
@ApiModelProperty(name = "货款管理id")
private Long loanManageId;
@ApiModelProperty(name = "货款类型:1.货款收回2.货款发放")
private Integer loanType;
@ApiModelProperty(name = "网点id")
private Long branchId;
@ApiModelProperty(name = "贷款/货款记账号")
private String loanNumber;
@ApiModelProperty(name = "收款状态:1.未收款2.未核销3.已核销")
private Integer collectionStatus;
@ApiModelProperty(name = "发放状态:1.未放款2.已放款3.已取消")
private Integer grantStatus;
@ApiModelProperty(name = "一级科目code")
private String firstSubject;
@ApiModelProperty(name = "二级科目code")
private String secondSubject;
@ApiModelProperty(name = "一级科目")
private String firstSubjectName;
@ApiModelProperty(name = "二级科目名称")
private String secondSubjectName;
@ApiModelProperty(name = "金额")
private BigDecimal loanMoney;
@ApiModelProperty(name = "支付人/单位")
private String payPerson;
@ApiModelProperty(name = "放款内部流水号")
private String innerNumber;
@ApiModelProperty(name = "收款内部流水号")
private String collectionInnerNumber;
@ApiModelProperty(name = "收款渠道code(字典)")
private String payChannel;
@ApiModelProperty(name = "收款渠道名称(字典)")
private String payChannelName;
@ApiModelProperty(name = "支付通道code")
private String payWay;
@ApiModelProperty(name = "支付通道name")
private String payWayName;
@ApiModelProperty(name = "银企直联流水号")
private String bankNumber;
@ApiModelProperty(name = "收据单号")
private String receiptNumber;
@ApiModelProperty(name = "收款备注")
private String collectionRemark;
@ApiModelProperty(name = "运单/订单id")
private Long waybillId;
@ApiModelProperty(name = "运单/订单号")
private String waybillNumber;
@ApiModelProperty(name = "运单/订单号集合")
private List<String> waybillNumberList;
@ApiModelProperty(name = "运单/订单来源")
private String waybillSource;
@ApiModelProperty(name = "运单/订单来源name")
private String waybillSourceName;
@ApiModelProperty(name = "核销人id")
private Long cancelAfterVerificationId;
@ApiModelProperty(name = "核销人name")
private String cancelAfterVerificationName;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "核销时间")
private Date cancelAfterVerificationTime;
@ApiModelProperty(name = "核销方式:0.全部1.人工核销2.自动核销")
private Integer cancelAfterVerificationType;
@ApiModelProperty(name = "收款人id")
private Long collectionId;
@ApiModelProperty(name = "收款人name")
private String collectionName;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "收款时间")
private Date collectionTime;
@ApiModelProperty(name = "手续费")
private BigDecimal serviceCharge;
@ApiModelProperty(name = "放款要求(0.全部1.现金2.银行卡3.垫付)")
private Integer loanRequest;
@ApiModelProperty(name = "开户人姓名")
private String accountHolderName;
@ApiModelProperty(name = "开户银行(0.全部1.中国银行2.中国农业银行)")
private Integer accountHolderBank;
@ApiModelProperty(name = "银行账号")
private String bankAccount;
@ApiModelProperty(name = "签收状态:0.全部1.已签收2.未签收")
private Integer signStatus;
@ApiModelProperty(name = "订单/运单备注")
private String waybillRemark;
@ApiModelProperty(name = "放款人id")
private Long loanId;
@ApiModelProperty(name = "放款人name")
private String loanName;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "放款时间")
private Date loanTime;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty(name = "电子回单状态:0.全部1.未上传2.已上传")
private Integer digitalReceiptStatus;
@ApiModelProperty(name = "loanRemark")
private String cancelRemark;
@ApiModelProperty(name = "核销备注")
private String cancelAfterVerificationRemark;
@ApiModelProperty(name = "取消核销备注")
private String cancelCancelAfterVerificationRemark;
@ApiModelProperty(name = "取消收款备注")
private String cancelCollectionRemark;
@ApiModelProperty(name = "放款备注")
private String loanRemark;
@ApiModelProperty(name = "扣付")
private BigDecimal withholdPayment;
@ApiModelProperty(name = "手续费")
private BigDecimal commissionCharges;
@ApiModelProperty(name = "手续费状态(1-未对账 2-未申请付款 3-未审核 4-未付款 5-已付款 6-已核销 7-已取消)")
private Integer commissionChargesStatus;
@ApiModelProperty(name = "挂失状态:1.未挂失3.已挂失")
private Integer reportLossStatus;
@ApiModelProperty(name = "挂失人id")
private Long reportLossId;
@ApiModelProperty(name = "挂失人name")
private String reportLossName;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(name = "挂失时间")
private Date reportLossTime;
@ApiModelProperty(name = "挂失备注")
private String reportLossRemark;
@ApiModelProperty(name = "取消挂失备注")
private String cancelReportLossRemark;
@ApiModelProperty(name = "寄件网点")
private Long mailBranch;
@ApiModelProperty(name = "到站网点")
private Long arriveBranch;
@ApiModelProperty(name = "收款时间查询条件开始日期")
private String collectionTimeStart;
@ApiModelProperty(name = "收款时间查询条件结束日期")
private String collectionTimeEnd;
@ApiModelProperty(name = "核销时间查询条件开始日期")
private String cancelAfterVerificationTimeStart;
@ApiModelProperty(name = "核销时间查询条件结束日期")
private String cancelAfterVerificationTimeEnd;
@ApiModelProperty(name = "放款时间查询条件开始日期")
private String loanTimeStart;
@ApiModelProperty(name = "放款时间查询条件结束日期")
private String loanTimeEnd;
@ApiModelProperty(name = "图片地址集合")
private String images;
@ApiModelProperty(name = "运单ids")
private List<Long> loanManageIds;
@ApiModelProperty(name = "挂失时间查询条件开始日期")
private String reportLossTimeStart;
@ApiModelProperty(name = "挂失时间查询条件结束日期")
private String reportLossTimeEnd;
}
@@ -0,0 +1,60 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 【请填写功能名称】对象 receiving_address_manage
*
* @author mhd
* @date 2023-03-14
*/
@Data
public class ReceivingAddressManageDto extends BaseVOEntity
{
private static final long serialVersionUID = 1L;
/** 收件地址信息id */
@ApiModelProperty(name = "收件地址信息id")
private Long receivingAddressId;
@ApiModelProperty(name = "收件地址信息ids")
private Long[] receivingAddressIds;
/** 收件人姓名 */
@ApiModelProperty(name = "收件人姓名")
private String receivingName;
/** 所在地区编码 */
@ApiModelProperty(name = "所在地区编码")
private Long countyCode;
/** 所在地区 */
@ApiModelProperty(name = "所在地区")
private String countyName;
/** 街道地址 */
@ApiModelProperty(name = "街道地址")
private String address;
/** 邮政编码 */
@ApiModelProperty(name = "邮政编码")
private String postalCode;
/** 手机号 */
@ApiModelProperty(name = "手机号")
private String phone;
/** 用户id */
@ApiModelProperty(name = "用户id")
private Long userId;
/** 默认地址状态(1-是,2-否) */
@ApiModelProperty(name = "默认地址状态")
private Integer defaultStatus;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,46 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 新增收入支出记录对象 dto
*
*/
@Data
public class RevenueExpensesRecordAddDto implements Serializable
{
@ApiModelProperty(name = "应付账单ids")
private List<Long> verificationIds;
@ApiModelProperty(name = "支付密码")
private String payPassword;
@ApiModelProperty(name = "支付通道code(字典)")
private String PayChannel;
@ApiModelProperty(name = "支付通道名称(字典)")
private String PayChannelName;
@ApiModelProperty(name = "银企直联流水号")
private String bankNumber;
@ApiModelProperty(name = "收款账户")
private String bankAccount;
@ApiModelProperty(name = "付款凭证")
private String voucherImages;
@ApiModelProperty("业务类型:1-运单(社会车辆),2-作业单,3-借款单,4-订单,5-维修单,6-还款单,7-收款单,8-信息费")
@Excel(name = "业务类型:1-运单(社会车辆),2-作业单,3-借款单,4-订单,5-维修单,6-还款单,7-收款单,8-信息费")
private Integer businessType;
@ApiModelProperty(name = "收入支出类型1.收入2.支出3.挂账")
private Integer revenueExpensesType;
@ApiModelProperty(name = "备注")
private String remark;
@ApiModelProperty(name = "入账类型:1.系统入账2.手工入账")
private Integer entryValue;
@ApiModelProperty(name = "操作类型:支付-pay、挂账-account")
private String operationType;
}
@@ -0,0 +1,105 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 收入支出记录对象 dto
*
* 2023-03-18
*
* @author 王子豪
*/
@Data
public class RevenueExpensesRecordDto extends BaseVOEntity implements Serializable
{
@ApiModelProperty(name = "收入支出记录id")
private Long revenueExpensesRecordId;
private List<Long> revenueExpensesRecordIds;
@ApiModelProperty(name = "部门")
private String departmentName;
@ApiModelProperty(name = "车辆")
private String licenseNumber;
@ApiModelProperty(name = "结算对象")
private String payName;
@ApiModelProperty(name = "业务单据号")
private String businessDocumentNumber;
@ApiModelProperty(name = "操作人")
private String createByName;
// @ApiModelProperty(name = "网点id")
// private Long branchId;
@ApiModelProperty(name = "内部流水号")
private String innerNumber;
@ApiModelProperty(name = "收入支出类型1.收入2.支出")
private Integer revenueExpensesType;
@ApiModelProperty(name = "金额")
private BigDecimal money;
@ApiModelProperty(name = "一级科目code")
private String firstSubject;
@ApiModelProperty(name = "二级科目code")
private String secondSubject;
@ApiModelProperty(name = "一级科目")
private String firstSubjectName;
@ApiModelProperty(name = "二级科目名称")
private String secondSubjectName;
@ApiModelProperty(name = "一级科目排序")
private Integer firstSubjectSort;
@ApiModelProperty(name = "二级科目排序")
private Integer secondSubjectSort;
@ApiModelProperty(name = "支付通道code(字典)")
private String payChannel;
@ApiModelProperty(name = "支付通道名称(字典)")
private String payChannelName;
@ApiModelProperty(name = "入账类型:1.系统入账2.手工入账")
private Integer entryValue;
@ApiModelProperty(name = "备注")
private String remark;
@ApiModelProperty(name = "流水状态:1.正常2.作废")
private Integer dayToDayStatus;
// @ApiModelProperty(name = "运单/订单id")
// private Long waybillId;
// @ApiModelProperty(name = "运单/订单号")
// private String waybillNumber;
// @ApiModelProperty(name = "结账状态:1.正常2.作废")
// private Integer settleAccountsStatus;
@ApiModelProperty(name = "银企直联流水号")
private String bankNumber;
// @ApiModelProperty(name = "运单/订单来源")
// private String waybillSource;
// @ApiModelProperty(name = "运单/订单来源name")
// private String waybillSourceName;
// @ApiModelProperty(name = "经办人")
// private String handledByName;
@ApiModelProperty(name = "交易时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "交易时间查询条件结束日期")
private String createTimeEnd;
@ApiModelProperty(name = "交易金额起始")
private BigDecimal moneyStart;
@ApiModelProperty(name = "交易金额结束")
private BigDecimal moneyEnd;
@ApiModelProperty(name = "运单/订单ids")
private List<String> waybillNumberList;
// @ApiModelProperty("交账记录号")
// @Excel(name = "交账记录号")
// private String billCode;
// @ApiModelProperty(name = "交账状态:1.未交账2.已交账")
// private Integer billStatus;
@ApiModelProperty("一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("组织表ID")
private Long organizationId;
}
@@ -0,0 +1,133 @@
package com.linke.finance.interfaces.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 服务费账单对象 service_bill
*
* @author gen
* @date 2023-11-06
*/
@Data
public class ServiceBillDTO extends BaseVOEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("网点账单id")
private Long serviceBillId;
@ApiModelProperty("最高组织id")
@Excel(name = "最高组织id")
private Long topOrganizationId;
@ApiModelProperty("组织表id")
@Excel(name = "组织表id")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("收账网点id")
@Excel(name = "收账网点id")
private Long branchInId;
@ApiModelProperty("收账网点名称")
@Excel(name = "收账网点名称")
private String branchInName;
@ApiModelProperty("交账网点id")
@Excel(name = "交账网点id")
private Long branchOutId;
@ApiModelProperty("交账网点名称")
@Excel(name = "交账网点名称")
private String branchOutName;
@ApiModelProperty("交账状态:1-未确认 2-已确认")
@Excel(name = "交账状态:1-未确认 2-已确认")
private Integer billStatus;
@ApiModelProperty("账单编码")
@Excel(name = "账单编码")
private String billCode;
@ApiModelProperty("关联订单id")
@Excel(name = "关联订单id")
private Long associationOrderId;
@ApiModelProperty("关联订单编码")
@Excel(name = "关联订单编码")
private String associationOrderCode;
@ApiModelProperty("运单状态:1-未签收 2-已签收 3-已作废")
@Excel(name = "运单状态:1-未签收 2-已签收 3-已作废")
private Integer associationOrderStatus;
@ApiModelProperty("服务费规则:1-定额 2-比例")
@Excel(name = "服务费规则:1-定额 2-比例")
private Integer serviceFeeRules;
@ApiModelProperty(name = "每单服务费")
private BigDecimal serviceFeeOrder;
@ApiModelProperty("服务费")
@Excel(name = "服务费")
private BigDecimal serviceFee;
@ApiModelProperty("运费")
@Excel(name = "运费")
private BigDecimal freight;
@ApiModelProperty("开单时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "开单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date billingTime;
@ApiModelProperty("签收时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date signTime;
@ApiModelProperty("交账时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "交账时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date reportTime;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty(name = "记录类型:1-收账记录 2-交账记录")
private Integer type;
@ApiModelProperty("开单时间-开始")
private String billingTimeStart;
@ApiModelProperty("开单时间-结束")
private String billingTimeEnd;
@ApiModelProperty("签收时间-开始")
private String signTimeStart;
@ApiModelProperty("签收时间-开始")
private String signTimeEnd;
@ApiModelProperty("交账时间-开始")
private String reportTimeStart;
@ApiModelProperty("交账时间-结束")
private String reportTimeEnd;
}
@@ -0,0 +1,28 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.web.domain.BaseVOEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* App货单专线支付实体
*
* @author mhd
* @date 2023-03-18
*/
@Data
public class SpecialPayAppDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "现付")
private BigDecimal spotPayment;
@ApiModelProperty(name = "到付")
private BigDecimal freightCollectPayment;
@ApiModelProperty(name = "回单付")
private BigDecimal paymentAgainstDocuments;
@ApiModelProperty(name = "月结")
private BigDecimal monthlyStatement;
}
@@ -0,0 +1,122 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 收款单对象 tms_receipt
*
* @author gen
* @date 2025-04-28
*/
@Data
public class TmsReceiptDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键")
private Long id;
private List<Long> receiptIds;
@ApiModelProperty("一级组织ID")
@Excel(name = "一级组织ID")
private Integer topOrganizationId;
@ApiModelProperty("收款单号")
@Excel(name = "收款单号")
private String receivePaymentNumber;
@ApiModelProperty(name = "结算方id")
@Excel(name = "结算方id")
private String settlementPartyId;
@ApiModelProperty(name = "结算方名称")
@Excel(name = "结算方名称")
private String settlementPartyName;
@ApiModelProperty(name = "结算方类型(0-委托方,1-收货方)")
@Excel(name = "结算方类型(0-委托方,1-收货方)")
private Integer settlementPartyType;
@ApiModelProperty(name = "部门(1-机械运输,2-大件运输,3-罐车运输,4-济南专线,5-江西专线)")
@Excel(name = "部门(1-机械运输,2-大件运输,3-罐车运输,4-济南专线,5-江西专线)")
private Integer orderShippingType;
@ApiModelProperty("部门名称")
private String departmentName;
@ApiModelProperty("可分配金额")
@Excel(name = "可分配金额")
private BigDecimal assignableAmount;
@ApiModelProperty("分配状态")
@Excel(name = "分配状态")
private Integer assignmentStatus;
@ApiModelProperty("可分配的")
@Excel(name = "可分配的")
private Boolean assignableStatusIn;
@ApiModelProperty("分配状态查询(大于传递状态的数据)")
@Excel(name = "分配状态查询(大于传递状态的数据)")
private Integer greaterThanAssignmentStatus;
@ApiModelProperty(name = "收款金额")
@Excel(name = "收款金额")
private BigDecimal receivePaymentAmount;
@ApiModelProperty(name = "收款时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@Excel(name = "收款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date receivePaymentTime;
@ApiModelProperty("收款时间-开始")
private String receivePaymentTimeStart;
@ApiModelProperty("收款时间-结束")
private String receivePaymentTimeEnd;
@ApiModelProperty("收款凭证")
@Excel(name = "收款凭证")
private String receiveVoucherUrl;
@ApiModelProperty(name = "交易流水号")
@Excel(name = "交易流水号")
private String serialNumber;
@ApiModelProperty(name = "收款备注")
@Excel(name = "收款备注")
private String remark;
@ApiModelProperty("删除标记:0-无状态,1-正常,2-已删除")
@Excel(name = "是否删除", readConverterExp = "删除标记:0-无状态,1-正常,2-已删除")
private Integer delFlag;
// @ApiModelProperty(name = "组织ID集合")
// @Excel(name = "组织ID集合")
// private List<Long> organizationIdList;
//
// @ApiModelProperty(name = "权限菜单ID")
// @Excel(name = "权限菜单ID")
// private Long permissionMenuId;
//
// @ApiModelProperty("组织表id")
// @Excel(name = "组织表id")
// private Long organizationId;
//
// @ApiModelProperty("组织名称")
// @Excel(name = "组织名称")
// private String organizationName;
@ApiModelProperty("挂账原因")
@Excel(name = "挂账原因")
private String creditReason;
}
@@ -0,0 +1,162 @@
package com.linke.finance.interfaces.dto;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 提现对象 withdraw_application
*
* @author gen
* @date 2024-03-14
*/
@Data
public class WithdrawApplicationDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("id")
private Long withdrawApplicationId;
@ApiModelProperty("提现交易流水号")
@Excel(name = "提现交易流水号")
private String serialNumber;
@ApiModelProperty("支付密码")
private String payPassword;
@ApiModelProperty("申请用户ID")
@Excel(name = "申请用户ID")
private Long applicantId;
@ApiModelProperty("申请人姓名")
@Excel(name = "申请人姓名")
private String applicantName;
@ApiModelProperty("申请人电话")
@Excel(name = "申请人电话")
private String applicantPhone;
@ApiModelProperty("申请人车牌号")
@Excel(name = "申请人车牌号")
private String applicantLicenseNumber;
@ApiModelProperty("申请时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyTime;
@ApiModelProperty("申请金额")
@Excel(name = "申请金额")
private BigDecimal applyAmount;
@ApiModelProperty("申请状态(1-已申请,2-正在转账,3-转账成功,4-转账失败)")
@Excel(name = "申请状态", readConverterExp = "1=-已申请,2-正在转账,3-转账成功,4-转账失败")
private Integer applicationStatus;
@ApiModelProperty("支付批次号")
@Excel(name = "支付批次号")
private String payBatchNumber;
@ApiModelProperty("银行卡ID")
@Excel(name = "银行卡ID")
private Long bankCardId;
@ApiModelProperty("开户银行")
@Excel(name = "开户银行")
private String bankName;
@ApiModelProperty("开户姓名")
@Excel(name = "开户姓名")
private String accountOwnerName;
@ApiModelProperty("银行卡号")
@Excel(name = "银行卡号")
private String bankCardNumber;
@ApiModelProperty("绑定手机")
@Excel(name = "绑定手机")
private String bindingPhone;
@ApiModelProperty("转账时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "转账时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date transferTime;
@ApiModelProperty("转账人用户ID")
@Excel(name = "转账人用户ID")
private Long transferById;
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty("到账时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "到账时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date arriveAccountTime;
@ApiModelProperty("转账渠道(1-线上)")
@Excel(name = "转账渠道", readConverterExp = "1=-线上")
private Integer transferType;
@ApiModelProperty("提现人用户类型(1-司机/车队,2-货主)")
@Excel(name = "提现人用户类型", readConverterExp = "1=-司机/车队,2-货主")
private Integer withdrawPeopleType;
@ApiModelProperty("支付方式(1-农行支付,2-通联支付,3-网商银行)")
@Excel(name = "支付方式(1-农行支付,2-通联支付,3-网商银行)")
private Integer paymentMethod;
@ApiModelProperty("是否已推送(1-是,2-否)")
@Excel(name = "是否已推送(1-是,2-否)")
private Integer isPush;
@ApiModelProperty("关联运单id")
@Excel(name = "关联运单id")
private String tmsTransportId;
@ApiModelProperty("交易网流水号")
@Excel(name = "交易网流水号")
private String cnsmrSeqNo;
@ApiModelProperty("提现失败原因")
@Excel(name = "提现失败原因")
private String failureReason;
@ApiModelProperty("支付类型 1-预付 2-运费 6-回单付")
@Excel(name = "支付类型 1-预付 2-运费 6-回单付")
private Integer type;
@ApiModelProperty("提现类型 1-用户提现 2-平台账户提现")
@Excel(name = "提现类型 1-用户提现 2-平台账户提现")
private Integer withdrawApplicationType;
@ApiModelProperty("一级组织表ID")
@Excel(name = "一级组织表ID")
private Long topOrganizationId;
@ApiModelProperty("组织表ID")
@Excel(name = "组织表ID")
private Long organizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty("ids")
private String ids;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,22 @@
package com.linke.finance.interfaces.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* App货单网货支付实体
*
* @author mhd
* @date 2023-03-18
*/
@Data
public class WlhyPayAppDto
{
private static final long serialVersionUID = 1L;
@ApiModelProperty(name = "支付费用类型")
private String payType;
}
@@ -0,0 +1,77 @@
package com.linke.finance.interfaces.dto.approvalDocument;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 审批单据对象 approval_document
*
* @author gen
* @date 2025-07-16
*/
@Data
public class ApprovalDocumentDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("审批单号")
@Excel(name = "审批单号")
private String approvalOrderNumber;
@ApiModelProperty("审批类型")
@Excel(name = "审批类型")
private String approvalType;
@ApiModelProperty("审批标题")
@Excel(name = "审批标题")
private String approvalTitle;
@ApiModelProperty("审批状态 0-未审批 1-审批中 2-审批通过 3-审批拒绝 4-已撤销 5-全部")
@Excel(name = "审批状态 0-未审批 1-审批中 2-审批通过 3-审批拒绝 4-已撤销 5-全部")
private Long approvalStatus;
@ApiModelProperty("完成时间")
private String finishTime;
@ApiModelProperty("$column.columnComment")
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String approvalOpinion;
@ApiModelProperty("审批单来源")
@Excel(name = "审批单来源")
private String approvalFormSource;
@ApiModelProperty("组织ID")
@Excel(name = "组织ID")
private Long organizationId;
@ApiModelProperty("一级组织ID")
@Excel(name = "一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty("钉钉审批单号")
@Excel(name = "钉钉审批单号")
private String approvalNumber;
}
@@ -0,0 +1,63 @@
package com.linke.finance.interfaces.dto.approvalDocument;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DingDingHuiDiaoDTO {
@ApiModelProperty("事件英文名称")
private String EventType;
@ApiModelProperty("事件发生的时间")
private Long EventTime;
@ApiModelProperty("企业corpId")
private String CorpId;
@ApiModelProperty("无业务意义,幂等")
private String BizId;
@ApiModelProperty("事件的唯一Id")
private String eventId;
@ApiModelProperty("审批实例id")
private String processInstanceId;
@ApiModelProperty("结束审批实例时间")
private Long finishTime;
@ApiModelProperty("创建审批实例时间")
private Long createTime;
@ApiModelProperty("审批模板的唯一码")
private String processCode;
@ApiModelProperty("业务分类标识")
private String bizCategoryId;
@ApiModelProperty("实例状态变更类型:\n" +
"\n" +
"start:审批实例开始\n" +
"finish:审批正常结束(同意或拒绝)\n" +
"terminate:审批终止(发起人撤销审批单)\n" +
"delete:审批实例删除")
private String type;
@ApiModelProperty("审批实例标题")
private String title;
@ApiModelProperty("业务身份")
private String businessType;
@ApiModelProperty("审批实例url,可在钉钉内跳转到审批页面")
private String url;
@ApiModelProperty("发起审批实例的员工userId")
private String staffId;
@ApiModelProperty("审批结果(审批终止时无此参数)\n" +
"\n" +
"agree 同意\n" +
"refuse:拒绝")
private String result;
}
@@ -0,0 +1,65 @@
package com.linke.finance.interfaces.dto.approvalDocumentDetail;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 审批单据明细对象 approval_document_detail
*
* @author gen
* @date 2025-07-16
*/
@Data
public class ApprovalDocumentDetailDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("$column.columnComment")
private Long id;
@ApiModelProperty("审批单id")
@Excel(name = "审批单id")
private Long approvalDocumentId;
@ApiModelProperty("业务单据号")
@Excel(name = "业务单据号")
private String waybillNumber;
@ApiModelProperty("金额")
@Excel(name = "金额")
private BigDecimal amount;
@ApiModelProperty("收款人姓名")
@Excel(name = "收款人姓名")
private String payName;
@ApiModelProperty("车牌号")
@Excel(name = "车牌号")
private String licenseNumber;
@ApiModelProperty("组织ID")
@Excel(name = "组织ID")
private Long organizationId;
@ApiModelProperty("一级组织ID")
@Excel(name = "一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
}
@@ -0,0 +1,71 @@
package com.linke.finance.interfaces.dto.auditRecords;
import com.mhd.common.core.annotation.Excel;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import com.mhd.common.core.web.domain.BaseVOEntity;
import java.util.List;
/**
* 审核记录对象 audit_records
*
* @author gen
* @date 2024-03-04
*/
@Data
public class AuditRecordsDTO extends BaseVOEntity{
private static final long serialVersionUID = 1L;
@ApiModelProperty("审核记录表id")
private Long auditRecordsId;
@ApiModelProperty("审核过程")
@Excel(name = "审核过程")
private Long sort;
@ApiModelProperty("角色ID")
@Excel(name = "角色ID")
private Long roleId;
@ApiModelProperty("角色code")
@Excel(name = "角色code")
private String roleCode;
@ApiModelProperty("角色名称")
@Excel(name = "角色名称")
private String roleName;
@ApiModelProperty("业务单据详情表id")
@Excel(name = "业务单据详情表id")
private Long businessDocumentDetaliId;
@ApiModelProperty("业务单据表id")
@Excel(name = "业务单据表id")
private Long businessDocumentId;
@ApiModelProperty("组织ID")
@Excel(name = "组织ID")
private Long organizationId;
@ApiModelProperty("一级组织ID")
@Excel(name = "一级组织ID")
private Long topOrganizationId;
@ApiModelProperty("组织名称")
@Excel(name = "组织名称")
private String organizationName;
@ApiModelProperty(name = "组织ID集合")
private List<Long> organizationIdList;
@ApiModelProperty(name = "权限菜单ID")
private Long permissionMenuId;
@ApiModelProperty("审核状态:2-审核同意,3-审核拒绝")
private Integer auditStatus;
@ApiModelProperty("备注")
private String remark;
}
@@ -0,0 +1,22 @@
package com.linke.finance.interfaces.dto.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ZhouGY
* @title branchProfitStatisticsDTO
* @description: 网点利润
* @date 2023/12/15 11:41
**/
@Data
public class BranchProfitStatisticsDTO {
@ApiModelProperty(name = "网点id")
private Long branchId;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}
@@ -0,0 +1,23 @@
package com.linke.finance.interfaces.dto.report;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ZhouGY
* @title receivablePayableStatisticsDTO
* @description: 应收应付统计DTO
* @date 2023/12/13 13:22
**/
@Data
public class ReceivablePayableStatisticsDTO {
@ApiModelProperty(name = "网点id")
private Long branchId;
@ApiModelProperty(name = "创建时间查询条件开始日期")
private String createTimeStart;
@ApiModelProperty(name = "创建时间查询条件结束日期")
private String createTimeEnd;
}
@@ -0,0 +1,51 @@
package com.linke.finance.interfaces.dto.report;
import com.mhd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 统计报表 DTO
*
* @author Administrator
*/
@Data
public class ReportDTO {
/**
* 网点名称
*/
@ApiModelProperty(name = "网点名称")
@Excel(name = "网点名称")
private String branchName;
/**
* 网点ID
*/
@ApiModelProperty(name = "网点ID")
@Excel(name = "网点ID")
private Long branchId;
/**
* 网点ID集合
*/
@ApiModelProperty(name = "网点ID集合")
@Excel(name = "网点ID集合")
private List<Long> branchIdList;
/**
* 查询开始时间
*/
@ApiModelProperty("查询开始时间")
@Excel(name = "查询开始时间")
private String startTime;
/**
* 查询结束时间
*/
@ApiModelProperty("查询结束时间")
@Excel(name = "查询结束时间")
private String endTime;
}
@@ -0,0 +1,403 @@
package com.linke.finance.interfaces.facade.accountManage;
import com.linke.finance.application.service.accountManage.AccountManageApplicationService;
import com.linke.finance.application.service.common.CommonApplicationService;
import com.linke.finance.domain.accountManage.entity.AccountBankCard;
import com.linke.finance.domain.accountManage.entity.AccountCashWallet;
import com.linke.finance.domain.accountManage.entity.AccountExpendRecords;
import com.linke.finance.domain.accountManage.entity.AccountTransferRecharge;
import com.linke.finance.domain.accountManage.repository.po.AccountBankCardPo;
import com.linke.finance.domain.accountManage.repository.po.AccountCashWalletPo;
import com.linke.finance.domain.accountManage.repository.po.AccountExpendRecordsPo;
import com.linke.finance.domain.accountManage.repository.po.AccountTransferRechargePo;
import com.linke.finance.domain.accountManage.repository.todo.AccountBankCardDo;
import com.linke.finance.domain.accountManage.repository.todo.AccountCashWalletDo;
import com.linke.finance.domain.accountManage.repository.todo.AccountExpendRecordsDo;
import com.linke.finance.domain.accountManage.repository.todo.AccountTransferRechargeDo;
import com.linke.finance.domain.common.entity.DataPermission;
import com.linke.finance.interfaces.assemble.accountManage.AccountAssembler;
import com.linke.finance.interfaces.assemble.invoice.InvoiceAssembler;
import com.linke.finance.interfaces.dto.AccountBankCardDto;
import com.linke.finance.interfaces.dto.AccountCashWalletDto;
import com.linke.finance.interfaces.dto.AccountExpendRecordsDto;
import com.linke.finance.interfaces.dto.AccountTransferRechargeDto;
import com.mhd.common.core.constant.RabbitMqConstants;
import com.mhd.common.core.domain.entity.R;
import com.mhd.common.core.mq.MsgData;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.utils.validate.AddGroup;
import com.mhd.common.core.utils.validate.EditGroup;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 现金钱包账户 管理 接口层
*
* 2023年3月9日
*
*/
@RestController
@RequestMapping("/accountManage")
@CrossOrigin
@Validated
public class AccountManageApi extends BaseController
{
@Autowired
private AccountManageApplicationService accountManageApplicationService;
@Autowired
private CommonApplicationService commonApplicationService;
@Autowired
private RabbitTemplate rabbitTemplate;
/**
* 钱包账户列表查询
* @param accountCashWalletDto
* @return
*/
@Log(title = "现金账户管理-查询", description = "现金账户列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/accountCashWalletList")
public TableDataInfo accountCashWalletList(AccountCashWalletDto accountCashWalletDto)
{
AccountCashWalletDo accountCashWalletDo = new AccountCashWalletDo();
BeanUtils.copyProperties(accountCashWalletDto,accountCashWalletDo);
startPage();
List<AccountCashWalletPo> list = accountManageApplicationService.selectAccountCashWalletList(accountCashWalletDo);
return getDataTable(list);
}
/**
* 开通现金账户
* @param accountCashWalletDto
* @return
*/
@Log(title = "现金账户管理-新增", description = "开通现金账户", businessType = BusinessType.INSERT)
@PostMapping("/accountCashWalletSave")
public AjaxResult accountCashWalletSave(@RequestBody AccountCashWalletDto accountCashWalletDto)
{
//数据装配
AccountCashWallet accountCashWallet = new AccountAssembler().toDo(accountCashWalletDto);
return toAjax(accountManageApplicationService.insertAccountCashWallet(accountCashWallet));
}
/**
* 根据id查询现金钱包信息
* @param accountCashWalletId
* @return
*/
@GetMapping(value = "/getAccountCashWallet/{accountCashWalletId}")
public AjaxResult getAccountCashWallet(@PathVariable(value = "accountCashWalletId",required = true) Long accountCashWalletId)
{
return AjaxResult.success(accountManageApplicationService.getAccountCashWallet(accountCashWalletId));
}
/**
* 根据用户id查询钱包信息
* @param userId
* @return
*/
@GetMapping(value = "/getWalletByUserId")
public AjaxResult getWalletByUserId(@RequestParam(value = "userId",required = true) Long userId)
{
return AjaxResult.success(accountManageApplicationService.getWalletByUserId(userId));
}
/**
* 充值、回收、退回、冻结、解冻
* @param accountCashWalletDto
* @return
*/
@Log(title = "现金账户管理", description = "充值、回收、退回、冻结、解冻", businessType = BusinessType.UPDATE)
@PostMapping("/accountBusiness")
public AjaxResult accountBusiness(@RequestBody AccountCashWalletDto accountCashWalletDto)
{
return accountManageApplicationService.accountBusiness(accountCashWalletDto);
}
/**
* 锁定、解锁操作 可批量
* @param accountCashWalletDto
* @return
*/
@Log(title = "现金账户管理", description = "锁定、解锁操作 可批量", businessType = BusinessType.UPDATE)
@PostMapping("/changeLock")
public AjaxResult changeLock(@RequestBody AccountCashWalletDto accountCashWalletDto)
{
return toAjax(accountManageApplicationService.changeLock(accountCashWalletDto));
}
/**
* 消费记录分页列表查询
* @param accountExpendRecordsDto
* @return
*/
@Log(title = "消费记录管理-查询", description = "消费记录分页列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/accountExpendRecordsList")
public TableDataInfo accountExpendRecordsList(AccountExpendRecordsDto accountExpendRecordsDto)
{
AccountExpendRecordsDo accountExpendRecordsDo = new AccountExpendRecordsDo();
BeanUtils.copyProperties(accountExpendRecordsDto,accountExpendRecordsDo);
startPage();
List<AccountExpendRecordsPo> list = accountManageApplicationService.selectAccountExpendRecordsList(accountExpendRecordsDo);
return getDataTable(list);
}
/**
* 根据用户id查询消费记录求和
* @param userId
* @return
*/
@Log(title = "消费记录管理", description = "根据用户id查询消费记录求和", businessType = BusinessType.INQUIRE)
@GetMapping("/queryAccountExpendRecordsByUserId")
public String queryAccountExpendRecordsByUserId(@RequestParam(name="userId") Long userId)
{
return accountManageApplicationService.queryAccountExpendRecordsByUserId(userId);
}
/**
* 作废/恢复 可批量
* @param accountExpendRecordsDto
* @return
*/
@Log(title = "消费记录管理", description = "作废/恢复 可批量", businessType = BusinessType.UPDATE)
@PostMapping("/changeFlowStatus")
public AjaxResult changeFlowStatus(@RequestBody AccountExpendRecordsDto accountExpendRecordsDto)
{
return toAjax(accountManageApplicationService.changeFlowStatus(accountExpendRecordsDto));
}
/**
* 根据id删除消费记录
* @param accountExpendRecordsDto
* @return
*/
@Log(title = "消费记录管理", description = "根据id删除消费记录", businessType = BusinessType.DELETE)
@PostMapping("/deleteAccountExpendRecordsById")
public AjaxResult deleteAccountExpendRecordsById(@RequestBody AccountExpendRecordsDto accountExpendRecordsDto)
{
return toAjax(accountManageApplicationService.deleteAccountExpendRecordsById(accountExpendRecordsDto));
}
/**
* 新增消费记录
* @param accountExpendRecordsDto
* @return
*/
@Log(title = "消费记录管理-新增", description = "新增消费记录", businessType = BusinessType.INSERT)
@PostMapping("/accountExpendRecordsSave")
public AjaxResult accountExpendRecordsSave(@RequestBody AccountExpendRecordsDto accountExpendRecordsDto)
{
//数据装配
AccountExpendRecords accountExpendRecords = new AccountAssembler().toDo(accountExpendRecordsDto);
return toAjax(accountManageApplicationService.insertAccountExpendRecords(accountExpendRecords));
}
/**
* 新增/编辑银行卡信息
* @param accountBankCardDto
* @return
*/
@Log(title = "银行卡管理-新增/编辑", description = "新增/编辑银行卡信息", businessType = BusinessType.INSERT)
@PostMapping("/accountBankCardSave")
public AjaxResult accountBankCardSave(@RequestBody @Validated({AddGroup.class, EditGroup.class}) AccountBankCardDto accountBankCardDto)
{
//数据装配
AccountBankCard accountBankCard = new InvoiceAssembler().toDo(accountBankCardDto);
if(accountBankCard.getAccountBankCardId() != null){
return toAjax(accountManageApplicationService.updateAccountBankCard(accountBankCard));
}else {
return toAjax(accountManageApplicationService.insertAccountBankCard(accountBankCard));
}
}
/**
* 银行卡查询分页列表查询
* @param accountBankCardDto
* @return
*/
@Log(title = "银行卡管理-查询", description = "银行卡查询分页列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/accountBankCardList")
public TableDataInfo accountBankCardList(AccountBankCardDto accountBankCardDto)
{
AccountBankCardDo accountBankCardDo = new AccountBankCardDo();
BeanUtils.copyProperties(accountBankCardDto,accountBankCardDo);
startPage();
List<AccountBankCardPo> list = accountManageApplicationService.selectAccountBankCardList(accountBankCardDto);
return getDataTable(list);
}
/**
* 根据银行卡id查询银行卡信息
* @param accountBankCardId
* @return
*/
@Log(title = "银行卡管理-查询", description = "根据银行卡id查询银行卡信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getAccountBankCard/{accountBankCardId}")
public AjaxResult getAccountBankCard(@PathVariable(value = "accountBankCardId",required = true) Long accountBankCardId)
{
return AjaxResult.success(accountManageApplicationService.getAccountBankCard(accountBankCardId));
}
/**
* 根据id删除银行卡信息
* @param accountBankCardDto
* @return
*/
@Log(title = "银行卡管理-删除", description = "根据id删除银行卡信息", businessType = BusinessType.DELETE)
@PostMapping("/deleteAccountBankCardById")
public AjaxResult deleteAccountBankCardById(@RequestBody AccountBankCardDto accountBankCardDto)
{
return toAjax(accountManageApplicationService.deleteAccountBankCardById(accountBankCardDto));
}
/**
* 设为默认银行卡
* @param accountBankCardDto
* @return
*/
@Log(title = "银行卡管理-编辑", description = "设为默认银行卡", businessType = BusinessType.UPDATE)
@PostMapping("/changeDefaultStatus")
public AjaxResult changeDefaultStatus(@RequestBody AccountBankCardDto accountBankCardDto)
{
return toAjax(accountManageApplicationService.changeDefaultStatus(accountBankCardDto));
}
/**
* 新增转账记录
* @param accountTransferRechargeDto
* @return
*/
@Log(title = "转账记录管理-新增", description = "新增转账记录", businessType = BusinessType.INSERT)
@PostMapping("/accountTransferRechargeSave")
public AjaxResult accountTransferRechargeSave(@RequestBody AccountTransferRechargeDto accountTransferRechargeDto)
{
//数据装配
AccountTransferRecharge accountTransferRecharge = new InvoiceAssembler().toDo(accountTransferRechargeDto);
return toAjax(accountManageApplicationService.insertAccountTransferRecharge(accountTransferRecharge));
}
/**
* 根据id查询转账记录
* @param accountTransferRechargeId
* @return
*/
@Log(title = "转账记录管理-查询", description = "根据id查询转账记录", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getAccountTransferRecharge/{accountTransferRechargeId}")
public AjaxResult getAccountTransferRecharge(@PathVariable(value = "accountTransferRechargeId",required = true) Long accountTransferRechargeId)
{
return AjaxResult.success(accountManageApplicationService.getAccountTransferRecharge(accountTransferRechargeId));
}
/**
* 根据id删除转账记录信息
* @param accountTransferRechargeDto
* @return
*/
@Log(title = "转账记录管理-删除", description = "根据id删除转账记录信息", businessType = BusinessType.DELETE)
@PostMapping("/deleteAccountTransferRecharge")
public AjaxResult deleteAccountTransferRecharge(@RequestBody AccountTransferRechargeDto accountTransferRechargeDto)
{
AccountTransferRechargeDo accountTransferRechargeDo = new AccountTransferRechargeDo();
BeanUtils.copyProperties(accountTransferRechargeDto,accountTransferRechargeDo);
return toAjax(accountManageApplicationService.deleteAccountTransferRecharge(accountTransferRechargeDo));
}
/**
* 转账记录分页列表查询
* @param accountTransferRechargeDto
* @return
*/
@Log(title = "转账记录管理-查询", description = "转账记录分页列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/accountTransferRechargeList")
public TableDataInfo accountTransferRechargeList(AccountTransferRechargeDto accountTransferRechargeDto)
{
AccountTransferRechargeDo accountTransferRechargeDo = new AccountTransferRechargeDo();
BeanUtils.copyProperties(accountTransferRechargeDto,accountTransferRechargeDo);
//判断当前登录人数据权限
// DataPermission dataPermission = commonApplicationService.dataPermission(accountBankCardDto.getPermissionMenuId());
startPage();
List<AccountTransferRechargePo> list = accountManageApplicationService.selectAccountTransferRechargeList(accountTransferRechargeDo);
return getDataTable(list);
}
/**
* 同意/拒绝转账记录
* @param accountTransferRechargeDto
* @return
*/
@Log(title = "转账记录管理-编辑", description = "同意/拒绝转账记录", businessType = BusinessType.UPDATE)
@PostMapping("/examineAccountTransferRecharge")
public AjaxResult examineAccountTransferRecharge(@RequestBody AccountTransferRechargeDto accountTransferRechargeDto)
{
AccountTransferRechargeDo accountTransferRechargeDo = new AccountTransferRechargeDo();
BeanUtils.copyProperties(accountTransferRechargeDto,accountTransferRechargeDo);
return accountManageApplicationService.examineAccountTransferRecharge(accountTransferRechargeDo);
}
@GetMapping("/test001")
public String accountTransferRechargeList(String msg) {
rabbitTemplate.convertAndSend(RabbitMqConstants.TEST_ONE_EXCHANGE,msg);
return "发送成功:"+msg;
}
/**
* 更新账户授信额度
*/
@Log(title = "账户管理-编辑", description = "更新账户授信额度", businessType = BusinessType.UPDATE)
@PostMapping("/updateCreditLimit")
public AjaxResult updateCreditLimit(@RequestBody AccountCashWalletDto accountCashWalletDto){
accountManageApplicationService.updateCreditLimit(accountCashWalletDto);
return AjaxResult.success("操作成功!");
}
/**
* 更新总额度
*/
@Log(title = "账户管理-编辑", description = "更新账户总额度", businessType = BusinessType.UPDATE)
@PostMapping("/updateTotalLimit")
public AjaxResult updateTotalLimit(@RequestBody AccountCashWalletDto accountCashWalletDto){
accountManageApplicationService.updateTotalLimit(accountCashWalletDto);
return AjaxResult.success("操作成功!");
}
/**
* 根据用户id查询授信额度
*/
@Log(title = "账户管理-查询", description = "根据用户id查询授信额度", businessType = BusinessType.INQUIRE)
@GetMapping("/getLimitByUserId/{userId}")
public AjaxResult getLimitByUserId(@PathVariable("userId") Long userId){
return AjaxResult.success("查询成功!",accountManageApplicationService.getLimitByUserId(userId));
}
@Log(title = "银行卡管理-根据用户查询银行卡列表", description = "根据用户查询银行卡列表", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getAccountBankCardByUser")
public AjaxResult getAccountBankCardByUser(@RequestParam(value = "userId",required = true) Long userId)
{
return AjaxResult.success(accountManageApplicationService.getAccountBankCardByUser(userId));
}
@Log(title = "钱包管理-删除钱包", description = "删除钱包", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/deleteCashWalletById/{id}")
public AjaxResult deleteCashWalletById(@PathVariable(value = "id") Long id)
{
accountManageApplicationService.deleteCashWalletById(id);
return AjaxResult.success();
}
}
@@ -0,0 +1,171 @@
package com.linke.finance.interfaces.facade.approvalDocument;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.linke.finance.domain.approvalDocument.entity.ApprovalDocument;
import com.linke.finance.interfaces.dto.approvalDocument.DingDingHuiDiaoDTO;
import com.linke.finance.interfaces.vo.ApprovalStatsVO;
import com.linke.finance.until.DingCallbackCrypto;
import com.mhd.common.core.domain.entity.R;
import java.util.List;
import java.util.Map;
import com.linke.finance.application.server.approvalDocument.ApprovalDocumentApplicationService;
import com.linke.finance.domain.approvalDocument.repository.po.ApprovalDocumentPO;
import com.linke.finance.domain.approvalDocument.repository.todo.ApprovalDocumentDO;
import com.linke.finance.interfaces.assemble.approvalDocument.ApprovalDocumentAssembler;
import com.linke.finance.interfaces.dto.approvalDocument.ApprovalDocumentDTO;
import com.mhd.common.core.feign.ThirdPartyServiceFeign;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.alibaba.fastjson.JSONObject;
/**
* 审批单据Api
*
* @author gen
* @date 2025-07-16
*/
@RestController
@RequestMapping("/approvalDocumentApi")
public class ApprovalDocumentApi extends BaseController{
@Autowired
private ApprovalDocumentApplicationService approvalDocumentApplicationService;
@Resource
private ApprovalDocumentAssembler approvalDocumentAssembler;
@Autowired
private ThirdPartyServiceFeign thirdPartyServiceFeign;
/**
* 分页查询审批单据列表
*/
@ApiOperation("查询审批单据列表")
@GetMapping("/list")
public TableDataInfo list(ApprovalDocumentDTO approvalDocumentDTO)
{
//转换实体
ApprovalDocumentDO approvalDocumentDO = approvalDocumentAssembler.toDO(approvalDocumentDTO);
startPage();
List<ApprovalDocumentPO> list = approvalDocumentApplicationService.queryList(approvalDocumentDO);
return getDataTable(list);
}
/**
* 编辑审批单据
*/
@ApiOperation("编辑审批单据")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody ApprovalDocumentDTO approvalDocumentDTO)
{
//转换实体
ApprovalDocumentDO approvalDocumentDO = approvalDocumentAssembler.toDO(approvalDocumentDTO);
if(approvalDocumentDTO.getId() != null){
return toAjax(approvalDocumentApplicationService.update(approvalDocumentDO));
}else {
return toAjax(approvalDocumentApplicationService.insert(approvalDocumentDO));
}
}
/**
* 批量删除审批单据
*/
@ApiOperation("批量删除审批单据")
@DeleteMapping("/deleteByIds/{ids}")
public AjaxResult delete(@PathVariable Long[] ids)
{
return toAjax(approvalDocumentApplicationService.delete(ids));
}
/**
* 获取审批单据详细信息
*/
@ApiOperation("获取审批单据")
@GetMapping(value = "/getInfo/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(approvalDocumentApplicationService.getInfo(id));
}
/**
* 获取单个审批实例详情
*/
@Log(title = "业务单据详情-获取单个审批实例详情", description = "获取业务单据详情-获取单个审批实例详情", businessType = BusinessType.OTHER)
@ApiOperation("获取单个审批实例详情")
@GetMapping(value = "/workflow/processInstancesById")
public AjaxResult workflowProcessInstancesById(@RequestParam(name="id") Long id)
{
return AjaxResult.success(approvalDocumentApplicationService.workflowProcessInstancesById(id));
}
/**
* 批量更新审批状态
*/
@Log(title = "业务单据详情-批量更新审批状态", description = "获取业务单据详情-批量更新审批状态", businessType = BusinessType.OTHER)
@ApiOperation("批量更新审批状态")
@GetMapping(value = "/workflow/processInstancesMore")
public AjaxResult workflowProcessInstancesMore(@RequestParam(name="ids") String ids)
{
approvalDocumentApplicationService.workflowProcessInstancesMore(ids);
return AjaxResult.success();
}
@Log(title = "业务单据详情-统计审批单据总数及各状态数量", description = "业务单据详情-统计审批单据总数及各状态数量", businessType = BusinessType.INQUIRE)
@ApiOperation("统计审批单据总数及各状态数量")
@GetMapping("/getStats")
public R<ApprovalStatsVO> getStats() {
return R.ok(approvalDocumentApplicationService.getApprovalStatistics());
}
/**
* 钉钉事件回调
*/
@PostMapping("/dingdingHuiDiao")
public Map<String, String> callBack(
@RequestParam(value = "msg_signature", required = false) String msg_signature,
@RequestParam(value = "timestamp", required = false) String timeStamp,
@RequestParam(value = "nonce", required = false) String nonce,
@RequestBody(required = false) JSONObject json) {
try {
// 1. 从http请求中获取加解密参数
// 2. 使用加解密类型
// 2、调用订阅事件接口订阅的事件为企业级事件推送,此时OWNER_KEY为:开发者后台应用的Client ID(原企业内部应用 appKey )
DingCallbackCrypto callbackCrypto = new DingCallbackCrypto("HBsF7r7TLmaxgnl18yknto", "zBTzDIKYEe7cxjWCpUkzx0pEawPnD8N628NpUPJvOk6", "dingo10sqpps1ry9y1av");
String encryptMsg = json.getString("encrypt");
String decryptMsg = callbackCrypto.getDecryptMsg(msg_signature, timeStamp, nonce, encryptMsg);
// 3. 反序列化回调事件json数据
JSONObject eventJson = JSON.parseObject(decryptMsg);
String processInstanceId = eventJson.getString("processInstanceId");
if(StringUtils.isNotBlank(processInstanceId)){
ApprovalDocument approvalDocument=approvalDocumentApplicationService.getByProcessInstanceId(processInstanceId);
if(ObjectUtil.isNotNull(approvalDocument)){
approvalDocumentApplicationService.workflowProcessInstancesById(approvalDocument.getId());
}
}
// 5. 返回success的加密数据
Map<String, String> successMap = callbackCrypto.getEncryptedMap("success");
return successMap;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
@@ -0,0 +1,99 @@
package com.linke.finance.interfaces.facade.approvalDocumentDetail;
import java.util.List;
import com.linke.finance.application.server.approvalDocumentDetail.ApprovalDocumentDetailApplicationService;
import com.linke.finance.domain.approvalDocumentDetail.repository.po.ApprovalDocumentDetailPO;
import com.linke.finance.domain.approvalDocumentDetail.repository.todo.ApprovalDocumentDetailDO;
import com.linke.finance.interfaces.assemble.approvalDocumentDetail.ApprovalDocumentDetailAssembler;
import com.linke.finance.interfaces.dto.approvalDocumentDetail.ApprovalDocumentDetailDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 审批单据明细Api
*
* @author gen
* @date 2025-07-16
*/
@RestController
@RequestMapping("/approvalDocumentDetailApi")
public class ApprovalDocumentDetailApi extends BaseController{
@Autowired
private ApprovalDocumentDetailApplicationService approvalDocumentDetailApplicationService;
@Resource
private ApprovalDocumentDetailAssembler approvalDocumentDetailAssembler;
/**
* 分页查询审批单据明细列表
*/
@ApiOperation("查询审批单据明细列表")
@GetMapping("/list")
public TableDataInfo list(ApprovalDocumentDetailDTO approvalDocumentDetailDTO)
{
//转换实体
ApprovalDocumentDetailDO approvalDocumentDetailDO = approvalDocumentDetailAssembler.toDO(approvalDocumentDetailDTO);
startPage();
List<ApprovalDocumentDetailPO> list = approvalDocumentDetailApplicationService.queryList(approvalDocumentDetailDO);
return getDataTable(list);
}
/**
* 编辑审批单据明细
*/
@ApiOperation("编辑审批单据明细")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody ApprovalDocumentDetailDTO approvalDocumentDetailDTO)
{
//转换实体
ApprovalDocumentDetailDO approvalDocumentDetailDO = approvalDocumentDetailAssembler.toDO(approvalDocumentDetailDTO);
if(approvalDocumentDetailDTO.getId() != null){
return toAjax(approvalDocumentDetailApplicationService.update(approvalDocumentDetailDO));
}else {
return toAjax(approvalDocumentDetailApplicationService.insert(approvalDocumentDetailDO));
}
}
/**
* 批量删除审批单据明细
*/
@ApiOperation("批量删除审批单据明细")
@DeleteMapping("/deleteByIds/{ids}")
public AjaxResult delete(@PathVariable Long[] ids)
{
return toAjax(approvalDocumentDetailApplicationService.delete(ids));
}
/**
* 获取审批单据明细详细信息
*/
@ApiOperation("获取审批单据明细")
@GetMapping(value = "/getInfo/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(approvalDocumentDetailApplicationService.getInfo(id));
}
}
@@ -0,0 +1,132 @@
package com.linke.finance.interfaces.facade.auditConfiguration;
import java.util.List;
import com.linke.finance.interfaces.dto.AuditConfigurationDTO;
import com.mhd.common.core.domain.entity.R;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.domain.auditConfiguration.repository.todo.AuditConfigurationDO;
import com.mhd.common.core.domain.po.AuditConfigurationPO;
import com.linke.finance.application.service.auditConfiguration.AuditConfigurationApplicationService;
import com.linke.finance.interfaces.assembler.auditConfiguration.AuditConfigurationAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 审核配置Api
*
* @author gen
* @date 2024-02-28
*/
@RestController
@RequestMapping("/auditConfigurationApi")
public class AuditConfigurationApi extends BaseController{
@Autowired
private AuditConfigurationApplicationService auditConfigurationApplicationService;
@Resource
private AuditConfigurationAssembler auditConfigurationAssembler;
/**
* 分页查询审核配置列表
*/
@Log(title = "审核配置-查询", description = "审核配置列表查询", businessType = BusinessType.INQUIRE)
@ApiOperation("查询审核配置列表")
@GetMapping("/list")
public TableDataInfo list(AuditConfigurationDTO auditConfigurationDTO)
{
//转换实体
AuditConfigurationDO auditConfigurationDO = auditConfigurationAssembler.toDO(auditConfigurationDTO);
startPage();
List<AuditConfigurationPO> list = auditConfigurationApplicationService.queryList(auditConfigurationDO);
return getDataTable(list);
}
/**
* 查询指定审核配置列表
*/
@Log(title = "审核配置-查询", description = "审核配置列表查询", businessType = BusinessType.INQUIRE)
@ApiOperation("查询指定审核配置列表")
@GetMapping("/listByAuditType/{auditType}")
public R<List<AuditConfigurationPO>> listByAuditType(@PathVariable("auditType") Integer auditType)
{
List<AuditConfigurationPO> list = auditConfigurationApplicationService.listByAuditType(auditType);
return R.ok(list);
}
/**
* 编辑审核配置
*/
@Log(title = "审核配置-编辑", description = "编辑审核配置", businessType = BusinessType.UPDATE)
@ApiOperation("编辑审核配置")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody AuditConfigurationDTO auditConfigurationDTO)
{
//转换实体
AuditConfigurationDO auditConfigurationDO = auditConfigurationAssembler.toDO(auditConfigurationDTO);
if(auditConfigurationDTO.getAuditConfigurationId() != null){
return toAjax(auditConfigurationApplicationService.update(auditConfigurationDO));
}else {
return toAjax(auditConfigurationApplicationService.insert(auditConfigurationDO));
}
}
/**
* 批量编辑审核配置
*/
@Log(title = "审核配置-编辑", description = "编辑审核配置", businessType = BusinessType.UPDATE)
@ApiOperation("批量编辑审核配置")
@PostMapping("/editBatch")
public AjaxResult editBatch(@RequestBody AuditConfigurationDTO auditConfigurationDTO)
{
//转换实体
AuditConfigurationDO auditConfigurationDO = auditConfigurationAssembler.toDO(auditConfigurationDTO);
auditConfigurationApplicationService.editBatch(auditConfigurationDO);
return AjaxResult.success("操作成功!");
}
/**
* 批量删除审核配置
*/
@Log(title = "审核配置-删除", description = "删除审核配置", businessType = BusinessType.DELETE)
@ApiOperation("批量删除审核配置")
@DeleteMapping("/deleteByIds/{auditConfigurationIds}")
public AjaxResult delete(@PathVariable Long[] auditConfigurationIds)
{
return toAjax(auditConfigurationApplicationService.delete(auditConfigurationIds));
}
/**
* 获取审核配置详细信息
*/
@Log(title = "审核配置-查询", description = "获取审核配置详情", businessType = BusinessType.INQUIRE)
@ApiOperation("获取审核配置")
@GetMapping(value = "/getInfo/{auditConfigurationId}")
public AjaxResult getInfo(@PathVariable("auditConfigurationId") Long auditConfigurationId)
{
return AjaxResult.success(auditConfigurationApplicationService.getInfo(auditConfigurationId));
}
}
@@ -0,0 +1,207 @@
package com.linke.finance.interfaces.facade.branchBill;
import java.util.List;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.interfaces.dto.BranchBillDTO;
import com.linke.finance.domain.branchBill.repository.todo.BranchBillDO;
import com.linke.finance.domain.branchBill.repository.po.BranchBillPO;
import com.linke.finance.application.service.branchBill.BranchBillApplicationService;
import com.linke.finance.interfaces.assemble.branchBill.BranchBillAssembler;
import javax.annotation.Resource;
import javax.sql.rowset.serial.SerialException;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 网点账单Api
*
* @author gen
* @date 2023-11-04
*/
@RestController
@RequestMapping("/branchBillApi")
public class BranchBillApi extends BaseController{
@Autowired
private BranchBillApplicationService branchBillApplicationService;
@Resource
private BranchBillAssembler branchBillAssembler;
/**
* 分页查询网点账单列表
*/
@Log(title = "网点账单-查询", description = "分页查询网点账单列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询网点账单列表")
@GetMapping("/list")
public TableDataInfo list(BranchBillDTO branchBillDTO)
{
//转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
List<BranchBillPO> list = branchBillApplicationService.queryList(branchBillDO);
return getDataTable(list);
}
@Log(title = "网点账单-查询", description = "查询网点账单记录数", businessType = BusinessType.INQUIRE)
@ApiOperation("查询网点账单记录数")
@GetMapping("/countTabTotal")
public AjaxResult countTabTotal(BranchBillDTO branchBillDTO)
{
//转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
BranchBillPO branchBillPO = branchBillApplicationService.countTabTotal(branchBillDO);
return AjaxResult.success(branchBillPO);
}
/**
* 编辑网点账单
*/
@Log(title = "网点账单-编辑", description = "编辑网点账单", businessType = BusinessType.UPDATE)
@ApiOperation("编辑网点账单")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BranchBillDTO branchBillDTO)
{
//转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
if(branchBillDTO.getBranchBillId() != null){
return toAjax(branchBillApplicationService.update(branchBillDO));
}else {
return toAjax(branchBillApplicationService.insert(branchBillDO));
}
}
/**
* 批量删除网点账单
*/
@Log(title = "网点账单-删除", description = "批量删除网点账单", businessType = BusinessType.DELETE)
@ApiOperation("批量删除网点账单")
@DeleteMapping("/deleteByIds/{branchBillIds}")
public AjaxResult delete(@PathVariable Long[] branchBillIds)
{
return toAjax(branchBillApplicationService.delete(branchBillIds));
}
/**
* 获取网点账单详细信息
*/
@Log(title = "网点账单-获取", description = "获取网点账单详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取网点账单")
@GetMapping(value = "/getInfo/{branchBillId}")
public AjaxResult getInfo(@PathVariable("branchBillId") Long branchBillId)
{
return AjaxResult.success(branchBillApplicationService.getInfo(branchBillId));
}
/**
* @description 获取网点交账数据
* @author ZhouGY
* @date 2023/11/6 14:42
* @return AjaxResult
*/
@Log(title = "网点账单-查询", description = "获取网点账单详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取网点交账数据")
@GetMapping(value = "/branchBillStatistics")
public AjaxResult branchBillStatistics(BranchBillDTO branchBillDTO)
{
//转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
return AjaxResult.success(branchBillApplicationService.branchBillStatistics(branchBillDO));
}
/**
* @description 网点交账
* @author ZhouGY
* @date 2023/11/6 14:42
* @param branchBillDTO
* @return AjaxResult
*/
@Log(title = "网点账单", description = "网点交账", businessType = BusinessType.UPDATE)
@ApiOperation("网点交账")
@PostMapping(value = "/branchPayment")
public AjaxResult branchPayment(@RequestBody BranchBillDTO branchBillDTO)
{ //转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
try {
branchBillApplicationService.branchPayment(branchBillDO);
return AjaxResult.success();
}catch (ServiceException se){
logger.error("BranchBillApi branchPayment 网点交账 失败 ServiceException", se);
return AjaxResult.error(se.getMessage());
}catch (Exception e){
logger.error("BranchBillApi branchPayment 网点交账 失败 Exception", e);
return AjaxResult.error("网点交账 失败,请联系管理员");
}
}
@Log(title = "网点账单", description = "确认收款", businessType = BusinessType.UPDATE)
@ApiOperation("确认收款")
@GetMapping(value = "/confirmBranchBillAmount")
public AjaxResult confirmBranchBillAmount(BranchBillDTO branchBillDTO)
{
//转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
try {
branchBillApplicationService.confirmBranchBillAmount(branchBillDO);
return AjaxResult.success();
}catch (ServiceException se){
logger.error("BranchBillApi confirmBranchBillAmount 确认收款 失败 ServiceException", se);
return AjaxResult.error(se.getMessage());
}catch (Exception e){
logger.error("BranchBillApi confirmBranchBillAmount 确认收款 失败 Exception", e);
return AjaxResult.error("确认收款 失败,请联系管理员");
}
}
@Log(title = "网点账单-查询", description = "获取网点交账详情", businessType = BusinessType.INQUIRE)
@ApiOperation("获取网点交账详情")
@GetMapping(value = "/getBranchPaymentDetail")
public AjaxResult getBranchPaymentDetail(@RequestParam("branchBillId") Long branchBillId)
{
try {
return AjaxResult.success(branchBillApplicationService.getBranchPaymentDetail(branchBillId));
}catch (ServiceException se){
logger.error("BranchBillApi confirmBranchBillAmount 获取网点交账详情 失败 ServiceException", se);
return AjaxResult.error(se.getMessage());
}catch (Exception e){
logger.error("BranchBillApi confirmBranchBillAmount 获取网点交账详情 失败 Exception", e);
return AjaxResult.error("确认收款 失败,请联系管理员");
}
}
@Log(title = "网点账单", description = "网点转账支付", businessType = BusinessType.UPDATE)
@ApiOperation("网点转账支付")
@PostMapping(value = "/branchPayBills")
public AjaxResult branchPayBills(@RequestBody BranchBillDTO branchBillDTO)
{ //转换实体
BranchBillDO branchBillDO = branchBillAssembler.toDO(branchBillDTO);
try {
branchBillApplicationService.branchPayBills(branchBillDO);
return AjaxResult.success();
}catch (ServiceException se){
logger.error("BranchBillApi branchPayBills 网点转账支付 失败 ServiceException", se);
return AjaxResult.error(se.getMessage());
}catch (Exception e){
logger.error("BranchBillApi branchPayBills 网点转账支付 失败 Exception", e);
return AjaxResult.error("网点转账支付 失败,请联系管理员");
}
}
}
@@ -0,0 +1,146 @@
package com.linke.finance.interfaces.facade.branchFreightBill;
import java.util.List;
import com.mhd.common.core.domain.dto.WaybillSignFinanceDTO;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.interfaces.dto.BranchFreightBillDTO;
import com.linke.finance.domain.branchFreightBill.repository.todo.BranchFreightBillDO;
import com.linke.finance.domain.branchFreightBill.repository.po.BranchFreightBillPO;
import com.linke.finance.application.service.branchFreightBill.BranchFreightBillApplicationService;
import com.linke.finance.interfaces.assemble.branchFreightBill.BranchFreightBillAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 网点费用账单Api
*
* @author gen
* @date 2023-11-08
*/
@RestController
@RequestMapping("/branchFreightBillApi")
public class BranchFreightBillApi extends BaseController{
@Autowired
private BranchFreightBillApplicationService branchFreightBillApplicationService;
@Resource
private BranchFreightBillAssembler branchFreightBillAssembler;
/**
* 分页查询网点费用账单列表
*/
@Log(title = "网点费用账单-查询", description = "分页查询网点费用账单列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询网点费用账单列表")
@GetMapping("/list")
public TableDataInfo list(BranchFreightBillDTO branchFreightBillDTO)
{
//转换实体
BranchFreightBillDO branchFreightBillDO = branchFreightBillAssembler.toDO(branchFreightBillDTO);
List<BranchFreightBillPO> list = branchFreightBillApplicationService.queryList(branchFreightBillDO);
return getDataTable(list);
}
/**
* 编辑网点费用账单
*/
@Log(title = "网点费用账单-编辑", description = "编辑网点费用账单", businessType = BusinessType.UPDATE)
@ApiOperation("编辑网点费用账单")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BranchFreightBillDTO branchFreightBillDTO)
{
//转换实体
BranchFreightBillDO branchFreightBillDO = branchFreightBillAssembler.toDO(branchFreightBillDTO);
if(branchFreightBillDTO.getBranchFreightId() != null){
return toAjax(branchFreightBillApplicationService.update(branchFreightBillDO));
}else {
return toAjax(branchFreightBillApplicationService.insert(branchFreightBillDO));
}
}
/**
* 新增网点费用账单
*/
@Log(title = "网点费用账单-新增", description = "新增网点费用账单", businessType = BusinessType.INSERT)
@ApiOperation("新增网点费用账单")
@PostMapping("/insertBranchFreightBill")
public AjaxResult insertBranchFreightBill(@RequestBody BranchFreightBillDTO branchFreightBillDTO)
{
//转换实体
BranchFreightBillDO branchFreightBillDO = branchFreightBillAssembler.toDO(branchFreightBillDTO);
return toAjax(branchFreightBillApplicationService.insertBranchFreightBill(branchFreightBillDO));
}
/**
* 批量删除网点费用账单
*/
@Log(title = "网点费用账单-删除", description = "批量删除网点费用账单", businessType = BusinessType.DELETE)
@ApiOperation("批量删除网点费用账单")
@DeleteMapping("/deleteByIds/{branchFreightIds}")
public AjaxResult delete(@PathVariable Long[] branchFreightIds)
{
return toAjax(branchFreightBillApplicationService.delete(branchFreightIds));
}
/**
* 获取网点费用账单详细信息
*/
@Log(title = "网点费用账单-查询", description = "获取网点费用账单详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取网点费用账单")
@GetMapping(value = "/getInfo/{branchFreightId}")
public AjaxResult getInfo(@PathVariable("branchFreightId") Long branchFreightId)
{
return AjaxResult.success(branchFreightBillApplicationService.getInfo(branchFreightId));
}
/**
* 批量确认网点运费账单
*/
@Log(title = "网点费用账单", description = "批量确认网点运费账单", businessType = BusinessType.UPDATE)
@ApiOperation("批量确认网点运费账单")
@PostMapping("/confirmBranchFreightBill")
public AjaxResult confirmBranchFreightBill(@RequestBody List<Long> branchFreightIds)
{
return toAjax(branchFreightBillApplicationService.confirmBranchFreightBill(branchFreightIds));
}
@Log(title = "网点费用账单", description = "修改运费", businessType = BusinessType.UPDATE)
@ApiOperation("修改运费")
@PostMapping("/updateBranchFreightBill")
public AjaxResult updateBranchFreightBill(@RequestBody BranchFreightBillDTO branchFreightBillDTO)
{
//转换实体
BranchFreightBillDO branchFreightBillDO = branchFreightBillAssembler.toDO(branchFreightBillDTO);
return toAjax(branchFreightBillApplicationService.updateBranchFreightBill(branchFreightBillDO));
}
/**
* 新增网点费用账单和标记服务费状态
*/
@Log(title = "网点费用账单", description = "新增网点费用账单和标记服务费状态", businessType = BusinessType.INSERT)
@ApiOperation("新增网点费用账单和标记服务费状态")
@PostMapping("/insertOrUpdateWaybillSignFinance")
public AjaxResult insertOrUpdateWaybillSignFinance(@RequestBody WaybillSignFinanceDTO waybillSignFinanceDTO)
{
return toAjax(branchFreightBillApplicationService.insertOrUpdateWaybillSignFinance(waybillSignFinanceDTO));
}
}
@@ -0,0 +1,285 @@
package com.linke.finance.interfaces.facade.businessDocument;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.linke.finance.application.server.businessDocument.BusinessDocumentApplicationService;
import com.linke.finance.application.service.common.CommonApplicationService;
import com.linke.finance.domain.businessDocumentDetali.entity.BusinessDocumentDetali;
import com.linke.finance.domain.businessDocumentDetali.repository.po.BusinessDocumentDetaliPO;
import com.linke.finance.domain.businessDocumentDetali.repository.todo.BusinessDocumentDetaliDO;
import com.linke.finance.domain.common.entity.DataPermission;
import com.linke.finance.domain.invoice.repository.todo.InvoiceOrderDo;
import com.linke.finance.domain.reconciliation.repository.po.FinacialReconciliationListVO;
import com.linke.finance.infrastructure.util.UniqueKeyUtil;
import com.linke.finance.interfaces.dto.InvoiceOrderDto;
import com.mhd.common.core.domain.dto.BusinessDocumentDetaliDTO;
import com.mhd.common.core.domain.dto.EditPaymentMethodDTO;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import com.mhd.common.redis.enums.RedisLockTypeEnum;
import com.mhd.common.redis.service.RedisLock;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.redisson.RedissonMultiLock;
import org.redisson.api.RLock;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.mhd.common.core.domain.dto.BusinessDocumentDTO;
import com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO;
import com.linke.finance.domain.businessDocument.repository.po.BusinessDocumentPO;
import com.linke.finance.interfaces.assembler.businessDocument.BusinessDocumentAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 业务单据Api
*
* @author gen
* @date 2024-01-23
*/
@RestController
@RequestMapping("/businessDocumentApi")
@Slf4j
public class BusinessDocumentApi extends BaseController{
@Autowired
private BusinessDocumentApplicationService businessDocumentApplicationService;
@Autowired
private CommonApplicationService commonApplicationService;
@Resource
private BusinessDocumentAssembler businessDocumentAssembler;
@Autowired
private RedisLock redisLock;
/**
* 分页查询业务单据列表--new
*/
@Log(title = "业务单据-查询", description = "分页查询业务单据列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询业务单据列表")
@GetMapping("/list")
public TableDataInfo list(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = businessDocumentAssembler.toDO(businessDocumentDTO);
startPage();
List<BusinessDocumentPO> list = businessDocumentApplicationService.queryList(businessDocumentDO);
return getDataTable(list);
}
/**
* 编辑业务单据
*/
@Log(title = "业务单据-编辑", description = "编辑业务单据", businessType = BusinessType.UPDATE)
@ApiOperation("编辑业务单据")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = businessDocumentAssembler.toDO(businessDocumentDTO);
if(businessDocumentDTO.getBusinessDocumentId() != null){
return toAjax(businessDocumentApplicationService.update(businessDocumentDO));
}else {
return toAjax(businessDocumentApplicationService.insert(businessDocumentDO));
}
}
/**
* 批量删除业务单据
*/
@Log(title = "业务单据-删除", description = "批量删除业务单据", businessType = BusinessType.DELETE)
@ApiOperation("批量删除业务单据")
@DeleteMapping("/deleteByIds/{businessDocumentIds}")
public AjaxResult delete(@PathVariable Long[] businessDocumentIds)
{
return toAjax(businessDocumentApplicationService.delete(businessDocumentIds));
}
/**
* 获取业务单据详细信息
*/
@Log(title = "业务单据-获取", description = "获取业务单据详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取业务单据")
@GetMapping(value = "/getInfo/{businessDocumentId}")
public AjaxResult getInfo(@PathVariable("businessDocumentId") Long businessDocumentId)
{
return AjaxResult.success(businessDocumentApplicationService.getInfo(businessDocumentId));
}
/**
* 申请运费同步接口--new
*/
@ApiOperation("申请运费同步接口")
@PostMapping(value = "/pushPayment")
public AjaxResult pushPayment(@RequestBody List<BusinessDocumentDetaliDTO> businessDocumentDetailList)
{
return AjaxResult.success(businessDocumentApplicationService.pushPayment(businessDocumentDetailList));
}
/**
* 撤销应付单据
* @param businessDocumentDetailList
* @return
*/
@ApiOperation("应付单据--撤销申请")
@PostMapping(value = "/cancelApply")
public AjaxResult cancelApply(@RequestBody List<BusinessDocumentDetaliDTO> businessDocumentDetailList)
{
boolean handleFlag = businessDocumentApplicationService.cancelApply(businessDocumentDetailList);
if(handleFlag){
return AjaxResult.success("撤销申请操作成功");
}else{
return AjaxResult.error("撤销申请操作失败");
}
}
/**
* 查询申请开票业务单据列表
* @param businessDocumentDTO
* @return
*/
@Log(title = "业务单据-查询", description = "查询申请开票业务单据列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询申请开票业务单据列表")
@GetMapping("/queryInvoiceList")
public TableDataInfo queryInvoiceList(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO,businessDocumentDO);
startPage();
List<BusinessDocumentPO> list = businessDocumentApplicationService.queryInvoiceList(businessDocumentDO);
return getDataTable(list);
}
@Log(title = "业务单据-查询", description = "查询申请开票业务单据列表(不分页)", businessType = BusinessType.INQUIRE)
@ApiOperation("查询申请开票业务单据列表(不分页)")
@GetMapping("/queryInvoiceListNoPage")
public AjaxResult queryInvoiceListNoPage(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO,businessDocumentDO);
List<BusinessDocumentPO> list = businessDocumentApplicationService.queryInvoiceList(businessDocumentDO);
return AjaxResult.success(list);
}
@Log(title = "业务单据-查询", description = "开票订单列表查询金额统计", businessType = BusinessType.INQUIRE)
@ApiOperation("开票订单列表查询金额统计")
@GetMapping("/invoiceOrderListCount")
public AjaxResult invoiceOrderListCount(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO,businessDocumentDO);
businessDocumentDO.setWaybillVerifyFlag(2);
return businessDocumentApplicationService.selectOrderListCount(businessDocumentDO);
}
@ApiOperation("标记开票订单核实/未核实状态")
@PostMapping(value = "/markVerify")
public AjaxResult markVerify(@RequestBody BusinessDocumentDTO businessDocumentDTO)
{
try {
businessDocumentApplicationService.markVerify(businessDocumentDTO);
return AjaxResult.success("操作成功");
}catch (Exception e){
return AjaxResult.error("操作失败:" + e.getMessage());
}
}
@Log(title = "业务单据", description = "批量审核", businessType = BusinessType.UPDATE)
@ApiOperation("批量审核")
@PostMapping("/auditBatch")
public AjaxResult auditBatch(@RequestBody BusinessDocumentDetaliDTO businessDocumentDetaliDTO)
{
//转换实体
BusinessDocumentDetaliDO businessDocumentDetaliDO = new BusinessDocumentDetaliDO();
BeanUtils.copyProperties(businessDocumentDetaliDTO,businessDocumentDetaliDO);
//加锁
// RedissonMultiLock redissonMultiLock = null;
// boolean payInfoDetailLock = false;
String message = "";
try {
// RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.FINANCE;
// List<RLock> locks = new ArrayList<>();
// businessDocumentDetaliDO.getBusinessDocumentDetaliIds().forEach(e->{
// //获取唯一key值
// String key = redisLockTypeEnum.getUniqueKey(UniqueKeyUtil.getPayAuditKey(e.toString()));
// locks.add(redisLock.getRLock(key));
// });
// redissonMultiLock = new RedissonMultiLock(locks.toArray(new RLock[businessDocumentDetaliDO.getBusinessDocumentDetaliIds().size()]));
// //尝试获取锁 不等待 持有锁10分钟
// payInfoDetailLock = redissonMultiLock.tryLock(-1, 10, TimeUnit.MINUTES);
// if (!payInfoDetailLock) {
// redissonMultiLock = null;
// message = "支出审核正在处理,请稍后再试";
// return AjaxResult.error("支出审核正在处理,请稍后再试");
// }
// log.info("支出审核 加锁成功");
businessDocumentApplicationService.auditBatch(businessDocumentDetaliDO);
return AjaxResult.success("操作成功!");
}catch (Exception e){
message = e.getMessage();
return AjaxResult.error(e.getMessage());
} /*finally {
// if (redissonMultiLock != null && payInfoDetailLock) {
// redissonMultiLock.unlock();
// log.info("支出审核释放了锁");
// }
return AjaxResult.error(message);
}*/
}
@Log(title = "业务单据-结算记录", description = "业务单据-结算记录", businessType = BusinessType.INQUIRE)
@ApiOperation("业务单据-结算记录")
@GetMapping("/querySettlementList")
public TableDataInfo querySettlementList(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO,businessDocumentDO);
startPage();
List<BusinessDocumentDetaliPO> list = businessDocumentApplicationService.querySettlementList(businessDocumentDO);
return getDataTable(list);
}
@ApiOperation("接口-根据id查询应付单据")
@GetMapping("/selectBusinessDocumentDetailByBusinessCocumentId")
public AjaxResult selectBusinessDocumentDetailByBusinessCocumentId(@RequestParam String businessCocumentId)
{
BusinessDocumentDetali businessDocumentDetali = businessDocumentApplicationService.selectByBusinessCocumentId(businessCocumentId);
if(businessDocumentDetali==null){
return AjaxResult.error("未查询到应付单据!");
}
return AjaxResult.success(businessDocumentDetali);
}
@ApiOperation("接口-根据业务单据id删除应付单据")
@GetMapping("/deleteByBusinessCocumentId")
public AjaxResult deleteByBusinessCocumentId(@RequestParam List<String> businessCocumentIds)
{
int num = businessDocumentApplicationService.deleteByBusinessDocumentIds(businessCocumentIds);
if(num>0){
return AjaxResult.success("操作成功");
}else{
return AjaxResult.error("操作失败");
}
}
/**
* 根据单据号修改支付方式--new
*/
@ApiOperation("根据单据号修改支付方式")
@PostMapping(value = "/editPaymentMethod")
public AjaxResult editPaymentMethod(@RequestBody EditPaymentMethodDTO editPaymentMethodDTO)
{
return AjaxResult.success(businessDocumentApplicationService.editPaymentMethod(editPaymentMethodDTO));
}
}
@@ -0,0 +1,105 @@
package com.linke.finance.interfaces.facade.businessDocumentDetali;
import java.util.List;
import com.linke.finance.application.server.businessDocumentDetali.AuditRecordsApplicationService;
import com.linke.finance.domain.businessDocumentDetali.repository.po.AuditRecordsPO;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.interfaces.dto.auditRecords.AuditRecordsDTO;
import com.linke.finance.domain.businessDocumentDetali.repository.todo.AuditRecordsDO;
import com.linke.finance.interfaces.assembler.businessDocumentDetali.AuditRecordsAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 审核记录Api
*
* @author gen
* @date 2024-03-04
*/
@RestController
@RequestMapping("/auditRecordsApi")
public class AuditRecordsApi extends BaseController{
@Autowired
private AuditRecordsApplicationService auditRecordsApplicationService;
@Resource
private AuditRecordsAssembler auditRecordsAssembler;
/**
* 分页查询审核记录列表
*/
@Log(title = "审核记录-查询", description = "分页查询审核记录列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询审核记录列表")
@GetMapping("/list")
public TableDataInfo list(AuditRecordsDTO auditRecordsDTO)
{
//转换实体
AuditRecordsDO auditRecordsDO = auditRecordsAssembler.toDO(auditRecordsDTO);
startPage();
List<AuditRecordsPO> list = auditRecordsApplicationService.queryList(auditRecordsDO);
return getDataTable(list);
}
/**
* 编辑审核记录
*/
@Log(title = "审核记录-编辑", description = "编辑审核记录", businessType = BusinessType.UPDATE)
@ApiOperation("编辑审核记录")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody AuditRecordsDTO auditRecordsDTO)
{
//转换实体
AuditRecordsDO auditRecordsDO = auditRecordsAssembler.toDO(auditRecordsDTO);
if(auditRecordsDTO.getAuditRecordsId() != null){
return toAjax(auditRecordsApplicationService.update(auditRecordsDO));
}else {
return toAjax(auditRecordsApplicationService.insert(auditRecordsDO));
}
}
/**
* 批量删除审核记录
*/
@Log(title = "审核记录-删除", description = "批量删除审核记录", businessType = BusinessType.DELETE)
@ApiOperation("批量删除审核记录")
@DeleteMapping("/deleteByIds/{auditRecordsIds}")
public AjaxResult delete(@PathVariable Long[] auditRecordsIds)
{
return toAjax(auditRecordsApplicationService.delete(auditRecordsIds));
}
/**
* 获取审核记录详细信息
*/
@Log(title = "审核记录-查询", description = "获取审核记录详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取审核记录")
@GetMapping(value = "/getInfo/{auditRecordsId}")
public AjaxResult getInfo(@PathVariable("auditRecordsId") Long auditRecordsId)
{
return AjaxResult.success(auditRecordsApplicationService.getInfo(auditRecordsId));
}
}
@@ -0,0 +1,156 @@
package com.linke.finance.interfaces.facade.businessDocumentDetali;
import java.util.List;
import com.linke.finance.application.server.businessDocumentDetali.BusinessDocumentDetaliApplicationService;
import com.linke.finance.domain.businessDocumentDetali.repository.po.BusinessDocumentDetaliAuditPO;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.mhd.common.core.domain.dto.BusinessDocumentDetaliDTO;
import com.linke.finance.domain.businessDocumentDetali.repository.todo.BusinessDocumentDetaliDO;
import com.linke.finance.domain.businessDocumentDetali.repository.po.BusinessDocumentDetaliPO;
import com.linke.finance.interfaces.assembler.businessDocumentDetali.BusinessDocumentDetaliAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 业务单据详情Api
*
* @author gen
* @date 2024-01-23
*/
@RestController
@RequestMapping("/businessDocumentDetaliApi")
public class BusinessDocumentDetaliApi extends BaseController{
@Autowired
private BusinessDocumentDetaliApplicationService businessDocumentDetaliApplicationService;
@Resource
private BusinessDocumentDetaliAssembler businessDocumentDetaliAssembler;
/**
* 分页查询业务单据详情列表
*/
@Log(title = "业务单据详情-查询", description = "分页查询业务单据详情列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询业务单据详情列表")
@GetMapping("/list")
public TableDataInfo list(BusinessDocumentDetaliDTO businessDocumentDetaliDTO)
{
//转换实体
BusinessDocumentDetaliDO businessDocumentDetaliDO = businessDocumentDetaliAssembler.toDO(businessDocumentDetaliDTO);
startPage();
List<BusinessDocumentDetaliPO> list = businessDocumentDetaliApplicationService.queryList(businessDocumentDetaliDO);
return getDataTable(list);
}
/**
* 分页查询业务单据详情列表
*/
@Log(title = "业务单据详情-查询", description = "分页查询业务单据详情列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询业务单据详情列表")
@GetMapping("/auditList")
public TableDataInfo auditList(BusinessDocumentDetaliDTO businessDocumentDetaliDTO)
{
//转换实体
BusinessDocumentDetaliDO businessDocumentDetaliDO = businessDocumentDetaliAssembler.toDO(businessDocumentDetaliDTO);
startPage();
List<BusinessDocumentDetaliAuditPO> list = businessDocumentDetaliApplicationService.auditList(businessDocumentDetaliDO);
return getDataTable(list);
}
/**
* 审核明细
*/
@Log(title = "业务单据详情", description = "审核明细", businessType = BusinessType.UPDATE)
@ApiOperation("审核明细")
@GetMapping("/auditDetailList")
public TableDataInfo auditDetailList(BusinessDocumentDetaliDTO businessDocumentDetaliDTO)
{
//转换实体
BusinessDocumentDetaliDO businessDocumentDetaliDO = businessDocumentDetaliAssembler.toDO(businessDocumentDetaliDTO);
startPage();
List<BusinessDocumentDetaliAuditPO> list = businessDocumentDetaliApplicationService.auditDetailList(businessDocumentDetaliDO);
return getDataTable(list);
}
/**
* 编辑业务单据详情
*/
@Log(title = "业务单据详情-编辑", description = "编辑业务单据详情", businessType = BusinessType.UPDATE)
@ApiOperation("编辑业务单据详情")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody BusinessDocumentDetaliDTO businessDocumentDetaliDTO)
{
//转换实体
BusinessDocumentDetaliDO businessDocumentDetaliDO = businessDocumentDetaliAssembler.toDO(businessDocumentDetaliDTO);
if(businessDocumentDetaliDTO.getBusinessDocumentDetaliId() != null){
return toAjax(businessDocumentDetaliApplicationService.update(businessDocumentDetaliDO));
}else {
//插入赋值
return toAjax(businessDocumentDetaliApplicationService.insert(businessDocumentDetaliDO));
}
}
/**
* 批量删除业务单据详情
*/
@Log(title = "业务单据详情-删除", description = "批量删除业务单据详情", businessType = BusinessType.DELETE)
@ApiOperation("批量删除业务单据详情")
@DeleteMapping("/deleteByIds/{businessDocumentDetaliIds}")
public AjaxResult delete(@PathVariable Long[] businessDocumentDetaliIds)
{
return toAjax(businessDocumentDetaliApplicationService.delete(businessDocumentDetaliIds));
}
/**
* 获取业务单据详情详细信息
*/
@Log(title = "业务单据详情-详情", description = "获取业务单据详情详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取业务单据详情")
@GetMapping(value = "/getInfo/{businessDocumentDetaliId}")
public AjaxResult getInfo(@PathVariable("businessDocumentDetaliId") Long businessDocumentDetaliId)
{
return AjaxResult.success(businessDocumentDetaliApplicationService.getInfo(businessDocumentDetaliId));
}
/**
* 发起钉钉oa审批
*/
@Log(title = "业务单据详情-发起钉钉oa审批", description = "获取业务单据详情-发起钉钉oa审批", businessType = BusinessType.OTHER)
@ApiOperation("发起钉钉oa审批")
@GetMapping(value = "/workflow/processInstances")
public AjaxResult workflowProcessInstances(@RequestParam(name="businessDocumentDetaliIds") String businessDocumentDetaliIds)
{
return AjaxResult.success(businessDocumentDetaliApplicationService.workflowProcessInstances(businessDocumentDetaliIds));
}
/**
* 获取单个审批实例详情
*/
@Log(title = "业务单据详情-获取单个审批实例详情", description = "获取业务单据详情-获取单个审批实例详情", businessType = BusinessType.OTHER)
@ApiOperation("获取单个审批实例详情")
@GetMapping(value = "/workflow/processInstancesById")
public AjaxResult workflowProcessInstancesById(@RequestParam(name="businessDocumentDetaliId") Long businessDocumentDetaliId)
{
return AjaxResult.success(businessDocumentDetaliApplicationService.workflowProcessInstancesById(businessDocumentDetaliId));
}
@ApiOperation("应付单据--作废")
@GetMapping(value = "/deleteBusinessDocumentDetailById")
public AjaxResult deleteBusinessDocumentDetailById(@RequestParam(name="businessDocumentDetaliId") Long businessDocumentDetaliId)
{
Boolean flag = businessDocumentDetaliApplicationService.deleteBusinessDocumentDetailById(businessDocumentDetaliId);
if(flag){
return AjaxResult.success("操作成功");
}else{
return AjaxResult.success("操作失败");
}
}
}
@@ -0,0 +1,375 @@
package com.linke.finance.interfaces.facade.invoice;
import com.linke.finance.application.service.common.CommonApplicationService;
import com.linke.finance.application.service.invoice.InvoiceInfoManageApplicationService;
import com.linke.finance.domain.address.entity.ReceivingAddressManage;
import com.linke.finance.domain.address.repository.po.ReceivingAddressManagePo;
import com.linke.finance.domain.address.repository.todo.ReceivingAddressManageDo;
import com.linke.finance.domain.common.entity.DataPermission;
import com.linke.finance.domain.invoice.entity.InvoiceInfoManage;
import com.linke.finance.domain.invoice.entity.InvoiceOrder;
import com.linke.finance.domain.invoice.repository.po.InvoiceInfoManagePo;
import com.linke.finance.domain.invoice.repository.po.InvoiceInfoPo;
import com.linke.finance.domain.invoice.repository.po.InvoiceOrderPo;
import com.linke.finance.domain.invoice.repository.todo.InvoiceInfoDo;
import com.linke.finance.domain.invoice.repository.todo.InvoiceInfoManageDo;
import com.linke.finance.domain.invoice.repository.todo.InvoiceOrderDo;
import com.linke.finance.interfaces.assemble.invoice.InvoiceAssembler;
import com.linke.finance.interfaces.dto.InvoiceInfoDto;
import com.linke.finance.interfaces.dto.InvoiceInfoManageDto;
import com.linke.finance.interfaces.dto.InvoiceOrderDto;
import com.linke.finance.interfaces.dto.ReceivingAddressManageDto;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 客户信息/三方物流信息 管理 接口层
*
* 2023年3月9日
*
*/
@RestController
@RequestMapping("/invoice")
@CrossOrigin
public class InvoiceApi extends BaseController
{
@Autowired
private InvoiceInfoManageApplicationService invoiceInfoManageApplicationService;
@Autowired
private CommonApplicationService commonApplicationService;
/**
* 发票信息管理分页列表查询
*/
@Log(title = "发票信息管理-查询", description = "分页查询发票信息管理列表", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceInfoManageList")
public TableDataInfo invoiceInfoManageList(InvoiceInfoManageDto invoiceInfoManageDto)
{
InvoiceInfoManageDo invoiceInfoManageDo = new InvoiceInfoManageDo();
BeanUtils.copyProperties(invoiceInfoManageDto,invoiceInfoManageDo);
startPage();
List<InvoiceInfoManagePo> list = invoiceInfoManageApplicationService.selectInvoiceInfoManageList(invoiceInfoManageDo);
return getDataTable(list);
}
/**
* 新增/编辑发票信息管理信息
*/
@Log(title = "发票信息管理-新增", description = "新增/编辑发票信息管理信息", businessType = BusinessType.INSERT)
@PostMapping("/invoiceInfoManageSave")
public AjaxResult invoiceInfoManageSave(@RequestBody InvoiceInfoManageDto invoiceInfoManageDto)
{
//数据装配
InvoiceInfoManage invoiceInfoManage = new InvoiceAssembler().toDo(invoiceInfoManageDto);
if(invoiceInfoManage.getInvoiceInfoManageId() != null){
return toAjax(invoiceInfoManageApplicationService.updateInvoiceInfoManage(invoiceInfoManage));
}else {
return toAjax(invoiceInfoManageApplicationService.insertInvoiceInfoManage(invoiceInfoManage));
}
}
/**
* 根据id获取发票管理信息
*/
@Log(title = "发票信息管理-查询", description = "根据id获取发票信息管理信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getInvoiceManageInfo/{invoiceInfoManageId}")
public AjaxResult getInvoiceManageInfo(@PathVariable(value = "invoiceInfoManageId",required = true) Long invoiceInfoManageId)
{
return AjaxResult.success(invoiceInfoManageApplicationService.selectInvoiceInfoManageByInvoiceInfoId(invoiceInfoManageId));
}
/**
* 批量删除发票管理信息
*/
@Log(title = "发票信息管理-删除", description = "批量删除发票信息管理", businessType = BusinessType.DELETE)
@PostMapping("/removeInvoiceInfoByIds")
public AjaxResult removeInvoiceInfoByIds(@RequestBody InvoiceInfoManageDto invoiceInfoManageDto)
{
return toAjax(invoiceInfoManageApplicationService.deleteInvoiceByIds(invoiceInfoManageDto.getInvoiceInfoIds()));
}
/**
* 收件地址分页列表查询
* @param receivingAddressManageDto
* @return
*/
@Log(title = "收件地址-查询", description = "分页查询收件地址管理列表", businessType = BusinessType.INQUIRE)
@GetMapping("/receivingAddressList")
public TableDataInfo selectReceivingAddressList(ReceivingAddressManageDto receivingAddressManageDto)
{
ReceivingAddressManageDo receivingAddressManageDo = new ReceivingAddressManageDo();
BeanUtils.copyProperties(receivingAddressManageDto,receivingAddressManageDo);
startPage();
List<ReceivingAddressManagePo> list = invoiceInfoManageApplicationService.selectReceivingAddressList(receivingAddressManageDo);
return getDataTable(list);
}
/**
* 我的默认收件地址查询
* @return
*/
@Log(title = "收件地址-查询", description = "我的默认收件地址查询", businessType = BusinessType.INQUIRE)
@GetMapping("/receivingAddressMine")
public AjaxResult selectReceivingAddressMine()
{
return AjaxResult.success(invoiceInfoManageApplicationService.selectReceivingAddressMine());
}
/**
* 新增/编辑收件地址信息
* @param receivingAddressManageDto
* @return
*/
@Log(title = "收件地址-新增", description = "新增/编辑收件地址信息", businessType = BusinessType.INSERT)
@PostMapping("/receivingAddressSave")
public AjaxResult receivingAddressSave(@RequestBody ReceivingAddressManageDto receivingAddressManageDto)
{
//数据装配
ReceivingAddressManage receivingAddressManage = new InvoiceAssembler().toDo(receivingAddressManageDto);
if(receivingAddressManage.getReceivingAddressId() != null){
return toAjax(invoiceInfoManageApplicationService.updateReceivingAddressManage(receivingAddressManage));
}else {
return toAjax(invoiceInfoManageApplicationService.insertReceivingAddressManage(receivingAddressManage));
}
}
/**
* 根据id获取收件地址信息
*/
@Log(title = "收件地址-查询", description = "根据id获取收件地址信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getReceivingAddress/{receivingAddressId}")
public AjaxResult getReceivingAddress(@PathVariable(value = "receivingAddressId",required = true) Long receivingAddressId)
{
return AjaxResult.success(invoiceInfoManageApplicationService.selectReceivingAddressById(receivingAddressId));
}
/**
* 批量删除收件地址信息
*/
@Log(title = "收件地址-删除", description = "批量删除收件地址信息", businessType = BusinessType.DELETE)
@PostMapping("/removeReceivingAddressByIds")
public AjaxResult removeReceivingAddressByIds(@RequestBody ReceivingAddressManageDto receivingAddressManageDto)
{
return toAjax(invoiceInfoManageApplicationService.deleteReceivingAddressByIds(receivingAddressManageDto.getReceivingAddressIds()));
}
/**
* 标记默认地址
* @param receivingAddressManageDto
* @return
*/
@Log(title = "收件地址-标记默认", description = "标记默认收件地址", businessType = BusinessType.UPDATE)
@PostMapping("/markDefault")
public AjaxResult markDefault(@RequestBody ReceivingAddressManageDto receivingAddressManageDto)
{
ReceivingAddressManageDo receivingAddressManageDo = new ReceivingAddressManageDo();
BeanUtils.copyProperties(receivingAddressManageDto,receivingAddressManageDo);
return toAjax(invoiceInfoManageApplicationService.markDefault(receivingAddressManageDo));
}
/**
* 查询开票信息
* @param invoiceOrderDto
* @return
*/
@Log(title = "开票信息-查询", description = "查询开票信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getInvoiceCostInfo")
public AjaxResult getInvoiceCostInfo(InvoiceOrderDto invoiceOrderDto)
{
return AjaxResult.success(invoiceInfoManageApplicationService.getInvoicedAmountInfo());
}
/**
* 开票订单列表
* @param invoiceOrderDto
* @return
*/
@Log(title = "开票信息-查询", description = "开票信息列表", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceOrderList")
public TableDataInfo invoiceOrderList(InvoiceOrderDto invoiceOrderDto)
{
InvoiceOrderDo invoiceOrderDo = new InvoiceOrderDo();
BeanUtils.copyProperties(invoiceOrderDto,invoiceOrderDo);
startPage();
List<InvoiceOrderPo> list = invoiceInfoManageApplicationService.selectInvoiceOrderList(invoiceOrderDo);
return getDataTable(list);
}
/**
* 开票订单列表 不分页
* @param invoiceOrderDto
* @return
*/
@Log(title = "开票信息-查询", description = "开票信息列表", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceOrderListNoPage")
public AjaxResult invoiceOrderListNoPage(InvoiceOrderDto invoiceOrderDto)
{
InvoiceOrderDo invoiceOrderDo = new InvoiceOrderDo();
BeanUtils.copyProperties(invoiceOrderDto,invoiceOrderDo);
List<InvoiceOrderPo> list = invoiceInfoManageApplicationService.selectInvoiceOrderList(invoiceOrderDo);
return AjaxResult.success(list);
}
/**
* 开票订单列表查询金额统计
* @param invoiceOrderDto
* @return
*/
@Log(title = "开票信息-查询", description = "开票信息列表", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceOrderListCount")
public AjaxResult invoiceOrderListCount(InvoiceOrderDto invoiceOrderDto)
{
InvoiceOrderDo invoiceOrderDo = new InvoiceOrderDo();
BeanUtils.copyProperties(invoiceOrderDto,invoiceOrderDo);
//判断当前登录人数据权限
// DataPermission dataPermission = commonApplicationService.dataPermission(invoiceOrderDto.getPermissionMenuId());
DataPermission dataPermission = null;
return invoiceInfoManageApplicationService.selectOrderListCount(invoiceOrderDo, dataPermission);
}
/**
* 新增开票订单表
* @param invoiceOrderDto
* @return
*/
@Log(title = "开票信息-新增", description = "新增开票订单表", businessType = BusinessType.INSERT)
@PostMapping("/invoiceOrderSave")
public AjaxResult invoiceOrderSave(@RequestBody InvoiceOrderDto invoiceOrderDto)
{
//数据装配
InvoiceOrder invoiceOrder = new InvoiceOrder();
//根据运单id查询开票订单表
BeanUtils.copyProperties(invoiceOrderDto, invoiceOrder);
InvoiceOrder oldOrder = invoiceInfoManageApplicationService.selectInvoiceByWaybillId(invoiceOrderDto.getWaybillId());
if(oldOrder != null){
invoiceOrder.setInvoiceOrderId(oldOrder.getInvoiceOrderId());
invoiceOrder.setInvoiceInfoId(oldOrder.getInvoiceInfoId());
return toAjax(invoiceInfoManageApplicationService.updateInvoiceOrder(invoiceOrder));
}else {
return toAjax(invoiceInfoManageApplicationService.insertInvoiceOrder(invoiceOrder));
}
}
/**
* 标记核实/未核实状态
* @param invoiceOrderDto
* @return
*/
@Log(title = "开票信息-标记核实/未核实状态", description = "标记核实/未核实状态", businessType = BusinessType.UPDATE)
@PostMapping("/markVerify")
public AjaxResult markVerify(@RequestBody InvoiceOrderDto invoiceOrderDto)
{
InvoiceOrderDo invoiceOrderDo = new InvoiceOrderDo();
BeanUtils.copyProperties(invoiceOrderDto,invoiceOrderDo);
return toAjax(invoiceInfoManageApplicationService.markVerify(invoiceOrderDo));
}
/**
* 新增开票记录
* @param invoiceInfoDto
* @return
*/
@Log(title = "开票信息-新增", description = "新增开票记录表", businessType = BusinessType.INSERT)
@PostMapping("/invoiceInfoSave")
public AjaxResult invoiceInfoSave(@RequestBody InvoiceInfoDto invoiceInfoDto)
{
return toAjax(invoiceInfoManageApplicationService.insertInvoiceInfo(invoiceInfoDto));
}
/**
* 开票记录表查询
* @param invoiceInfoDto
* @return
*/
@Log(title = "开票信息-查询", description = "开票记录表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceInfoList")
public TableDataInfo invoiceInfoList(InvoiceInfoDto invoiceInfoDto)
{
InvoiceInfoDo invoiceInfoDo = new InvoiceInfoDo();
BeanUtils.copyProperties(invoiceInfoDto,invoiceInfoDo);
startPage();
List<InvoiceInfoPo> list = invoiceInfoManageApplicationService.invoiceInfoList(invoiceInfoDo);
return getDataTable(list);
}
/**
* 查询是否存在申请中的开票信息
* @param userId
* @return
*/
@Log(title = "开票信息-查询", description = "开票记录表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/getInvoiceByUserId/{userId}")
public AjaxResult getInvoiceByUserId(Long userId)
{
invoiceInfoManageApplicationService.getInvoiceByUserId(userId);
return AjaxResult.success();
}
/**
* 开具发票 开票详情表新增
* @param invoiceInfoDto
* @return
*/
@Log(title = "开票信息-新增", description = "新增开票详情表", businessType = BusinessType.INSERT)
@PostMapping("/invoiceInfoDetailsSave")
public AjaxResult invoiceInfoDetailsSave(@RequestBody InvoiceInfoDto invoiceInfoDto)
{
InvoiceInfoDo invoiceInfoDo = new InvoiceInfoDo();
BeanUtils.copyProperties(invoiceInfoDto,invoiceInfoDo);
return toAjax(invoiceInfoManageApplicationService.insertInvoiceInfoDetails(invoiceInfoDo));
}
/**
* 根据id查询开票记录详情/发票详情
* @param invoiceInfoId
* @return
*/
@Log(title = "开票信息-查询", description = "开票记录详情/发票详情", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getInvoiceInfo/{invoiceInfoId}")
public AjaxResult getInvoiceInfo(@PathVariable(value = "invoiceInfoId",required = true) Long invoiceInfoId)
{
return AjaxResult.success(invoiceInfoManageApplicationService.selectInvoiceInfoById(invoiceInfoId));
}
/**
* 驳回,作废,撤销
* @param invoiceInfoDto
* @return
*/
@Log(title = "开票信息-标记开票状态", description = "标记开票状态", businessType = BusinessType.UPDATE)
@PostMapping("/markInvoiceStatus")
public AjaxResult markInvoiceStatus(@RequestBody InvoiceInfoDto invoiceInfoDto)
{
return toAjax(invoiceInfoManageApplicationService.markInvoiceStatus(invoiceInfoDto));
}
/**
* 发票寄出,可批量
* @param invoiceInfoDto
* @return
*/
@Log(title = "开票信息-标记发票寄出", description = "标记发票寄出", businessType = BusinessType.UPDATE)
@PostMapping("/invoiceMail")
public AjaxResult invoiceMail(@RequestBody InvoiceInfoDto invoiceInfoDto)
{
return toAjax(invoiceInfoManageApplicationService.invoiceMail(invoiceInfoDto));
}
}
@@ -0,0 +1,194 @@
package com.linke.finance.interfaces.facade.loanManage;
import com.linke.finance.application.service.loanManage.LoanManageApplicationService;
import com.linke.finance.domain.loanManage.repository.po.LoanManagePo;
import com.linke.finance.domain.loanManage.repository.todo.LoanManageDo;
import com.linke.finance.interfaces.dto.LoanManageDto;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 货款管理接口层
*
* 2023-03-16
*
* @author 王子豪
*/
@RestController
@RequestMapping("/loanManage")
@CrossOrigin
public class LoanManageApi extends BaseController
{
@Autowired
private LoanManageApplicationService loanManageApplicationService;
/**
* 查询货款收回管理列表
*/
@Log(title = "货款管理-查询", description = "查询货款收回管理列表", businessType = BusinessType.INQUIRE)
@GetMapping("/list")
public TableDataInfo list(LoanManageDto loanManageDto)
{
LoanManageDo loanManageDo = new LoanManageDo();
//转换实体
BeanUtils.copyProperties(loanManageDto, loanManageDo);
startPage();
loanManageDo.setLoanType(1);
List<LoanManagePo> list = loanManageApplicationService.selectLoanManageList(loanManageDo);
return getDataTable(list);
}
/**
* 查询货款收回管理列表Feign
*/
@PostMapping("/listFeign")
public TableDataInfo listFeign(@RequestBody LoanManageDto loanManageDto)
{
LoanManageDo loanManageDo = new LoanManageDo();
//转换实体
BeanUtils.copyProperties(loanManageDto, loanManageDo);
List<LoanManagePo> list = loanManageApplicationService.selectLoanManageListFeign(loanManageDo);
return getDataTable(list);
}
/**
* 查询货款汇总管理列表
*/
@Log(title = "货款管理-查询", description = "查询货款汇总管理列表", businessType = BusinessType.INQUIRE)
@GetMapping("/getLoanManageProvideList")
public TableDataInfo getLoanManageProvideList(LoanManageDto loanManageDto)
{
LoanManageDo loanManageDo = new LoanManageDo();
//转换实体
BeanUtils.copyProperties(loanManageDto, loanManageDo);
if(loanManageDo.getGrantStatus() != null && loanManageDo.getGrantStatus() == 3){
loanManageDo.setGrantStatus(null);
loanManageDo.setReportLossStatus(3);
}
startPage();
List<LoanManagePo> list = loanManageApplicationService.selectLoanManageprovideList(loanManageDo);
return getDataTable(list);
}
/**
* 查询货款发放管理列表
*/
@Log(title = "货款管理-查询", description = "查询货款汇总管理列表", businessType = BusinessType.INQUIRE)
@GetMapping("/getLoanManageFundList")
public TableDataInfo getLoanManageFundList(LoanManageDto loanManageDto)
{
LoanManageDo loanManageDo = new LoanManageDo();
//转换实体
BeanUtils.copyProperties(loanManageDto, loanManageDo);
startPage();
loanManageDo.setLoanType(2);
loanManageDo.setDisLoan("1");
List<LoanManagePo> list = loanManageApplicationService.selectLoanManageprovideList(loanManageDo);
return getDataTable(list);
}
/**
* 获取货款管理详细信息
*/
@Log(title = "货款管理-查询", description = "获取货款管理详细信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "getInfo/{loanManageId}")
public AjaxResult getInfo(@PathVariable("loanManageId") Long loanManageId)
{
return AjaxResult.success(loanManageApplicationService.selectLoanManageByLoanManageId(loanManageId));
}
/**
* 编辑货款管理
*/
@Log(title = "货款管理-新增", description = "新增、编辑货款管理", businessType = BusinessType.INSERT)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody LoanManageDto loanManageDto)
{
if(loanManageDto.getLoanManageId() != null){
return toAjax(loanManageApplicationService.updateLoanManage(loanManageDto));
}else {
return toAjax(loanManageApplicationService.insertLoanManage(loanManageDto));
}
}
/**
* 修改货款管理
*/
@PutMapping("/update")
public AjaxResult update(@RequestBody LoanManageDto loanManageDto)
{
return toAjax(loanManageApplicationService.updateLoanManage(loanManageDto));
}
/**
* 批量修改货款管理
*/
@PutMapping("/updateLoanManages")
public AjaxResult updateLoanManages(@RequestBody LoanManageDto loanManageDto)
{
return toAjax(loanManageApplicationService.updateLoanManages(loanManageDto));
}
/**
* 挂失
*/
@PutMapping("/reportLoss")
public AjaxResult reportLoss(@RequestBody LoanManageDto loanManageDto)
{
return toAjax(loanManageApplicationService.reportLoss(loanManageDto));
}
/**
* 批量删除货款管理
*/
@DeleteMapping("/removeByIds/{loanManageIds}")
public AjaxResult remove(@PathVariable Long[] loanManageIds)
{
return toAjax(loanManageApplicationService.deleteLoanManageByLoanManageIds(loanManageIds));
}
/**
* 删除货款管理
*/
@DeleteMapping("/removeById/{loanManageId}")
public AjaxResult removeById(@PathVariable Long loanManageId)
{
return toAjax(loanManageApplicationService.deleteLoanManageByLoanManageId(loanManageId));
}
/**
* 查询货款收回状态列表
*/
@GetMapping(value = "/getLoanOneStatusNum")
public AjaxResult getLoanOneStatusNum()
{
return AjaxResult.success(loanManageApplicationService.selectLoanOneStatusNum());
}
/**
* 查询货款发放状态列表
*/
@GetMapping(value = "/getLoanTwoStatusNum")
public AjaxResult getLoanTwoStatusNum()
{
return AjaxResult.success(loanManageApplicationService.selectLoanTwoStatusNum());
}
/**
* 查询货款发放状态列表
*/
@GetMapping(value = "/getLoanThreeStatusNum")
public AjaxResult getLoanThreeStatusNum()
{
return AjaxResult.success(loanManageApplicationService.selectLoanThreeStatusNum());
}
}
@@ -0,0 +1,13 @@
package com.linke.finance.interfaces.facade.payCall;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/payCallApi")
@Api(tags = "支付回调")
@Slf4j
public class PayCallApi {
}
@@ -0,0 +1,35 @@
//package com.linke.finance.interfaces.facade.rabbit;
//
//
//import com.alibaba.fastjson.JSONObject;
//import com.linke.finance.application.server.businessDocument.BusinessDocumentApplicationService;
//import com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO;
//import com.mhd.common.core.domain.dto.BusinessDocumentDTO;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.function.Consumer;
//
//@Slf4j
//@Configuration
//public class FinanceRabbitCustomApi {
// @Autowired
// private BusinessDocumentApplicationService businessDocumentApplicationService;
// @Bean
// public Consumer<String> ss002finance() {
// return new Consumer<String>() {
// @Override
// public void accept(String msgData) {
// log.info("ss002finance接到消息:{}", msgData);
// BusinessDocumentDTO businessDocumentDTO = JSONObject.parseObject(msgData, BusinessDocumentDTO.class);
// BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
// BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO);
// businessDocumentApplicationService.insert(businessDocumentDO);
// }
// };
// }
//
//}
@@ -0,0 +1,266 @@
package com.linke.finance.interfaces.facade.reconciliation;
import java.util.Date;
import java.util.List;
import com.linke.finance.application.server.businessDocument.BusinessDocumentApplicationService;
import com.linke.finance.application.server.reconciliation.ReconciliationApplicationService;
import com.linke.finance.domain.businessDocument.repository.po.BusinessDocumentPO;
import com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO;
import com.linke.finance.domain.reconciliation.entity.Reconciliation;
import com.linke.finance.domain.reconciliation.repository.po.FinacialReconciliationListVO;
import com.linke.finance.interfaces.assembler.businessDocument.BusinessDocumentAssembler;
import com.mhd.common.core.domain.dto.BusinessDocumentDTO;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO;
import com.linke.finance.interfaces.assembler.reconciliation.ReconciliationAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 对账单Api
*
* @author gen
* @date 2024-01-23
*/
@RestController
@RequestMapping("/reconciliationApi")
public class ReconciliationApi extends BaseController{
@Autowired
private ReconciliationApplicationService reconciliationApplicationService;
@Autowired
private BusinessDocumentApplicationService businessDocumentApplicationService;
@Resource
private ReconciliationAssembler reconciliationAssembler;
@Resource
private BusinessDocumentAssembler businessDocumentAssembler;
@ApiOperation("tms生成应收账单时推送")
@PostMapping(value = "/pushAccountsReceivable")
public AjaxResult pushAccountsReceivable(@RequestBody ReconciliationDTO reconciliationDTO)
{
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
reconciliationApplicationService.creatStatementAccount(reconciliationDO);
return AjaxResult.success("生成对账单成功");
}
/**
* 分页查询对账单列表
*/
@Log(title = "对账单-查询", description = "分页查询对账单列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询对账单列表")
@GetMapping("/list")
public TableDataInfo list(ReconciliationDTO reconciliationDTO)
{
//转换实体
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
startPage();
List<ReconciliationPO> list = reconciliationApplicationService.queryList(reconciliationDO);
return getDataTable(list);
}
@ApiOperation("接口-根据ids查询对账单列表")
@GetMapping("/queryListByids")
public AjaxResult queryListByids(@RequestParam List<Long> reconciliationIds)
{
FinacialReconciliationListVO list = reconciliationApplicationService.queryListByids(reconciliationIds);
return AjaxResult.success(list);
}
/**
* 批量删除对账单--根据应收账单单号
*/
@ApiOperation("批量删除对账单")
@PostMapping("/deleteByNumbers")
public AjaxResult deleteByNumbers(@RequestBody List<ReconciliationDTO> list)
{
try {
reconciliationApplicationService.deleteByNumbers(list);
return AjaxResult.success("操作成功");
}catch (Exception ex){
return AjaxResult.error(ex.getMessage());
}
}
@ApiOperation("tms运费结算时推送")
@PostMapping(value = "/pushAccountSettlement")
public AjaxResult pushAccountSettlement(@RequestBody ReconciliationDTO reconciliationDTO,@RequestParam(name="receiptId") Long receiptId)
{
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
reconciliationApplicationService.pushAccountSettlement(reconciliationDO,receiptId);
return AjaxResult.success("运费结算-更新对账单成功");
}
@ApiOperation("tms运费结算时推送--批量操作")
@PostMapping(value = "/pushBatchAccountSettlement")
public AjaxResult pushBatchAccountSettlement(@RequestBody List<FinacialReconciliationListVO.FinacialReconciliationVO> reconciliationList, @RequestParam(name="receiptId") Long receiptId)
{
reconciliationApplicationService.pushBatchAccountSettlement(reconciliationList,receiptId);
return AjaxResult.success("运费结算-更新对账单成功");
}
/**
* 编辑对账单
*/
@Log(title = "对账单-编辑", description = "编辑对账单", businessType = BusinessType.UPDATE)
@ApiOperation("编辑对账单")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody ReconciliationDTO reconciliationDTO)
{
//转换实体
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
if(reconciliationDTO.getReconciliationId() != null){
return toAjax(reconciliationApplicationService.update(reconciliationDO));
}else {
return AjaxResult.success("新增成功!",reconciliationApplicationService.insert(reconciliationDO));
}
}
/**
* 批量删除对账单
*/
@Log(title = "对账单-删除", description = "批量删除对账单", businessType = BusinessType.DELETE)
@ApiOperation("批量删除对账单")
@DeleteMapping("/deleteByIds/{reconciliationIds}")
public AjaxResult delete(@PathVariable Long[] reconciliationIds)
{
return toAjax(reconciliationApplicationService.delete(reconciliationIds));
}
/**
* 获取对账单详细信息
*/
@Log(title = "对账单-查询", description = "获取对账单详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取对账单")
@GetMapping(value = "/getInfo/{reconciliationId}")
public AjaxResult getInfo(@PathVariable("reconciliationId") Long reconciliationId)
{
return AjaxResult.success(reconciliationApplicationService.getInfo(reconciliationId));
}
/**
* 发起对账列表(托运人维度显示业务数据)
*/
@Log(title = "对账单-查询", description = "发起对账列表(托运人维度显示业务数据)", businessType = BusinessType.INQUIRE)
@ApiOperation("发起对账列表")
@GetMapping("/initiateReconciliation")
public TableDataInfo initiateReconciliation(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO);
startPage();
List<BusinessDocumentPO> list = businessDocumentApplicationService.initiateReconciliation(businessDocumentDO);
return getDataTable(list);
}
/**
* 生成账单(指定托运人的运单列表)
*/
@Log(title = "对账单-查询", description = "生成账单(指定托运人的运单列表)", businessType = BusinessType.INQUIRE)
@ApiOperation("生成账单")
@GetMapping("/generateBills")
public TableDataInfo generateBills(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO);
startPage();
List<BusinessDocumentPO> list = businessDocumentApplicationService.generateBills(businessDocumentDO);
return getDataTable(list);
}
/**
* 对账单详情
*/
@Log(title = "对账单-查询", description = "对账单详情", businessType = BusinessType.INQUIRE)
@ApiOperation("对账单详情")
@GetMapping("/queryByReconciliationId")
public TableDataInfo queryByReconciliationId(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO);
startPage();
List<BusinessDocumentPO> list = businessDocumentApplicationService.queryByReconciliationId(businessDocumentDO);
return getDataTable(list);
}
/**
* 生成对账单(调账对账)
*/
@Log(title = "对账单", description = "生成对账单(调账对账)", businessType = BusinessType.INSERT)
@ApiOperation("生成对账单(调账对账)")
@PostMapping("/creatStatementAccount")
public AjaxResult creatStatementAccount(@RequestBody ReconciliationDTO reconciliationDTO)
{
//转换实体
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
reconciliationApplicationService.creatStatementAccount(reconciliationDO);
return AjaxResult.success("生成对账单成功");
}
/**
* 申请、审核、拒绝
*/
@Log(title = "对账单", description = "申请、审核、拒绝", businessType = BusinessType.UPDATE)
@ApiOperation("申请、审核、拒绝")
@PostMapping("/authReconciliation")
public AjaxResult authReconciliation(@RequestBody ReconciliationDTO reconciliationDTO)
{
//转换实体
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
reconciliationApplicationService.authReconciliation(reconciliationDO);
return AjaxResult.success("操作成功");
}
/**
* 核实对账单
*/
@Log(title = "核实对账单", description = "核实对账单", businessType = BusinessType.UPDATE)
@ApiOperation("核实对账单")
@PostMapping("/checkReconciliation")
public AjaxResult checkReconciliation(@RequestBody ReconciliationDTO reconciliationDTO)
{
//转换实体
ReconciliationDO reconciliationDO = reconciliationAssembler.toDO(reconciliationDTO);
reconciliationApplicationService.checkReconciliation(reconciliationDO);
return AjaxResult.success("操作成功");
}
/**
* 发起钉钉oa审批
*/
@Log(title = "核实对账单-发起钉钉oa审批", description = "核实对账单-发起钉钉oa审批", businessType = BusinessType.OTHER)
@ApiOperation("发起钉钉oa审批")
@GetMapping(value = "/workflow/processInstances")
public AjaxResult workflowProcessInstances(@RequestParam(name="reconciliationId") String reconciliationId)
{
return AjaxResult.success(reconciliationApplicationService.workflowProcessInstances(reconciliationId));
}
/**
* 发票开票修改对账单的开票状态
*/
@Log(title = "对账单", description = "开票修改对账单的开票状态)", businessType = BusinessType.OTHER)
@ApiOperation("开票修改对账单的开票状态")
@GetMapping("/editIsInvoice")
public AjaxResult editIsInvoice(@RequestParam(name="innerNumber") String innerNumber,
@RequestParam(name="isInvoice") Integer isInvoice,
@RequestParam(name="invoiceId") String invoiceId,
@RequestParam(name="invoiceMakeTime") String invoiceMakeTime,
@RequestParam(name="applyNumber") String applyNumber)
{
reconciliationApplicationService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
return AjaxResult.success("发票开票修改对账单的开票状态成功");
}
}
@@ -0,0 +1,163 @@
package com.linke.finance.interfaces.facade.report;
import com.linke.finance.application.service.loanManage.LoanManageApplicationService;
import com.linke.finance.application.service.revenueExpensesRecord.RevenueExpensesRecordApplicationService;
import com.linke.finance.application.service.verification.VerificationApplicationService;
import com.linke.finance.domain.loanManage.repository.po.LoanManagePo;
import com.linke.finance.domain.report.repository.po.BranchProfitStatisticsPO;
import com.linke.finance.domain.report.repository.po.CollectionStatisticsPO;
import com.linke.finance.domain.report.repository.po.LoanStatisticsPO;
import com.linke.finance.domain.report.repository.po.ReceivablePayableStatisticsPO;
import com.linke.finance.domain.revenueExpensesRecord.repository.todo.RevenueExpensesRecordDO;
import com.linke.finance.domain.verification.repository.todo.VerificationDO;
import com.linke.finance.interfaces.dto.report.BranchProfitStatisticsDTO;
import com.linke.finance.interfaces.dto.report.ReceivablePayableStatisticsDTO;
import com.linke.finance.interfaces.dto.report.ReportDTO;
import com.mhd.common.core.domain.dto.VerificationDto;
import com.mhd.common.core.domain.po.VerificationPo;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.page.TableDataInfo;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 统计报表 接口层
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("/reportApi")
public class ReportApi extends BaseController {
@Autowired
private LoanManageApplicationService loanManageApplicationService;
@Autowired
private VerificationApplicationService verificationApplicationService;
@Autowired
private RevenueExpensesRecordApplicationService revenueExpensesRecordApplicationService;
/**
* 代收款统计
*/
@GetMapping("/collectionStatistics")
public TableDataInfo collectionStatistics(ReportDTO reportDTO)
{
startPage();
List<CollectionStatisticsPO> list = loanManageApplicationService.collectionStatistics(reportDTO);
return getDataTable(list);
}
/**
* 代收款统计详情列表
*/
@GetMapping("/collectionStatisticsInfoList")
public TableDataInfo collectionStatisticsInfoList(ReportDTO reportDTO)
{
startPage();
List<LoanManagePo> list = loanManageApplicationService.collectionStatisticsInfoList(reportDTO);
return getDataTable(list);
}
/**
* 网点放款统计
*/
@GetMapping("/loanStatistics")
public TableDataInfo loanStatistics(ReportDTO reportDTO)
{
startPage();
List<LoanStatisticsPO> list = loanManageApplicationService.loanStatistics(reportDTO);
return getDataTable(list);
}
/**
* 网点放款统计详情列表
*/
@GetMapping("/loanStatisticsInfoList")
public TableDataInfo loanStatisticsInfoList(ReportDTO reportDTO)
{
startPage();
List<LoanManagePo> list = loanManageApplicationService.loanStatisticsInfoList(reportDTO);
return getDataTable(list);
}
/**
* 未回款统计
*/
@GetMapping("/unrepairedStatistics")
public TableDataInfo unrepairedStatistics(ReportDTO reportDTO)
{
startPage();
List<CollectionStatisticsPO> list = loanManageApplicationService.unrepairedStatistics(reportDTO);
return getDataTable(list);
}
/**
* 未回款统计详情统计
*/
@GetMapping("/unrepairedStatisticsInfoList")
public TableDataInfo unrepairedStatisticsInfoList(ReportDTO reportDTO)
{
startPage();
List<LoanManagePo> list = loanManageApplicationService.unrepairedStatisticsInfoList(reportDTO);
return getDataTable(list);
}
/**
* @description 应收应付汇总统计
* @author ZhouGY
* @date 2023/12/13 13:24
* @param receivablePayableStatisticsDTO
* @return TableDataInfo
*/
@ApiOperation("应收应付汇总统计")
@GetMapping("/receivablePayableStatistics")
public TableDataInfo receivablePayableStatistics(ReceivablePayableStatisticsDTO receivablePayableStatisticsDTO)
{
VerificationDO verificationDO = new VerificationDO();
//转换实体
BeanUtils.copyProperties(receivablePayableStatisticsDTO, verificationDO);
startPage();
List<ReceivablePayableStatisticsPO> list = verificationApplicationService.receivablePayableStatistics(verificationDO);
return getDataTable(list);
}
@ApiOperation("应收应付汇总统计详情")
@GetMapping("/receivablePayableVerificationList")
public TableDataInfo receivablePayableVerificationList(VerificationDto verificationDto)
{
VerificationPo verificationPo = new VerificationPo();
//转换实体
BeanUtils.copyProperties(verificationDto, verificationPo);
startPage();
List<VerificationPo> list = verificationApplicationService.receivablePayableVerificationList(verificationPo);
return getDataTable(list);
}
/**
* @description 网点利润
* @author ZhouGY
* @date 2023/12/15 11:43
* @param branchProfitStatisticsDTO
* @return TableDataInfo
*/
@ApiOperation("网点利润")
@GetMapping("/branchProfitStatistics")
public TableDataInfo branchProfitStatistics(BranchProfitStatisticsDTO branchProfitStatisticsDTO)
{
RevenueExpensesRecordDO revenueExpensesRecordDO = new RevenueExpensesRecordDO();
//转换实体
BeanUtils.copyProperties(branchProfitStatisticsDTO, revenueExpensesRecordDO);
startPage();
List<BranchProfitStatisticsPO> list = revenueExpensesRecordApplicationService.branchProfitStatistics(revenueExpensesRecordDO);
return getDataTable(list);
}
}
@@ -0,0 +1,182 @@
package com.linke.finance.interfaces.facade.revenueExpensesRecord;
import com.linke.finance.application.service.revenueExpensesRecord.RevenueExpensesRecordApplicationService;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.linke.finance.domain.revenueExpensesRecord.entity.RevenueExpensesRecord;
import com.linke.finance.domain.revenueExpensesRecord.repository.po.RevenueExpensesRecordPo;
import com.linke.finance.interfaces.assemble.revenueExpensesRecord.RevenueExpensesRecordAssembler;
import com.linke.finance.interfaces.dto.RevenueExpensesRecordAddDto;
import com.linke.finance.interfaces.dto.RevenueExpensesRecordDto;
import com.mhd.common.core.domain.dto.ReconciliationDTO;
import com.mhd.common.core.domain.dto.wlhy.RepaymentTransmitDTO;
import com.mhd.common.core.domain.dto.wlhy.RevenueExpensesRecordDTO;
import com.mhd.common.core.enums.DictCode;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 收入支出记录接口层
*
* 2023-03-18
*
* @author 王子豪
*/
@RestController
@RequestMapping("/revenueExpensesRecord")
@CrossOrigin
public class RevenueExpensesRecordApi extends BaseController
{
@Autowired
private RevenueExpensesRecordApplicationService revenueExpensesRecordApplicationService;
/**
* 查询收入支出列表
*/
@Log(title = "收入支出记录-查询", description = "查询收入支出记录列表", businessType = BusinessType.INQUIRE)
@GetMapping("/list")
public TableDataInfo list(RevenueExpensesRecordDto revenueExpensesRecordDto)
{
RevenueExpensesRecordPo revenueExpensesRecordPo = new RevenueExpensesRecordPo();
//转换实体
BeanUtils.copyProperties(revenueExpensesRecordDto, revenueExpensesRecordPo);
startPage();
List<RevenueExpensesRecordPo> list = revenueExpensesRecordApplicationService.selectRevenueExpensesRecordList(revenueExpensesRecordPo);
return getDataTable(list);
}
/**
* 获取收入支出管理详细信息
*/
@Log(title = "收入支出记录-查询", description = "获取收入支出管理详细信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "getInfo/{revenueExpensesRecordId}")
public AjaxResult getInfo(@PathVariable("revenueExpensesRecordId") Long revenueExpensesRecordId)
{
return AjaxResult.success(revenueExpensesRecordApplicationService.selectRevenueExpensesRecordByRevenueExpensesRecordId(revenueExpensesRecordId));
}
/**
* 编辑收入支出管理
*/
@Log(title = "收入支出记录-编辑", description = "编辑收入支出管理", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody RevenueExpensesRecordDto revenueExpensesRecordDto)
{
RevenueExpensesRecord revenueExpensesRecord = new RevenueExpensesRecordAssembler().toDo(revenueExpensesRecordDto);
if(revenueExpensesRecordDto.getRevenueExpensesRecordId() != null){
return toAjax(revenueExpensesRecordApplicationService.updateRevenueExpensesRecord(revenueExpensesRecord));
}else {
return toAjax(revenueExpensesRecordApplicationService.insertRevenueExpensesRecord(revenueExpensesRecord));
}
}
/**
* 新增收入支出管理
*/
@Log(title = "收入支出记录-新增", description = "新增收入支出管理", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody RevenueExpensesRecord revenueExpensesRecord)
{
return toAjax(revenueExpensesRecordApplicationService.insertRevenueExpensesRecord(revenueExpensesRecord));
}
@Log(title = "应付账单支付--批量生成收支流水", description = "应付账单支付--批量生成收支流水", businessType = BusinessType.INSERT)
@PutMapping("/batchAdd")
public AjaxResult batchAdd(@RequestBody RevenueExpensesRecordAddDto revenueExpensesRecordAddDto)
{
try {
revenueExpensesRecordAddDto.setOperationType("pay");
revenueExpensesRecordApplicationService.batchAdd(revenueExpensesRecordAddDto);
return AjaxResult.success("操作成功");
}catch (Exception e){
return AjaxResult.error(e.getMessage());
}
}
@Log(title = "应付账单支付--批量挂账", description = "应付账单支付--批量挂账", businessType = BusinessType.UPDATE)
@PutMapping("/batchOnAccount")
public AjaxResult batchOnAccount(@RequestBody RevenueExpensesRecordAddDto revenueExpensesRecordAddDto)
{
try {
revenueExpensesRecordAddDto.setOperationType("account");
revenueExpensesRecordAddDto.setRevenueExpensesType(3);//挂账
revenueExpensesRecordApplicationService.batchAdd(revenueExpensesRecordAddDto);
return AjaxResult.success("操作成功");
}catch (Exception e){
return AjaxResult.error(e.getMessage());
}
}
@ApiOperation("tms还款操作与还款作废推送--生成收支流水")
@PostMapping(value = "/pushRepaymentInfo")
public AjaxResult pushRepaymentInfo(@RequestBody List<RepaymentTransmitDTO> repaymentTransmitDTOList)
{
try {
boolean saveFlag = revenueExpensesRecordApplicationService.pushRepaymentInfo(repaymentTransmitDTOList);
if(saveFlag){
return AjaxResult.success("操作成功");
}else{
return AjaxResult.error("操作失败");
}
}catch (Exception e){
return AjaxResult.error(e.getMessage());
}
}
/**
* 修改收入支出管理
*/
@Log(title = "收入支出记录-修改", description = "修改收入支出管理", businessType = BusinessType.UPDATE)
@PutMapping("/update")
public AjaxResult update(@RequestBody RevenueExpensesRecord revenueExpensesRecord)
{
return toAjax(revenueExpensesRecordApplicationService.updateRevenueExpensesRecord(revenueExpensesRecord));
}
/**
* 批量修改收入支出管理
*/
@Log(title = "收入支出记录-修改", description = "修改收入支出管理", businessType = BusinessType.UPDATE)
@PutMapping("/updateRevenueExpensesRecords")
public AjaxResult updateRevenueExpensesRecords(@RequestBody RevenueExpensesRecordDto revenueExpensesRecordDto)
{
return toAjax(revenueExpensesRecordApplicationService.updateRevenueExpensesRecords(revenueExpensesRecordDto));
}
/**
* 批量删除收入支出管理
*/
@Log(title = "收入支出记录-删除", description = "批量删除收入支出管理", businessType = BusinessType.DELETE)
@DeleteMapping("/removeByIds/{revenueExpensesRecordIds}")
public AjaxResult remove(@PathVariable Long[] revenueExpensesRecordIds)
{
return toAjax(revenueExpensesRecordApplicationService.deleteRevenueExpensesRecordByRevenueExpensesRecordIds(revenueExpensesRecordIds));
}
/**
* 删除收入支出管理
*/
@Log(title = "收入支出记录-删除", description = "删除收入支出管理", businessType = BusinessType.DELETE)
@DeleteMapping("/removeById/{revenueExpensesRecordId}")
public AjaxResult removeById(@PathVariable Long revenueExpensesRecordId)
{
return toAjax(revenueExpensesRecordApplicationService.deleteRevenueExpensesRecordByRevenueExpensesRecordId(revenueExpensesRecordId));
}
/**
* 获取支付通道
*/
@Log(title = "收入支出记录-查询", description = "获取支付通道", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getPayChannelList")
public AjaxResult getPayChannelList()
{
return AjaxResult.success(revenueExpensesRecordApplicationService.selectListByDictType(DictCode.pay_channel.getCode()));
}
}
@@ -0,0 +1,145 @@
package com.linke.finance.interfaces.facade.serviceBill;
import java.util.List;
import com.linke.finance.domain.branchBill.repository.po.BranchBillPO;
import com.linke.finance.domain.branchBill.repository.todo.BranchBillDO;
import com.linke.finance.interfaces.dto.BranchBillDTO;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.interfaces.dto.ServiceBillDTO;
import com.linke.finance.domain.serviceBill.repository.todo.ServiceBillDO;
import com.linke.finance.domain.serviceBill.repository.po.ServiceBillPO;
import com.linke.finance.application.service.serviceBill.ServiceBillApplicationService;
import com.linke.finance.interfaces.assemble.serviceBill.ServiceBillAssembler;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 服务费账单Api
*
* @author gen
* @date 2023-11-06
*/
@RestController
@RequestMapping("/serviceBillApi")
public class ServiceBillApi extends BaseController{
@Autowired
private ServiceBillApplicationService serviceBillApplicationService;
@Resource
private ServiceBillAssembler serviceBillAssembler;
/**
* 分页查询服务费账单列表
*/
@Log(title = "服务费账单-查询", description = "分页查询服务费账单列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询服务费账单列表")
@GetMapping("/list")
public TableDataInfo list(ServiceBillDTO serviceBillDTO)
{
//转换实体
ServiceBillDO serviceBillDO = serviceBillAssembler.toDO(serviceBillDTO);
startPage();
List<ServiceBillPO> list = serviceBillApplicationService.queryList(serviceBillDO);
return getDataTable(list);
}
@Log(title = "服务费账单-查询", description = "查询服务费账单记录数", businessType = BusinessType.INQUIRE)
@ApiOperation("查询服务费账单记录数")
@GetMapping("/countTabTotal")
public AjaxResult countTabTotal(ServiceBillDTO serviceBillDTO)
{
//转换实体
ServiceBillDO serviceBillDO = serviceBillAssembler.toDO(serviceBillDTO);
ServiceBillPO serviceBillPO = serviceBillApplicationService.countTabTotal(serviceBillDO);
return AjaxResult.success(serviceBillPO);
}
/**
* 编辑服务费账单
*/
@Log(title = "服务费账单-编辑", description = "编辑服务费账单", businessType = BusinessType.UPDATE)
@ApiOperation("编辑服务费账单")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody ServiceBillDTO serviceBillDTO)
{
//转换实体
ServiceBillDO serviceBillDO = serviceBillAssembler.toDO(serviceBillDTO);
if(serviceBillDTO.getServiceBillId() != null){
return toAjax(serviceBillApplicationService.update(serviceBillDO));
}else {
return toAjax(serviceBillApplicationService.insert(serviceBillDO));
}
}
/**
* 修改服务费账单状态
*/
@Log(title = "服务费账单-修改状态", description = "修改服务费账单状态", businessType = BusinessType.UPDATE)
@ApiOperation("修改服务费账单状态")
@PostMapping("/updateStatus")
public AjaxResult updateStatus(@RequestBody ServiceBillDTO serviceBillDTO)
{
//转换实体
ServiceBillDO serviceBillDO = serviceBillAssembler.toDO(serviceBillDTO);
return toAjax(serviceBillApplicationService.updateStatus(serviceBillDO));
}
/**
* 批量删除服务费账单
*/
@Log(title = "服务费账单-批量删除", description = "批量删除服务费账单", businessType = BusinessType.DELETE)
@ApiOperation("批量删除服务费账单")
@DeleteMapping("/deleteByIds/{serviceBillIds}")
public AjaxResult delete(@PathVariable Long[] serviceBillIds)
{
return toAjax(serviceBillApplicationService.delete(serviceBillIds));
}
/**
* 获取服务费账单详细信息
*/
@Log(title = "服务费账单-查询", description = "获取服务费账单详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取服务费账单")
@GetMapping(value = "/getInfo/{serviceBillId}")
public AjaxResult getInfo(@PathVariable("serviceBillId") Long serviceBillId)
{
return AjaxResult.success(serviceBillApplicationService.getInfo(serviceBillId));
}
/**
* @description 确认服务费
* @author ZhouGY
* @date 2023/11/24 8:44
* @param serviceBillId
* @return AjaxResult
*/
@Log(title = "服务费账单-确认服务费", description = "确认服务费", businessType = BusinessType.UPDATE)
@ApiOperation("确认服务费")
@GetMapping(value = "/confirmServiceBill/{serviceBillId}")
public AjaxResult confirmServiceBill(@PathVariable("serviceBillId") Long serviceBillId)
{
return AjaxResult.success(serviceBillApplicationService.confirmServiceBill(serviceBillId));
}
}
@@ -0,0 +1,596 @@
package com.linke.finance.interfaces.facade.verification;
import com.linke.finance.application.service.accountManage.AccountManageApplicationService;
import com.linke.finance.application.service.verification.VerificationApplicationService;
import com.linke.finance.infrastructure.util.UniqueKeyUtil;
import com.linke.finance.interfaces.assemble.verification.VerificationAssembler;
import com.mhd.common.core.domain.dto.*;
import com.mhd.common.core.domain.entity.Verification;
import com.mhd.common.core.domain.po.VerificationPo;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import com.mhd.common.redis.enums.RedisLockTypeEnum;
import com.mhd.common.redis.service.RedisLock;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.redisson.RedissonMultiLock;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 收入核销接口层
*
* 2023-03-18
*
* @author 王子豪
*/
@RestController
@RequestMapping("/verification")
@CrossOrigin
@Slf4j
public class VerificationApi extends BaseController
{
@Autowired
private VerificationApplicationService verificationApplicationService;
@Autowired
private AccountManageApplicationService accountManageApplicationService;
@Autowired
private RedisLock redisLock;
/**
* 查询应付账单列表
*/
@Log(title = "应付账单列表-查询", description = "查询支应付账单列表", businessType = BusinessType.INQUIRE)
@GetMapping("/verificationList")
public TableDataInfo verificationList(VerificationDto verificationDto)
{
VerificationPo verificationPo = new VerificationPo();
//转换实体
BeanUtils.copyProperties(verificationDto, verificationPo);
startPage();
List<VerificationPo> list = verificationApplicationService.selectVerificationList(verificationPo);
return getDataTable(list);
}
/**
* 支付款报表列表
*/
@Log(title = "支付款报表列表-查询", description = "支付款报表列表", businessType = BusinessType.INQUIRE)
@GetMapping("/paymentStatementList")
public TableDataInfo paymentStatementList(VerificationDto verificationDto)
{
VerificationPo verificationPo = new VerificationPo();
//转换实体
BeanUtils.copyProperties(verificationDto, verificationPo);
startPage();
List<VerificationPo> list = verificationApplicationService.paymentStatementList(verificationPo);
return getDataTable(list);
}
//
// @Log(title = "应付账单-支付", description = "应付账单-支付", businessType = BusinessType.INSERT)
// @PutMapping("/outcomePayOff")
// public AjaxResult outcomePayOff(@RequestBody VerificationDto verificationDto)
// {
// verificationDto.setVerificationStatus(6);
// String msg = verificationApplicationService.outcomeWriteOff(verificationDto);
// return AjaxResult.success("核销成功:"+ msg);
// }
@GetMapping(value = "/getVerificationListByBusinessDocumentId/{businessDocumentId}")
public AjaxResult getInfo(@PathVariable("businessDocumentId") String businessDocumentId)
{
return AjaxResult.success(verificationApplicationService.getVerificationListByBusinessDocumentId(businessDocumentId));
}
/**
* 查询收入核销列表
*/
@Log(title = "收入、支出核销-查询", description = "查询收入核销列表", businessType = BusinessType.INQUIRE)
@GetMapping("/verificationOneList")
public TableDataInfo verificationOneList(VerificationDto verificationDto)
{
VerificationPo verificationPo = new VerificationPo();
//转换实体
BeanUtils.copyProperties(verificationDto, verificationPo);
List<VerificationPo> list = verificationApplicationService.selectVerificationOneList(verificationPo);
return getDataTable(list);
}
/**
* 查询收入核销列表(货主支付)
*/
@Log(title = "收入、支出核销-查询", description = "查询收入核销列表", businessType = BusinessType.INQUIRE)
@GetMapping("/shipperPayList")
public TableDataInfo shipperPayList(VerificationDto verificationDto)
{
VerificationPo verificationPo = new VerificationPo();
//转换实体
BeanUtils.copyProperties(verificationDto, verificationPo);
List<VerificationPo> list = verificationApplicationService.shipperPayList(verificationPo);
return getDataTable(list);
}
/**
* 查询核销列表(feign调用的)
*/
@PostMapping("/verificationListFeign")
public TableDataInfo verificationListFeign(@RequestBody VerificationDto verificationDto)
{
VerificationPo verificationPo = new VerificationPo();
//转换实体
BeanUtils.copyProperties(verificationDto, verificationPo);
List<VerificationPo> list = verificationApplicationService.verificationListFeign(verificationPo);
return getDataTable(list);
}
/**
* 获取收入核销管理详细信息
*/
@Log(title = "收入、支出核销-查询", description = "获取收入核销管理详细信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "getVerificationInfo/{verificationId}")
public AjaxResult getVerificationInfo(@PathVariable("verificationId") Long verificationId)
{
VerificationPo bean = verificationApplicationService.selectVerificationByVerificationId(verificationId);
return AjaxResult.success(verificationApplicationService.selectVerificationByVerificationId(verificationId));
}
/**
* 编辑收入核销管理
*/
@Log(title = "收入、支出核销-编辑", description = "编辑收入核销管理", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody VerificationDto verificationDto)
{
Verification verification = new VerificationAssembler().toDo(verificationDto);
if(verificationDto.getVerificationId() != null){
return toAjax(verificationApplicationService.updateVerification(verification));
}else {
return toAjax(verificationApplicationService.insertVerification(verification));
}
}
/**
* 新增收入核销管理
*/
@Log(title = "收入、支出核销-新增", description = "新增收入核销管理", businessType = BusinessType.INSERT)
@PostMapping("/addVerification")
public AjaxResult addVerification(@RequestBody VerificationDto verificationDto)
{
Verification verification = new VerificationAssembler().toDo(verificationDto);
return toAjax(verificationApplicationService.insertVerification(verification));
}
/**
* 修改收入核销管理
*/
@Log(title = "收入、支出核销-修改", description = "修改收入核销管理", businessType = BusinessType.UPDATE)
@PutMapping("/updateVerification")
public AjaxResult updateVerification(@RequestBody VerificationDto verificationDto)
{
Verification verification = new VerificationAssembler().toDo(verificationDto);
return toAjax(verificationApplicationService.updateVerification(verification));
}
/**
* 批量修改收入核销管理
*/
@Log(title = "收入、支出核销-修改", description = "修改收入核销管理", businessType = BusinessType.UPDATE)
@PutMapping("/updateVerifications")
public AjaxResult updateVerifications(@RequestBody VerificationPo verificationPo)
{
return toAjax(verificationApplicationService.updateVerifications(verificationPo));
}
/**
* 收入核销
*/
@Log(title = "收入、支出核销", description = "收入核销", businessType = BusinessType.UPDATE)
@PutMapping("/incomeWriteOff")
public AjaxResult incomeWriteOff(@RequestBody VerificationDto verificationDto)
{
verificationDto.setVerificationStatus(6);
return toAjax(verificationApplicationService.incomeWriteOff(verificationDto));
}
/**
* 收入支付
*/
@Log(title = "收入、支出核销", description = "支出核销", businessType = BusinessType.UPDATE)
@PutMapping("/incomePayOff")
public AjaxResult incomePayOff(@RequestBody VerificationDto verificationDto)
{
verificationDto.setVerificationStatus(5);
return toAjax(verificationApplicationService.incomeWriteOff(verificationDto));
}
/**
* 网货运费支付
* @param verificationDto
* @return
*/
@Log(title = "收入、支出核销", description = "网货运费支付", businessType = BusinessType.UPDATE)
@PutMapping("/incomePayOffWlhy")
public AjaxResult incomePayOffWlhy(@RequestBody VerificationDto verificationDto)
{
try {
verificationApplicationService.incomePayOffWlhy(verificationDto);
return AjaxResult.success("支付成功");
}catch (Exception e) {
return AjaxResult.error("支付失败"+e.getMessage());
}
}
/**
* 支出核销
*/
@Log(title = "收入、支出核销", description = "支出核销", businessType = BusinessType.UPDATE)
@PutMapping("/outcomeWriteOff")
public AjaxResult outcomeWriteOff(@RequestBody VerificationDto verificationDto)
{
if(verificationDto.getVerificationIds()==null || verificationDto.getVerificationIds().size()==0){
return AjaxResult.error("核销记录不能为空");
}
//加锁
RedissonMultiLock redissonMultiLock = null;
boolean payInfoDetailLock = false;
try {
RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.FINANCE;
List<RLock> locks = new ArrayList<>();
verificationDto.getVerificationIds().forEach(x -> {
//获取唯一key值
String key = redisLockTypeEnum.getUniqueKey(UniqueKeyUtil.getVerificationKey(x.toString()));
locks.add(redisLock.getRLock(key));
});
redissonMultiLock = new RedissonMultiLock(locks.toArray(new RLock[verificationDto.getVerificationIds().size()]));
//尝试获取锁 不等待 持有锁10分钟
payInfoDetailLock = redissonMultiLock.tryLock(-1, 10, TimeUnit.MINUTES);
if (!payInfoDetailLock) {
redissonMultiLock = null;
return AjaxResult.error("核销记录正在处理,请稍后再试");
}
log.info("网点支出核销 加锁成功");
String msg = verificationApplicationService.outcomeWriteOff(verificationDto);
return AjaxResult.success("核销成功" + msg);
} catch (Exception e) {
return AjaxResult.error("核销失败"+e.getMessage());
} finally {
if (redissonMultiLock != null && payInfoDetailLock) {
redissonMultiLock.unlock();
log.info("网点支出核销释放了锁");
}
}
}
/**
* 收入核销(货主使用)
*/
@PostMapping("/incomeWriteOffByShipper")
public AjaxResult incomeWriteOffByShipper(@RequestBody VerificationDto verificationDto)
{
if(verificationDto.getVerificationIds()==null || verificationDto.getVerificationIds().isEmpty()){
return AjaxResult.error("核销记录不能为空");
}
//加锁
RedissonMultiLock redissonMultiLock = null;
boolean payInfoDetailLock = false;
try {
RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.FINANCE;
List<RLock> locks = new ArrayList<>();
verificationDto.getVerificationIds().forEach(x -> {
//获取唯一key值
String key = redisLockTypeEnum.getUniqueKey(UniqueKeyUtil.getVerificationKey(x.toString()));
locks.add(redisLock.getRLock(key));
});
redissonMultiLock = new RedissonMultiLock(locks.toArray(new RLock[verificationDto.getVerificationIds().size()]));
//尝试获取锁 不等待 持有锁10分钟
payInfoDetailLock = redissonMultiLock.tryLock(-1, 10, TimeUnit.MINUTES);
if (!payInfoDetailLock) {
redissonMultiLock = null;
return AjaxResult.error("核销记录正在处理,请稍后再试");
}
log.info("网点支出核销 加锁成功");
String msg = verificationApplicationService.incomeWriteOffByShipper(verificationDto);
return AjaxResult.success("核销成功" + msg);
} catch (Exception e) {
return AjaxResult.error("核销失败"+e.getMessage());
} finally {
if (redissonMultiLock != null && payInfoDetailLock) {
redissonMultiLock.unlock();
log.info("网点支出核销释放了锁");
}
}
}
/**
* 支出支付
*/
@Log(title = "收入、支出核销", description = "支出支付", businessType = BusinessType.UPDATE)
@PutMapping("/outcomePayOff")
public AjaxResult outcomePayOff(@RequestBody VerificationDto verificationDto)
{
verificationDto.setVerificationStatus(6);
String msg = verificationApplicationService.outcomeWriteOff(verificationDto);
return AjaxResult.success("核销成功:"+ msg);
}
/**
* 支出审核
*/
@Log(title = "收入、支出核销-审核", description = "支出审核", businessType = BusinessType.UPDATE)
@PostMapping("/outcomeProcess")
public AjaxResult outcomeProcess(@RequestBody VerificationDto verificationDto)
{
verificationDto.setVerificationStatus(4);
return AjaxResult.success("审核成功!", verificationApplicationService.outcomeProcess(verificationDto));
}
/**
* 取消收入核销
*/
@Log(title = "收入、支出核销-取消核销", description = "取消收入核销", businessType = BusinessType.UPDATE)
@PutMapping("/cancelIncomeWriteOff")
public AjaxResult cancelIncomeWriteOff(@RequestBody VerificationDto verificationDto)
{
String result = verificationApplicationService.cancelIncomeWriteOff(verificationDto);
return AjaxResult.success(result);
}
/**
* 取消收入核销
*/
@Log(title = "收入、支出核销-取消核销", description = "取消收入核销", businessType = BusinessType.UPDATE)
@PutMapping("/cancelOutcomeWriteOff")
public AjaxResult cancelOutcomeWriteOff(@RequestBody VerificationDto verificationDto)
{
String result = verificationApplicationService.cancelOutcomeWriteOff(verificationDto);
return AjaxResult.success(result);
}
/**
* 批量删除收入核销管理
*/
@Log(title = "收入、支出核销-批量删除", description = "批量删除收入核销管理", businessType = BusinessType.DELETE)
@DeleteMapping("/removeByIds/{VerificationIds}")
public AjaxResult remove(@PathVariable Long[] VerificationIds)
{
return toAjax(verificationApplicationService.deleteVerificationByVerificationIds(VerificationIds));
}
/**
* 根据运单id删除收入核销管理
*/
@Log(title = "收入、支出核销-批量删除", description = "根据运单id删除收入核销管理", businessType = BusinessType.DELETE)
@DeleteMapping("/removeByWayId/{waybillId}")
public AjaxResult removeByWayId(@PathVariable Long waybillId)
{
return toAjax(verificationApplicationService.deleteVerificationByWaybillId(waybillId));
}
/**
* 删除收入核销管理
*/
@Log(title = "收入、支出核销-删除", description = "删除收入核销管理", businessType = BusinessType.DELETE)
@DeleteMapping("/removeById/{VerificationId}")
public AjaxResult removeById(@PathVariable Long VerificationId)
{
return toAjax(verificationApplicationService.deleteVerificationByVerificationId(VerificationId));
}
/**
* 批量删除收入核销管理
*/
@Log(title = "收入、支出核销-批量删除", description = "批量删除收入核销管理", businessType = BusinessType.DELETE)
@PostMapping("/removeByIds")
public AjaxResult removeByIds(@RequestBody List<Long> verificationIds)
{
return toAjax(verificationApplicationService.deleteVerificationByIds(verificationIds));
}
/**
* 查询收入核销状态列表
*/
@Log(title = "收入、支出核销-查询", description = "查询收入核销状态列表", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getVerificationStatusNum")
public AjaxResult getVerificationStatusNum(VerificationDto verificationDto)
{
return AjaxResult.success(verificationApplicationService.selectVerificationStatusNum(verificationDto));
}
/**
* 查询支出核销状态列表
*/
@Log(title = "收入、支出核销-查询", description = "查询支出核销状态列表", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getVerificationStatusNumTwo")
public AjaxResult getVerificationStatusNumTwo(VerificationDto verificationDto)
{
return AjaxResult.success(verificationApplicationService.selectVerificationStatusNumTwo(verificationDto));
}
/**
* app新增运单时
* 货款和核销的新增
*/
@PostMapping("/instertWaybillFinancialInfo")
public AjaxResult instertWaybillFinancialInfo(@RequestBody AppCommonFeignParamDto appCommonFeignParamDto)
{
return toAjax(verificationApplicationService.instertWaybillFinancialInfo(appCommonFeignParamDto));
}
/**
* 退货时财务类数据处理
*/
@PostMapping("/returnGoodsData")
public AjaxResult returnGoodsData(@RequestBody VerificationDto verificationDto)
{
return toAjax(verificationApplicationService.returnGoodsData(verificationDto));
}
/**
* @description 修改运单时 同步修改服务费
* @author ZhouGY
* @date 2023/11/7 11:18
* @param appCommonFeignParamDto
* @return AjaxResult
*/
@PostMapping("/updateWaybillFinancialInfo")
public AjaxResult updateWaybillFinancialInfo(@RequestBody AppCommonFeignParamDto appCommonFeignParamDto)
{
return toAjax(verificationApplicationService.updateWaybillFinancialInfo(appCommonFeignParamDto));
}
/**
* @description 作废运单时 删除核销记录和和货款记录
* @return AjaxResult
*/
@PostMapping("/voidWaybillDelRecord")
public AjaxResult voidWaybillDelRecord(@RequestBody WaybillFinanceFeignParamDTO waybillFinanceFeignParamDto)
{
return toAjax(verificationApplicationService.voidWaybillDelRecord(waybillFinanceFeignParamDto));
}
/**
* @return AjaxResult
* @description 取消签收时处理财务数据
*/
@PostMapping("/cancelSignatureDataProcess")
public AjaxResult cancelSignatureDataProcess(@RequestBody WaybillFinanceFeignParamDTO waybillFinanceFeignParamDto) {
return toAjax(verificationApplicationService.cancelSignatureDataProcess(waybillFinanceFeignParamDto));
}
/**
* @return AjaxResult
* @description 作废核销记录
*/
@Log(title = "收入、支出核销", description = "作废核销记录", businessType = BusinessType.UPDATE)
@PostMapping("/delVerification")
public AjaxResult delVerification(@RequestBody VerificationPo verificationPo) {
return toAjax(verificationApplicationService.delVerification(verificationPo));
}
/**
* @return AjaxResult
* @description 修改收入核销
*/
@Log(title = "收入、支出核销", description = "修改收入核销", businessType = BusinessType.UPDATE)
@PostMapping("/updateWlhyVerification")
public AjaxResult updateWlhyVerification(@RequestBody VerificationDto verificationDto) {
verificationApplicationService.updateWlhyVerification(verificationDto);
return AjaxResult.success("收入核销成功!");
}
/**
* 拒绝接单退款操作
* @param refuseWalletPayDTO
* @return
*/
@Log(title = " 拒绝接单退款操作", description = "拒绝接单退款操作", businessType = BusinessType.UPDATE)
@PostMapping("/refuseWalletPayPlan")
public AjaxResult refuseWalletPayPlan(@RequestBody RefuseWalletPayDTO refuseWalletPayDTO)
{
//加锁
//用订单id当做支付锁的key
RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.FINANCE;
String key = redisLockTypeEnum.getUniqueKey(String.valueOf(refuseWalletPayDTO.getOrderNo()));
RLock lock = null;
try {
lock = redisLock.getRLock(key);
//尝试获取锁 不等待 持有锁10分钟
if(!lock.tryLock(-1,10, TimeUnit.MINUTES)){
lock = null;
throw new ServiceException("订单"+ refuseWalletPayDTO.getOrderNo() +"正在操作中");
}
log.info("客户订单退款加锁成功");
accountManageApplicationService.refuseWalletPayPlan(refuseWalletPayDTO);
return AjaxResult.success("操作成功");
} catch (Exception e){
return AjaxResult.error("操作失败:"+e.getMessage());
} finally {
if (lock != null && lock.isHeldByCurrentThread()){
lock.unlock();
log.info("客户订单退款释放了锁");
}
}
}
/**
* 送货派车查询是否完成收款(到付、代收货款)
* @param waybillNumberList
* @return
*/
@Log(title = " 送货派车查询是否完成收款(到付、代收货款)", description = "送货派车查询是否完成收款(到付、代收货款)", businessType = BusinessType.UPDATE)
@PostMapping("/checkCollection")
public AjaxResult checkCollection(@RequestBody List<String> waybillNumberList)
{
return toAjax(verificationApplicationService.checkCollection(waybillNumberList));
}
/**
* 送货派车查询是否完成收款(到付、代收货款)
* @param verificationDto
* @return
*/
@Log(title = " 送货派车查询是否完成收款(到付、代收货款)", description = "送货派车查询是否完成收款(到付、代收货款)", businessType = BusinessType.UPDATE)
@PostMapping("/updateAppFinancialInfo")
public AjaxResult updateAppFinancialInfo(@RequestBody VerificationDto verificationDto)
{
try {
return toAjax(verificationApplicationService.updateAppFinancialInfo(verificationDto));
}catch (Exception e){
return AjaxResult.error("操作失败:"+e.getMessage());
}
}
/**
* 卸货查询收款信息
*/
@Log(title = "调度单(app)-查询", description ="卸货查询收款信息",businessType = BusinessType.INQUIRE)
@ApiOperation("卸货查询收款信息")
@PostMapping("/queryCollectionInfo")
public AjaxResult queryCollectionInfo(@RequestBody DispatchWaybillDto dispatchWaybillDto)
{
return AjaxResult.success("查询成功",verificationApplicationService.queryCollectionInfo(dispatchWaybillDto));
}
/**
* 推送tms成功后回填支付数据推送状态
*/
@Log(title = "收入、支出核销-推送tms成功后回填支付数据推送状态", description = "推送tms成功后回填支付数据推送状态", businessType = BusinessType.UPDATE)
@PostMapping("/updatePushTmsStatus")
public AjaxResult updatePushTmsStatus(@RequestBody VerificationTmsPushDTO verificationTmsPushDTO)
{
return toAjax(verificationApplicationService.updatePushTmsStatus(verificationTmsPushDTO));
}
/**
* 推送TMS核销
*/
@Log(title = "收入、支出核销-推送TMS核销", description = "推送TMS核销", businessType = BusinessType.UPDATE)
@PostMapping("/pushTmsVerification")
public AjaxResult pushTmsVerification(@RequestBody VerificationDto verificationDto)
{
return toAjax(verificationApplicationService.pushTmsVerification(verificationDto));
}
}
@@ -0,0 +1,156 @@
package com.linke.finance.interfaces.facade.withdrawApplication;
import java.util.*;
import java.util.concurrent.TimeUnit;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.linke.finance.application.server.withdrawApplication.WithdrawApplicationApplicationService;
import com.linke.finance.infrastructure.util.UniqueKeyUtil;
import com.linke.finance.interfaces.assembler.withdrawApplication.WithdrawApplicationAssembler;
import com.linke.finance.interfaces.dto.WithdrawApplicationDTO;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import com.mhd.common.redis.enums.RedisLockTypeEnum;
import com.mhd.common.redis.service.RedisLock;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.redisson.RedissonMultiLock;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.linke.finance.domain.withdrawApplication.repository.todo.WithdrawApplicationDO;
import com.linke.finance.domain.withdrawApplication.repository.po.WithdrawApplicationPO;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 提现Api
*
* @author gen
* @date 2024-03-14
*/
@Slf4j
@RestController
@RequestMapping("/withdrawApplicationApi")
public class WithdrawApplicationApi extends BaseController {
@Autowired
private WithdrawApplicationApplicationService withdrawApplicationApplicationService;
@Resource
private WithdrawApplicationAssembler withdrawApplicationAssembler;
@Autowired
private RedisLock redisLock;
/**
* 分页查询提现列表
*/
@Log(title = "提现-查询", description = "分页查询提现列表", businessType = BusinessType.INQUIRE)
@ApiOperation("查询提现列表")
@GetMapping("/list")
public TableDataInfo list(WithdrawApplicationDTO withdrawApplicationDTO) {
WithdrawApplicationDO withdrawApplicationDO = new WithdrawApplicationDO();
// 拷贝
BeanUtils.copyProperties(withdrawApplicationDTO, withdrawApplicationDO, IgnoreNullUtil.getNullPropertyNames(withdrawApplicationDTO));
startPage();
List<WithdrawApplicationPO> list = withdrawApplicationApplicationService.queryList(withdrawApplicationDO);
return getDataTable(list);
}
/**
* 编辑提现
*/
@ApiOperation("编辑提现")
@PostMapping("/edit")
public AjaxResult edit(@RequestBody WithdrawApplicationDTO withdrawApplicationDTO) {
//转换实体
WithdrawApplicationDO withdrawApplicationDO = withdrawApplicationAssembler.toDO(withdrawApplicationDTO);
if (withdrawApplicationDTO.getWithdrawApplicationId() != null) {
return toAjax(withdrawApplicationApplicationService.update(withdrawApplicationDO));
} else {
return toAjax(withdrawApplicationApplicationService.insert(withdrawApplicationDO));
}
}
/**
* 批量删除提现
*/
@ApiOperation("批量删除提现")
@DeleteMapping("/deleteByIds/{ids}")
public AjaxResult delete(@PathVariable Long[] ids) {
return toAjax(withdrawApplicationApplicationService.delete(ids));
}
/**
* 获取提现详细信息
*/
@Log(title = "提现-查询", description = "获取提现详细信息", businessType = BusinessType.INQUIRE)
@ApiOperation("获取提现")
@GetMapping(value = "/getInfo/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
return AjaxResult.success(withdrawApplicationApplicationService.getInfo(id));
}
/**
* 转账
*/
@Log(title = "提现-转账", description = "转账", businessType = BusinessType.UPDATE)
@ApiOperation("转账")
@PostMapping(value = "/transfer")
public AjaxResult transfer(@RequestBody WithdrawApplicationDTO withdrawApplicationDTO) {
String ids = withdrawApplicationDTO.getIds();
if (StrUtil.isEmpty(ids)) {
throw new ServiceException("提现记录id不能为空");
}
Set<Long> idSet = Convert.toSet(Long.class, ids);
RedissonMultiLock redissonMultiLock = null;
boolean payInfoDetailLock = false;
try {
RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.REPORT;
List<RLock> locks = new ArrayList<>();
idSet.forEach(x -> {
//获取唯一key值
String key = redisLockTypeEnum.getUniqueKey(UniqueKeyUtil.getWithdrawTransferKey(x.toString()));
locks.add(redisLock.getRLock(key));
});
redissonMultiLock = new RedissonMultiLock(locks.toArray(new RLock[idSet.size()]));
//尝试获取锁 不等待 持有锁10分钟
payInfoDetailLock = redissonMultiLock.tryLock(-1, 10, TimeUnit.MINUTES);
if (!payInfoDetailLock) {
redissonMultiLock = null;
throw new ServiceException("提现正在处理,请稍后再试");
}
log.info("提现转账,ID【{}】,加锁成功", idSet);
withdrawApplicationApplicationService.transfer(withdrawApplicationDTO);
return AjaxResult.success();
} catch (Exception e) {
log.error("提现转账,释放锁异常,ID【{}】", idSet, e);
return AjaxResult.error("提现转账失败:"+e.getMessage());
} finally {
if (redissonMultiLock != null && payInfoDetailLock) {
redissonMultiLock.unlock();
log.info("提现转账,释放锁成功,ID【{}】", idSet);
}
}
}
}
@@ -0,0 +1,124 @@
package com.linke.finance.interfaces.facadeApp.FreightPay;
import com.linke.finance.application.service.accountManage.AccountManageApplicationService;
import com.linke.finance.application.service.common.CommonApplicationService;
import com.linke.finance.interfaces.dto.*;
import com.mhd.common.core.domain.thirdparty.AlipayPrepayDTO;
import com.mhd.common.core.domain.thirdparty.ThridPayCallDTO;
import com.mhd.common.core.exception.ServiceException;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import com.mhd.common.redis.enums.RedisLockTypeEnum;
import com.mhd.common.redis.service.RedisLock;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.concurrent.TimeUnit;
/**
* APP现金钱包支付 管理 接口层
*
*
*/
@RestController
@RequestMapping("/freightPayApi")
@CrossOrigin
@Validated
@Slf4j
public class FreightPayApi extends BaseController
{
@Autowired
private AccountManageApplicationService accountManageApplicationService;
@Autowired
private RedisLock redisLock;
/**
* APP订单支付
* @param freightPayAppDto
* @return
*/
@Log(title = " APP现金钱包支付", description = "APP订单支付", businessType = BusinessType.UPDATE)
@PostMapping("/freightPayApp")
public AjaxResult freightPayApp(@RequestBody FreightPayAppDto freightPayAppDto)
{
//加锁
//用订单id当做支付锁的key
RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.FINANCE;
String key = redisLockTypeEnum.getUniqueKey(String.valueOf(freightPayAppDto.getOrderNo()));
RLock lock = null;
try {
lock = redisLock.getRLock(key);
//尝试获取锁 不等待 持有锁10分钟
if(!lock.tryLock(-1,10, TimeUnit.MINUTES)){
lock = null;
throw new ServiceException("订单"+ freightPayAppDto.getOrderNo() +"正在支付中");
}
log.info("APP订单支付加锁成功");
accountManageApplicationService.freightPayApp(freightPayAppDto);
return AjaxResult.success("支付成功");
} catch (Exception e){
return AjaxResult.error("支付失败:"+e.getMessage());
} finally {
if (lock != null && lock.isHeldByCurrentThread()){
lock.unlock();
log.info("APP订单支付释放了锁");
}
}
}
/**
* APP支付宝下单
* @param freightPayAppDto
* @return
*/
@Log(title = " APP支付宝下单", description = "APP支付宝下单", businessType = BusinessType.UPDATE)
@PostMapping("/alipayPrepay")
public AjaxResult alipay(@RequestBody FreightPayAppDto freightPayAppDto)
{
//加锁
//用订单id当做支付锁的key
RedisLockTypeEnum redisLockTypeEnum = RedisLockTypeEnum.FINANCE;
String key = redisLockTypeEnum.getUniqueKey(String.valueOf(freightPayAppDto.getOrderNo()));
RLock lock = null;
try {
lock = redisLock.getRLock(key);
//尝试获取锁 不等待 持有锁10分钟
if(!lock.tryLock(-1,10, TimeUnit.MINUTES)){
lock = null;
throw new ServiceException("订单"+ freightPayAppDto.getOrderNo() +"正在支付中");
}
log.info("APP订单下单加锁成功");
String orderStr = accountManageApplicationService.alipayPrepay(freightPayAppDto);
return AjaxResult.success("下单成功", orderStr);
} catch (Exception e){
return AjaxResult.error("下单失败:"+e.getMessage());
} finally {
if (lock != null && lock.isHeldByCurrentThread()){
lock.unlock();
log.info("APP订单下单释放了锁");
}
}
}
/**
* APP支付宝回调
* @param thridPayCallDTO
* @return
*/
@Log(title = " APP支付宝回调", description = "APP支付宝回调", businessType = BusinessType.UPDATE)
@PostMapping("/thridPayCall")
public AjaxResult thridPayCall(@RequestBody ThridPayCallDTO thridPayCallDTO)
{
accountManageApplicationService.thridPayCall(thridPayCallDTO);
return AjaxResult.success("下单成功");
}
}
@@ -0,0 +1,237 @@
package com.linke.finance.interfaces.facadeApp.FreightPay;
import com.linke.finance.application.service.accountManage.AccountManageApplicationService;
import com.linke.finance.domain.accountManage.entity.AccountBankCard;
import com.linke.finance.domain.accountManage.repository.po.AccountBankCardPo;
import com.linke.finance.domain.accountManage.repository.po.AccountExpendRecordsAppPo;
import com.linke.finance.domain.accountManage.repository.todo.AccountExpendRecordsDo;
import com.linke.finance.interfaces.assemble.invoice.InvoiceAssembler;
import com.linke.finance.interfaces.dto.*;
import com.mhd.common.core.utils.StringUtils;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfoApi;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* APP现金钱包支付 管理 接口层
*
*
*/
@RestController
@RequestMapping("/userAccountApi")
@CrossOrigin
@Validated
public class UserAccountApi extends BaseController
{
@Autowired
private AccountManageApplicationService accountManageApplicationService;
/**
* 我的钱包-当前登录用户现金钱包查询
* @return
*/
@Log(title = " APP现金钱包", description = "我的钱包-当前登录用户现金钱包查询", businessType = BusinessType.INQUIRE)
@GetMapping("/userWalletInfo")
public AjaxResult userWalletInfo()
{
return AjaxResult.success(accountManageApplicationService.userWalletInfo());
}
/**
* 我的钱包-绑定支付宝账号
* @return
*/
@Log(title = " APP现金钱包", description = "我的钱包-绑定支付宝账号", businessType = BusinessType.INQUIRE)
@PostMapping("/bindAlipayAccount")
public AjaxResult bindAlipayAccount(@RequestBody AccountCashWalletDto accountCashWalletDto)
{
accountManageApplicationService.bindAlipayAccount(accountCashWalletDto);
return AjaxResult.success("绑定成功");
}
/**
* 新增/编辑银行卡
* @param accountBankCardDto
* @return
*/
@Log(title = " APP现金钱包", description = "新增/编辑银行卡", businessType = BusinessType.INSERT)
@PostMapping("/accountBankCardSave")
public AjaxResult accountBankCardSave(@RequestBody AccountBankCardDto accountBankCardDto)
{
//数据装配
AccountBankCard accountBankCard = new InvoiceAssembler().toDo(accountBankCardDto);
if(accountBankCard.getAccountBankCardId() != null){
return toAjax(accountManageApplicationService.updateAccountBankCard(accountBankCard));
}else {
return toAjax(accountManageApplicationService.insertAccountBankCard(accountBankCard));
}
}
/**
* 银行卡查询分页列表查询
* @param accountBankCardDto
* @return
*/
@Log(title = " APP现金钱包", description = "银行卡查询分页列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/accountBankCardList")
public TableDataInfoApi accountBankCardList(AccountBankCardDto accountBankCardDto)
{
startPage();
List<AccountBankCardPo> list = accountManageApplicationService.selectAccountBankCardList1(accountBankCardDto);
return getDataTableApi(list);
}
/**
* 查询个人银行卡信息(APP用 图标+银行卡号)
* @return
*/
@Log(title = " APP现金钱包", description = "查询个人银行卡信息", businessType = BusinessType.INQUIRE)
@GetMapping("/mineAccountBankCardList")
public TableDataInfoApi mineAccountBankCardList()
{
startPage();
List<AccountBankCardPo> list = accountManageApplicationService.mineAccountBankCardList();
return getDataTableApi(list);
}
@Log(title = "PC端:查询司机银行卡信息", description = "PC端:查询司机银行卡信息", businessType = BusinessType.INQUIRE)
@GetMapping("/getAccountBankCardList")
public TableDataInfoApi getAccountBankCardList(@RequestParam(value = "userAccount") String userAccount)
{
if(StringUtils.isNotBlank(userAccount)){
List<AccountBankCardPo> list = accountManageApplicationService.getAccountBankCardList(userAccount);
return getDataTableApi(list);
}else{
return getDataTableApi(new ArrayList<>());
}
}
/**
* APP删除银行卡
* @param accountBankCardDto
* @return
*/
@Log(title = " APP现金钱包", description = "APP删除银行卡", businessType = BusinessType.DELETE)
@PostMapping("/deleteBankCardById")
public AjaxResult deleteBankCardById(@RequestBody AccountBankCardDto accountBankCardDto)
{
return toAjax(accountManageApplicationService.deleteBankCardById(accountBankCardDto));
}
/**
* APP账户充值
* @param accountTransferRechargeDto
* @return
*/
@Log(title = " APP现金钱包", description = "APP账户充值", businessType = BusinessType.UPDATE)
@PostMapping("/appAccountBusiness")
public AjaxResult appAccountBusiness(@RequestBody AccountTransferRechargeDto accountTransferRechargeDto)
{
return accountManageApplicationService.appAccountBusiness(accountTransferRechargeDto);
}
/**
* APP 提现
* @param accountTransferRechargeDto
* @return
*/
@Log(title = " APP现金钱包", description = "APP提现", businessType = BusinessType.UPDATE)
@PostMapping("/appWithdrawal")
public AjaxResult appWithdrawal(@RequestBody AccountTransferRechargeDto accountTransferRechargeDto)
{
return accountManageApplicationService.appWithdrawal(accountTransferRechargeDto);
}
/**
* APP用户转账
* @param accountTransferAppDto
* @return
*/
@Log(title = " APP现金钱包", description = "APP用户转账", businessType = BusinessType.UPDATE)
@PostMapping("/transferAccounts")
public AjaxResult transferAccounts(@RequestBody AccountTransferAppDto accountTransferAppDto)
{
return accountManageApplicationService.transferAccounts(accountTransferAppDto);
}
/**
* 收支明细列表查询
* @param accountExpendRecordsDto
* @return
*/
@Log(title = " APP现金钱包", description = "收支明细列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/appAccountExpendRecordsList")
public TableDataInfoApi appAccountExpendRecordsList(AccountExpendRecordsDto accountExpendRecordsDto) {
AccountExpendRecordsDo accountExpendRecordsDo = new AccountExpendRecordsDo();
BeanUtils.copyProperties(accountExpendRecordsDto,accountExpendRecordsDo);
startPage();
List<AccountExpendRecordsAppPo> list = accountManageApplicationService.selectAccountExpendRecordsAppList(accountExpendRecordsDo);
return getDataTableApi(list);
}
/**
* 根据id获取收支明细详情
* @param accountExpendRecordsDto
* @return
*/
@Log(title = " APP现金钱包", description = "根据id获取收支明细详情", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getAppAccountExpendRecordsById")
public AjaxResult getAppAccountExpendRecordsById(AccountExpendRecordsDto accountExpendRecordsDto)
{
return AjaxResult.success(accountManageApplicationService.getAppAccountExpendRecordsById(accountExpendRecordsDto));
}
/**
* 获取收支明细支出/收入
* @param accountExpendRecordsDto
* @return
*/
@Log(title = " APP现金钱包", description = "获取收支明细支出/收入", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getAppAccountExpendRecordsCount")
public AjaxResult getAppAccountExpendRecordsCount(AccountExpendRecordsDto accountExpendRecordsDto)
{
AccountExpendRecordsDo accountExpendRecordsDo = new AccountExpendRecordsDo();
BeanUtils.copyProperties(accountExpendRecordsDto,accountExpendRecordsDo);
return AjaxResult.success(accountManageApplicationService.getAppAccountExpendRecordsCount(accountExpendRecordsDo));
}
/**
* 根据当前登录人获取网点钱包余额信息
* @return
*/
@Log(title = " APP现金钱包", description = "根据当前登录人获取网点钱包余额信息", businessType = BusinessType.INQUIRE)
@GetMapping("/getBranchWalletInfoByLogin")
public AjaxResult getBranchWalletInfoByLogin()
{
return AjaxResult.success(accountManageApplicationService.getBranchWalletInfoByLogin());
}
/**
* 根据网点id查询钱包信息
* @return
*/
@Log(title = " APP现金钱包", description = "根据网点id查询钱包信息", businessType = BusinessType.INQUIRE)
@GetMapping("/getWalletInfoByBranch")
public AjaxResult getWalletInfoByBranch(@RequestParam(value = "branchId",required = true) Long branchId)
{
return AjaxResult.success(accountManageApplicationService.getWalletInfoByBranch(branchId));
}
}
@@ -0,0 +1,68 @@
package com.linke.finance.interfaces.facadeApp.businessDocument;
import com.linke.finance.application.server.businessDocument.BusinessDocumentApplicationService;
import com.linke.finance.domain.businessDocument.repository.po.AccountsReceivableAppPO;
import com.linke.finance.domain.businessDocument.repository.po.BusinessDocumentPO;
import com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO;
import com.linke.finance.interfaces.assembler.businessDocument.BusinessDocumentAssembler;
import com.mhd.common.core.domain.dto.BusinessDocumentDTO;
import com.mhd.common.core.domain.po.UserShipperPo;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.core.web.page.TableDataInfoApi;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* APP应收账单
*/
@RestController
@RequestMapping("/businessDocumentAppApi")
@CrossOrigin
@Slf4j
public class BusinessDocumentAppApi extends BaseController
{
@Autowired
private BusinessDocumentApplicationService businessDocumentApplicationService;
@Log(title = "应收账单-查询", description ="应收账单",businessType = BusinessType.INQUIRE)
@ApiOperation("查询应收账单列表")
@GetMapping("/businessDocumentList")
public TableDataInfoApi businessDocumentList(BusinessDocumentDTO businessDocumentDTO) {
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentAssembler().toDO(businessDocumentDTO);
startPage();
List<AccountsReceivableAppPO> list = businessDocumentApplicationService.businessDocumentList(businessDocumentDO);
return getDataTableApi(list);
}
@Log(title = "应收账单-查询", description = "查询应收账单统计", businessType = BusinessType.INQUIRE)
@ApiOperation("查询应收账单统计")
@GetMapping("/businessDocumentListCount")
public AjaxResult businessDocumentListCount(BusinessDocumentDTO businessDocumentDTO) {
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentAssembler().toDO(businessDocumentDTO);
Map<String,String> result = businessDocumentApplicationService.businessDocumentListCount(businessDocumentDO);
return AjaxResult.success("查询成功",result);
}
}
@@ -0,0 +1,231 @@
package com.linke.finance.interfaces.facadeApp.invoice;
import com.linke.finance.application.server.businessDocument.BusinessDocumentApplicationService;
import com.linke.finance.application.service.common.CommonApplicationService;
import com.linke.finance.application.service.invoice.InvoiceInfoManageApplicationService;
import com.linke.finance.domain.address.entity.ReceivingAddressManage;
import com.linke.finance.domain.address.repository.po.ReceivingAddressManagePo;
import com.linke.finance.domain.address.repository.todo.ReceivingAddressManageDo;
import com.linke.finance.domain.businessDocument.repository.po.BusinessDocumentPO;
import com.linke.finance.domain.businessDocument.repository.todo.BusinessDocumentDO;
import com.linke.finance.domain.common.entity.DataPermission;
import com.linke.finance.domain.invoice.entity.InvoiceInfoManage;
import com.linke.finance.domain.invoice.entity.InvoiceOrder;
import com.linke.finance.domain.invoice.repository.po.*;
import com.linke.finance.domain.invoice.repository.todo.InvoiceInfoDo;
import com.linke.finance.domain.invoice.repository.todo.InvoiceInfoManageDo;
import com.linke.finance.domain.invoice.repository.todo.InvoiceOrderDo;
import com.linke.finance.interfaces.assemble.invoice.InvoiceAssembler;
import com.linke.finance.interfaces.dto.InvoiceInfoDto;
import com.linke.finance.interfaces.dto.InvoiceInfoManageDto;
import com.linke.finance.interfaces.dto.InvoiceOrderDto;
import com.linke.finance.interfaces.dto.ReceivingAddressManageDto;
import com.mhd.common.core.domain.dto.BusinessDocumentDTO;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
import com.mhd.common.core.web.page.TableDataInfoApi;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import com.mhd.common.security.utils.SecurityUtils;
import com.mhd.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 发票 管理 接口层
*
* 2023年3月9日
*
*/
@RestController
@RequestMapping("/invoiceApi")
@CrossOrigin
public class InvoiceAppApi extends BaseController
{
@Autowired
private InvoiceInfoManageApplicationService invoiceInfoManageApplicationService;
@Autowired
private CommonApplicationService commonApplicationService;
@Autowired
private BusinessDocumentApplicationService businessDocumentApplicationService;
/**
* 发票信息管理分页列表查询
*/
@Log(title = "发票管理", description = "发票信息管理分页列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceInfoManageList")
public TableDataInfo invoiceInfoManageList(InvoiceInfoManageDto invoiceInfoManageDto)
{
InvoiceInfoManageDo invoiceInfoManageDo = new InvoiceInfoManageDo();
BeanUtils.copyProperties(invoiceInfoManageDto,invoiceInfoManageDo);
startPage();
List<InvoiceInfoManagePo> list = invoiceInfoManageApplicationService.selectInvoiceInfoManageList(invoiceInfoManageDo);
return getDataTable(list);
}
/**
* 新增/编辑发票信息管理信息
*/
@Log(title = "发票管理", description = "发票信息管理新增/编辑", businessType = BusinessType.INSERT)
@PostMapping("/invoiceInfoManageSave")
public AjaxResult invoiceInfoManageSave(@RequestBody InvoiceInfoManageDto invoiceInfoManageDto)
{
//数据装配
InvoiceInfoManage invoiceInfoManage = new InvoiceAssembler().toDo(invoiceInfoManageDto);
if(invoiceInfoManage.getInvoiceInfoManageId() != null){
return toAjax(invoiceInfoManageApplicationService.updateInvoiceInfoManage(invoiceInfoManage));
}else {
return toAjax(invoiceInfoManageApplicationService.insertInvoiceInfoManage(invoiceInfoManage));
}
}
/**
* 查询发票统计信息
* @return
*/
@Log(title = "发票管理", description = "查询发票统计信息", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceOrderAppCount")
public AjaxResult invoiceOrderAppCount()
{
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
businessDocumentDO.setWaybillVerifyFlag(2);
return businessDocumentApplicationService.selectOrderListCount(businessDocumentDO);
}
/**
* APP近期发票列表查询
* @param invoiceInfoDto
* @return
*/
@Log(title = "发票管理", description = "APP近期发票列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceInfoAppList")
public TableDataInfoApi invoiceInfoAppList(InvoiceInfoDto invoiceInfoDto)
{
InvoiceInfoDo invoiceInfoDo = new InvoiceInfoDo();
BeanUtils.copyProperties(invoiceInfoDto,invoiceInfoDo);
startPage();
List<InvoiceInfoAppPo> list = invoiceInfoManageApplicationService.invoiceInfoAppList(invoiceInfoDo);
return getDataTableApi(list);
}
/**
* APP申请开票运单列表查询
* @param businessDocumentDTO
* @return
*/
@Log(title = "发票管理", description = "APP申请开票运单列表查询", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceOrderAppList")
public TableDataInfoApi invoiceOrderAppList(BusinessDocumentDTO businessDocumentDTO)
{
//转换实体
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
BeanUtils.copyProperties(businessDocumentDTO,businessDocumentDO);
startPage();
businessDocumentDO.setWaybillVerifyFlag(2);
List<BusinessDocumentPO> list = businessDocumentApplicationService.queryInvoiceList(businessDocumentDO);
return getDataTableApi(list);
}
/**
* 获取当前登录用户发票抬头
*/
@Log(title = "发票管理", description = "获取当前登录用户发票抬头", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceTitleList")
public AjaxResult invoiceTitleList()
{
List<InvoiceInfoManagePo> list = invoiceInfoManageApplicationService.invoiceTitleList();
return AjaxResult.success("操作成功",list == null ? new ArrayList<InvoiceInfoManagePo>():list);
}
/**
* 索要发票
*/
@Log(title = "发票管理", description = "索要发票", businessType = BusinessType.UPDATE)
@PostMapping("/invoiceInfoSave")
public AjaxResult invoiceInfoSave(@RequestBody InvoiceInfoDto invoiceInfoDto)
{
return toAjax(invoiceInfoManageApplicationService.insertInvoiceInfo(invoiceInfoDto));
}
/**
* 查询开票详情
* @param invoiceInfoDto
* @return
*/
@Log(title = "发票管理", description = "查询开票详情", businessType = BusinessType.INQUIRE)
@GetMapping("/invoiceInfoDetailApp")
public AjaxResult invoiceInfoDetailApp(InvoiceInfoDto invoiceInfoDto)
{
InvoiceInfoDo invoiceInfoDo = new InvoiceInfoDo();
BeanUtils.copyProperties(invoiceInfoDto,invoiceInfoDo);
InvoiceInfoAppPo invoiceInfoAppPo = invoiceInfoManageApplicationService.invoiceInfoDetailApp(invoiceInfoDo);
return AjaxResult.success("操作成功",invoiceInfoAppPo);
}
/**
* 收件地址分页列表查询
* @param receivingAddressManageDto
* @return
*/
@Log(title = "收件地址-查询", description = "分页查询收件地址管理列表", businessType = BusinessType.INQUIRE)
@GetMapping("/receivingAddressList")
public TableDataInfoApi selectReceivingAddressList(ReceivingAddressManageDto receivingAddressManageDto)
{
ReceivingAddressManageDo receivingAddressManageDo = new ReceivingAddressManageDo();
BeanUtils.copyProperties(receivingAddressManageDto,receivingAddressManageDo);
startPage();
List<ReceivingAddressManagePo> list = invoiceInfoManageApplicationService.selectReceivingAddressList(receivingAddressManageDo);
return getDataTableApi(list);
}
/**
* 新增/编辑收件地址信息
* @param receivingAddressManageDto
* @return
*/
@Log(title = "收件地址-新增", description = "新增/编辑收件地址信息", businessType = BusinessType.INSERT)
@PostMapping("/receivingAddressSave")
public AjaxResult receivingAddressSave(@RequestBody ReceivingAddressManageDto receivingAddressManageDto)
{
//数据装配
ReceivingAddressManage receivingAddressManage = new InvoiceAssembler().toDo(receivingAddressManageDto);
if(receivingAddressManage.getReceivingAddressId() != null){
return toAjax(invoiceInfoManageApplicationService.updateReceivingAddressManage(receivingAddressManage));
}else {
return toAjax(invoiceInfoManageApplicationService.insertReceivingAddressManage(receivingAddressManage));
}
}
/**
* 根据id获取收件地址信息
*/
@Log(title = "收件地址-查询", description = "根据id获取收件地址信息", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getReceivingAddress")
public AjaxResult getReceivingAddress(ReceivingAddressManageDto receivingAddressManageDto) {
return AjaxResult.success(invoiceInfoManageApplicationService.selectReceivingAddressById(receivingAddressManageDto.getReceivingAddressId()));
}
/**
* 批量删除收件地址信息
*/
@Log(title = "收件地址-删除", description = "批量删除收件地址信息", businessType = BusinessType.DELETE)
@PostMapping("/removeReceivingAddressByIds")
public AjaxResult removeReceivingAddressByIds(@RequestBody ReceivingAddressManageDto receivingAddressManageDto)
{
return toAjax(invoiceInfoManageApplicationService.deleteReceivingAddressByIds(receivingAddressManageDto.getReceivingAddressIds()));
}
}
@@ -0,0 +1,129 @@
package com.linke.finance.interfaces.facadeApp.tmsReceipt;
import java.util.List;
import com.linke.finance.application.server.tmsReceipt.TmsReceiptApplicationService;
import com.linke.finance.application.server.tmsReceipt.TmsReceiptAssembler;
import com.linke.finance.domain.tmsReceipt.repository.po.TmsReceiptPO;
import com.linke.finance.domain.tmsReceipt.repository.todo.TmsReceiptDO;
import com.linke.finance.interfaces.dto.TmsReceiptDTO;
import com.mhd.common.core.utils.IgnoreNullUtil;
import com.mhd.common.core.utils.bean.BeanUtils;
import com.mhd.common.log.annotation.Log;
import com.mhd.common.log.enums.BusinessType;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.common.core.web.page.TableDataInfo;
/**
* 收款单Api
*
* @author gen
* @date 2025-04-28
*/
@RestController
@RequestMapping("/tmsReceiptApi")
@CrossOrigin
public class TmsReceiptApi extends BaseController{
@Autowired
private TmsReceiptApplicationService tmsReceiptApplicationService;
@Resource
private TmsReceiptAssembler tmsReceiptAssembler;
/**
* 分页查询收款单列表
*/
// @ApiOperation("查询收款单列表")
@Log(title = "查询收款单列表", description = "查询收款单列表", businessType = BusinessType.INQUIRE)
@GetMapping("/list")
public TableDataInfo list(TmsReceiptDTO tmsReceiptDTO)
{
//转换实体
// TmsReceiptDO tmsReceiptDO = tmsReceiptAssembler.toDO(tmsReceiptDTO);
TmsReceiptDO tmsReceiptDO = new TmsReceiptDO();
BeanUtils.copyProperties(tmsReceiptDTO, tmsReceiptDO);
startPage();
List<TmsReceiptPO> list = tmsReceiptApplicationService.queryList(tmsReceiptDO);
return getDataTable(list);
}
/**
* 编辑&保存收款单
*/
// @ApiOperation("编辑&保存收款单")
@Log(title = "应收管理", description = "编辑&保存收款单", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody TmsReceiptDTO tmsReceiptDTO)
{
//转换实体
TmsReceiptDO tmsReceiptDO = tmsReceiptAssembler.toDO(tmsReceiptDTO);
if(tmsReceiptDTO.getId() != null){
return toAjax(tmsReceiptApplicationService.update(tmsReceiptDO));
}else {
return toAjax(tmsReceiptApplicationService.insert(tmsReceiptDO));
}
}
@Log(title = "应收管理", description = "批量新增收款单", businessType = BusinessType.INSERT)
@PostMapping("/batchSave")
public AjaxResult batchSave(@RequestBody List<TmsReceiptDTO> tmsReceiptDTOList)
{
//转换实体
return toAjax(tmsReceiptApplicationService.saveBatch(tmsReceiptDTOList));
}
/**
* 批量删除收款单
*/
@PostMapping("/deleteByIds")
@Log(title = "应收管理", description = "批量删除收款单", businessType = BusinessType.DELETE)
public AjaxResult delete(@RequestBody TmsReceiptDTO tmsReceiptDTO)
{
List<Long> ids = tmsReceiptDTO.getReceiptIds();
return toAjax(tmsReceiptApplicationService.delete(ids.toArray(new Long[0])));
}
/**
* 获取收款单详细信息
*/
// @ApiOperation("获取收款单")
@Log(title = "应收管理", description = "获取收款单", businessType = BusinessType.INQUIRE)
@GetMapping(value = "/getInfo/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(tmsReceiptApplicationService.getInfo(id));
}
/**
* 多收挂账提交
*/
//@ApiOperation("多收挂账")
@PostMapping("/chargeOnAccount")
@Log(title = "应收管理", description = "多收挂账", businessType = BusinessType.OTHER)
public AjaxResult chargeOnAccount(@RequestBody TmsReceiptDTO tmsReceiptDTO)
{
Boolean flag = tmsReceiptApplicationService.chargeOnAccount(tmsReceiptDTO);
if(flag){
return AjaxResult.success();
}else{
return AjaxResult.error();
}
}
}
@@ -0,0 +1,39 @@
package com.linke.finance.interfaces.vo;
import lombok.Data;
/**
* 审批单据统计VO
*/
@Data
public class ApprovalStatsVO {
/**
* 总单据数
*/
private Long allNumber;
/**
* 未审批数量 (status = 0)
*/
private Long pendingCount;
/**
* 审批中数量 (status = 1)
*/
private Long inProgressCount;
/**
* 审批通过数量 (status = 2)
*/
private Long approvedCount;
/**
* 审批拒绝数量 (status = 3)
*/
private Long rejectedCount;
/**
* 已撤销数量 (status = 4)
*/
private Long cancelledCount;
}