diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWriteoffApplyController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWriteoffApplyController.java index 9919088de..f54c80327 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWriteoffApplyController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWriteoffApplyController.java @@ -124,6 +124,23 @@ public class EmisWriteoffApplyController extends EmisBaseController { }) .reduce(BigDecimal.ZERO, BigDecimal::add); apply.setApplyRecMoney(totalAmount); + + // 提取发票号列表(去重) + List invoiceNos = apply.getDetailList().stream() + .filter(detail -> detail != null && detail.getInvoiceNo() != null) + .flatMap(detail -> { + // 如果invoiceNo包含逗号,先拆分 + String invoiceNo = detail.getInvoiceNo().trim(); + if (invoiceNo.isEmpty()) { + return java.util.stream.Stream.empty(); + } + return Arrays.stream(invoiceNo.split(",")) + .map(String::trim) + .filter(no -> !no.isEmpty()); + }) + .distinct() + .collect(Collectors.toList()); + apply.setInvoiceNo(invoiceNos.isEmpty() ? "" : String.join(",", invoiceNos)); } } } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApply.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApply.java index 24de92fff..d56d2ac21 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApply.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApply.java @@ -80,6 +80,9 @@ public class EmisWriteoffApply extends BaseEntity { /* 收款来源 1-微信支付2支付宝 3-对公 */ private String payType; + /* 发票号 */ + private String invoiceNo; + /* 交易时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date tradeDate; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApplyDetail.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApplyDetail.java index d53b14da0..e1fff8d69 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApplyDetail.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWriteoffApplyDetail.java @@ -72,4 +72,6 @@ public class EmisWriteoffApplyDetail extends BaseEntity { @Excel(name = "快件类型") private String expressType; + /* 发票号(只作查询) */ + private String invoiceNo; } diff --git a/emis-biz/src/main/resources/mapper/EmisWriteoffApplyDetailMapper.xml b/emis-biz/src/main/resources/mapper/EmisWriteoffApplyDetailMapper.xml index 15d419ffb..6e65e7f56 100644 --- a/emis-biz/src/main/resources/mapper/EmisWriteoffApplyDetailMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWriteoffApplyDetailMapper.xml @@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -242,7 +243,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ssb.bl_sensitive as ssb_bl_sensitive, ssb.bl_confirm_center as ssb_bl_confirm_center, ssb.confirm_center_date as ssb_confirm_center_date, ssb.confirm_center_note as ssb_confirm_center_note, ssb.confirm_center_man_code as ssb_confirm_center_man_code, ssb.confirm_center_code as ssb_confirm_center_code, ssb.bl_confirm_site as ssb_bl_confirm_site, ssb.confirm_site_date as ssb_confirm_site_date, - ssb.confirm_site_man_code as ssb_confirm_site_man_code, ssb.confirm_site_note as ssb_confirm_site_note, ssb.confirm_site_code as ssb_confirm_site_code + ssb.confirm_site_man_code as ssb_confirm_site_man_code, ssb.confirm_site_note as ssb_confirm_site_note, ssb.confirm_site_code as ssb_confirm_site_code, + GROUP_CONCAT(DISTINCT ch.invoice_no ORDER BY ch.invoice_no SEPARATOR ',') as invoice_no from emis_writeoff_apply_detail wad left join emis_waybill w on wad.bill_code = w.bill_code and w.del_flag = '0' left join emis_trans_product tp on w.product_type = tp.prod_code and tp.del_flag = '0' @@ -250,6 +252,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join emis_settle_sub_bill ssb on wad.bill_code = ssb.bill_code and ssb.del_flag = '0' left join emis_site send_site on w.send_site_code = send_site.site_code and send_site.del_flag = '0' left join emis_site dest_site on w.dispatch_underling_site_code = dest_site.site_code and dest_site.del_flag = '0' + left join emis_settle_invoice_bill_rel sibr on ssb.settle_bill_no = sibr.settle_bill_no and sibr.del_flag = '0' + left join emis_settle_invoice_record sir on sibr.apply_seq_no = sir.apply_seq_no and sir.del_flag = '0' + left join ( + select ch1.* + from emis_settle_invoice_ch_record ch1 + inner join ( + select apply_seq_no, max(id) as max_id + from emis_settle_invoice_ch_record + where del_flag = '0' + group by apply_seq_no + ) ch2 on ch1.apply_seq_no = ch2.apply_seq_no and ch1.id = ch2.max_id + where ch1.del_flag = '0' + ) ch on sir.apply_seq_no = ch.apply_seq_no @@ -275,17 +290,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and wad.settle_bill_no = #{settleBillNo} and wad.apply_money = #{applyMoney} + group by wad.id, wad.apply_id, wad.apply_no, wad.bill_code order by wad.create_time desc @@ -348,6 +366,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/emis-biz/src/main/resources/mapper/EmisWriteoffApplyMapper.xml b/emis-biz/src/main/resources/mapper/EmisWriteoffApplyMapper.xml index 10bf15792..aecd9b7ef 100644 --- a/emis-biz/src/main/resources/mapper/EmisWriteoffApplyMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWriteoffApplyMapper.xml @@ -59,7 +59,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from emis_writeoff_apply wa left join emis_writeoff_apply_detail wad on wa.id = wad.apply_id and wad.del_flag = '0' - + left join emis_settle_sub_bill ssb on wad.bill_code = ssb.bill_code and ssb.del_flag = '0' + left join emis_settle_invoice_bill_rel sibr on ssb.settle_bill_no = sibr.settle_bill_no and sibr.del_flag = '0' + left join emis_settle_invoice_record sir on sibr.apply_seq_no = sir.apply_seq_no and sir.del_flag = '0' + left join ( + select ch1.* + from emis_settle_invoice_ch_record ch1 + inner join ( + select apply_seq_no, max(id) as max_id + from emis_settle_invoice_ch_record + where del_flag = '0' + group by apply_seq_no + ) ch2 on ch1.apply_seq_no = ch2.apply_seq_no and ch1.id = ch2.max_id + where ch1.del_flag = '0' + ) ch on sir.apply_seq_no = ch.apply_seq_no left join emis_settle_bill sb on wad.settle_bill_no = sb.settle_bill_no and sb.del_flag = '0' @@ -92,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and wa.revoke_man_name like concat('%', #{revokeManName}, '%') and wa.revoke_reason like concat('%', #{revokeReason}, '%') and sb.settle_bill_name like concat('%', #{settleBillName}, '%') + and wa.pay_type = #{payType} and ( wad.bill_code in @@ -102,6 +116,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{param} + or ch.invoice_no in + + #{param} + ) @@ -381,6 +399,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -523,11 +542,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"