|
|
@@ -656,262 +656,231 @@
|
|
|
GROUP BY acc.corp_id,acc.mblno,acc.hblno, acc.branch_id
|
|
|
ORDER BY acc.corp_id,acc.mblno,acc.hblno, acc.branch_id
|
|
|
</select>
|
|
|
- <select id="feeSummaryDetailExportNotList"
|
|
|
- resultType="org.springblade.los.statisticAnalysis.FeeSummaryDetailNotRD">
|
|
|
- SELECT
|
|
|
- acc.corp_id,acc.corp_cn_name corpName, acc.branch_id,
|
|
|
- acc.business_bill_no billNo,
|
|
|
- acc.vessel_en_name vesselName,
|
|
|
- acc.voyage_no voyageNo,
|
|
|
- acc.mblno mblNo,
|
|
|
- acc.hblno hblNo,
|
|
|
- acc.business_type businessType,
|
|
|
- acc.business_date AS etd,
|
|
|
- acc.pod_en_name pod,
|
|
|
- acc.pol_en_name pol,
|
|
|
- acc.quantity_cntr_descr quantityCntrDescr,
|
|
|
- acc.branch_name as branchId,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr_usd-stl_amount_dr_usd) WHEN 'C' THEN (acc.amount_cr_usd-stl_amount_cr_usd) ELSE 0 END ) ) AS amountUsdNot,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr-acc.stl_amount_dr) WHEN 'C' THEN (acc.amount_cr-acc.stl_amount_cr) ELSE 0 END ) ) AS amountNot,
|
|
|
- SUM(IF(uninvoiced_amount,uninvoiced_amount,0)) AS amountInvoicing,
|
|
|
- SUM(IF(uninvoiced_amount_usd,uninvoiced_amount_usd,0)) AS amountInvoicingUsd,
|
|
|
- SUM(acc.amount_dr-IF(uninvoiced_amount,uninvoiced_amount,0)) AS amountInvoicingNot,
|
|
|
- SUM(acc.amount_dr_usd-IF(uninvoiced_amount_usd,uninvoiced_amount_usd,0)) AS amountInvoicingUsdNot,
|
|
|
- acc.src_cn_name srcCnName,
|
|
|
- acc.operator_name operatorName
|
|
|
- FROM
|
|
|
- los_fin_acc_bills acc
|
|
|
- WHERE
|
|
|
- acc.is_deleted = '0'
|
|
|
- <if test='fee.dc != null and fee.dc != "" and fee.dc == "D"'>
|
|
|
- and (acc.amount_dr_usd-stl_amount_dr_usd != 0 or acc.amount_dr-acc.stl_amount_dr != 0)
|
|
|
- </if>
|
|
|
- <if test='fee.dc != null and fee.dc != "" and fee.dc == "C"'>
|
|
|
- and (acc.amount_cr_usd-stl_amount_cr_usd != 0 or acc.amount_cr-acc.stl_amount_cr != 0)
|
|
|
- </if>
|
|
|
- <if test='fee.tenantId != null and fee.tenantId != ""'>
|
|
|
- and acc.tenant_id = #{fee.tenantId}
|
|
|
- </if>
|
|
|
- <if test="fee.billNo != null and fee.billNo != ''">
|
|
|
- and acc.business_bill_no like concat('%', #{fee.billNo}, '%')
|
|
|
- </if>
|
|
|
- <if test="fee.mblNo != null and fee.mblNo != ''">
|
|
|
- and acc.mblno like concat('%', #{fee.mblNo}, '%')
|
|
|
- </if>
|
|
|
- <if test="fee.hblNo != null and fee.hblNo != ''">
|
|
|
- and acc.hblNo like concat('%', #{fee.hblNo}, '%')
|
|
|
- </if>
|
|
|
- <if test='fee.vesselId != null and fee.vesselId != ""'>
|
|
|
- and acc.vessel_id = #{fee.vesselId}
|
|
|
- </if>
|
|
|
- <if test='fee.voyageNo != null and fee.voyageNo != ""'>
|
|
|
- and acc.voyage_no = #{fee.voyageNo}
|
|
|
- </if>
|
|
|
- <if test='fee.branchId != null and fee.branchId != ""'>
|
|
|
- and acc.branch_id = #{fee.branchId}
|
|
|
- </if>
|
|
|
- <if test='fee.billBranchId != null and fee.billBranchId != ""'>
|
|
|
- and acc.bill_branch_id = #{fee.billBranchId}
|
|
|
- </if>
|
|
|
- <if test='fee.teamId != null and fee.teamId != ""'>
|
|
|
- and acc.team_id = #{fee.teamId}
|
|
|
- </if>
|
|
|
- <if test='fee.dc != null and fee.dc != ""'>
|
|
|
- and acc.account_dc = #{fee.dc}
|
|
|
- </if>
|
|
|
- <if test='fee.billType != null and fee.billType != ""'>
|
|
|
- and find_in_set(acc.bill_type , #{fee.billType})
|
|
|
- </if>
|
|
|
- <if test='fee.businessType != null and fee.businessType != ""'>
|
|
|
- and acc.business_type = #{fee.businessType}
|
|
|
- </if>
|
|
|
- <if test='fee.clientId != null'>
|
|
|
- and acc.bill_corp_id = #{fee.clientId}
|
|
|
- </if>
|
|
|
- <if test='fee.corpId != null'>
|
|
|
- and acc.corp_id = #{fee.corpId}
|
|
|
- </if>
|
|
|
- <if test='fee.srcId != null'>
|
|
|
- and acc.src_id = #{fee.srcId}
|
|
|
- </if>
|
|
|
- <if test='fee.isBusinessDate != null and fee.isBusinessDate != "" and fee.isBusinessDate == "1"'>
|
|
|
- <if test='fee.etdStart != null and fee.etdStart != ""'>
|
|
|
- and acc.business_date >= #{fee.etdStart}
|
|
|
- </if>
|
|
|
- <if test='fee.etdEnd != null and fee.etdEnd != ""'>
|
|
|
- and acc.business_date <= #{fee.etdEnd}
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test='fee.isToExamineDate != null and fee.isToExamineDate != "" and fee.isToExamineDate == "1"'>
|
|
|
- <if test='fee.etdStart != null and fee.etdStart != ""'>
|
|
|
- and acc.approved_date >= #{fee.etdStart}
|
|
|
- </if>
|
|
|
- <if test='fee.etdEnd != null and fee.etdEnd != ""'>
|
|
|
- and acc.approved_date <= #{fee.etdEnd}
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- GROUP BY acc.corp_id,acc.mblno,acc.hblno, acc.branch_id
|
|
|
- ORDER BY acc.corp_id,acc.mblno,acc.hblno
|
|
|
- </select>
|
|
|
<select id="agingAnalysis" resultType="org.springblade.los.statisticAnalysis.AgingAnalysisRD">
|
|
|
SELECT
|
|
|
- <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
|
|
|
- acc.corp_cn_name corpName,
|
|
|
- </if>
|
|
|
- <if test='fee.type != null and fee.type != "" and fee.type == "2"'>
|
|
|
- acc.bill_corp_cn_name corpName,
|
|
|
- </if>
|
|
|
- <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
|
|
|
- acc.src_cn_name corpName,
|
|
|
- </if>
|
|
|
- <if test='fee.type == null or fee.type == ""'>
|
|
|
- acc.corp_cn_name corpName,
|
|
|
- </if>
|
|
|
- acc.bill_no billNo,
|
|
|
- acc.mblno mblNo,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr_usd-stl_amount_dr_usd) WHEN 'C' THEN (acc.amount_cr_usd-stl_amount_cr_usd) ELSE 0 END ) ) AS amountUsdArrears,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr-acc.stl_amount_dr) WHEN 'C' THEN (acc.amount_cr-acc.stl_amount_cr) ELSE 0 END ) ) AS amountArrears,
|
|
|
- SUM(IF(uninvoiced_amount,uninvoiced_amount,0)) AS amountInvoicing,
|
|
|
- SUM(IF(uninvoiced_amount_usd,uninvoiced_amount_usd,0)) AS amountInvoicingUsd,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr_loc) WHEN 'C' THEN (acc.amount_cr_loc) ELSE 0 END ) ) AS amountAnswer,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.stl_amount_dr_loc) WHEN 'C' THEN (acc.stl_amount_cr_loc) ELSE 0 END ) ) AS amountSolid,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0)) ELSE 0 END ) ) AS thirty,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)<CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)<CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS thirtyToSixty,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)<=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)>CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS sixtyToNinety,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)<=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)>CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS ninetyToOneHundredAndEighty,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)<CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)<CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0)) ELSE 0 END ) ) AS oneHundredAndEighty,
|
|
|
- acc.operator_name operatorName,
|
|
|
- acc.business_date AS etd,
|
|
|
- acc.create_user_name creatorName
|
|
|
- FROM
|
|
|
- los_fin_acc_bills acc
|
|
|
- WHERE
|
|
|
- acc.is_deleted = '0'
|
|
|
- <if test='fee.tenantId != null and fee.tenantId != ""'>
|
|
|
- and acc.tenant_id = #{fee.tenantId}
|
|
|
- </if>
|
|
|
+ <choose>
|
|
|
+ <when test='fee.type != null and fee.type == "1"'>
|
|
|
+ corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "2"'>
|
|
|
+ bill_corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "3"'>
|
|
|
+ src_cn_name AS salesName,
|
|
|
+ corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+
|
|
|
+ <!-- 各币种总额 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' then amount-stl_amount else 0 END) AS cnyTtl,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' then amount-stl_amount else 0 END) AS USDTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' then amount-stl_amount else 0 END) AS HKDTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' then amount-stl_amount else 0 END) AS VNDTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' then amount-stl_amount else 0 END) AS SGDTTL,
|
|
|
+
|
|
|
+ <!-- CNY 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS CNY30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS CNY60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS CNY90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS CNY120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS CNY150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS CNYOver150,
|
|
|
+
|
|
|
+ <!-- USD 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS USD30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date <DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS USD60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS USD90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS USD120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS USD150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS USDOver150,
|
|
|
+
|
|
|
+ <!-- HKD 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS HKD30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS HKD60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS HKD90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS HKD120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS HKD150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS HKDOver150,
|
|
|
+
|
|
|
+ <!-- VND 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS VND30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS VND60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS VND90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS VND120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS VND150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS VNDOver150,
|
|
|
+
|
|
|
+ <!-- SGD 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS SGD30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS SGD60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS SGD90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS SGD120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS SGD150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS SGDOver150
|
|
|
+
|
|
|
+ FROM los_fee_center
|
|
|
+ WHERE tenant_id = #{fee.tenantId}
|
|
|
+ AND is_deleted = '0'
|
|
|
+ AND ABS(amount - stl_amount) > 0.01
|
|
|
+ AND DC = 'D'
|
|
|
+ AND acc_status = 1
|
|
|
+ AND bill_date <= #{fee.etdEnd}
|
|
|
+
|
|
|
<if test='fee.branchId != null and fee.branchId != ""'>
|
|
|
- and acc.branch_id = #{fee.branchId}
|
|
|
- </if>
|
|
|
- <if test='fee.teamId != null and fee.teamId != ""'>
|
|
|
- and acc.team_id = #{fee.teamId}
|
|
|
- </if>
|
|
|
- <if test='fee.dc != null and fee.dc != ""'>
|
|
|
- and acc.account_dc = #{fee.dc}
|
|
|
+ AND branch_id = #{fee.branchId}
|
|
|
</if>
|
|
|
<if test='fee.businessType != null and fee.businessType != ""'>
|
|
|
- and acc.business_type = #{fee.businessType}
|
|
|
- </if>
|
|
|
- <if test='fee.clientId != null'>
|
|
|
- and acc.bill_corp_id = #{fee.clientId}
|
|
|
+ AND business_type = #{fee.businessType}
|
|
|
</if>
|
|
|
- <if test='fee.corpId != null'>
|
|
|
- and acc.corp_id = #{fee.corpId}
|
|
|
- </if>
|
|
|
- <if test='fee.srcType != null and fee.srcType != ""'>
|
|
|
- and acc.src_type = #{fee.srcType}
|
|
|
- </if>
|
|
|
- <if test='fee.srcId != null'>
|
|
|
- and acc.src_id = #{fee.srcId}
|
|
|
+ <if test='fee.corpId != null and fee.corpId != ""'>
|
|
|
+ AND corp_id = #{fee.corpId}
|
|
|
</if>
|
|
|
- <if test='fee.isBusinessDate != null and fee.isBusinessDate != "" and fee.isBusinessDate == "1"'>
|
|
|
- <if test='fee.etdStart != null and fee.etdStart != ""'>
|
|
|
- and acc.business_date >= #{fee.etdStart}
|
|
|
- </if>
|
|
|
- <if test='fee.etdEnd != null and fee.etdEnd != ""'>
|
|
|
- and acc.business_date <= #{fee.etdEnd}
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test='fee.isToExamineDate != null and fee.isToExamineDate != "" and fee.isToExamineDate == "1"'>
|
|
|
- <if test='fee.etdStart != null and fee.etdStart != ""'>
|
|
|
- and acc.approved_date >= #{fee.etdStart}
|
|
|
- </if>
|
|
|
- <if test='fee.etdEnd != null and fee.etdEnd != ""'>
|
|
|
- and acc.approved_date <= #{fee.etdEnd}
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- GROUP BY acc.id
|
|
|
- ORDER BY acc.corp_id
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ <choose>
|
|
|
+ <when test='fee.type != null and fee.type == "1"'>
|
|
|
+ corp_cn_name, branch_name
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "2"'>
|
|
|
+ bill_corp_cn_name, branch_name
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "3"'>
|
|
|
+ src_cn_name, corp_cn_name, branch_name
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ corp_cn_name, branch_name
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+
|
|
|
+ ORDER BY
|
|
|
+ <choose>
|
|
|
+ <when test='fee.type != null and fee.type == "3"'>
|
|
|
+ salesName, corpName
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ branchName, corpName
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
</select>
|
|
|
<select id="agingAnalysisExport" resultType="org.springblade.los.statisticAnalysis.AgingAnalysisRD">
|
|
|
SELECT
|
|
|
- <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
|
|
|
- acc.corp_cn_name corpName,
|
|
|
- </if>
|
|
|
- <if test='fee.type != null and fee.type != "" and fee.type == "2"'>
|
|
|
- acc.bill_corp_cn_name corpName,
|
|
|
- </if>
|
|
|
- <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
|
|
|
- acc.src_cn_name corpName,
|
|
|
- </if>
|
|
|
- <if test='fee.type == null or fee.type == ""'>
|
|
|
- acc.corp_cn_name corpName,
|
|
|
- </if>
|
|
|
- acc.bill_no billNo,
|
|
|
- acc.mblno mblNo,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr_usd-stl_amount_dr_usd) WHEN 'C' THEN (acc.amount_cr_usd-stl_amount_cr_usd) ELSE 0 END ) ) AS amountUsdArrears,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr-acc.stl_amount_dr) WHEN 'C' THEN (acc.amount_cr-acc.stl_amount_cr) ELSE 0 END ) ) AS amountArrears,
|
|
|
- SUM(IF(uninvoiced_amount,uninvoiced_amount,0)) AS amountInvoicing,
|
|
|
- SUM(IF(uninvoiced_amount_usd,uninvoiced_amount_usd,0)) AS amountInvoicingUsd,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.amount_dr_loc) WHEN 'C' THEN (acc.amount_cr_loc) ELSE 0 END ) ) AS amountAnswer,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (acc.stl_amount_dr_loc) WHEN 'C' THEN (acc.stl_amount_cr_loc) ELSE 0 END ) ) AS amountSolid,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0)) ELSE 0 END ) ) AS thirty,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)<CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)<CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS thirtyToSixty,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)<=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)>CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS sixtyToNinety,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)<=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)>=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)>CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)>=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS ninetyToOneHundredAndEighty,
|
|
|
- SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)<CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)<CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0)) ELSE 0 END ) ) AS oneHundredAndEighty,
|
|
|
- acc.operator_name operatorName,
|
|
|
- acc.business_date AS etd,
|
|
|
- acc.create_user_name creatorName
|
|
|
- FROM
|
|
|
- los_fin_acc_bills acc
|
|
|
- WHERE
|
|
|
- acc.is_deleted = '0'
|
|
|
- <if test='fee.tenantId != null and fee.tenantId != ""'>
|
|
|
- and acc.tenant_id = #{fee.tenantId}
|
|
|
- </if>
|
|
|
+ <choose>
|
|
|
+ <when test='fee.type != null and fee.type == "1"'>
|
|
|
+ corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "2"'>
|
|
|
+ bill_corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "3"'>
|
|
|
+ src_cn_name AS salesName,
|
|
|
+ corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ corp_cn_name AS corpName,
|
|
|
+ branch_name AS branchName,
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+
|
|
|
+ <!-- 各币种总额 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' then amount-stl_amount else 0 END) AS CNYTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' then amount-stl_amount else 0 END) AS USDTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' then amount-stl_amount else 0 END) AS HKDTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' then amount-stl_amount else 0 END) AS VNDTTL,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' then amount-stl_amount else 0 END) AS SGDTTL,
|
|
|
+
|
|
|
+ <!-- CNY 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS CNY30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS CNY60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS CNY90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS CNY120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS CNY150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='CNY' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS CNYOver150,
|
|
|
+
|
|
|
+ <!-- USD 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS USD30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date <DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS USD60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS USD90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS USD120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS USD150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='USD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS USDOver150,
|
|
|
+
|
|
|
+ <!-- HKD 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS HKD30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS HKD60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS HKD90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS HKD120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS HKD150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='HKD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS HKDOver150,
|
|
|
+
|
|
|
+ <!-- VND 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS VND30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS VND60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS VND90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS VND120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS VND150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='VND' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS VNDOver150,
|
|
|
+
|
|
|
+ <!-- SGD 账龄分析 -->
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) then amount-stl_amount else 0 END) AS SGD30,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 1 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) then amount-stl_amount else 0 END) AS SGD60,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 2 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) then amount-stl_amount else 0 END) AS SGD90,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 3 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) then amount-stl_amount else 0 END) AS SGD120,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 4 MONTH) and bill_date >= DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS SGD150,
|
|
|
+ SUM(CASE WHEN DC='D' and cur_code='SGD' and bill_date < DATE_SUB(#{fee.etdEnd}, INTERVAL 5 MONTH) then amount-stl_amount else 0 END) AS SGDOver150
|
|
|
+
|
|
|
+ FROM los_fee_center
|
|
|
+ WHERE tenant_id = #{fee.tenantId}
|
|
|
+ AND is_deleted = '0'
|
|
|
+ AND ABS(amount - stl_amount) > 0.01
|
|
|
+ AND DC = 'D'
|
|
|
+ AND acc_status = 1
|
|
|
+ AND bill_date <= #{fee.etdEnd}
|
|
|
+
|
|
|
<if test='fee.branchId != null and fee.branchId != ""'>
|
|
|
- and acc.branch_id = #{fee.branchId}
|
|
|
- </if>
|
|
|
- <if test='fee.teamId != null and fee.teamId != ""'>
|
|
|
- and acc.team_id = #{fee.teamId}
|
|
|
- </if>
|
|
|
- <if test='fee.dc != null and fee.dc != ""'>
|
|
|
- and acc.account_dc = #{fee.dc}
|
|
|
+ AND branch_id = #{fee.branchId}
|
|
|
</if>
|
|
|
<if test='fee.businessType != null and fee.businessType != ""'>
|
|
|
- and acc.business_type = #{fee.businessType}
|
|
|
+ AND business_type = #{fee.businessType}
|
|
|
</if>
|
|
|
- <if test='fee.clientId != null'>
|
|
|
- and acc.bill_corp_id = #{fee.clientId}
|
|
|
+ <if test='fee.corpId != null and fee.corpId != ""'>
|
|
|
+ AND corp_id = #{fee.corpId}
|
|
|
</if>
|
|
|
- <if test='fee.corpId != null'>
|
|
|
- and acc.corp_id = #{fee.corpId}
|
|
|
- </if>
|
|
|
- <if test='fee.srcType != null and fee.srcType != ""'>
|
|
|
- and acc.src_type = #{fee.srcType}
|
|
|
- </if>
|
|
|
- <if test='fee.srcId != null'>
|
|
|
- and acc.src_id = #{fee.srcId}
|
|
|
- </if>
|
|
|
- <if test='fee.isBusinessDate != null and fee.isBusinessDate != "" and fee.isBusinessDate == "1"'>
|
|
|
- <if test='fee.etdStart != null and fee.etdStart != ""'>
|
|
|
- and acc.business_date >= #{fee.etdStart}
|
|
|
- </if>
|
|
|
- <if test='fee.etdEnd != null and fee.etdEnd != ""'>
|
|
|
- and acc.business_date <= #{fee.etdEnd}
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test='fee.isToExamineDate != null and fee.isToExamineDate != "" and fee.isToExamineDate == "1"'>
|
|
|
- <if test='fee.etdStart != null and fee.etdStart != ""'>
|
|
|
- and acc.approved_date >= #{fee.etdStart}
|
|
|
- </if>
|
|
|
- <if test='fee.etdEnd != null and fee.etdEnd != ""'>
|
|
|
- and acc.approved_date <= #{fee.etdEnd}
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- GROUP BY acc.id
|
|
|
- ORDER BY acc.corp_id
|
|
|
+
|
|
|
+ GROUP BY
|
|
|
+ <choose>
|
|
|
+ <when test='fee.type != null and fee.type == "1"'>
|
|
|
+ corp_cn_name, branch_name
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "2"'>
|
|
|
+ bill_corp_cn_name, branch_name
|
|
|
+ </when>
|
|
|
+ <when test='fee.type != null and fee.type == "3"'>
|
|
|
+ src_cn_name, corp_cn_name, branch_name
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ corp_cn_name, branch_name
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+
|
|
|
+ ORDER BY
|
|
|
+ <choose>
|
|
|
+ <when test='fee.type != null and fee.type == "3"'>
|
|
|
+ salesName, corpName
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ branchName, corpName
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
</select>
|
|
|
|
|
|
</mapper>
|