|
|
@@ -4155,9 +4155,9 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 校验:累计开票金额 <= 对账金额
|
|
|
// 假设 item.getUninvoiced() 是未开票金额,需要从数据库查历史已开票金额
|
|
|
// 这里简化逻辑:如果本次开票总额大于对账金额,则报错
|
|
|
- if (totalInvoiceAmount.compareTo(reconciliationAmount) > 0) {
|
|
|
- throw new SystemException("开票金额不可大于对账金额[对账金额:" + reconciliationAmount + "]");
|
|
|
- }
|
|
|
+// if (totalInvoiceAmount.compareTo(reconciliationAmount) > 0) {
|
|
|
+// throw new SystemException("开票金额不可大于对账金额[对账金额:" + reconciliationAmount + "]");
|
|
|
+// }
|
|
|
|
|
|
// 构建跟单订单明细
|
|
|
InsFeeFollowOrder order = new InsFeeFollowOrder();
|
|
|
@@ -4177,6 +4177,14 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
order.setUninvoiced(receivable.subtract(invoicedThisTime));
|
|
|
order.setInvoicedAmountTime(invoicedThisTime);
|
|
|
order.setInvoiced(invoicedThisTime); // 假设已开票字段需要累加
|
|
|
+ }else if ("1".equals(vo.getSelectFlag())){
|
|
|
+ // 多条处理逻辑
|
|
|
+ BigDecimal reconciliation = item.getReconciliationAmount();
|
|
|
+
|
|
|
+ // 更新未开票金额 = 应收 - 本次开票
|
|
|
+ order.setUninvoiced(BigDecimal.ZERO);
|
|
|
+ order.setInvoicedAmountTime(reconciliation);
|
|
|
+ order.setInvoiced(reconciliation); // 假设已开票字段需要累加
|
|
|
}
|
|
|
|
|
|
// 设置新增字段 (保存对账信息)
|
|
|
@@ -4924,14 +4932,21 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
if (invoiceRecordQueryVo.getInvoiceTypes().contains(InvoiceTypeEnum.FEE_2.getCode())) {
|
|
|
LambdaQueryWrapper<InsFeeFollowOrder> insFeeFollowOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
insFeeFollowOrderLambdaQueryWrapper.eq(InsFeeFollowOrder::getYear, action.getYear());
|
|
|
- insFeeFollowOrderLambdaQueryWrapper.eq(InsFeeFollowOrder::getMonth, action.getMonth());
|
|
|
+ List<String> monthList;
|
|
|
+ String monthStr = action.getMonth();
|
|
|
+ if (StrUtil.contains(monthStr, ",")) {
|
|
|
+ monthList = Arrays.asList(monthStr.split(","));
|
|
|
+ } else {
|
|
|
+ monthList = Collections.singletonList(monthStr);
|
|
|
+ }
|
|
|
+ insFeeFollowOrderLambdaQueryWrapper.in(InsFeeFollowOrder::getMonth, monthList);
|
|
|
insFeeFollowOrderLambdaQueryWrapper.eq(InsFeeFollowOrder::getPartnerCompanyId, action.getPartnerCompanyId());
|
|
|
insFeeFollowOrderLambdaQueryWrapper.in(InsFeeFollowOrder::getInvoiceType, action.getInvoiceType());
|
|
|
List<InsFeeFollowOrder> insFeeFollowOrders = insFeeFollowOrderMapper.selectList(insFeeFollowOrderLambdaQueryWrapper);
|
|
|
if (CollUtil.isNotEmpty(insFeeFollowOrders)){
|
|
|
- InsFeeFollowOrder insFeeFollowOrder = insFeeFollowOrders.stream().findAny().get();
|
|
|
+ BigDecimal bigDecimal = insFeeFollowOrders.stream().map(InsFeeFollowOrder::getReceivablePremium).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
|
|
|
// 开票金额
|
|
|
- action.setReceivableAmount(insFeeFollowOrder.getReceivablePremium().toString());
|
|
|
+ action.setReceivableAmount(bigDecimal.toString());
|
|
|
}
|
|
|
}else if (invoiceRecordQueryVo.getInvoiceTypes().contains(InvoiceTypeEnum.FEE_1.getCode())){
|
|
|
action.setReceivableAmount(action.getReceivableSupervisePremium().subtract(action.getOverinflatedAmount()).toString());
|