|
|
@@ -202,6 +202,10 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
*/
|
|
|
@Override
|
|
|
public HttpResult<List<ContractVO>> queryReceivableContact(InvoicingVo invoicingVo) {
|
|
|
+ List<String> incomeIds = invoicingVo.getIncomeIds();
|
|
|
+ if(CollUtil.isEmpty(incomeIds)){
|
|
|
+ return HttpResult.error("请勾选未结算的订单数据");
|
|
|
+ }
|
|
|
List<InsPlyIncome> insPlyIncomes = baseMapper.queryIncomeByIds(invoicingVo);
|
|
|
List<ContractVO> contractVOS = insPlyIncomes.stream().map(action -> new ContractVO(action.getContactPerson(), action.getContactPersonPhone())).distinct().toList();
|
|
|
log.info("根据订单编号查询得到的对接人信息[{}]个", CollUtil.size(contractVOS));
|
|
|
@@ -1467,12 +1471,66 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
return importExcelResultVo;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 平台协议结算
|
|
|
+ *
|
|
|
+ * @param settlementId 平台协议结算记录的序号
|
|
|
+ * @author lipf
|
|
|
+ * @date 2026/6/22 11:40
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpResult<String> deletePlatformSettlementById(String settlementId) {
|
|
|
+ log.info("平台删除结算记录。settlementId=[{}]",settlementId);
|
|
|
+ InsPlyIncomeInvoiceSettlement settlement = insPlyIncomeInvoiceSettlementMapper.selectById(settlementId);
|
|
|
+ if(settlement == null){
|
|
|
+ log.info("平台删除结算记录.序号为[{}]的结算记录不存在", settlementId);
|
|
|
+ throw new SystemException("结算记录不存在");
|
|
|
+ }
|
|
|
+ String invoiceId = settlement.getInvoiceId();
|
|
|
+ if (StrUtil.isBlank(invoiceId)){
|
|
|
+ throw new SystemException("结算记录id不存在");
|
|
|
+ }
|
|
|
+ insPlyIncomeInvoiceMapper.deleteById(invoiceId);
|
|
|
+ // 查询中间表:使用 QueryWrapper,增加逻辑删除过滤
|
|
|
+ LambdaQueryWrapper<InsPlyIncomeInvoiceLink> linkQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ linkQueryWrapper.eq(InsPlyIncomeInvoiceLink::getInvoiceId, invoiceId);
|
|
|
+ linkQueryWrapper.eq(InsPlyIncomeInvoiceLink::getIsDelete, SETTLE_STATUS_RESET);
|
|
|
+ List<InsPlyIncomeInvoiceLink> linkList = insPlyIncomeInvoiceLinkMapper.selectList(linkQueryWrapper);
|
|
|
+
|
|
|
+ if(CollUtil.isNotEmpty(linkList)){
|
|
|
+ for (InsPlyIncomeInvoiceLink insPlyIncomeInvoiceLink : linkList) {
|
|
|
+ insPlyIncomeInvoiceLinkMapper.deleteByInvoiceId(insPlyIncomeInvoiceLink.getInvoiceId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 提取incomeId列表
|
|
|
+ List<String> incomeIds = linkList.stream()
|
|
|
+ .map(InsPlyIncomeInvoiceLink::getIncomeId)
|
|
|
+ .distinct()
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 构造更新条件,增加主表逻辑删除过滤
|
|
|
+ LambdaUpdateWrapper<InsPlyIncome> incomeUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ incomeUpdateWrapper.set(InsPlyIncome::getSettlementStatus, SETTLE_STATUS_RESET)
|
|
|
+ .set(InsPlyIncome::getSuperviseSettlement, SETTLE_STATUS_RESET)
|
|
|
+ .set(InsPlyIncome::getOtherSettlement, SETTLE_STATUS_RESET)
|
|
|
+ .set(InsPlyIncome::getJySuperviseSettlement, SETTLE_STATUS_RESET)
|
|
|
+ .set(InsPlyIncome::getJyOtherSettlement, SETTLE_STATUS_RESET)
|
|
|
+ .eq(InsPlyIncome::getIsDelete, SETTLE_STATUS_RESET)
|
|
|
+ .in(InsPlyIncome::getId, incomeIds);
|
|
|
+
|
|
|
+ // 执行更新
|
|
|
+ baseMapper.update(null, incomeUpdateWrapper);
|
|
|
+ insPlyIncomeInvoiceSettlementMapper.deleteById(settlementId);
|
|
|
+ return HttpResult.ok("删除结算记录成功");
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean deleteSettlementById(String id) {
|
|
|
- log.info("私有协议-结算记录-删除: id=[{}]",id);
|
|
|
- InsPlyIncomeInvoiceSettlement settlement = insPlyIncomeInvoiceSettlementMapper.selectById(id);
|
|
|
+ public boolean deleteSettlementById(String settlementId) {
|
|
|
+ log.info("私有协议-结算记录-删除: id=[{}]", settlementId);
|
|
|
+ InsPlyIncomeInvoiceSettlement settlement = insPlyIncomeInvoiceSettlementMapper.selectById(settlementId);
|
|
|
if(settlement == null){
|
|
|
+ log.info("序号为[{}]的结算记录不存在", settlementId);
|
|
|
throw new SystemException("结算记录不存在");
|
|
|
}
|
|
|
String invoiceId = settlement.getInvoiceId();
|
|
|
@@ -1508,7 +1566,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
// 执行更新
|
|
|
baseMapper.update(null, incomeUpdateWrapper);
|
|
|
}
|
|
|
- return insPlyIncomeInvoiceSettlementMapper.deleteById(id) > 0;
|
|
|
+ return insPlyIncomeInvoiceSettlementMapper.deleteById(settlementId) > 0;
|
|
|
}
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -2208,7 +2266,6 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean batchModify(BatchModifyVo batchModifyVo) {
|
|
|
log.info("批量修改应收订单: batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
|
|
|
-
|
|
|
List<String> incomeIds = batchModifyVo.getIncomeIds();
|
|
|
if (CollUtil.isEmpty(incomeIds)) {
|
|
|
throw new ServiceException("请勾选要批量修改的应收订单");
|
|
|
@@ -2292,7 +2349,6 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
batchModifyVo.setOrderNos(orderNos);
|
|
|
HttpResult<String> updateOrdersRes = insFeeOrdersClient.updateOrdersBatch(batchModifyVo);
|
|
|
log.info("更新车险订单的结果:updateOrdersRes=[{}]", JSONUtil.toJsonStr(updateOrdersRes));
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
@@ -3778,6 +3834,18 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
action.setCompanyName(esmInsCompany.getNameSimple());
|
|
|
}
|
|
|
action.setCompanyALlName(allCompanyHierarchyPaths.get(action.getCompanyId()));
|
|
|
+ String invoiceIds = action.getInvoiceIds();
|
|
|
+ if(StrUtil.isNotEmpty(invoiceIds)){
|
|
|
+ List<String> invoiceIdList = Arrays.asList(invoiceIds.split(","));
|
|
|
+ log.info("invoiceIdList.size=[{}]", CollUtil.size(invoiceIdList));
|
|
|
+ log.info("invoiceIdList=[{}]", JSONUtil.toJsonStr(invoiceIdList));
|
|
|
+ BigDecimal amount = baseMapper.querySettledAmountByInvoiceIds(invoiceIdList);
|
|
|
+ action.setSettledAmount(Objects.toString(amount,"0"));
|
|
|
+ action.setUnSettledAmount(BigDecimalUtil.subtract(new BigDecimal(action.getTotalReceivable()),amount).toString());
|
|
|
+ }else{
|
|
|
+ action.setSettledAmount("0");
|
|
|
+ action.setUnSettledAmount(BigDecimalUtil.subtract(new BigDecimal(action.getTotalReceivable()),BigDecimal.ZERO).toString());
|
|
|
+ }
|
|
|
}).toList();
|
|
|
receiverSettlementReport.setRecords(records);
|
|
|
}
|
|
|
@@ -3787,7 +3855,8 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
|
|
|
@Override
|
|
|
public void exportReceiverSettlementReportExcel(Page page, SettlementReportQueryVo settlementReportQueryVo) {
|
|
|
settlementReportQueryVo.setSystemCode(baseController.getSystemCode());
|
|
|
- Page<ReceiverSettlementReportDto> receiverSettlementReport = baseMapper.getReceiverSettlementReport(page, settlementReportQueryVo);
|
|
|
+ // modify by lipf 2026年6月22日16:24:15 无法通过一个sql查询出所有要求的数据, 只能通过多个sql对数据进行聚合
|
|
|
+ Page<ReceiverSettlementReportDto> receiverSettlementReport = this.receiverSettlementReport(page, settlementReportQueryVo);
|
|
|
List<ReceiverSettlementReportDto> receiverSettlementReportDtos = receiverSettlementReport.getRecords();
|
|
|
EasyExcelUtils.exportForWeb(ServletUtils.getResponse(), ReceiverSettlementReportDto.class, receiverSettlementReportDtos, "对接人结算报表");
|
|
|
}
|