Jelajahi Sumber

导出功能优化

ljy121 1 tahun lalu
induk
melakukan
ea3e45328e

+ 3 - 0
zjugis-business/src/main/java/com/zjugis/business/bean/dto/ContractInvoiceDto.java

@@ -3,6 +3,7 @@ package com.zjugis.business.bean.dto;
 import com.zjugis.framework.common.pojo.PageParam;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.List;
 
@@ -24,6 +25,8 @@ public class ContractInvoiceDto extends PageParam {
 
     private String invoiceNumber;
 
+    private BigDecimal invoiceAmount;
+
     private String invoiceNo;
 
     private String contractName;

+ 6 - 11
zjugis-business/src/main/java/com/zjugis/business/bean/response/ProjectExcelResponse.java

@@ -29,19 +29,12 @@ public class ProjectExcelResponse {
     @ExcelProperty(value = "项目状态",converter = ProjectConverter.class)
     private Integer xmzt;
 
-    @ExcelProperty(value = "验收单有效性")
-    private String ysdyxx;
-    //项目名称
-    @ExcelProperty("项目名称")
-    private String xmmc;
-    //项目编号
     @ExcelProperty("项目编号")
     private String xmbh;
-//    @ExcelProperty("行政区代码")
-//    private String xzqdm;
-//    // 行政区名称
-//    @ExcelProperty("行政区名称")
-//    private String xzqmc;
+    @ExcelProperty("项目名称")
+    private String xmmc;
+    @ExcelProperty("行政区名称")
+    private String xzqmc;
 //    // 项目类型名称
     @ExcelProperty("项目类型")
     private String projectTypeName;
@@ -54,6 +47,8 @@ public class ProjectExcelResponse {
     //验收时间
     @ExcelProperty("验收时间")
     private LocalDate yssj;
+    @ExcelProperty(value = "验收单有效性")
+    private String ysdyxx;
     //项目经理名称
     @ExcelProperty("项目经理")
     private String xmjl;

+ 28 - 14
zjugis-business/src/main/resources/mapper/oracle/ContractInvoiceMapper.xml

@@ -9,7 +9,7 @@
         LEFT JOIN CUSTOMER T3 ON T3.ID = T.PAY_COMPANY_ID
         LEFT JOIN ZJUGIS_OA.SYSTEM_DEPT D ON D.ID = T2.ZRBM_ID
         LEFT JOIN ZJUGIS_OA.SYSTEM_USERS U ON U.ID = T2.XSRY_ID
-        LEFT JOIN (SELECT count(1) as rc,max(RETURN_DATE) as maxd, min(RETURN_DATE) as mind,CONTRACT_INVOICE_ID,COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount FROM CONTRACT_RETURN_MONEY WHERE ISVALID = 1 GROUP BY CONTRACT_INVOICE_ID) T3 ON T3.CONTRACT_INVOICE_ID=T.ID
+        LEFT JOIN (SELECT count(1) as rc,max(RETURN_DATE) as maxd, min(RETURN_DATE) as mind,CONTRACT_INVOICE_ID,COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount FROM CONTRACT_RETURN_MONEY WHERE ISVALID = 1 GROUP BY CONTRACT_INVOICE_ID) T4 ON T4.CONTRACT_INVOICE_ID=T.ID
         <where>
             T.ISVALID = 1
             <if test="params != null and params.deptId != null and params.deptId != ''">
@@ -21,6 +21,9 @@
             <if test="params != null and params.contractId != null and params.contractId != ''">
                 AND T.CONTRACT_ID = #{params.contractId,jdbcType=VARCHAR}
             </if>
+            <if test="params != null and params.invoiceAmount != null">
+                AND T.INVOICE_AMOUNT = #{params.invoiceAmount,jdbcType=DECIMAL}
+            </if>
             <if test="params != null and params.invoiceNo != null and params.invoiceNo != ''">
                 <bind name="invoiceNo" value="'%'+params.invoiceNo+'%'"/>
                 AND T.INVOICE_NO like #{invoiceNo}
@@ -57,16 +60,16 @@
                 AND T.INVOICE_DATE &lt;= #{params.invoiceOff,jdbcType=DATE}
             </if>
             <if test="params != null and params.returnOn != null">
-                AND T3.mind &gt;= #{params.returnOn,jdbcType=DATE}
+                AND T4.mind &gt;= #{params.returnOn,jdbcType=DATE}
             </if>
             <if test="params != null and params.returnOff != null">
-                AND T3.maxd &lt;= #{params.returnOff,jdbcType=DATE}
+                AND T4.maxd &lt;= #{params.returnOff,jdbcType=DATE}
             </if>
             <if test="params != null and params.isReturn == 1">
-                AND T3.rc &gt; 0
+                AND T4.rc &gt; 0
             </if>
             <if test="params != null and params.isReturn == 0">
-                AND T3.rc = 0
+                AND T4.rc = 0
             </if>
         </where>
         ORDER BY
@@ -80,8 +83,9 @@
         FROM CONTRACT_INVOICE T
         LEFT JOIN CONTRACT T1 ON T1.ID=T.CONTRACT_ID
         LEFT JOIN PROJECT T2 ON T2.ID=T.PROJECT_ID
+        LEFT JOIN CUSTOMER T3 ON T3.ID = T.PAY_COMPANY_ID
         LEFT JOIN
-        (SELECT sum(NVL(RETURN_AMOUNT,0)) as returnAmount,count(1) as rc,max(RETURN_DATE) as maxd, min(RETURN_DATE) as mind,CONTRACT_INVOICE_ID FROM CONTRACT_RETURN_MONEY WHERE ISVALID = 1 GROUP BY CONTRACT_INVOICE_ID) T3 ON T3.CONTRACT_INVOICE_ID=T.ID
+        (SELECT sum(NVL(RETURN_AMOUNT,0)) as returnAmount,count(1) as rc,max(RETURN_DATE) as maxd, min(RETURN_DATE) as mind,CONTRACT_INVOICE_ID FROM CONTRACT_RETURN_MONEY WHERE ISVALID = 1 GROUP BY CONTRACT_INVOICE_ID) T4 ON T4.CONTRACT_INVOICE_ID=T.ID
         <where>
             T.ISVALID = 1
             <if test="params != null and params.deptId != null and params.deptId != ''">
@@ -93,6 +97,9 @@
             <if test="params != null and params.contractId != null and params.contractId != ''">
                 AND T.CONTRACT_ID = #{params.contractId,jdbcType=VARCHAR}
             </if>
+            <if test="params != null and params.invoiceAmount != null">
+                AND T.INVOICE_AMOUNT = #{params.invoiceAmount,jdbcType=DECIMAL}
+            </if>
             <if test="params != null and params.invoiceNumber != null and params.invoiceNumber != ''">
                 <bind name="invoiceNumber" value="'%'+params.invoiceNumber+'%'"/>
                 AND T.INVOICE_NUMBER like #{invoiceNumber}
@@ -118,6 +125,10 @@
             <if test="params != null and params.payCompanyId != null and params.payCompanyId != ''">
                 AND T.PAY_COMPANY_ID = #{params.payCompanyId,jdbcType=VARCHAR}
             </if>
+            <if test="params != null and params.payCompany != null and params.payCompany != ''">
+                <bind name="payCompany" value="'%'+params.payCompany+'%'"/>
+                AND T3.CUSTOMER_NAME like #{payCompany}
+            </if>
             <if test="params != null and params.invoiceOn != null">
                 AND T.INVOICE_DATE &gt;= #{params.invoiceOn,jdbcType=DATE}
             </if>
@@ -125,16 +136,16 @@
                 AND T.INVOICE_DATE &lt;= #{params.invoiceOff,jdbcType=DATE}
             </if>
             <if test="params != null and params.returnOn != null">
-                AND T3.mind &gt;= #{params.returnOn,jdbcType=DATE}
+                AND T4.mind &gt;= #{params.returnOn,jdbcType=DATE}
             </if>
             <if test="params != null and params.returnOff != null">
-                AND T3.maxd &lt;= #{params.returnOff,jdbcType=DATE}
+                AND T4.maxd &lt;= #{params.returnOff,jdbcType=DATE}
             </if>
             <if test="params != null and params.isReturn == 1">
-                AND T3.rc &gt; 0
+                AND T4.rc &gt; 0
             </if>
             <if test="params != null and params.isReturn == 0">
-                AND T3.rc = 0
+                AND T4.rc = 0
             </if>
         </where>
     </select>
@@ -149,7 +160,7 @@
         LEFT JOIN ZJUGIS_OA.SYSTEM_COMPANY C ON T3.ID = T.INVOICE_COMPANY_ID
         LEFT JOIN ZJUGIS_OA.SYSTEM_DEPT D ON D.ID = T2.ZRBM_ID
         LEFT JOIN ZJUGIS_OA.SYSTEM_USERS U ON U.ID = T2.XSRY_ID
-        LEFT JOIN (SELECT count(1) as rc,max(RETURN_DATE) as maxd, min(RETURN_DATE) as mind,CONTRACT_INVOICE_ID,COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount FROM CONTRACT_RETURN_MONEY WHERE ISVALID = 1 GROUP BY CONTRACT_INVOICE_ID) T3 ON T3.CONTRACT_INVOICE_ID=T.ID
+        LEFT JOIN (SELECT count(1) as rc,max(RETURN_DATE) as maxd, min(RETURN_DATE) as mind,CONTRACT_INVOICE_ID,COALESCE(SUM(COALESCE(RETURN_AMOUNT,0)),0) as returnAmount FROM CONTRACT_RETURN_MONEY WHERE ISVALID = 1 GROUP BY CONTRACT_INVOICE_ID) T5 ON T5.CONTRACT_INVOICE_ID=T.ID
         <where>
             T.ISVALID = 1
             <if test="params != null and params.deptId != null and params.deptId != ''">
@@ -161,6 +172,9 @@
             <if test="params != null and params.contractId != null and params.contractId != ''">
                 AND T.CONTRACT_ID = #{params.contractId,jdbcType=VARCHAR}
             </if>
+            <if test="params != null and params.invoiceAmount != null">
+                AND T.INVOICE_AMOUNT = #{params.invoiceAmount,jdbcType=DECIMAL}
+            </if>
             <if test="params != null and params.invoiceNumber != null and params.invoiceNumber != ''">
                 <bind name="invoiceNumber" value="'%'+params.invoiceNumber+'%'"/>
                 AND T.INVOICE_NUMBER like #{invoiceNumber}
@@ -193,13 +207,13 @@
                 AND T.INVOICE_DATE &lt;= #{params.invoiceOff,jdbcType=DATE}
             </if>
             <if test="params != null and params.returnOn != null">
-                AND T3.mind &gt;= #{params.returnOn,jdbcType=DATE}
+                AND T5.mind &gt;= #{params.returnOn,jdbcType=DATE}
             </if>
             <if test="params != null and params.returnOff != null">
-                AND T3.maxd &lt;= #{params.returnOff,jdbcType=DATE}
+                AND T5.maxd &lt;= #{params.returnOff,jdbcType=DATE}
             </if>
             <if test="params != null and params.isReturn == 1">
-                AND T3.rc > 0
+                AND T5.rc > 0
             </if>
             <if test="params != null and params.idList != null">
                 and T.ID IN