ly 1 рік тому
батько
коміт
8ff59af7e0

+ 21 - 1
src/main/java/cn/ezhizao/project/business/collection/controller/BizCollectionController.java

@@ -484,11 +484,31 @@ public class BizCollectionController extends BaseController {
         return getDataTable(list);
     }
 
-    //@ApiOperation("导出收款统计报表")
+    @ApiOperation("导出收款统计报表")
+//    @PreAuthorize("@ss.hasPermi('business:salary:export')")
+    @Log(title = "导出收款统计报表", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportStatistics")
+    public void exportStatistics(ReqStatisticsVo conditions, HttpServletResponse response) throws NoSuchFieldException, IllegalAccessException {
+        List<ResStatisticsVo> list  =  collectionService.statistics(conditions);
+        ExcelUtil<ResStatisticsVo> util = new ExcelUtil<ResStatisticsVo>(ResStatisticsVo.class);
+        util.exportExcel(response, list, "工资数据");
+    }
 
     @ApiOperation("获取任务列表")
     @PostMapping("/listTask")
     public List<BizTaskType>  listTask(){
         return taskTypeService.getList(new BizTaskType());
     }
+
+    @ApiOperation("通过合同id查询具体收入支出")
+    @PostMapping("/getBycontract")
+    public Map<String,List<ResStatisticsVo>>  getByContract(ReqStatisticsVo conditions){
+        //收款
+      List<ResStatisticsVo> inList =  collectionService.getByContractIn(conditions);
+        //支出
+      List<ResStatisticsVo>outList =   collectionService.getByContractOut(conditions);
+        return null;
+    }
+
+
 }

+ 1 - 0
src/main/java/cn/ezhizao/project/business/collection/domain/vo/ReqStatisticsVo.java

@@ -25,5 +25,6 @@ public class ReqStatisticsVo {
     private Integer isProject;
     private Integer isNew;
     private Long tenantId;
+    private String contractId;
 
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/business/collection/mapper/BizCollectionMapper.java

@@ -42,6 +42,10 @@ public interface BizCollectionMapper extends BaseMapper<BizCollection> {
 
 
     List<ResStatisticsVo> statistics(@Param("conditions") ReqStatisticsVo conditions);
+
+    List<ResStatisticsVo> getByContractIn(ReqStatisticsVo conditions);
+
+    List<ResStatisticsVo> getByContractOut(ReqStatisticsVo conditions);
 }
 
 

+ 4 - 0
src/main/java/cn/ezhizao/project/business/collection/service/IBizCollectionService.java

@@ -49,4 +49,8 @@ public interface IBizCollectionService extends IService<BizCollection> {
     boolean removeCollectionBatchByIds(List<Long> ids);
 
     List<ResStatisticsVo> statistics(ReqStatisticsVo conditions);
+
+    List<ResStatisticsVo> getByContractIn(ReqStatisticsVo conditions);
+
+    List<ResStatisticsVo> getByContractOut(ReqStatisticsVo conditions);
 }

+ 10 - 0
src/main/java/cn/ezhizao/project/business/collection/service/impl/BizCollectionServiceImpl.java

@@ -456,4 +456,14 @@ public class BizCollectionServiceImpl extends ServiceImpl<BizCollectionMapper, B
     public List<ResStatisticsVo> statistics(ReqStatisticsVo conditions) {
         return collectionDao.statistics(conditions);
     }
+
+    @Override
+    public List<ResStatisticsVo> getByContractIn(ReqStatisticsVo conditions) {
+        return collectionDao.getByContractIn(conditions);
+    }
+
+    @Override
+    public List<ResStatisticsVo> getByContractOut(ReqStatisticsVo conditions) {
+        return collectionDao.getByContractOut(conditions);
+    }
 }

+ 105 - 6
src/main/resources/mybatis/business/BizCollectionMapper.xml

@@ -15,7 +15,7 @@
     <select id="getTotal" resultType="java.lang.Integer">
         SELECT COUNT(1) FROM (<include refid="getListSql"/>) AS C
     </select>
-    <select id="statistics" resultType="resStatisticsVo" >
+    <select id="statistics" resultType="resStatisticsVo">
         SELECT
         tt1.company_id as companyId,
         tt1.name as companyName,
@@ -63,7 +63,7 @@
         detail.amount AS fuwujine,
         SUM( CASE WHEN c.STATUS = 1 THEN detail.arrive_amount ELSE 0 END ) AS shishoujine,
         (
-        SUM( detail.arrive_amount ) - SUM( CASE WHEN c.STATUS = 1 THEN detail.arrive_amount ELSE 0 END )) AS
+        detail.amount - SUM( CASE WHEN c.STATUS = 1 THEN detail.arrive_amount ELSE 0 END )) AS
         daishoukuanjine,
         GROUP_CONCAT(
         IF
@@ -83,7 +83,7 @@
             AND com.NAME LIKE CONCAT('%',#{conditions.companyName},'%')
         </if>
         <if test="conditions.contractNo != null and conditions.contractNo != ''">
-            AND input.contract_no LIKE  CONCAT('%',#{conditions.contractNo},'%')
+            AND input.contract_no LIKE CONCAT('%',#{conditions.contractNo},'%')
         </if>
         <if test="conditions.taskTypeIds != null and conditions.taskTypeIds.size() &gt; 0">
             AND detail.task_type_id IN
@@ -147,11 +147,11 @@
                 #{item}
             </foreach>
         </if>
-        <if test="conditions.receiptDateFilter != null and conditions.receiptDateFilter.size() ">
+        <if test="conditions.examineTimeFilter != null and conditions.examineTimeFilter.size() ">
             AND (
-            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &gt;= #{conditions.receiptDateFilter[0]}
+            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &gt;= #{conditions.examineTimeFilter[0]}
             AND
-            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &lt;= #{conditions.receiptDateFilter[1]}
+            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &lt;= #{conditions.examineTimeFilter[1]}
             )
         </if>
 
@@ -163,6 +163,105 @@
         AND tt1.task_type_id = tt2.task_type_id
         AND tt1.contract_id = tt2.contract_id
 
+    </select>
+    <select id="getByContractIn" resultType="cn.ezhizao.project.business.collection.domain.vo.ResStatisticsVo">
+        SELECT
+        t3.NAME AS companyName,
+        t4.`name` AS taskTypeName,
+        t5.contract_no AS contractNo,
+        t1.arrive_date,
+        t6.nick_name,
+        CASE
+
+        WHEN t5.contract_type = 1 THEN
+        "续签" ELSE "新签"
+        END AS contractType,
+        CASE
+
+        WHEN t1.is_project = 1 THEN
+        "项目" ELSE
+        CASE
+
+        WHEN t1.is_project = 2 THEN
+        "非项目" ELSE ""
+        END
+        END AS isProject,
+        t2.amount AS detailAllAmount,
+        t2.arrive_amount as reallyDetailAmount,
+        t1.verify_date as examineTime
+        FROM
+        biz_collection t1 right join biz_collection_detail t2 ON t1.id = t2.collection_id
+        WHERE
+        t1.contract_id = #{conditions.contractId}
+        AND
+        t2.task_type_id = #{conditions.taskTypeId[0]}
+        <if test="conditions.receiptDateFilter != null and conditions.receiptDateFilter.size() ">
+            AND (
+            DATE_FORMAT(c.arrive_date,'%Y-%m-%d') &gt;= #{conditions.receiptDateFilter[0]}
+            AND
+            DATE_FORMAT(c.arrive_date,'%Y-%m-%d') &lt;= #{conditions.receiptDateFilter[1]}
+            )
+        </if>
+        <if test="conditions.examineTimeFilter != null and conditions.examineTimeFilter.size() ">
+            AND(
+            DATE_FORMAT(c.verify_date,'%Y-%m-%d') &gt;= #{conditions.examineTimeFilter[1]}
+            AND
+            DATE_FORMAT(c.verify_date,'%Y-%m-%d') &lt;= #{conditions.examineTimeFilter[1]}
+            )
+        </if>
+    </select>
+    <select id="getByContractOut"
+            resultType="cn.ezhizao.project.business.collection.domain.vo.ResStatisticsVo">
+        select tt1.*, tt2.zongjine as withdrawalAmount
+        from (SELECT t3.NAME AS companyName,
+        t4.`name` AS taskTypeName,
+        t5.contract_no AS contractNo,
+        t6.nick_name,
+        t2.amount AS detailAllAmount,
+        t2.payment_amount AS reallyDetailAmount,
+        t1.verify_date AS examineTime,
+        t2.task_type_id,
+        t1.company_id,
+        t1.contract_id
+        FROM biz_payment t1
+        RIGHT JOIN biz_payment_detail t2 ON t1.id = t2.payment_id
+        LEFT JOIN biz_company t3 ON t3.id = t1.company_id
+        LEFT JOIN biz_task_type t4 ON t4.id = t2.task_type_id
+        LEFT JOIN biz_archive_input t5 ON t5.id = t1.contract_id
+        LEFT JOIN sys_user t6 ON t6.user_id = t1.applier_id
+        WHERE t1.contract_id = 1806240221966196737
+        AND t2.task_type_id = 2
+        <if test="conditions.examineTimeFilter != null and conditions.examineTimeFilter.size() ">
+            AND (
+            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &gt;= #{conditions.examineTimeFilter[0]}
+            AND
+            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &lt;= #{conditions.examineTimeFilter[1]}
+            )
+        </if>
+        ORDER BY t1.verify_date DESC
+
+        ) tt1
+        LEFT JOIN
+        (SELECT p.company_id,
+        de.task_type_id,
+        p.contract_id,
+        sum(de.payment_amount) as zongjine
+        FROM biz_payment p
+        right join biz_payment_detail de ON p.id = de.payment_id
+        WHERE p.verify_status != 4
+        <if test="conditions.examineTimeFilter != null and conditions.examineTimeFilter.size() ">
+            AND (
+            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &gt;= #{conditions.examineTimeFilter[0]}
+            AND
+            DATE_FORMAT(t1.verify_date,'%Y-%m-%d') &lt;= #{conditions.examineTimeFilter[1]}
+            )
+        </if>
+        GROUP BY
+        p.company_id,
+        de.task_type_id,
+        p.contract_id) tt2 on tt1.task_type_id = tt2.task_type_id and tt1.company_id = tt2.company_id and
+        tt1.contract_id = tt2.contract_id
+
     </select>
 
     <sql id="getListSql">