|
@@ -1,14 +1,21 @@
|
|
|
package com.jy.business.contract.dao;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.jy.business.capital.model.table.CapitalAccountTable;
|
|
|
+import com.jy.business.capital.model.table.CapitalTransactionsTable;
|
|
|
import com.jy.business.contract.mapper.ContractInfoMapper;
|
|
|
import com.jy.business.contract.model.dto.ContractInfoSelectDto;
|
|
|
import com.jy.business.contract.model.entity.ContractInfo;
|
|
|
+import com.jy.business.contract.model.table.ContractDetailTable;
|
|
|
import com.jy.business.contract.model.table.ContractInfoTable;
|
|
|
import com.jy.business.contract.model.vo.ContractInfoVo;
|
|
|
+import com.jy.business.contract.model.vo.ContractStatisticsVo;
|
|
|
+import com.jy.business.contract.model.vo.TransactionVo;
|
|
|
+import com.jy.business.payment.model.table.PaymentRemitTable;
|
|
|
+import com.jy.business.payment.model.table.PaymentRequestsDetailTable;
|
|
|
+import com.jy.business.payment.model.table.PaymentRequestsTable;
|
|
|
import com.jy.framework.model.base.BaseDao;
|
|
|
-import com.jy.system.service.AuthService;
|
|
|
-import jakarta.annotation.Resource;
|
|
|
+import com.jy.framework.mybatis.join.TempTable;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
@@ -16,8 +23,31 @@ import java.util.List;
|
|
|
@Service
|
|
|
public class ContractInfoDao extends BaseDao<ContractInfoMapper, ContractInfo> {
|
|
|
|
|
|
- @Resource
|
|
|
- private AuthService authService;
|
|
|
+ public List<ContractStatisticsVo> getStatistics() {
|
|
|
+ ContractInfoTable ci = ContractInfoTable.ci;
|
|
|
+ CapitalTransactionsTable ct = CapitalTransactionsTable.ct;
|
|
|
+
|
|
|
+ TempTable t = sql().select(
|
|
|
+ _ifNull(_sum(ct.amount), 0).as(ContractStatisticsVo::getFundReceivedAmount),
|
|
|
+ ci.sellerCompany
|
|
|
+ )
|
|
|
+ .from(ci)
|
|
|
+ .leftJoin(ct).on(ct.targetType.eq(70), ci.id.eq(ct.contractId))
|
|
|
+ .groupBy(ci.sellerCompany)
|
|
|
+ .toTable("t");
|
|
|
+
|
|
|
+ return sql(ContractStatisticsVo.class)
|
|
|
+ .select(
|
|
|
+ ci.sellerCompany,
|
|
|
+ _count(0).as(ContractStatisticsVo::getContractQuantity),
|
|
|
+ _sum(ci.amount).as(ContractStatisticsVo::getContractAmount),
|
|
|
+ t.field(ContractStatisticsVo::getFundReceivedAmount)
|
|
|
+ )
|
|
|
+ .from(ci)
|
|
|
+ .leftJoin(t).on(ci.sellerCompany.eq(t.field(ContractInfo::getSellerCompany)))
|
|
|
+ .groupBy(ci.sellerCompany)
|
|
|
+ .list();
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 合同列表
|
|
@@ -33,7 +63,7 @@ public class ContractInfoDao extends BaseDao<ContractInfoMapper, ContractInfo> {
|
|
|
.where(
|
|
|
)
|
|
|
.orderBy(
|
|
|
- ci.id.desc()
|
|
|
+ ci.id.desc()
|
|
|
)
|
|
|
.list();
|
|
|
}
|
|
@@ -43,13 +73,20 @@ public class ContractInfoDao extends BaseDao<ContractInfoMapper, ContractInfo> {
|
|
|
*/
|
|
|
public Page<ContractInfoVo> getPage(ContractInfoSelectDto dto) {
|
|
|
ContractInfoTable ci = ContractInfoTable.ci;
|
|
|
+ ContractDetailTable cd = ContractDetailTable.cd;
|
|
|
|
|
|
return sql(ContractInfoVo.class)
|
|
|
.select(
|
|
|
- ci.all
|
|
|
+ ci.all,
|
|
|
+ sql()
|
|
|
+ .select(_sum(_ifNull(cd.costPrice, 0).multiply(cd.quantity))).from(cd).where(ci.id.eq(cd.contractId))
|
|
|
+ .add(ci.freightPrice)
|
|
|
+ .add(ci.insurance)
|
|
|
+ .as(ContractInfoVo::getCostPrice)
|
|
|
)
|
|
|
.from(ci)
|
|
|
.where(
|
|
|
+ ci.contractNo.like(dto.getContractNo())
|
|
|
)
|
|
|
.orderBy(
|
|
|
ci.id.desc()
|
|
@@ -74,4 +111,63 @@ public class ContractInfoDao extends BaseDao<ContractInfoMapper, ContractInfo> {
|
|
|
.one();
|
|
|
}
|
|
|
|
|
|
+ public List<TransactionVo> getTransactionList(Long id) {
|
|
|
+ CapitalTransactionsTable ct = CapitalTransactionsTable.ct;
|
|
|
+ CapitalAccountTable ca = CapitalAccountTable.ca;
|
|
|
+ PaymentRequestsDetailTable prd = PaymentRequestsDetailTable.prd;
|
|
|
+ PaymentRequestsTable pr = PaymentRequestsTable.pr;
|
|
|
+ PaymentRemitTable pre = PaymentRemitTable.payment_remit;
|
|
|
+
|
|
|
+
|
|
|
+ // 请款
|
|
|
+ TempTable t = sql()
|
|
|
+ .select(
|
|
|
+ pre.remitTime.as(TransactionVo::getTradingTime),
|
|
|
+ column("1").as(TransactionVo::getType),
|
|
|
+ prd.amount.as(TransactionVo::getTradingAmount),
|
|
|
+ prd.remark.as(TransactionVo::getRemark),
|
|
|
+ ca.depositBank.as(TransactionVo::getDepositBank),
|
|
|
+ ca.accountName.as(TransactionVo::getAccountName),
|
|
|
+ ca.account.as(TransactionVo::getAccount),
|
|
|
+ pr.depositBank.as(TransactionVo::getTargetDepositBank),
|
|
|
+ pr.accountName.as(TransactionVo::getTargetAccountName),
|
|
|
+ pr.account.as(TransactionVo::getTargetAccount)
|
|
|
+ )
|
|
|
+ .from(prd)
|
|
|
+ .innerJoin(pr).on(prd.paymentRequestsId.eq(pr.id))
|
|
|
+ .innerJoin(pre).on(pre.paymentRequestsId.eq(pr.id))
|
|
|
+ .innerJoin(ca).on(pre.capitalAccountId.eq(ca.id))
|
|
|
+ .where(
|
|
|
+ prd.contractId.eq(id)
|
|
|
+ )
|
|
|
+
|
|
|
+ .unionAll()
|
|
|
+
|
|
|
+ // 到账认领
|
|
|
+ .select(
|
|
|
+ ct.tradingTime.as(TransactionVo::getTradingTime),
|
|
|
+ column("2").as(TransactionVo::getType),
|
|
|
+ ct.amount.as(TransactionVo::getTradingAmount),
|
|
|
+ ct.remark.as(TransactionVo::getRemark),
|
|
|
+ ca.depositBank.as(TransactionVo::getDepositBank),
|
|
|
+ ca.accountName.as(TransactionVo::getAccountName),
|
|
|
+ ca.account.as(TransactionVo::getAccount),
|
|
|
+ ct.targetDepositBank.as(TransactionVo::getTargetDepositBank),
|
|
|
+ ct.targetAccountName.as(TransactionVo::getTargetAccountName),
|
|
|
+ ct.targetAccount.as(TransactionVo::getTargetAccount)
|
|
|
+ )
|
|
|
+ .from(ct)
|
|
|
+ .leftJoin(ca).on(ct.capitalAccountId.eq(ca.id))
|
|
|
+ .where(
|
|
|
+ ct.contractId.eq(id),
|
|
|
+ ct.targetType.eq(70)
|
|
|
+ ).toTable("t");
|
|
|
+
|
|
|
+ return sql(TransactionVo.class)
|
|
|
+ .select(column("*"))
|
|
|
+ .from(t)
|
|
|
+ .orderBy(t.field(TransactionVo::getTradingTime).desc())
|
|
|
+ .list();
|
|
|
+ }
|
|
|
+
|
|
|
}
|