Browse Source

Merge branch 'dev' into cangku

cangku
王富康 2 years ago
parent
commit
70052aabac
  1. 16
      hiver-admin/test-output/test-report.html
  2. 58
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/service/impl/BillServiceImpl.java
  3. 4
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/DealingsRecordMapper.java
  4. 20
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/DealingsRecordService.java
  5. 10
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/DealingsRecordServiceImpl.java
  6. 47
      hiver-modules/hiver-mall/src/main/resources/mapper/DealingsRecordMapper.xml
  7. 1
      hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml

16
hiver-admin/test-output/test-report.html

@ -35,7 +35,7 @@
<a href="#"><span class="badge badge-primary">Hiver</span></a> <a href="#"><span class="badge badge-primary">Hiver</span></a>
</li> </li>
<li class="m-r-10"> <li class="m-r-10">
<a href="#"><span class="badge badge-primary">���� 04, 2024 16:50:15</span></a> <a href="#"><span class="badge badge-primary">���� 04, 2024 18:32:59</span></a>
</li> </li>
</ul> </ul>
</div> </div>
@ -84,7 +84,7 @@
<div class="test-detail"> <div class="test-detail">
<span class="meta text-white badge badge-sm"></span> <span class="meta text-white badge badge-sm"></span>
<p class="name">passTest</p> <p class="name">passTest</p>
<p class="text-sm"><span>16:50:16 ����</span> / <span>0.016 secs</span></p> <p class="text-sm"><span>18:32:59 ����</span> / <span>0.026 secs</span></p>
</div> </div>
<div class="test-contents d-none"> <div class="test-contents d-none">
<div class="detail-head"> <div class="detail-head">
@ -92,9 +92,9 @@
<div class="info"> <div class="info">
<div class='float-right'><span class='badge badge-default'>#test-id=1</span></div> <div class='float-right'><span class='badge badge-default'>#test-id=1</span></div>
<h5 class="test-status text-pass">passTest</h5> <h5 class="test-status text-pass">passTest</h5>
<span class='badge badge-success'>08.04.2024 16:50:16</span> <span class='badge badge-success'>08.04.2024 18:32:59</span>
<span class='badge badge-danger'>08.04.2024 16:50:16</span> <span class='badge badge-danger'>08.04.2024 18:32:59</span>
<span class='badge badge-default'>0.016 secs</span> <span class='badge badge-default'>0.026 secs</span>
</div> </div>
<div class="m-t-10 m-l-5"></div> <div class="m-t-10 m-l-5"></div>
</div> </div>
@ -104,7 +104,7 @@
<tbody> <tbody>
<tr class="event-row"> <tr class="event-row">
<td><span class="badge log pass-bg">Pass</span></td> <td><span class="badge log pass-bg">Pass</span></td>
<td>16:50:16</td> <td>18:32:59</td>
<td> <td>
Test passed Test passed
</td> </td>
@ -128,13 +128,13 @@
<div class="col-md-3"> <div class="col-md-3">
<div class="card"><div class="card-body"> <div class="card"><div class="card-body">
<p class="m-b-0">Started</p> <p class="m-b-0">Started</p>
<h3>���� 04, 2024 16:50:15</h3> <h3>���� 04, 2024 18:32:59</h3>
</div></div> </div></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<div class="card"><div class="card-body"> <div class="card"><div class="card-body">
<p class="m-b-0">Ended</p> <p class="m-b-0">Ended</p>
<h3>���� 04, 2024 16:50:16</h3> <h3>���� 04, 2024 18:32:59</h3>
</div></div> </div></div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">

58
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/bill/service/impl/BillServiceImpl.java

@ -81,7 +81,7 @@ public class BillServiceImpl implements BillService {
if (saleArrearsVo != null) { if (saleArrearsVo != null) {
customerBillDataVo.setArrears(saleArrearsVo.getArrears()); customerBillDataVo.setArrears(saleArrearsVo.getArrears());
customerBillDataVo.setTotalSale(saleArrearsVo.getTotalSale()); customerBillDataVo.setTotalSale(saleArrearsVo.getTotalSale());
}else{ } else {
customerBillDataVo.setArrears(BigDecimal.ZERO); customerBillDataVo.setArrears(BigDecimal.ZERO);
customerBillDataVo.setTotalSale(BigDecimal.ZERO); customerBillDataVo.setTotalSale(BigDecimal.ZERO);
} }
@ -90,7 +90,7 @@ public class BillServiceImpl implements BillService {
final ArrearsVo returnSaleArrearsVo = returnSaleService.getTotalReturn(customerBillQueryVo); final ArrearsVo returnSaleArrearsVo = returnSaleService.getTotalReturn(customerBillQueryVo);
if (returnSaleArrearsVo != null) { if (returnSaleArrearsVo != null) {
customerBillDataVo.setTotalReturn(returnSaleArrearsVo.getTotalReturn()); customerBillDataVo.setTotalReturn(returnSaleArrearsVo.getTotalReturn());
}else{ } else {
customerBillDataVo.setTotalReturn(BigDecimal.ZERO); customerBillDataVo.setTotalReturn(BigDecimal.ZERO);
} }
// 根据客户id及日期范围对账单明细 // 根据客户id及日期范围对账单明细
@ -99,13 +99,13 @@ public class BillServiceImpl implements BillService {
// 获取saleId,去查询销售单的商品明细,及退货单的商品明细 // 获取saleId,去查询销售单的商品明细,及退货单的商品明细
final List<String> saleIdList = new ArrayList<>(); final List<String> saleIdList = new ArrayList<>();
if(records.isEmpty()){ if (records.isEmpty()) {
//未开单,查询客户欠款,作为初期欠款和期末欠款 //未开单,查询客户欠款,作为初期欠款和期末欠款
final Debt debt = debtService.selectByUserId(customerBillQueryVo.getShopId(),customerBillQueryVo.getCustomerId()); final Debt debt = debtService.selectByUserId(customerBillQueryVo.getShopId(), customerBillQueryVo.getCustomerId());
// 要查新客户的创建时间,根据用户的创建时间来判断; // 要查新客户的创建时间,根据用户的创建时间来判断;
// 如果查询时间小于创建时间,那么初期欠款和期末欠款应该为0 // 如果查询时间小于创建时间,那么初期欠款和期末欠款应该为0
// 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款 // 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款
if(debt != null){ if (debt != null) {
final Date createTime = debt.getCreateTime(); final Date createTime = debt.getCreateTime();
final String endDate = customerBillQueryVo.getEndDate(); final String endDate = customerBillQueryVo.getEndDate();
final Date enddate; final Date enddate;
@ -115,18 +115,18 @@ public class BillServiceImpl implements BillService {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识 // 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识
if(createTime.after(enddate)){ if (createTime.after(enddate)) {
customerBillDataVo.setInitialArrears(BigDecimal.ZERO); customerBillDataVo.setInitialArrears(BigDecimal.ZERO);
customerBillDataVo.setEndArrears(BigDecimal.ZERO); customerBillDataVo.setEndArrears(BigDecimal.ZERO);
}else{ } else {
customerBillDataVo.setInitialArrears(debt.getAmountOwed()); customerBillDataVo.setInitialArrears(debt.getAmountOwed());
customerBillDataVo.setEndArrears(debt.getAmountOwed()); customerBillDataVo.setEndArrears(debt.getAmountOwed());
} }
} }
}else{ } else {
for (int i = 0; i < records.size(); i++) { for (int i = 0; i < records.size(); i++) {
if(StringUtils.isNotEmpty(records.get(i).getSaleId())){ if (StringUtils.isNotEmpty(records.get(i).getSaleId())) {
saleIdList.add(records.get(i).getSaleId()); saleIdList.add(records.get(i).getSaleId());
} }
// 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款 // 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
@ -134,11 +134,10 @@ public class BillServiceImpl implements BillService {
final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount(); final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount();
customerBillDataVo.setInitialArrears(lastDebtAmount); customerBillDataVo.setInitialArrears(lastDebtAmount);
} }
// 获取最后一个的剩余欠款当做本次查询的剩余欠款
if (i == records.size() - 1) {
customerBillDataVo.setEndArrears(records.get(i).getBalanceDue());
}
} }
// 因为记录分页了,所以这里不能获取最后一条数据作为获期末欠款,应该单独查询一下
final BigDecimal arrearsByUserId = dealingsRecordService.getArrearsByUserId(customerBillQueryVo);
customerBillDataVo.setEndArrears(arrearsByUserId);
} }
if (!saleIdList.isEmpty()) { if (!saleIdList.isEmpty()) {
@ -272,10 +271,11 @@ public class BillServiceImpl implements BillService {
/** /**
* 获取供应商对账单 * 获取供应商对账单
* @author 王富康 *
* @date 2024/7/23
* @param supplierBillQueryVo * @param supplierBillQueryVo
* @return SupplierBillDataVo * @return SupplierBillDataVo
* @author 王富康
* @date 2024/7/23
*/ */
@Override @Override
public SupplierBillDataVo getPurchaseBill(SupplierBillQueryVo supplierBillQueryVo) { public SupplierBillDataVo getPurchaseBill(SupplierBillQueryVo supplierBillQueryVo) {
@ -295,8 +295,10 @@ public class BillServiceImpl implements BillService {
// 获取本期全部拿货总金额 // 获取本期全部拿货总金额
final ArrearsVo saleArrearsVo = purchaseService.getArrearsAndTotalSale(supplierBillQueryVo); final ArrearsVo saleArrearsVo = purchaseService.getArrearsAndTotalSale(supplierBillQueryVo);
if (saleArrearsVo != null) { if (saleArrearsVo != null) {
supplierBillDataVo.setArrears(saleArrearsVo.getArrears());
supplierBillDataVo.setTotalSale(saleArrearsVo.getTotalSale()); supplierBillDataVo.setTotalSale(saleArrearsVo.getTotalSale());
}else{ } else {
supplierBillDataVo.setArrears(BigDecimal.ZERO);
supplierBillDataVo.setTotalSale(BigDecimal.ZERO); supplierBillDataVo.setTotalSale(BigDecimal.ZERO);
} }
@ -306,13 +308,13 @@ public class BillServiceImpl implements BillService {
// 获取saleId,去查询销售单的商品明细,及退货单的商品明细 // 获取saleId,去查询销售单的商品明细,及退货单的商品明细
final List<String> purchaseIdList = new ArrayList<>(); final List<String> purchaseIdList = new ArrayList<>();
if(records.isEmpty()){ if (records.isEmpty()) {
//未开单,查询客户欠款,作为初期欠款和期末欠款 //未开单,查询客户欠款,作为初期欠款和期末欠款
final Debt debt = debtService.selectByUserId(supplierBillQueryVo.getShopId(),supplierBillQueryVo.getSupplierId()); final Debt debt = debtService.selectByUserId(supplierBillQueryVo.getShopId(), supplierBillQueryVo.getSupplierId());
// 要查新客户的创建时间,根据用户的创建时间来判断; // 要查新客户的创建时间,根据用户的创建时间来判断;
// 如果查询时间小于创建时间,那么初期欠款和期末欠款应该为0 // 如果查询时间小于创建时间,那么初期欠款和期末欠款应该为0
// 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款 // 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款
if(debt != null){ if (debt != null) {
final Date createTime = debt.getCreateTime(); final Date createTime = debt.getCreateTime();
final String endDate = supplierBillQueryVo.getEndDate(); final String endDate = supplierBillQueryVo.getEndDate();
Date enddate = new Date(); Date enddate = new Date();
@ -324,18 +326,18 @@ public class BillServiceImpl implements BillService {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识 // 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识
if(createTime.after(enddate)){ if (createTime.after(enddate)) {
supplierBillDataVo.setInitialArrears(BigDecimal.ZERO); supplierBillDataVo.setInitialArrears(BigDecimal.ZERO);
supplierBillDataVo.setEndArrears(BigDecimal.ZERO); supplierBillDataVo.setEndArrears(BigDecimal.ZERO);
}else{ } else {
supplierBillDataVo.setInitialArrears(debt.getAmountOwed()); supplierBillDataVo.setInitialArrears(debt.getAmountOwed());
supplierBillDataVo.setEndArrears(debt.getAmountOwed()); supplierBillDataVo.setEndArrears(debt.getAmountOwed());
} }
} }
}else{ } else {
for (int i = 0; i < records.size(); i++) { for (int i = 0; i < records.size(); i++) {
if(StringUtils.isNotEmpty(records.get(i).getPurchaseId())){ if (StringUtils.isNotEmpty(records.get(i).getPurchaseId())) {
purchaseIdList.add(records.get(i).getPurchaseId()); purchaseIdList.add(records.get(i).getPurchaseId());
} }
// 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款 // 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
@ -343,11 +345,11 @@ public class BillServiceImpl implements BillService {
final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount(); final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount();
supplierBillDataVo.setInitialArrears(lastDebtAmount); supplierBillDataVo.setInitialArrears(lastDebtAmount);
} }
// 获取最后一个的剩余欠款当做本次查询的剩余欠款
if (i == records.size() - 1) {
supplierBillDataVo.setEndArrears(records.get(i).getBalanceDue());
}
} }
// 因为记录分页了,所以这里不能获取最后一条数据作为获期末欠款,应该单独查询一下
final BigDecimal arrearsBySupplierId = dealingsRecordService.getArrearsBySupplierId(supplierBillQueryVo);
supplierBillDataVo.setEndArrears(arrearsBySupplierId);
} }
if (!purchaseIdList.isEmpty()) { if (!purchaseIdList.isEmpty()) {
@ -368,7 +370,7 @@ public class BillServiceImpl implements BillService {
} }
// 获取入库单规格明细 // 获取入库单规格明细
final List<StockLog> stockLogList = stockLogService.getPurchaseDetails(purchaseIdList); final List<StockLog> stockLogList = stockLogService.getPurchaseDetails(purchaseIdList);
final Map<String,List<StockLog>> stockLogMap = new HashMap<>(); final Map<String, List<StockLog>> stockLogMap = new HashMap<>();
for (StockLog stockLog : stockLogList) { for (StockLog stockLog : stockLogList) {
final String detailId = stockLog.getDetailId(); final String detailId = stockLog.getDetailId();
if (stockLogMap.containsKey(detailId)) { if (stockLogMap.containsKey(detailId)) {

4
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/DealingsRecordMapper.java

@ -69,4 +69,8 @@ public interface DealingsRecordMapper extends BaseMapper<DealingsRecord> {
* @date 2024/8/2 * @date 2024/8/2
*/ */
void deleteDealingsRecord(@Param("id") String id); void deleteDealingsRecord(@Param("id") String id);
BigDecimal getArrearsByUserId(@Param("customerBillQueryVo") CustomerBillQueryVo customerBillQueryVo);
BigDecimal getArrearsBySupplierId(@Param("supplierBillQueryVo") SupplierBillQueryVo supplierBillQueryVo);
} }

20
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/DealingsRecordService.java

@ -63,4 +63,24 @@ public interface DealingsRecordService extends IService<DealingsRecord> {
* @date 2024/8/2 * @date 2024/8/2
*/ */
void deleteDealingsRecord(String id); void deleteDealingsRecord(String id);
/**
* 获取客户期末欠款
*
* @param customerBillQueryVo
* @return Page<BillDealingsRecordVo>
* @author 王富康
* @date 2024/7/6
*/
BigDecimal getArrearsByUserId(CustomerBillQueryVo customerBillQueryVo);
/**
* 获取供应商期末欠款
*
* @param supplierBillQueryVo
* @return Page<BillDealingsRecordVo>
* @author 王富康
* @date 2024/7/6
*/
BigDecimal getArrearsBySupplierId(SupplierBillQueryVo supplierBillQueryVo);
} }

10
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/DealingsRecordServiceImpl.java

@ -85,4 +85,14 @@ public class DealingsRecordServiceImpl extends ServiceImpl<DealingsRecordMapper,
dealingsRecordMapper.deleteDealingsRecord(id); dealingsRecordMapper.deleteDealingsRecord(id);
} }
@Override
public BigDecimal getArrearsByUserId(CustomerBillQueryVo customerBillQueryVo) {
return dealingsRecordMapper.getArrearsByUserId(customerBillQueryVo);
}
@Override
public BigDecimal getArrearsBySupplierId(SupplierBillQueryVo supplierBillQueryVo) {
return dealingsRecordMapper.getArrearsBySupplierId(supplierBillQueryVo);
}
} }

47
hiver-modules/hiver-mall/src/main/resources/mapper/DealingsRecordMapper.xml

@ -209,4 +209,51 @@
set del_flag = 2 set del_flag = 2
where id = #{id} where id = #{id}
</update> </update>
<select id="getArrearsByUserId" resultType="java.math.BigDecimal">
select
tdr.balance_due
from
t_dealings_record tdr
left join t_sale ts on ts.id = tdr.sale_id and ts.shop_id = #{customerBillQueryVo.shopId} and ts.status not in ('6', '7' )
left join (
select
n.sale_id,
sum( n.total_amount ) as return_sale_total_amount
from
t_sale m
left join t_return_sale n on m.id = n.sale_id
group by
n.sale_id
) trs on ts.id = trs.sale_id
WHERE
<!--20240802 排除掉删除的交易记录-->
tdr.del_flag != 2
and tdr.dealings_user_id = #{customerBillQueryVo.customerId}
and tdr.shop_id = #{customerBillQueryVo.shopId}
<if test='customerBillQueryVo.startDate !=null and customerBillQueryVo.endDate !=null'>
and tdr.create_time BETWEEN #{customerBillQueryVo.startDate} AND #{customerBillQueryVo.endDate}
</if>
order by tdr.create_time desc
limit 1
</select>
<select id="getArrearsBySupplierId" resultType="java.math.BigDecimal">
select
tdr.balance_due
from
t_dealings_record tdr
left join t_purchase ts on ts.id = tdr.sale_id and ts.shop_id = #{supplierBillQueryVo.shopId}
WHERE
<!--20240802 排除掉删除的交易记录-->
tdr.del_flag != 2
and tdr.dealings_user_id = #{supplierBillQueryVo.supplierId}
and tdr.shop_id = #{supplierBillQueryVo.shopId}
and (tdr.sale_id is null or ts.in_storage_status = '1')
<if test='supplierBillQueryVo.startDate !=null and supplierBillQueryVo.endDate !=null'>
and tdr.create_time BETWEEN #{supplierBillQueryVo.startDate} AND #{supplierBillQueryVo.endDate}
</if>
order by tdr.create_time desc
limit 1
</select>
</mapper> </mapper>

1
hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml

@ -550,6 +550,7 @@
<select id="getArrearsAndTotalSale" resultType="cc.hiver.mall.bill.vo.ArrearsVo"> <select id="getArrearsAndTotalSale" resultType="cc.hiver.mall.bill.vo.ArrearsVo">
select select
sum(tp.no_pay) as arrears,
sum(tp.should_pay) as total_sale sum(tp.should_pay) as total_sale
from from
t_purchase tp t_purchase tp

Loading…
Cancel
Save