demand: 保留原sql重起一个sql

committer: heyu
This commit is contained in:
aike 2025-05-26 14:41:38 +08:00
parent e544d35378
commit 883099679a
3 changed files with 217 additions and 2 deletions

View File

@ -41,6 +41,14 @@ public interface EmisSettleInvoiceChRecordMapper extends BaseMapper<EmisSettleIn
*/
public List<EmisSettleInvoiceChRecord> selectEmisSettleInvoiceChRecordList(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord);
/**
* 查询列表
*
* @param emisSettleInvoiceChRecord
* @return 集合
*/
public List<EmisSettleInvoiceChRecord> selectEmisSettleInvoiceChRecordListAll(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord);
/**
* 获取待查询状态的数据

View File

@ -111,7 +111,7 @@ public class EmisSettleInvoiceChRecordServiceImpl extends EmisBaseService implem
public List<EmisSettleInvoiceChRecord> selectEmisSettleInvoiceChRecordList(EmisSettleInvoiceChRecord emisSettleInvoiceChRecord)
{
long startTime = System.currentTimeMillis();
List<EmisSettleInvoiceChRecord> emisSettleInvoiceChRecords = emisSettleInvoiceChRecordMapper.selectEmisSettleInvoiceChRecordList(emisSettleInvoiceChRecord);
List<EmisSettleInvoiceChRecord> emisSettleInvoiceChRecords = emisSettleInvoiceChRecordMapper.selectEmisSettleInvoiceChRecordListAll(emisSettleInvoiceChRecord);
long endTime = System.currentTimeMillis();
log.info("查询渠道开票记录列表完成, 耗时: {}ms", (endTime - startTime));
return emisSettleInvoiceChRecords;

View File

@ -111,7 +111,214 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, req_no, apply_seq_no, bl_ecinv, invoice_type, real_invoice_type, company_name, company_tax_no, company_tel, company_address, bank_name, bank_acc_no, contact, phone, tax_rate, open_money, email, saler_company_name, saler_company_tax_no, saler_company_tel, saler_company_address, saler_bank_name, saler_bank_acc_no, saler_contact, saler_phone, saler_checker, saler_payee, invoice_no, file_path, qr_path, op_man_code, op_date, op_site_code, open_ch_id, open_ch_status, open_ch_status_desc, open_com_code, ext_data, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_settle_invoice_ch_record
</sql>
<select id="selectEmisSettleInvoiceChRecordList" parameterType="EmisSettleInvoiceChRecord" resultMap="EmisSettleInvoiceChRecordListResult">
<select id="selectEmisSettleInvoiceChRecordList" parameterType="EmisSettleInvoiceChRecord" resultMap="EmisSettleInvoiceChRecordResult">
SELECT
a.id, a.req_no, a.apply_seq_no, a.bl_ecinv, a.invoice_type, a.real_invoice_type, a.company_name, a.company_tax_no, a.company_tel,
a.company_address, a.bank_name, a.bank_acc_no, a.contact, a.phone, a.tax_rate, a.open_money, a.email, a.saler_company_name, a.saler_company_tax_no,
a.saler_company_tel, a.saler_company_address, a.saler_bank_name, a.saler_bank_acc_no, a.saler_contact, a.saler_phone, a.saler_checker, a.saler_payee,
a.invoice_no, a.file_path, a.qr_path, a.op_man_code, a.op_date, a.op_site_code, a.open_ch_id, a.open_ch_status, a.open_ch_status_desc, a.open_com_code,
a.ext_data, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time, a.create_site, a.update_site,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(SUBSTRING(DATE_FORMAT(w.send_date, '%Y'), 3, 2), DATE_FORMAT(w.send_date, '%m')))
FROM emis_waybill w
INNER JOIN emis_settle_invoice_rel ir ON w.bill_code = ir.bill_no
WHERE ir.apply_seq_no = a.apply_seq_no) as send_month,
(SELECT b.settle_type
FROM emis_settle_bill b
INNER JOIN emis_settle_invoice_bill_rel r ON b.settle_bill_no = r.settle_bill_no
WHERE r.apply_seq_no = a.apply_seq_no
LIMIT 1) as settle_type,
CASE
WHEN (SELECT b.settle_type
FROM emis_settle_bill b
INNER JOIN emis_settle_invoice_bill_rel r ON b.settle_bill_no = r.settle_bill_no
WHERE r.apply_seq_no = a.apply_seq_no
LIMIT 1) = '2'
THEN (
SELECT GROUP_CONCAT(DISTINCT
CONCAT(
CONCAT(SUBSTRING(DATE_FORMAT(w.send_date, '%Y'), 3, 2), DATE_FORMAT(w.send_date, '%m ')),
b.cust_name
) SEPARATOR '-'
)
FROM emis_waybill w
INNER JOIN emis_settle_invoice_rel ir ON w.bill_code = ir.bill_no
INNER JOIN emis_settle_invoice_bill_rel r ON ir.apply_seq_no = r.apply_seq_no
INNER JOIN emis_settle_bill b ON r.settle_bill_no = b.settle_bill_no
WHERE ir.apply_seq_no = a.apply_seq_no
)
ELSE (
SELECT GROUP_CONCAT(DISTINCT
CONCAT(
DATE_FORMAT(w.send_date, '%m%d '),
w.send_company
) SEPARATOR '-'
)
FROM emis_waybill w
INNER JOIN emis_settle_invoice_rel ir ON w.bill_code = ir.bill_no
WHERE ir.apply_seq_no = a.apply_seq_no
)
END as open_bill_remark,
(SELECT GROUP_CONCAT(DISTINCT
CONCAT(
DATE_FORMAT(pr.trade_date, '%m/%d'),
' 已付(',
CASE pr.pay_type
WHEN '1' THEN '企业微信收款'
WHEN '2' THEN '工行汇款3890'
WHEN '3' THEN '微信支付'
WHEN '4' THEN '支付宝'
WHEN '5' THEN '其他'
WHEN '6' THEN '招行付款'
ELSE pr.pay_type
END,
')'
)
)
FROM emis_settle_pay_record pr
INNER JOIN emis_settle_pay_bill_rel pbr ON pr.pay_id = pbr.pay_id
INNER JOIN emis_settle_invoice_bill_rel ibr ON ibr.settle_bill_no = pbr.settle_bill_no
WHERE ibr.apply_seq_no = a.apply_seq_no) as pay_days
FROM emis_settle_invoice_ch_record a
<where>
del_flag='0'
<if test="id != null "> and id = #{id}</if>
<if test="reqNo != null and reqNo != ''"> and req_no = #{reqNo}</if>
<if test="applySeqNo != null and applySeqNo != ''"> and apply_seq_no = #{applySeqNo}</if>
<if test="blEcinv != null and blEcinv != ''"> and bl_ecinv = #{blEcinv}</if>
<if test="invoiceType != null and invoiceType != ''"> and invoice_type = #{invoiceType}</if>
<if test="realInvoiceType != null and realInvoiceType != ''"> and real_invoice_type = #{realInvoiceType}</if>
<if test="companyName != null and companyName != ''"> and company_name = #{companyName}</if>
<if test="companyTaxNo != null and companyTaxNo != ''"> and company_tax_no = #{companyTaxNo}</if>
<if test="companyTel != null and companyTel != ''"> and company_tel = #{companyTel}</if>
<if test="companyAddress != null and companyAddress != ''"> and company_address = #{companyAddress}</if>
<if test="bankName != null and bankName != ''"> and bank_name = #{bankName}</if>
<if test="bankAccNo != null and bankAccNo != ''"> and bank_acc_no = #{bankAccNo}</if>
<if test="contact != null and contact != ''"> and contact = #{contact}</if>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
<if test="taxRate != null and taxRate != ''"> and tax_rate = #{taxRate}</if>
<if test="openMoney != null "> and open_money = #{openMoney}</if>
<if test="email != null and email != ''"> and email = #{email}</if>
<if test="salerCompanyName != null and salerCompanyName != ''"> and saler_company_name = #{salerCompanyName}</if>
<if test="salerCompanyTaxNo != null and salerCompanyTaxNo != ''"> and saler_company_tax_no = #{salerCompanyTaxNo}</if>
<if test="salerCompanyTel != null and salerCompanyTel != ''"> and saler_company_tel = #{salerCompanyTel}</if>
<if test="salerCompanyAddress != null and salerCompanyAddress != ''"> and saler_company_address = #{salerCompanyAddress}</if>
<if test="salerBankName != null and salerBankName != ''"> and saler_bank_name = #{salerBankName}</if>
<if test="salerBankAccNo != null and salerBankAccNo != ''"> and saler_bank_acc_no = #{salerBankAccNo}</if>
<if test="salerContact != null and salerContact != ''"> and saler_contact = #{salerContact}</if>
<if test="salerPhone != null and salerPhone != ''"> and saler_phone = #{salerPhone}</if>
<if test="invoiceNo != null and invoiceNo != ''"> and invoice_no = #{invoiceNo}</if>
<if test="filePath != null and filePath != ''"> and file_path like concat('%', #{filePath}, '%')</if>
<if test="qrPath != null and qrPath != ''"> and qr_path like concat('%', #{qrPath}, '%')</if>
<if test="opManCode != null and opManCode != ''"> and op_man_code = #{opManCode}</if>
<if test="opDate != null "> and op_date = #{opDate}</if>
<if test="opSiteCode != null and opSiteCode != ''"> and op_site_code = #{opSiteCode}</if>
<if test="openChId != null and openChId != ''"> and open_ch_id = #{openChId}</if>
<if test="openChStatus != null and openChStatus != ''"> and open_ch_status = #{openChStatus}</if>
<if test="openChStatusDesc != null and openChStatusDesc != ''"> and open_ch_status_desc like concat('%', #{openChStatusDesc}, '%')</if>
<if test="openComCode != null and openComCode != ''"> and open_com_code = #{openComCode}</if>
<if test="extData != null and extData != ''"> and ext_data like concat('%', #{extData}, '%')</if>
<if test="remark != null and remark != ''"> and remark like concat('%', #{remark}, '%')</if>
<if test="delFlag != null and delFlag != ''"> and del_flag like concat('%', #{delFlag}, '%')</if>
<if test="createBy != null and createBy != ''"> and create_by like concat('%', #{createBy}, '%')</if>
<if test="createTime != null "> and create_time = #{createTime}</if>
<if test="updateBy != null and updateBy != ''"> and update_by like concat('%', #{updateBy}, '%')</if>
<if test="updateTime != null "> and update_time = #{updateTime}</if>
<if test="createSite != null and createSite != ''"> and create_site like concat('%', #{createSite}, '%')</if>
<if test="updateSite != null and updateSite != ''"> and update_site like concat('%', #{updateSite}, '%')</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != ''">
and create_time <![CDATA[ >= ]]> #{params.beginCreateTime}
</if>
<if test="params.endCreateTime != null and params.endCreateTime != ''">
and create_time <![CDATA[ <= ]]> #{params.endCreateTime}
</if>
<if test="params.billCode != null and params.billCode != ''">
and EXISTS(
select 1 from emis_settle_bill x2,emis_settle_invoice_bill_rel x3,emis_settle_sub_bill x4
where x2.del_flag = '0' and x3.del_flag = '0' and x4.del_flag='0'
and a.apply_seq_no=x3.apply_seq_no
and x2.settle_bill_no=x3.settle_bill_no
and x4.settle_bill_no=x2.settle_bill_no
and FIND_IN_SET(x4.`bill_code`,#{params.billCode})
)
<!--
AND apply_seq_no IN (
SELECT x1.apply_seq_no FROM
emis_settle_invoice_record x1,
emis_settle_bill x2
WHERE
x1.del_flag = '0'
AND x2.del_flag = '0'
AND FIND_IN_SET( x2.settle_bill_no, x1.settle_bill_no )
AND exists (
select 1 from emis_settle_sub_bill b
where x2.settle_bill_no=b.settle_bill_no
and ( FIND_IN_SET(b.`bill_code`,#{params.billCode}) or b.bill_code like concat('%', #{params.billCode}, '%') )
)
)
-->
</if>
<if test="params.settleBillNo != null and params.settleBillNo != ''">
<!--
AND apply_seq_no IN (
SELECT x1.apply_seq_no FROM emis_settle_invoice_record x1,emis_settle_bill x2
WHERE x1.del_flag = '0' AND x2.del_flag = '0'
AND FIND_IN_SET( x2.settle_bill_no, x1.settle_bill_no )
AND x2.settle_bill_no=#{params.settleBillNo}
)
-->
and EXISTS(
select 1 from emis_settle_invoice_bill_rel x3
where x3.del_flag = '0'
and a.apply_seq_no=x3.apply_seq_no
AND FIND_IN_SET(x3.settle_bill_no, #{settleBillNo})
)
</if>
<if test="params.privSiteCode != null and params.privSiteCode != '88888'">
and EXISTS(
select 1 from emis_settle_bill x2,emis_settle_invoice_bill_rel x3
where x2.del_flag = '0' and x3.del_flag = '0'
and a.apply_seq_no=x3.apply_seq_no and x2.settle_bill_no=x3.settle_bill_no
AND (
x2.salesmen = #{params.privEmpName}
OR x2.payee = #{params.privEmpName}
OR x2.salesmen IN (
SELECT salesmen
FROM emis_salesmen_rel esr
where esr.del_flag='0' and esr.bl_open='1'
and now() <![CDATA[ >= ]]> esr.start_date and now() <![CDATA[ <= ]]> esr.end_date
and esr.sales_ass = #{params.privEmpName}
)
)
)
<!--
AND apply_seq_no IN (
SELECT x1.apply_seq_no FROM
emis_settle_invoice_record x1,
emis_settle_bill x2
WHERE x1.del_flag = '0' AND x2.del_flag = '0'
AND FIND_IN_SET( x2.settle_bill_no, x1.settle_bill_no )
AND exists (
select 1 from emis_settle_sub_bill b
where x2.settle_bill_no=b.settle_bill_no
and ( b.salesmen=#{params.privEmpName} or b.payee=#{params.privEmpName}
or b.salesmen in(select salesmen from emis_salesmen_rel esr where esr.del_flag='0' and esr.bl_open='1' and now() <![CDATA[ >= ]]> esr.start_date and now() <![CDATA[ <= ]]> esr.end_date and esr.sales_ass=#{params.privEmpName})
)
)
) -->
</if>
</where>
order by create_time desc
</select>
<select id="selectEmisSettleInvoiceChRecordListAll" parameterType="EmisSettleInvoiceChRecord" resultMap="EmisSettleInvoiceChRecordListResult">
SELECT
a.*,
bi.bill_month,