Browse Source

账龄分析

lijunping 3 months ago
parent
commit
0fa2f34b56

+ 119 - 39
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/AgingAnalysisRD.java

@@ -19,45 +19,125 @@ import java.util.Date;
 @ContentRowHeight(18)
 public class AgingAnalysisRD {
 
-	@ExcelProperty(value = "客户名称")
+	@ExcelProperty(value = "所属公司")
+	private String branchName;
+
+	@ExcelProperty(value = "结算单位")
 	private String corpName;
-	@ExcelProperty(value = "业务流水号")
-	private String billNo;
-	@ExcelProperty(value = "提单号")
-	private String mblNo;
-	@ExcelProperty(value = "美元欠费")
-	private BigDecimal amountUsdArrears;
-	@ExcelProperty(value = "已开票")
-	private BigDecimal amountInvoicingUsd;
-	@ExcelProperty(value = "人民币欠费")
-	private BigDecimal amountArrears;
-	@ExcelProperty(value = "已开票")
-	private BigDecimal amountInvoicing;
-	@ExcelProperty(value = "本位币应收")
-	private BigDecimal amountAnswer;
-	@ExcelProperty(value = "本位币实收")
-	private BigDecimal amountSolid;
-	@ExcelProperty(value = "汇率")
-	private BigDecimal rate;
-	@ExcelProperty(value = "30天以内")
-	private BigDecimal thirty;
-	@ExcelProperty(value = "30-60天")
-	private BigDecimal thirtyToSixty;
-	@ExcelProperty(value = "60-90天")
-	private BigDecimal sixtyToNinety;
-	@ExcelProperty(value = "90-180天")
-	private BigDecimal ninetyToOneHundredAndEighty;
-	@ExcelProperty(value = "180天以上")
-	private BigDecimal oneHundredAndEighty;
-	@ExcelProperty(value = "离港日")
-	private String etd;
-	@ExcelProperty(value = "承运人")
-	private String carrier;
-	@ExcelProperty(value = "销售")
-	private String sale;
-	@ExcelProperty(value = "操作")
-	private String operatorName;
-	@ExcelProperty(value = "制单人")
-	private String creatorName;
 
+	@ExcelProperty(value = "客户")
+	private String corp;
+
+
+	@ExcelProperty(value = "cny总计")
+	private BigDecimal cnyTtl;
+
+
+	@ExcelProperty(value = "usd总计")
+	private BigDecimal usdTtl;
+
+	@ExcelProperty(value = "hkd总计")
+	private BigDecimal hkdTtl;
+
+	@ExcelProperty(value = "vnk总计")
+	private BigDecimal vnkTtl;
+
+	@ExcelProperty(value = "sgd总计")
+	private BigDecimal sgdTtl;
+
+
+	@ExcelProperty(value = "cny30")
+	private BigDecimal cny30;
+
+	@ExcelProperty(value = "cny60")
+	private BigDecimal cny60;
+
+	@ExcelProperty(value = "cny90")
+	private BigDecimal cny90;
+
+	@ExcelProperty(value = "cny120")
+	private BigDecimal cny120;
+
+	@ExcelProperty(value = "cny150")
+	private BigDecimal cny150;
+
+	@ExcelProperty(value = "cnyOver150")
+	private BigDecimal cnyOver150;
+
+	@ExcelProperty(value = "usd30")
+	private BigDecimal usd30;
+
+	@ExcelProperty(value = "usd60")
+	private BigDecimal usd60;
+
+	@ExcelProperty(value = "usd90")
+	private BigDecimal usd90;
+
+	@ExcelProperty(value = "usd120")
+	private BigDecimal usd120;
+
+	@ExcelProperty(value = "usd150")
+	private BigDecimal usd150;
+
+	@ExcelProperty(value = "usdOver150")
+	private BigDecimal usdOver150;
+
+
+	@ExcelProperty(value = "hkd30")
+	private BigDecimal hkd30;
+
+	@ExcelProperty(value = "hkd60")
+	private BigDecimal hkd60;
+
+	@ExcelProperty(value = "hkd90")
+	private BigDecimal hkd90;
+
+
+	@ExcelProperty(value = "hkd120")
+	private BigDecimal hkd120;
+
+	@ExcelProperty(value = "hkd150")
+	private BigDecimal hkd150;
+
+	@ExcelProperty(value = "hkdOver150")
+	private BigDecimal hkdOver150;
+
+
+	@ExcelProperty(value = "vnk30")
+	private BigDecimal vnk30;
+
+	@ExcelProperty(value = " vnk60")
+	private BigDecimal vnk60;
+
+	@ExcelProperty(value = " vnk90")
+	private BigDecimal vnk90;
+
+
+	@ExcelProperty(value = " vnk120")
+	private BigDecimal vnk120;
+
+	@ExcelProperty(value = " vnk150")
+	private BigDecimal vnk150;
+
+	@ExcelProperty(value = "vnkOver150")
+	private BigDecimal vnkOver150;
+
+	@ExcelProperty(value = "sgd30")
+	private BigDecimal sgd30;
+
+	@ExcelProperty(value = "sgd60")
+	private BigDecimal sgd60;
+
+	@ExcelProperty(value = "sgd90")
+	private BigDecimal sgd90;
+
+
+	@ExcelProperty(value = "sgd120")
+	private BigDecimal sgd120;
+
+	@ExcelProperty(value = "sgd150")
+	private BigDecimal sgd150;
+
+	@ExcelProperty(value = "sgdOver150")
+	private BigDecimal sgdOver150;
 }

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -6529,6 +6529,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		StringBuilder hblno = new StringBuilder();
 		for (Bills detail : billsList) {
 			mblno.append(detail.getMblno()).append(" ").append(detail.getQuantityCntrDescr()).append("<br/>");
+
 			if (!"MH".equals(detail.getBillType())) {
 				hblno.append(detail.getMblno()).append(" ").append(detail.getQuantityCntrDescr()).append("<br/>");
 			} else {

+ 210 - 241
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.xml

@@ -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 &gt;= #{fee.etdStart}
-            </if>
-            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
-                and acc.business_date &lt;= #{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 &gt;= #{fee.etdStart}
-            </if>
-            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
-                and acc.approved_date &lt;= #{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)&gt;=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)&gt;=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)&lt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)&gt;=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)&lt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)&gt;=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)&lt;=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&gt;=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)&gt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&gt;=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)&lt;=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=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)&gt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=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)&lt;CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&lt;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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt;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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt;= #{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 &gt;= #{fee.etdStart}
-            </if>
-            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
-                and acc.business_date &lt;= #{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 &gt;= #{fee.etdStart}
-            </if>
-            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
-                and acc.approved_date &lt;= #{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)&gt;=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 1 MONTH)&gt;=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)&lt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)&gt;=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)&lt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 2 MONTH)&gt;=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)&lt;=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&gt;=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)&gt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&gt;=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)&lt;=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=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)&gt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=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)&lt;CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&lt;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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt;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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt;= #{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 &gt;= #{fee.etdStart}
-            </if>
-            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
-                and acc.business_date &lt;= #{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 &gt;= #{fee.etdStart}
-            </if>
-            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
-                and acc.approved_date &lt;= #{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>

+ 0 - 5
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/controller/FinanceStatisticsController.java

@@ -250,11 +250,6 @@ public class FinanceStatisticsController {
 	public void agingAnalysisExport(FeeSummaryQ feeSummaryQ, HttpServletResponse response) throws ParseException {
 		List<AgingAnalysisRD> list = statisticAnalysisService.agingAnalysisExport(feeSummaryQ);
 		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
-		for (AgingAnalysisRD item : list){
-			if (ObjectUtils.isNotNull(item.getEtd())){
-				item.setEtd(formatter.format(formatter.parse(item.getEtd())));
-			}
-		}
 		if ("D".equals(feeSummaryQ.getDc())) {
 			ExcelUtil.export(response, "未收明细表", "未收明细表", list, AgingAnalysisRD.class);
 		} else {