|
@@ -1200,7 +1200,43 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
|
|
|
queryWrapper.eq("fi.status", "5"); // 发票申请流程已通过
|
|
queryWrapper.eq("fi.status", "5"); // 发票申请流程已通过
|
|
|
queryWrapper.orderByDesc("fi.create_time");
|
|
queryWrapper.orderByDesc("fi.create_time");
|
|
|
queryWrapper.eq("fi.invalid_status", "0"); // 未作废
|
|
queryWrapper.eq("fi.invalid_status", "0"); // 未作废
|
|
|
- return cwFinanceInvoiceMapper.getByIds(queryWrapper);
|
|
|
|
|
|
|
+ List<CwFinanceInvoiceDTO> list = cwFinanceInvoiceMapper.getByIds(queryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ // 组装发票明细信息(发票号、开票金额)和 OMS 附件 URL
|
|
|
|
|
+ for (CwFinanceInvoiceDTO invoice : list) {
|
|
|
|
|
+ // 1. 查询发票明细,合并展示发票号和开票金额
|
|
|
|
|
+ List<CwFinanceInvoiceDetailDTO> detailList = cwFinanceInvoiceMapper.getFidList(invoice.getId());
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(detailList)) {
|
|
|
|
|
+ List<String> numbers = new ArrayList<>();
|
|
|
|
|
+ BigDecimal totalAmount = new BigDecimal(0);
|
|
|
|
|
+ for (CwFinanceInvoiceDetailDTO detail : detailList) {
|
|
|
|
|
+ if (StringUtils.isNotBlank(detail.getNumber())) {
|
|
|
|
|
+ numbers.add(detail.getNumber());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(detail.getAccount())) {
|
|
|
|
|
+ totalAmount = totalAmount.add(new BigDecimal(detail.getAccount()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!numbers.isEmpty()) {
|
|
|
|
|
+ invoice.setNumber(String.join(", ", numbers));
|
|
|
|
|
+ }
|
|
|
|
|
+ invoice.setAccountDetail(totalAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 查询 OMS 附件 URL
|
|
|
|
|
+ if (StringUtils.isNotBlank(invoice.getStatus()) && "5".equals(invoice.getStatus())) {
|
|
|
|
|
+ List<WorkAttachmentInfo> omsInvoiceFileList = SpringUtil.getBean(IWorkAttachmentApi.class).getByAttachmentIdListAndFlag(Arrays.asList(invoice.getId()));
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(omsInvoiceFileList)) {
|
|
|
|
|
+ for (WorkAttachmentInfo workattachment : omsInvoiceFileList) {
|
|
|
|
|
+ if (workattachment.getUrl().contains("OMS_invoice")) {
|
|
|
|
|
+ invoice.setOmsAttachmentUrl(workattachment.getUrl());
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
@@ -1286,7 +1322,41 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
|
|
|
queryWrapper.eq("fi.status", "5"); // 发票申请流程已通过
|
|
queryWrapper.eq("fi.status", "5"); // 发票申请流程已通过
|
|
|
queryWrapper.orderByDesc("fi.create_time");
|
|
queryWrapper.orderByDesc("fi.create_time");
|
|
|
queryWrapper.eq("fi.invalid_status", "0"); // 未作废
|
|
queryWrapper.eq("fi.invalid_status", "0"); // 未作废
|
|
|
- return cwFinanceInvoiceMapper.getByIds(queryWrapper);
|
|
|
|
|
|
|
+ List<CwFinanceInvoiceDTO> list = cwFinanceInvoiceMapper.getByIds(queryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ // 组装发票明细信息(发票号、开票金额)和 OMS 附件 URL
|
|
|
|
|
+ for (CwFinanceInvoiceDTO invoice : list) {
|
|
|
|
|
+ List<CwFinanceInvoiceDetailDTO> detailList = cwFinanceInvoiceMapper.getFidList(invoice.getId());
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(detailList)) {
|
|
|
|
|
+ List<String> numbers = new ArrayList<>();
|
|
|
|
|
+ BigDecimal totalAmount = new BigDecimal(0);
|
|
|
|
|
+ for (CwFinanceInvoiceDetailDTO detail : detailList) {
|
|
|
|
|
+ if (StringUtils.isNotBlank(detail.getNumber())) {
|
|
|
|
|
+ numbers.add(detail.getNumber());
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(detail.getAccount())) {
|
|
|
|
|
+ totalAmount = totalAmount.add(new BigDecimal(detail.getAccount()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!numbers.isEmpty()) {
|
|
|
|
|
+ invoice.setNumber(String.join(", ", numbers));
|
|
|
|
|
+ }
|
|
|
|
|
+ invoice.setAccountDetail(totalAmount.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (StringUtils.isNotBlank(invoice.getStatus()) && "5".equals(invoice.getStatus())) {
|
|
|
|
|
+ List<WorkAttachmentInfo> omsInvoiceFileList = SpringUtil.getBean(IWorkAttachmentApi.class).getByAttachmentIdListAndFlag(Arrays.asList(invoice.getId()));
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(omsInvoiceFileList)) {
|
|
|
|
|
+ for (WorkAttachmentInfo workattachment : omsInvoiceFileList) {
|
|
|
|
|
+ if (workattachment.getUrl().contains("OMS_invoice")) {
|
|
|
|
|
+ invoice.setOmsAttachmentUrl(workattachment.getUrl());
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return list;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|