|
|
|
@ -81,7 +81,7 @@ public class BillServiceImpl implements BillService { |
|
|
|
if (saleArrearsVo != null) { |
|
|
|
customerBillDataVo.setArrears(saleArrearsVo.getArrears()); |
|
|
|
customerBillDataVo.setTotalSale(saleArrearsVo.getTotalSale()); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
customerBillDataVo.setArrears(BigDecimal.ZERO); |
|
|
|
customerBillDataVo.setTotalSale(BigDecimal.ZERO); |
|
|
|
} |
|
|
|
@ -90,7 +90,7 @@ public class BillServiceImpl implements BillService { |
|
|
|
final ArrearsVo returnSaleArrearsVo = returnSaleService.getTotalReturn(customerBillQueryVo); |
|
|
|
if (returnSaleArrearsVo != null) { |
|
|
|
customerBillDataVo.setTotalReturn(returnSaleArrearsVo.getTotalReturn()); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
customerBillDataVo.setTotalReturn(BigDecimal.ZERO); |
|
|
|
} |
|
|
|
// 根据客户id及日期范围对账单明细
|
|
|
|
@ -99,13 +99,13 @@ public class BillServiceImpl implements BillService { |
|
|
|
|
|
|
|
// 获取saleId,去查询销售单的商品明细,及退货单的商品明细
|
|
|
|
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
|
|
|
|
// 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款
|
|
|
|
if(debt != null){ |
|
|
|
if (debt != null) { |
|
|
|
final Date createTime = debt.getCreateTime(); |
|
|
|
final String endDate = customerBillQueryVo.getEndDate(); |
|
|
|
final Date enddate; |
|
|
|
@ -115,18 +115,18 @@ public class BillServiceImpl implements BillService { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
// 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识
|
|
|
|
if(createTime.after(enddate)){ |
|
|
|
if (createTime.after(enddate)) { |
|
|
|
customerBillDataVo.setInitialArrears(BigDecimal.ZERO); |
|
|
|
customerBillDataVo.setEndArrears(BigDecimal.ZERO); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
customerBillDataVo.setInitialArrears(debt.getAmountOwed()); |
|
|
|
customerBillDataVo.setEndArrears(debt.getAmountOwed()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
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()); |
|
|
|
} |
|
|
|
// 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
|
|
|
|
@ -134,11 +134,10 @@ public class BillServiceImpl implements BillService { |
|
|
|
final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount(); |
|
|
|
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()) { |
|
|
|
@ -272,10 +271,11 @@ public class BillServiceImpl implements BillService { |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取供应商对账单 |
|
|
|
* @author 王富康 |
|
|
|
* @date 2024/7/23 |
|
|
|
* |
|
|
|
* @param supplierBillQueryVo |
|
|
|
* @return SupplierBillDataVo |
|
|
|
* @author 王富康 |
|
|
|
* @date 2024/7/23 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public SupplierBillDataVo getPurchaseBill(SupplierBillQueryVo supplierBillQueryVo) { |
|
|
|
@ -295,8 +295,10 @@ public class BillServiceImpl implements BillService { |
|
|
|
// 获取本期全部拿货总金额
|
|
|
|
final ArrearsVo saleArrearsVo = purchaseService.getArrearsAndTotalSale(supplierBillQueryVo); |
|
|
|
if (saleArrearsVo != null) { |
|
|
|
supplierBillDataVo.setArrears(saleArrearsVo.getArrears()); |
|
|
|
supplierBillDataVo.setTotalSale(saleArrearsVo.getTotalSale()); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
supplierBillDataVo.setArrears(BigDecimal.ZERO); |
|
|
|
supplierBillDataVo.setTotalSale(BigDecimal.ZERO); |
|
|
|
} |
|
|
|
|
|
|
|
@ -306,13 +308,13 @@ public class BillServiceImpl implements BillService { |
|
|
|
|
|
|
|
// 获取saleId,去查询销售单的商品明细,及退货单的商品明细
|
|
|
|
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
|
|
|
|
// 如果查询的时间大于创建时间,那么初期欠款和期末欠款应该为客户欠款
|
|
|
|
if(debt != null){ |
|
|
|
if (debt != null) { |
|
|
|
final Date createTime = debt.getCreateTime(); |
|
|
|
final String endDate = supplierBillQueryVo.getEndDate(); |
|
|
|
Date enddate = new Date(); |
|
|
|
@ -324,18 +326,18 @@ public class BillServiceImpl implements BillService { |
|
|
|
throw new RuntimeException(e); |
|
|
|
} |
|
|
|
// 以为现在创建客户就创建了欠款信息,那么就按照欠款信息的创建时间作为标识
|
|
|
|
if(createTime.after(enddate)){ |
|
|
|
if (createTime.after(enddate)) { |
|
|
|
supplierBillDataVo.setInitialArrears(BigDecimal.ZERO); |
|
|
|
supplierBillDataVo.setEndArrears(BigDecimal.ZERO); |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
supplierBillDataVo.setInitialArrears(debt.getAmountOwed()); |
|
|
|
supplierBillDataVo.setEndArrears(debt.getAmountOwed()); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
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()); |
|
|
|
} |
|
|
|
// 根据时间升序查询的,这里获取第一个的初期欠款当做本次查询的初期欠款
|
|
|
|
@ -343,11 +345,11 @@ public class BillServiceImpl implements BillService { |
|
|
|
final BigDecimal lastDebtAmount = records.get(0).getLastDebtAmount(); |
|
|
|
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()) { |
|
|
|
@ -368,7 +370,7 @@ public class BillServiceImpl implements BillService { |
|
|
|
} |
|
|
|
// 获取入库单规格明细
|
|
|
|
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) { |
|
|
|
final String detailId = stockLog.getDetailId(); |
|
|
|
if (stockLogMap.containsKey(detailId)) { |
|
|
|
|