纪新园 1 год назад
Родитель
Сommit
ac9320f0dc
12 измененных файлов с 872 добавлено и 25 удалено
  1. 16 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java
  2. 63 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/AgingAnalysisRC.java
  3. 63 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/AgingAnalysisRD.java
  4. 54 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryDetailNotRC.java
  5. 58 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryDetailNotRD.java
  6. 0 18
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  7. 169 0
      blade-service/blade-los/src/main/java/org/springblade/los/copy/CopyController.java
  8. 9 3
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.java
  9. 368 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.xml
  10. 44 3
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/controller/FinanceStatisticsController.java
  11. 8 0
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/IStatisticAnalysisService.java
  12. 20 0
      blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

+ 16 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java

@@ -750,5 +750,21 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "来源英文")
 	private String srcEnName;
 
+	/**
+	 * 操作 Id
+	 */
+	@ApiModelProperty(value = "操作 Id")
+	private Long operatorId;
+	/**
+	 * 操作
+	 */
+	@ApiModelProperty(value = "操作")
+	private String operatorName;
+	/**
+	 * 集装箱箱数英文
+	 */
+	@ApiModelProperty(value = "集装箱箱数英文")
+	private String quantityCntrDescr;
+
 
 }

+ 63 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/AgingAnalysisRC.java

@@ -0,0 +1,63 @@
+package org.springblade.los.statisticAnalysis;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/7
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class AgingAnalysisRC {
+
+	@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 Date etd;
+	@ExcelProperty(value = "承运人")
+	private String carrier;
+	@ExcelProperty(value = "销售")
+	private String sale;
+	@ExcelProperty(value = "操作")
+	private String operatorName;
+	@ExcelProperty(value = "制单人")
+	private String creatorName;
+
+}

+ 63 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/AgingAnalysisRD.java

@@ -0,0 +1,63 @@
+package org.springblade.los.statisticAnalysis;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/7
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class AgingAnalysisRD {
+
+	@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 Date etd;
+	@ExcelProperty(value = "承运人")
+	private String carrier;
+	@ExcelProperty(value = "销售")
+	private String sale;
+	@ExcelProperty(value = "操作")
+	private String operatorName;
+	@ExcelProperty(value = "制单人")
+	private String creatorName;
+
+}

+ 54 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryDetailNotRC.java

@@ -0,0 +1,54 @@
+package org.springblade.los.statisticAnalysis;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/6
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class FeeSummaryDetailNotRC {
+
+	@ExcelProperty(value = "结算单位")
+	private String corpName;
+	@ExcelProperty(value = "业务编号")
+	private String billNo;
+	@ExcelProperty(value = "船名")
+	private String vesselName;
+	@ExcelProperty(value = "航次")
+	private String voyageNo;
+	@ExcelProperty(value = "开船日期")
+	private BigDecimal etd;
+	@ExcelProperty(value = "提单号")
+	private BigDecimal mblNo;
+	@ExcelProperty(value = "起运港")
+	private BigDecimal pod;
+	@ExcelProperty(value = "目的港")
+	private BigDecimal pol;
+	@ExcelProperty(value = "汇率")
+	private BigDecimal rate;
+	@ExcelProperty(value = "箱型箱量")
+	private BigDecimal boxTypeNumber;
+	@ExcelProperty(value = "美元")
+	private BigDecimal amountUsdNot;
+	@ExcelProperty(value = "人民币")
+	private BigDecimal amountNot;
+	@ExcelProperty(value = "美元")
+	private BigDecimal amountInvoicingUsd;
+	@ExcelProperty(value = "人民币")
+	private BigDecimal amountInvoicing;
+	@ExcelProperty(value = "未开USD")
+	private BigDecimal amountInvoicingUsdNot;
+	@ExcelProperty(value = "未开RMB")
+	private BigDecimal amountInvoicingNot;
+
+}

+ 58 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryDetailNotRD.java

@@ -0,0 +1,58 @@
+package org.springblade.los.statisticAnalysis;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/6
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class FeeSummaryDetailNotRD {
+
+	@ExcelProperty(value = "结算单位")
+	private String corpName;
+	@ExcelProperty(value = "业务编号")
+	private String billNo;
+	@ExcelProperty(value = "船名")
+	private String vesselName;
+	@ExcelProperty(value = "航次")
+	private String voyageNo;
+	@ExcelProperty(value = "开船日期")
+	private BigDecimal etd;
+	@ExcelProperty(value = "提单号")
+	private String mblNo;
+	@ExcelProperty(value = "起运港")
+	private String pod;
+	@ExcelProperty(value = "目的港")
+	private String pol;
+	@ExcelProperty(value = "汇率")
+	private String rate;
+	@ExcelProperty(value = "箱型箱量")
+	private String quantityCntrDescr;
+	@ExcelProperty(value = "美元")
+	private BigDecimal amountUsdNot;
+	@ExcelProperty(value = "人民币")
+	private BigDecimal amountNot;
+	@ExcelProperty(value = "开票USD")
+	private BigDecimal amountInvoicingUsd;
+	@ExcelProperty(value = "开票RMB")
+	private BigDecimal amountInvoicing;
+	@ExcelProperty(value = "未开USD")
+	private BigDecimal amountInvoicingUsdNot;
+	@ExcelProperty(value = "未开RMB")
+	private BigDecimal amountInvoicingNot;
+	@ExcelProperty(value = "业务员")
+	private BigDecimal srcCnName;
+	@ExcelProperty(value = "操作员")
+	private BigDecimal operatorName;
+
+}

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

@@ -1331,23 +1331,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			item.setHblno("");
 			item.setMblno("");
 		}
-		List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
-			.eq(Containers::getIsDeleted, 0)
-			.eq(Containers::getTenantId, AuthUtil.getTenantId())
-			.eq(Containers::getPid, detail.getId()));
-		for (Containers item : containersList) {
-			item.setPid(null);
-			item.setId(null);
-			item.setBillNo("");
-			item.setHblno("");
-			item.setMblno("");
-			item.setSealNo("");
-			item.setCntrNo("");
-			item.setNetWeight(new BigDecimal("0.00"));
-			item.setGrossWeight(new BigDecimal("0.00"));
-			item.setMeasurement(new BigDecimal("0.00"));
-			item.setQuantity(new BigDecimal("0.00"));
-		}
 		List<FeeCenter> feeCenterListC = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 			.eq(FeeCenter::getIsDeleted, 0)
 			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
@@ -1542,7 +1525,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		copyBills.setInvoiceCrStatusDescr("未开");
 		copyBills.setBillStatus(0);
 		copyBills.setAccountStatus(0);
-		copyBills.setContainersList(containersList);
 		copyBills.setFeeCenterListC(feeCenterListC);
 		copyBills.setFeeCenterListD(feeCenterListD);
 		copyBills.setPreContainersList(preContainersList);

+ 169 - 0
blade-service/blade-los/src/main/java/org/springblade/los/copy/CopyController.java

@@ -0,0 +1,169 @@
+package org.springblade.los.copy;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
+import org.springblade.los.basic.business.entity.BusinessType;
+import org.springblade.los.basic.business.service.IBusinessTypeService;
+import org.springblade.los.basic.reports.entity.Reports;
+import org.springblade.los.basic.reports.service.IReportsService;
+import org.springblade.los.billno.entity.BusinessBillNo;
+import org.springblade.los.billno.service.IBusinessBillNoService;
+import org.springblade.los.check.entity.LosAuditPaths;
+import org.springblade.los.check.entity.LosAuditPathsActs;
+import org.springblade.los.check.service.IAuditPathsActsService;
+import org.springblade.los.check.service.IAuditPathsService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author :jixinyuan
+ * @date : 2024/3/7
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/copy")
+@Api(value = "复制数据", tags = "复制数据")
+public class CopyController {
+
+
+	private final IReportsService reportsService;
+
+	private final IAuditPathsService auditPathsService;
+
+	private final IAuditPathsActsService auditPathsActsService;
+
+	private final IDeptUtils deptUtils;
+
+	private final IBusinessTypeService bBusinessTypeService;
+
+	private final IBusinessBillNoService businessBillNoService;
+
+
+	/**
+	 * 报表
+	 */
+	@GetMapping("/reports")
+	public R reports() {
+		List<Reports> reportsListNew = new ArrayList<>();
+		List<Reports> reportsList = reportsService.list(new LambdaQueryWrapper<Reports>()
+			.eq(Reports::getBranchId, deptUtils.getDeptPid())
+			.eq(Reports::getTenantId, AuthUtil.getTenantId())
+			.eq(Reports::getIsDeleted, 0)
+		);
+		for (Reports item : reportsList) {
+			item.setId(null);
+			item.setCreateDept("1");
+			item.setCreateDeptName("1");
+			item.setCreateTime(new Date());
+			item.setCreateUser(0L);
+			item.setCreateUserName("1");
+			item.setBranchId("复制");
+			item.setTenantId("复制");
+			item.setUpdateTime(new Date());
+			item.setUpdateUser(0L);
+			item.setUpdateUserName("1");
+			reportsListNew.add(item);
+		}
+		reportsService.saveBatch(reportsListNew);
+		return R.data("操作成功");
+	}
+
+	/**
+	 * 审批
+	 */
+	@GetMapping("/check")
+	public R check() {
+		List<LosAuditPaths> losAuditPathsListNew = new ArrayList<>();
+		List<LosAuditPaths> losAuditPathsList = auditPathsService.list(new LambdaQueryWrapper<LosAuditPaths>()
+			.eq(LosAuditPaths::getSalesCompanyId, deptUtils.getDeptPid())
+			.eq(LosAuditPaths::getTenantId, AuthUtil.getTenantId())
+		);
+		for (LosAuditPaths item : losAuditPathsList) {
+			item.setId(null);
+			item.setSalesCompanyId(0L);
+			item.setSalesCompanyName("复制");
+			item.setTenantId("复制");
+			losAuditPathsListNew.add(item);
+		}
+		auditPathsService.saveBatch(losAuditPathsListNew);
+		List<LosAuditPathsActs> losAuditPathsActsListNew = new ArrayList<>();
+		List<LosAuditPathsActs> losAuditPathsActsList = auditPathsActsService.list(new LambdaQueryWrapper<LosAuditPathsActs>()
+			.eq(LosAuditPathsActs::getSalesCompanyId, deptUtils.getDeptPid())
+			.eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId())
+		);
+		for (LosAuditPathsActs item : losAuditPathsActsList) {
+			item.setId(null);
+			item.setSalesCompanyId(0L);
+			item.setSalesCompanyName("复制");
+			item.setTenantId("复制");
+			losAuditPathsActsListNew.add(item);
+		}
+		auditPathsActsService.saveBatch(losAuditPathsActsListNew);
+		return R.data("操作成功");
+	}
+
+	/**
+	 * 业务类型
+	 */
+	@GetMapping("/businessType")
+	public R businessType() {
+		List<BusinessType> businessTypeListNew = new ArrayList<>();
+		List<BusinessType> businessTypeList = bBusinessTypeService.list(new LambdaQueryWrapper<BusinessType>()
+			.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessType::getIsDeleted, 0));
+		for (BusinessType item : businessTypeList) {
+			item.setId(null);
+			item.setCreateDept("1");
+			item.setCreateDeptName("1");
+			item.setCreateTime(new Date());
+			item.setCreateUser(0L);
+			item.setCreateUserName("1");
+			item.setTenantId("复制");
+			item.setUpdateTime(new Date());
+			item.setUpdateUser(0L);
+			item.setUpdateUserName("1");
+			businessTypeListNew.add(item);
+		}
+		bBusinessTypeService.saveBatch(businessTypeListNew);
+		return R.data("操作成功");
+	}
+
+	/**
+	 * 业务编号
+	 */
+	@GetMapping("/businessBillNo")
+	public R businessBillNo() {
+		List<BusinessBillNo> businessBillNoListNew = new ArrayList<>();
+		List<BusinessBillNo> businessBillNoList = businessBillNoService.list(new LambdaQueryWrapper<BusinessBillNo>()
+			.eq(BusinessBillNo::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessBillNo::getIsDeleted, 0)
+			.eq(BusinessBillNo::getBranchId, deptUtils.getDeptPid())
+		);
+		for (BusinessBillNo item : businessBillNoList) {
+			item.setId(null);
+			item.setCreateDept("1");
+			item.setCreateDeptName("1");
+			item.setCreateTime(new Date());
+			item.setCreateUser(0L);
+			item.setCreateUserName("1");
+			item.setTenantId("复制");
+			item.setBranchId("复制");
+			item.setUpdateTime(new Date());
+			item.setUpdateUser(0L);
+			item.setUpdateUserName("1");
+			businessBillNoListNew.add(item);
+		}
+		businessBillNoService.saveBatch(businessBillNoListNew);
+		return R.data("操作成功");
+	}
+
+}

+ 9 - 3
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.java

@@ -22,9 +22,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.los.excel.FeeCountByCorpExcel;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.vo.FinAccBillsVO;
-import org.springblade.los.statisticAnalysis.FeeSummaryDetailRD;
-import org.springblade.los.statisticAnalysis.FeeSummaryQ;
-import org.springblade.los.statisticAnalysis.FeeSummaryRD;
+import org.springblade.los.statisticAnalysis.*;
 
 import java.util.List;
 import java.util.Map;
@@ -61,4 +59,12 @@ public interface FinAccBillsMapper extends BaseMapper<FinAccBills> {
 	List<FeeSummaryDetailRD> feeSummaryDetail(IPage<FeeSummaryDetailRD> page, @Param("fee")FeeSummaryQ feeSummaryQ);
 
 	List<FeeSummaryDetailRD> feeSummaryDetailExport(@Param("fee")FeeSummaryQ feeSummaryQ);
+
+	List<FeeSummaryDetailNotRD> feeSummaryDetailNot(IPage<FeeSummaryDetailNotRD> page, @Param("fee")FeeSummaryQ feeSummaryQ);
+
+	List<FeeSummaryDetailNotRD> feeSummaryDetailExportNot(@Param("fee")FeeSummaryQ feeSummaryQ);
+
+	List<AgingAnalysisRD> agingAnalysis(IPage<AgingAnalysisRD> page, @Param("fee")FeeSummaryQ feeSummaryQ);
+
+	List<AgingAnalysisRD> agingAnalysisExport(@Param("fee")FeeSummaryQ feeSummaryQ);
 }

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

@@ -185,6 +185,9 @@
         <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>
             SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr WHEN 'C' THEN acc.amount_cr ELSE 0 END ) ) AS amount,
             SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr_usd WHEN 'C' THEN acc.amount_cr_usd ELSE 0 END ) ) AS amountUsd,
             SUM(( CASE acc.account_dc WHEN 'D' THEN acc.stl_amount_dr_usd WHEN 'C' THEN acc.stl_amount_cr_usd ELSE 0 END ) ) AS amountUsdAlready,
@@ -247,6 +250,9 @@
         <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
             GROUP BY acc.src_id
         </if>
+        <if test='fee.type == null or fee.type == ""'>
+            GROUP BY acc.corp_id
+        </if>
     </select>
     <select id="feeSummaryExport" resultType="org.springblade.los.statisticAnalysis.FeeSummaryRD">
         SELECT
@@ -259,6 +265,9 @@
         <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>
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr WHEN 'C' THEN acc.amount_cr ELSE 0 END ) ) AS amount,
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr_usd WHEN 'C' THEN acc.amount_cr_usd ELSE 0 END ) ) AS amountUsd,
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.stl_amount_dr_usd WHEN 'C' THEN acc.stl_amount_cr_usd ELSE 0 END ) ) AS amountUsdAlready,
@@ -321,6 +330,9 @@
         <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
             GROUP BY acc.src_id
         </if>
+        <if test='fee.type == null or fee.type == ""'>
+            GROUP BY acc.corp_id
+        </if>
     </select>
     <select id="feeSummaryDetail" resultType="org.springblade.los.statisticAnalysis.FeeSummaryDetailRD">
         SELECT
@@ -333,6 +345,9 @@
         <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,
         acc.etd etdDate,
@@ -393,7 +408,7 @@
                 and acc.approved_date &lt;= #{fee.etdEnd}
             </if>
         </if>
-        <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
+     <!--   <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
             GROUP BY acc.corp_id
         </if>
         <if test='fee.type != null and fee.type != "" and fee.type == "2"'>
@@ -402,6 +417,11 @@
         <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
             GROUP BY acc.src_id
         </if>
+        <if test='fee.type == null or fee.type == ""'>
+            GROUP BY acc.id
+        </if>-->
+        GROUP BY acc.id
+        ORDER BY acc.corp_id
     </select>
     <select id="feeSummaryDetailExport" resultType="org.springblade.los.statisticAnalysis.FeeSummaryDetailRD">
         SELECT
@@ -414,6 +434,9 @@
         <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,
         acc.etd etdDate,
@@ -474,7 +497,96 @@
                 and acc.approved_date &lt;= #{fee.etdEnd}
             </if>
         </if>
+       <!-- <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
+            GROUP BY acc.corp_id
+        </if>
+        <if test='fee.type != null and fee.type != "" and fee.type == "2"'>
+            GROUP BY acc.bill_corp_id
+        </if>
+        <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
+            GROUP BY acc.src_id
+        </if>
+        <if test='fee.type == null or fee.type == ""'>
+            GROUP BY acc.id
+        </if>-->
+        GROUP BY acc.id
+        ORDER BY acc.corp_id
+    </select>
+    <select id="feeSummaryDetailNot" resultType="org.springblade.los.statisticAnalysis.FeeSummaryDetailNotRD">
+        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.vessel_en_name vesselEnName,
+            acc.voyage_no voyageNo,
+            acc.mblno mblNo,
+            acc.etd etdDate,
+            acc.pod_en_name podEnName,
+            acc.pol_en_name polEnName,
+            acc.quantity_cntr_descr quantityCntrDescr,
+            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.tenantId != null and fee.tenantId != ""'>
+            and acc.tenant_id = #{fee.tenantId}
+        </if>
+        <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}
+        </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.bill_date &gt;= #{fee.etdStart}
+            </if>
+            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
+                and acc.bill_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>
+      <!--  <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
             GROUP BY acc.corp_id
         </if>
         <if test='fee.type != null and fee.type != "" and fee.type == "2"'>
@@ -483,6 +595,261 @@
         <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
             GROUP BY acc.src_id
         </if>
+        <if test='fee.type == null or fee.type == ""'>
+            GROUP BY acc.id
+        </if>-->
+        GROUP BY acc.id
+        ORDER BY acc.corp_id
+    </select>
+    <select id="feeSummaryDetailExportNot"
+            resultType="org.springblade.los.statisticAnalysis.FeeSummaryDetailNotRD">
+        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.vessel_en_name vesselEnName,
+        acc.voyage_no voyageNo,
+        acc.mblno mblNo,
+        acc.etd etdDate,
+        acc.pod_en_name podEnName,
+        acc.pol_en_name polEnName,
+        acc.quantity_cntr_descr quantityCntrDescr,
+        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.tenantId != null and fee.tenantId != ""'>
+            and acc.tenant_id = #{fee.tenantId}
+        </if>
+        <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}
+        </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.bill_date &gt;= #{fee.etdStart}
+            </if>
+            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
+                and acc.bill_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>
+        <!--  <if test='fee.type != null and fee.type != "" and fee.type == "1"'>
+              GROUP BY acc.corp_id
+          </if>
+          <if test='fee.type != null and fee.type != "" and fee.type == "2"'>
+              GROUP BY acc.bill_corp_id
+          </if>
+          <if test='fee.type != null and fee.type != "" and fee.type == "3"'>
+              GROUP BY acc.src_id
+          </if>
+          <if test='fee.type == null or fee.type == ""'>
+              GROUP BY acc.id
+          </if>-->
+        GROUP BY acc.id
+        ORDER BY acc.corp_id
+    </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.etd 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>
+        <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}
+        </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.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.bill_date &gt;= #{fee.etdStart}
+            </if>
+            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
+                and acc.bill_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
+    </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.etd 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>
+        <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}
+        </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.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.bill_date &gt;= #{fee.etdStart}
+            </if>
+            <if test='fee.etdEnd != null and fee.etdEnd != ""'>
+                and acc.bill_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
     </select>
 
 </mapper>

+ 44 - 3
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/controller/FinanceStatisticsController.java

@@ -56,7 +56,7 @@ public class FinanceStatisticsController {
 	}
 
 	/**
-	 *  应收(付)实收(付)汇总
+	 * 应收(付)实收(付)汇总导出
 	 */
 	@GetMapping("/feeSummaryExport")
 	public void feeSummaryExport(FeeSummaryQ feeSummaryQ, HttpServletResponse response) {
@@ -69,7 +69,7 @@ public class FinanceStatisticsController {
 	}
 
 	/**
-	 * 分页 应收(付)实收(付)汇总
+	 * 分页 应收(付)实收(付)明细表
 	 */
 	@GetMapping("/feeSummaryDetail")
 	public R<IPage<FeeSummaryDetailRD>> feeSummaryDetail(FeeSummaryQ feeSummaryQ, Query query) {
@@ -77,7 +77,7 @@ public class FinanceStatisticsController {
 	}
 
 	/**
-	 *  应收(付)实收(付)汇总
+	 * 应收(付)实收(付)明细表导出
 	 */
 	@GetMapping("/feeSummaryDetailExport")
 	public void feeSummaryDetailExport(FeeSummaryQ feeSummaryQ, HttpServletResponse response) {
@@ -89,4 +89,45 @@ public class FinanceStatisticsController {
 		}
 	}
 
+	/**
+	 * 分页 未收(付)明细表
+	 */
+	@GetMapping("/feeSummaryDetailNot")
+	public R<IPage<FeeSummaryDetailNotRD>> feeSummaryDetailNot(FeeSummaryQ feeSummaryQ, Query query) {
+		return statisticAnalysisService.feeSummaryDetailNot(feeSummaryQ, Condition.getPage(query));
+	}
+
+	/**
+	 * 未收(付)明细表导出
+	 */
+	@GetMapping("/feeSummaryDetailExportNot")
+	public void feeSummaryDetailExportNot(FeeSummaryQ feeSummaryQ, HttpServletResponse response) {
+		List<FeeSummaryDetailNotRD> list = statisticAnalysisService.feeSummaryDetailExportNot(feeSummaryQ);
+		if ("D".equals(feeSummaryQ.getDc())) {
+			ExcelUtil.export(response, "未收明细表", "未收明细表", list, FeeSummaryDetailNotRD.class);
+		} else {
+			ExcelUtil.export(response, "未付明细表", "未付明细表", BeanUtil.copy(list, FeeSummaryDetailNotRC.class), FeeSummaryDetailNotRC.class);
+		}
+	}
+	/**
+	 * 分页账龄分析
+	 */
+	@GetMapping("/agingAnalysis")
+	public R<IPage<AgingAnalysisRD>> agingAnalysis(FeeSummaryQ feeSummaryQ, Query query) {
+		return statisticAnalysisService.agingAnalysis(feeSummaryQ, Condition.getPage(query));
+	}
+
+	/**
+	 * 账龄分析导出
+	 */
+	@GetMapping("/agingAnalysisExport")
+	public void agingAnalysisExport(FeeSummaryQ feeSummaryQ, HttpServletResponse response) {
+		List<AgingAnalysisRD> list = statisticAnalysisService.agingAnalysisExport(feeSummaryQ);
+		if ("D".equals(feeSummaryQ.getDc())) {
+			ExcelUtil.export(response, "未收明细表", "未收明细表", list, AgingAnalysisRD.class);
+		} else {
+			ExcelUtil.export(response, "未付明细表", "未付明细表", BeanUtil.copy(list, AgingAnalysisRC.class), AgingAnalysisRC.class);
+		}
+	}
+
 }

+ 8 - 0
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/IStatisticAnalysisService.java

@@ -61,4 +61,12 @@ public interface IStatisticAnalysisService {
 	R<IPage<FeeSummaryDetailRD>> feeSummaryDetail(FeeSummaryQ feeSummaryQ, IPage<FeeSummaryDetailRD> page);
 
 	List<FeeSummaryDetailRD> feeSummaryDetailExport(FeeSummaryQ feeSummaryQ);
+
+	R<IPage<FeeSummaryDetailNotRD>> feeSummaryDetailNot(FeeSummaryQ feeSummaryQ, IPage<FeeSummaryDetailNotRD> page);
+
+	List<FeeSummaryDetailNotRD> feeSummaryDetailExportNot(FeeSummaryQ feeSummaryQ);
+
+	R<IPage<AgingAnalysisRD>> agingAnalysis(FeeSummaryQ feeSummaryQ, IPage<AgingAnalysisRD> page);
+
+	List<AgingAnalysisRD> agingAnalysisExport(FeeSummaryQ feeSummaryQ);
 }

+ 20 - 0
blade-service/blade-los/src/main/java/org/springblade/los/statisticAnalysis/service/impl/StatisticAnalysisServiceImpl.java

@@ -658,4 +658,24 @@ public class StatisticAnalysisServiceImpl implements IStatisticAnalysisService {
 	public List<FeeSummaryDetailRD> feeSummaryDetailExport(FeeSummaryQ feeSummaryQ) {
 		return finAccBillsMapper.feeSummaryDetailExport(feeSummaryQ);
 	}
+
+	@Override
+	public R<IPage<FeeSummaryDetailNotRD>> feeSummaryDetailNot(FeeSummaryQ feeSummaryQ, IPage<FeeSummaryDetailNotRD> page) {
+		return R.data(page.setRecords(finAccBillsMapper.feeSummaryDetailNot(page,feeSummaryQ)));
+	}
+
+	@Override
+	public List<FeeSummaryDetailNotRD> feeSummaryDetailExportNot(FeeSummaryQ feeSummaryQ) {
+		return finAccBillsMapper.feeSummaryDetailExportNot(feeSummaryQ);
+	}
+
+	@Override
+	public R<IPage<AgingAnalysisRD>> agingAnalysis(FeeSummaryQ feeSummaryQ, IPage<AgingAnalysisRD> page) {
+		return R.data(page.setRecords(finAccBillsMapper.agingAnalysis(page,feeSummaryQ)));
+	}
+
+	@Override
+	public List<AgingAnalysisRD> agingAnalysisExport(FeeSummaryQ feeSummaryQ) {
+		return finAccBillsMapper.agingAnalysisExport(feeSummaryQ);
+	}
 }