diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialCapitalEquipmentMapper.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialCapitalEquipmentMapper.java
index 75252961ab17a004e57155ab06fff00ff74701af..85ae33f09248f9c23bab6a6755abb2238cba7bbb 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialCapitalEquipmentMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialCapitalEquipmentMapper.java
@@ -3,6 +3,7 @@ package com.seasky.costCalculateSpecialSkd.business.dao.mapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.seasky.core.base.BaseMapper;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.PageCapitalEquipmentCostDetailOut;
+import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolTotalExpendSituation.PageSchoolTotalExpendSituationQry;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialCapitalEquipmentPo;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialHousePropertyPo;
 import org.apache.ibatis.annotations.Mapper;
@@ -34,6 +35,10 @@ public interface EssentialCapitalEquipmentMapper extends BaseMapper<EssentialCap
      */
     List<PageCapitalEquipmentCostDetailOut> pageCapitalEquipmentCostDetail(Page page, @Param("topicGroupCodesCondition") List<String> topicGroupCodesCondition, @Param("year") Integer year, @Param("list") List<String> list);
 
+
+    List<PageCapitalEquipmentCostDetailOut> pageCapitalEquipmentCostDetail2(Page page, @Param("qry") PageSchoolTotalExpendSituationQry qry,@Param("year") Integer year, @Param("list") List<String> list);
+
+
     /**
      * @param topicGroupCodesCondition
      * @param year
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialExpensesMapper.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialExpensesMapper.java
index 36b1f56e12e3db2805f6f6b7b9e1bd0a07c70faf..1777f8eb8789291035171d0c690c4ed28fb99882 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialExpensesMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialExpensesMapper.java
@@ -5,6 +5,7 @@ import com.seasky.core.base.BaseMapper;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.CollegeCostSubjectDetailsQry;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.ExpensesCostSubjectDetailOut;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.PageOtherExpenseCostDetailOut;
+import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolTotalExpendSituation.PageSchoolTotalExpendSituationQry;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialExpensesPo;
 import com.seasky.costCalculateSpecialSkd.business.enums.TopicGroupTypeEnum;
 import org.apache.ibatis.annotations.Mapper;
@@ -59,10 +60,17 @@ public interface EssentialExpensesMapper extends BaseMapper<EssentialExpensesPo>
                                                                    @Param("year") Integer year,
                                                                    @Param("list") List<String> subjectCodes,
                                                                    @Param("topicGroupTypeValue") String topicGroupTypeValue
-                                                                   );
+    );
     // @Param("filterSummaries") List<String> filterSummaries);
 
 
+    List<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetail2(Page page,
+                                                                    @Param("year") Integer year,
+                                                                    @Param("list") List<String> subjectCodes,
+                                                                    @Param("qry")    PageSchoolTotalExpendSituationQry qry,
+                                                                    @Param("fundingType") String fundingType
+    );
+
     /**
      * 鏌ヨ鍑轰竴涓儴闂ㄤ笅鐨勫叾浠栬垂鐢紝骞舵牴鎹鐩綊闆嗙被鍨嬨€佸€熻捶鏂瑰悜姹囨€�
      *
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialHousePropertyMapper.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialHousePropertyMapper.java
index 3f1662acae43371af9ee832486f0f8ceab886296..cee7cfec7191024ac1aff5dcab5e11630ec5e85b 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialHousePropertyMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialHousePropertyMapper.java
@@ -3,6 +3,7 @@ package com.seasky.costCalculateSpecialSkd.business.dao.mapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.seasky.core.base.BaseMapper;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolTotalExpendSituation.PageHousePropertyDetailOut;
+import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolTotalExpendSituation.PageSchoolTotalExpendSituationQry;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialDepartmentPo;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialHousePropertyPo;
 import org.apache.ibatis.annotations.Mapper;
@@ -32,5 +33,7 @@ public interface EssentialHousePropertyMapper extends BaseMapper<EssentialHouseP
     List<PageHousePropertyDetailOut> pageHousePropertyDetail(Page page, @Param("year") Integer year, @Param("topicGroupCodesCondition") List<String> topicGroupCodesCondition);
 
 
+    List<PageHousePropertyDetailOut> pageHousePropertyDetail2(Page page, @Param("year") Integer year, @Param("qry") PageSchoolTotalExpendSituationQry qry);
+
 
 }
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialSalaryMapper.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialSalaryMapper.java
index 4bfe746e55ba5da0507cbf79d3bc5ecd84d0b4e4..5148fbed57041743715f9382f18f927b8714a2dc 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialSalaryMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialSalaryMapper.java
@@ -111,6 +111,17 @@ public interface EssentialSalaryMapper extends BaseMapper<EssentialSalaryPo> {
                                                                          @Param("topicGroupCodesCondition") List<String> topicGroupCodesCondition);
 
 
+    /**
+     * 浜哄憳缁忚垂璇︾粏鍒楄〃  鍙睍绀�
+     *
+     * @param page            鍒嗛〉
+     * @param dto             鏉′欢
+     * @return 鍒嗛〉缁撴灉
+     */
+    List<PageDepartEmployeeActualityMiningOut> pageSalaryEmployeeDetails2(Page page,
+                                                                         @Param("dto") SalaryConditionDto dto);
+
+
     /**
      * 宸ヨ祫绂忓埄璐圭敤璇︾粏鍒楄〃   鎸夌収宸ュ彿姹囨€�
      *
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialStudentSalaryMapper.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialStudentSalaryMapper.java
index a47d3c56873d28022950e588510ae4c831b46463..cfbfe70ca41e59ea49b36f38925f21862251abb1 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialStudentSalaryMapper.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/mapper/EssentialStudentSalaryMapper.java
@@ -6,6 +6,7 @@ import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSu
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.PageStudentSalaryCostDetailOut;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.StudentSalaryCollegeCostSubjectDetailOut;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.StudentSalaryGroupCollegeOut;
+import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolTotalExpendSituation.PageSchoolTotalExpendSituationQry;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialStudentSalaryPo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -52,6 +53,7 @@ public interface EssentialStudentSalaryMapper extends BaseMapper<EssentialStuden
     List<PageStudentSalaryCostDetailOut> pageStudentSalaryCostDetail(Page page, @Param("year") Integer year, @Param("collegeCode") String collegeCode );
 
 
+    List<PageStudentSalaryCostDetailOut> pageStudentSalaryCostDetail2(Page page, @Param("year") Integer year,@Param("qry") PageSchoolTotalExpendSituationQry qry );
 
 
 
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialCapitalEquipmentMapper.xml b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialCapitalEquipmentMapper.xml
index f1e6e12fcae541f9775523a9f3a7f7019a29ba65..5e12a9a0d7265412b415d8d33b38e83202232ae1 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialCapitalEquipmentMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialCapitalEquipmentMapper.xml
@@ -44,6 +44,20 @@
             #{item}
         </foreach>
     </select>
+
+    <select id="pageCapitalEquipmentCostDetail2"
+            resultType="com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.PageCapitalEquipmentCostDetailOut">
+        select a.*,c.topic_group_name from tb_essential_capital_equipment a
+        LEFT JOIN tb_essential_department c ON a.topic_group_code = c.topic_group_code AND c.`year` = #{year}
+        where a.`year` =#{year}
+        and a.topic_group_code=#{qry.topicGroupCode}
+        <foreach collection="list" separator="," open="and SUBSTR(capital_type_code,1,3)  not in (" close=")"
+                 item="item" index="index">
+            #{item}
+        </foreach>
+    </select>
+
+
     <select id="groupDepartmentCodeValues"
             resultType="com.seasky.costCalculateSpecialSkd.business.entity.EssentialCapitalEquipmentPo">
         SELECT department_code as topic_group_code ,sum(depreciation_value) depreciation_value from tb_essential_capital_equipment a
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialExpensesMapper.xml b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialExpensesMapper.xml
index dd6ab814ede383d50f5348cd6fe787670bb64287..94caffe0fc9d898550c6d577a65e1ce75bcb916a 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialExpensesMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialExpensesMapper.xml
@@ -58,6 +58,29 @@
             #{item}
         </foreach>
     </select>
+
+    <select id="pageOtherExpenseCostDetail2"
+            resultType="com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.PageOtherExpenseCostDetailOut">
+        SELECT
+        a.voucher_code,a.`subject`,a.summary,a.lending_direction,a.amount
+        FROM
+        tb_essential_expenses a
+        JOIN ( SELECT DISTINCT subject_code
+        FROM tb_subject
+        WHERE available = 'YES' AND subject_belong != 7 and subject_belong!=0
+
+        ) b ON a.`subject` = b.subject_code
+
+        WHERE
+        a.`year` = #{year}
+        AND a.topic_group_code=#{qry.topicGroupCode}
+        and a.funding_type=#{fundingType}
+        <foreach collection="list" index="index" open=" AND a.`subject` IN  (" close=")" item="item" separator=",">
+            #{item}
+        </foreach>
+    </select>
+
+
     <select id="selectExpensesCollegeCostSubjectByLendingDirection"
             resultType="com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.ExpensesCostSubjectDetailOut">
         SELECT
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialHousePropertyMapper.xml b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialHousePropertyMapper.xml
index 6974aaa4dde35e16aaf9df3665dd6478fd4e4c11..e38f5e1d454588b61c178c2487ae5628f984ef08 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialHousePropertyMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialHousePropertyMapper.xml
@@ -27,6 +27,28 @@
         b.department_code,
         b.department_name
     </select>
+    <select id="pageHousePropertyDetail2"
+            resultType="com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolTotalExpendSituation.PageHousePropertyDetailOut">
+        SELECT
+        b.department_code,
+        b.department_name,
+        b.topic_group_code,
+        b.topic_group_name,
+        a.area,
+        a.`value`,
+        a.depreciation_value
+        FROM
+        tb_essential_house_property a
+        JOIN tb_essential_department b ON a.topic_group_code = b.topic_group_code
+        AND b.`year` = #{year}
+        WHERE
+        a.`year` = #{year}
+       and a.topic_group_code=#{qry.topicGroupCode}
+
+        ORDER BY
+        b.department_code,
+        b.department_name
+    </select>
 
 
     <insert id="batchInsertEssentialHouseProperty">
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialSalaryMapper.xml b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialSalaryMapper.xml
index 9d939f8f57aa3c89a77d9165c3bc0635a71e1611..63318f583093e8f391a1fc9e207872171f9fea77 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialSalaryMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialSalaryMapper.xml
@@ -265,11 +265,12 @@ where a.`year`=#{year} and b.department_code=#{departmentCode}
         FROM
         tb_essential_employee a
         LEFT JOIN tb_essential_department c ON a.topic_group_code = c.topic_group_code AND c.`year` = #{dto.year}
-        JOIN tb_essential_salary b ON a.employee_code = b.teacher_code AND b.`year` = #{dto.year} and teacher_code !=''
+        JOIN tb_essential_salary b ON a.employee_code = b.teacher_code AND b.`year` = #{dto.year}
         WHERE
         a.`year` = #{dto.year}
 
-        <foreach collection="topicGroupCodesCondition" index="index" item="item" open=" AND c.topic_group_code in(" separator=","
+        <foreach collection="topicGroupCodesCondition" index="index" item="item" open=" AND c.topic_group_code in("
+                 separator=","
                  close=")">
             #{item}
         </foreach>
@@ -290,6 +291,57 @@ where a.`year`=#{year} and b.department_code=#{departmentCode}
         </if>
 
     </select>
+
+    <select id="pageSalaryEmployeeDetails2"
+            resultType="com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.employeeAnalysis.PageDepartEmployeeActualityMiningOut">
+
+        SELECT
+        a.employee_code,
+        a.employee_name,
+        c.department_code,
+        c.topic_group_code,
+        c.topic_group_name,
+        a.birthday,
+        (YEAR(NOW())-YEAR(a.birthday)+1) age,
+        a.education,
+        a.is_staff,
+        a.post,
+        a.title,
+        a.degree,
+        a.speciality,
+        c.department_name,
+        IFNULL( finance_salary, 0 ) finance_salary,
+        IFNULL( achievement_salary, 0 ) achievement_salary,
+        IFNULL( society_insure, 0 ) society_insure,
+        IFNULL( bonus, 0 ) bonus,
+        IFNULL( other_salary, 0 ) other_salary,
+        b.summary
+        FROM
+        tb_essential_employee a
+        LEFT JOIN tb_essential_department c ON a.topic_group_code = c.topic_group_code AND c.`year` = #{dto.year}
+        JOIN tb_essential_salary b ON a.employee_code = b.teacher_code AND b.`year` = #{dto.year}
+        WHERE
+        a.`year` = #{dto.year}
+        AND c.topic_group_code =#{dto.topicGroupCode}
+
+        <if test="dto.employeeCode !=null and dto.employeeCode !=''">
+            AND a.employee_code = #{dto.employeeCode}
+        </if>
+        <if test="dto.employeeName !=null and dto.employeeName !=''">
+            AND a.employee_name = #{dto.employeeName}
+        </if>
+
+        <if test="dto.isStaff!=null">
+            AND a.is_staff=#{dto.isStaff}
+        </if>
+
+        <if test="dto.educationStr!=null and dto.educationStr !=''">
+            ${dto.educationStr}
+        </if>
+
+    </select>
+
+
     <select id="salaryGroupAmountByDepartment"
             resultType="com.seasky.costCalculateSpecialSkd.business.entity.EssentialSalaryPo">
         SELECT c.department_code as teacher_code,c.department_name as summary,sum(a.finance_salary)
@@ -376,7 +428,8 @@ where a.`year`=#{year} and b.department_code=#{departmentCode}
         END education
         FROM tb_essential_employee a
         <if test="departmentCode !=null and departmentCode !=''">
-            JOIN tb_essential_department c ON a.topic_group_code = c.topic_group_code  and department_code=#{departmentCode} and c.`year`=#{year}
+            JOIN tb_essential_department c ON a.topic_group_code = c.topic_group_code and
+            department_code=#{departmentCode} and c.`year`=#{year}
         </if>
         WHERE a.`year`=#{year}
         ) b ON a.teacher_code = b.employee_code
@@ -417,7 +470,8 @@ where a.`year`=#{year} and b.department_code=#{departmentCode}
         WHERE
         a.`year` = #{dto.year}
 
-        <foreach collection="topicGroupCodesCondition" index="index" item="item" open=" AND c.topic_group_code in(" separator=","
+        <foreach collection="topicGroupCodesCondition" index="index" item="item" open=" AND c.topic_group_code in("
+                 separator=","
                  close=")">
             #{item}
         </foreach>
@@ -438,6 +492,7 @@ where a.`year`=#{year} and b.department_code=#{departmentCode}
         </if>
 
     </select>
+
     <insert id="batchInsertSalary">
         insert into tb_essential_salary(
         id,
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialStudentSalaryMapper.xml b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialStudentSalaryMapper.xml
index eafc2fb8829e1dba3d2ec27d938c6762aecdc0c8..835cccb0a283840cfae5ec365f429285c1c04c90 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialStudentSalaryMapper.xml
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dao/xml/EssentialStudentSalaryMapper.xml
@@ -80,4 +80,30 @@ GROUP BY
         ORDER BY
         a.student_code
     </select>
+    <select id="pageStudentSalaryCostDetail2"
+            resultType="com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.PageStudentSalaryCostDetailOut">
+        SELECT
+        a.student_code,
+        b.student_name,
+        a.summary,
+        SUM(grant_amount) cost
+        FROM
+        tb_essential_student_salary a
+        JOIN tb_essential_student b ON a.student_code = b.student_code
+        WHERE
+        IFNULL( a.student_code, '' )!= ''
+        AND a.`year` = #{year}
+
+        AND b.`year` = #{year}
+
+       AND a.topic_group_code=#{qry.topicGroupCode}
+
+        GROUP BY a.student_code,
+        b.student_name,
+        a.summary
+        ORDER BY
+        a.student_code
+    </select>
+
+
 </mapper>
\ No newline at end of file
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/SalaryConditionDto.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/SalaryConditionDto.java
index 3217f7423cf9039a908ced3e99c3b26b6857e891..dcce66ca89d584e17fbc4ac3a20fea9c4477b363 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/SalaryConditionDto.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/SalaryConditionDto.java
@@ -21,6 +21,10 @@ public class SalaryConditionDto {
     @ApiModelProperty(value = "閮ㄩ棬缂栧彿")
     private String departmentCode;
 
+
+    @ApiModelProperty(value = "璇鹃缁勭紪鍙�")
+    private String topicGroupCode;
+
     @ApiModelProperty(value = "宸ュ彿", example = "hf003")
     private String employeeCode;
 
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/employeeAnalysis/PageDepartEmployeeActualityMiningOut.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/employeeAnalysis/PageDepartEmployeeActualityMiningOut.java
index 0eb493b1a5aec0e03b2a517752a9ff834cf3e284..29ef821ff93980ce1dd6fffbbd67ae2204ed5fb9 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/employeeAnalysis/PageDepartEmployeeActualityMiningOut.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/employeeAnalysis/PageDepartEmployeeActualityMiningOut.java
@@ -50,6 +50,15 @@ public class PageDepartEmployeeActualityMiningOut {
     @ExcelProperty(value = "閮ㄩ棬缂栧彿")
     private String departmentCode;
 
+    @ApiModelProperty(value = "璇鹃缁勭紪鍙�")
+    @ExcelProperty(value = "璇鹃缁勭紪鍙�")
+    private String topicGroupCode;
+
+
+    @ApiModelProperty(value = "璇鹃缁勫悕绉�")
+    @ExcelProperty(value = "璇鹃缁勫悕绉�")
+    private String topicGroupName;
+
     @ApiModelProperty(value = "閮ㄩ棬鍚嶇О")
     @ExcelProperty(value = "閮ㄩ棬鍚嶇О")
     private String departmentName;
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PageCapitalEquipmentCostDetailOut.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PageCapitalEquipmentCostDetailOut.java
index 771b5800be22edd36c11763c58b4694fea6f5bfc..c1ecb49e5de856d3b67dc055443e50d1390c54dd 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PageCapitalEquipmentCostDetailOut.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PageCapitalEquipmentCostDetailOut.java
@@ -35,6 +35,15 @@ public class PageCapitalEquipmentCostDetailOut {
     @ExcelProperty(value = "璁惧鍚嶇О")
     private String capitalName;
 
+    @ApiModelProperty(value = "璇鹃缁勭紪鍙�")
+    @ExcelProperty(value = "璇鹃缁勭紪鍙�")
+    private String topicGroupCode;
+
+
+    @ApiModelProperty(value = "璇鹃缁勫悕绉�")
+    @ExcelProperty(value = "璇鹃缁勫悕绉�")
+    private String topicGroupName;
+
     @ApiModelProperty(value = "鍙栧緱鏃堕棿")
     @ExcelProperty(value = "鍙栧緱鏃堕棿")
     private Date achieveDate;
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PublicServiceCollegeCostSubjectDetailOut.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PublicServiceCollegeCostSubjectDetailOut.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb08abd4bb34ca48da467e6d5c4710f43f09e857
--- /dev/null
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolCostSubjectAnalysis/PublicServiceCollegeCostSubjectDetailOut.java
@@ -0,0 +1,49 @@
+package com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author 64136
+ * @date 2024/06/13 16:04
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class PublicServiceCollegeCostSubjectDetailOut extends CollegeCostSubjectDetailsBase {
+
+    @ApiModelProperty(value = "鏄庣粏")
+    private List<ShareTypeDetail> shareTypeDetails;
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @Builder
+    public static class ShareTypeDetail {
+
+        @ApiModelProperty(value = "鏀嚭璐圭敤绫诲瀷", example = "浜哄憳缁忚垂")
+        private String costType;
+
+        @ApiModelProperty(value = "鎬绘敮鍑鸿垂鐢ㄩ噾棰�", example = "100.00")
+        private BigDecimal totalAmount;
+
+        @ApiModelProperty(value = "鍗犳瘮", example = "0.76")
+        private BigDecimal proportion;
+
+        @ApiModelProperty(value = "鍗犳瘮閲戦", example = "76.00")
+        private BigDecimal propAmount;
+
+        @ApiModelProperty(value = "鐩存帴銆侀棿鎺ュ崰姣� 娉ㄦ剰锛氬彧鏈夌鐮旀椿鍔ㄦ墠浼氭湁鍊�", example = "0.40")
+        private BigDecimal secondProp;
+        @ApiModelProperty(value = "鐩存帴銆侀棿鎺ュ崰姣旈噾棰� 娉ㄦ剰锛氬彧鏈夌鐮旀椿鍔ㄦ墠浼氭湁鍊�", example = "30.4")
+        private BigDecimal secondPropAmount;
+    }
+
+}
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageHousePropertyDetailOut.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageHousePropertyDetailOut.java
index 7f91060b04ba823fceec96c2eb63c5fda58acd3b..27bd2ddd03483fd195766ecedd476ed7015445b7 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageHousePropertyDetailOut.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageHousePropertyDetailOut.java
@@ -33,6 +33,16 @@ public class PageHousePropertyDetailOut {
     @ExcelProperty(value = "閮ㄩ棬鍚嶇О")
     private String departmentName;
 
+
+    @ApiModelProperty(value = "璇鹃缁勭紪鍙�")
+    @ExcelProperty(value = "璇鹃缁勭紪鍙�")
+    private String topicGroupCode;
+
+
+    @ApiModelProperty(value = "璇鹃缁勫悕绉�")
+    @ExcelProperty(value = "璇鹃缁勫悕绉�")
+    private String topicGroupName;
+
     @ApiModelProperty(value = "闈㈢Н")
     @ExcelProperty(value = "闈㈢Н")
     @JsonSerialize(using = BigDecimalSerializer.class)
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageSchoolTotalExpendSituationQry.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageSchoolTotalExpendSituationQry.java
index 9de92758f1325db3f8deb1480b73b88f5a779b85..3aa03d95e3d0ff96b17f57e2120c4aebe70ed640 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageSchoolTotalExpendSituationQry.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/costAnalysis/schoolTotalExpendSituation/PageSchoolTotalExpendSituationQry.java
@@ -17,13 +17,10 @@ import javax.validation.constraints.NotNull;
 @NoArgsConstructor
 public class PageSchoolTotalExpendSituationQry extends PageBaseQry {
 
-    @NotNull(message = "id涓嶈兘涓虹┖")
-    @ApiModelProperty(value = "鎵ц涓婚敭id")
-    private Long executionId;
 
 
-    @ApiModelProperty(value = "閮ㄩ棬缂栧彿")
-    private String departmentCode;
+    @ApiModelProperty(value = "璇鹃缁勭紪鍙�")
+    private String topicGroupCode;
 
 
     @ApiModelProperty(value = "宸ュ彿", notes = "宸ヨ祫绂忓埄璐圭殑鏃跺€欐湁鐢�", example = "hf003")
@@ -32,24 +29,12 @@ public class PageSchoolTotalExpendSituationQry extends PageBaseQry {
     @ApiModelProperty(value = "濮撳悕", notes = "宸ヨ祫绂忓埄璐圭殑鏃跺€欐湁鐢�", example = "鏉滃鎴�")
     private String employeeName;
 
-    @ApiModelProperty(value = "鏄惁鏄嫭绔嬮儴闂�")
-    private Boolean isIndependentDepartment;
+//    @ApiModelProperty(value = "閮ㄩ棬绫诲埆锛氶棿鎺ユ暀瀛︺€佺洿鎺ョ鐮斻€佸叕鍏辨湇鍔°€佺洿鎺ユ暀瀛︺€侀棿鎺ョ鐮�", example = "闂存帴绉戠爺")
+//    private String departType;
 
 
 
-    public Boolean getIsIndependentDepartment() {
-        return isIndependentDepartment == null ? false : isIndependentDepartment;
-    }
 
 
 
-
-    public String getDepartmentCode() {
-        if ("鍏ㄦ牎".equals(this.departmentCode)) {
-            return "";
-        }
-        return this.departmentCode;
-    }
-
-
 }
\ No newline at end of file
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/EachDepartmentWaitShareDto.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/EachDepartmentWaitShareDto.java
index d7aefd49b02e16cb0f8a9640d668f8585111601f..6dad61378dc9b1cdc0bcddf497837efffc97a822 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/EachDepartmentWaitShareDto.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/EachDepartmentWaitShareDto.java
@@ -31,9 +31,9 @@ public class EachDepartmentWaitShareDto {
     /**
      * CostAnalysisSubjectEnum 鏉ユ簮
      */
-    private Integer costSubject;
+    private Integer cs;
     /**
      * 閲戦
      */
-    private BigDecimal amount;
+    private BigDecimal at;
 }
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/PublicServiceWaitShareDto.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/PublicServiceWaitShareDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..5f1d557b600f3eba5dcf16982b2a68fe93d53306
--- /dev/null
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/dto/studentCostExtend/PublicServiceWaitShareDto.java
@@ -0,0 +1,78 @@
+package com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 鍏叡鏈嶅姟 绛夊緟鍒嗕韩
+ *
+ * @author 64136
+ * @date 2024/06/13 15:22
+ **/
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class PublicServiceWaitShareDto {
+
+    /**
+     * 绉戠爺姣斾緥
+     */
+    private BigDecimal ky;
+
+    /**
+     * 鏁欏姣斾緥
+     **/
+    private BigDecimal jx;
+
+    /**
+     * 鍚堣閲戦
+     */
+    private BigDecimal hjAmount;
+
+    /**
+     * 绉戠爺鍒嗘憡閲戦
+     */
+    private BigDecimal kyAmount;
+
+    /**
+     * 鏁欏鍒嗘憡閲戦
+     */
+    private BigDecimal jxAmount;
+    /**
+     * 鐩存帴绉戠爺姣斾緥
+     */
+    private BigDecimal zjKy;
+    /**
+     * 闂存帴绉戠爺姣斾緥
+     */
+    private BigDecimal jjKy;
+
+
+    private List<Detail> details;
+
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @Data
+    @Builder
+    public static class Detail {
+        /**
+         * 閮ㄩ棬缂栧彿
+         */
+        private String dCode;
+
+        /**
+         * CostAnalysisSubjectEnum 鏉ユ簮
+         */
+        private Integer cs;
+
+        /**
+         * 閲戦
+         */
+        private BigDecimal at;
+    }
+}
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/SchoolTotalExpendSituationService.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/SchoolTotalExpendSituationService.java
index 5143b734a79eed5f2cc81a964c7bf487b7a2de5b..7e652954ccb2b8885a9270439ec134b11be77efe 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/SchoolTotalExpendSituationService.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/SchoolTotalExpendSituationService.java
@@ -70,28 +70,28 @@ public interface SchoolTotalExpendSituationService {
     Pagination<PageHousePropertyDetailOut> pageHousePropertyDetails(PageSchoolTotalExpendSituationQry qry);
 
     /**
-     * 鍒嗛〉-鍟嗗搧涓庢湇鍔¤缁嗗垪琛�
+     * 鍒嗛〉-椤圭洰缁忚垂璇︾粏鍒楄〃
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    Pagination<PageOtherExpenseCostDetailOut> pageExpenseGoodsAndServiceDetails(PageSchoolTotalExpendSituationQry qry);
+    Pagination<PageOtherExpenseCostDetailOut> pageProjectFundingDetails(PageSchoolTotalExpendSituationQry qry);
 
     /**
-     * 鍒嗛〉-涓汉涓庡搴ˉ鍔╄缁嗗垪琛�
+     * 鍒嗛〉-澶栭儴绉戠爺缁忚垂璇︾粏鍒楄〃
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    Pagination<PageOtherExpenseCostDetailOut> pageExpensePersonSelfAndFamilyAllowanceDetails(PageSchoolTotalExpendSituationQry qry);
+    Pagination<PageOtherExpenseCostDetailOut> pageExternalResearchFundingDetails(PageSchoolTotalExpendSituationQry qry);
 
     /**
-     * 鍒嗛〉-鍏朵粬涓氬姟璐圭敤璇︾粏鍒楄〃
+     * 鍒嗛〉-鍏敤缁忚垂璇︾粏鍒楄〃
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    Pagination<PageOtherExpenseCostDetailOut> pageExpenseOtherDetails(PageSchoolTotalExpendSituationQry qry);
+    Pagination<PageOtherExpenseCostDetailOut> pagePublicFundingDetails(PageSchoolTotalExpendSituationQry qry);
 
 
     /**
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/StudentCostExtendService.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/StudentCostExtendService.java
index d82c6dbd88c28a1100958d215546dd9bdc67e1dd..f53d83ac95d1e951940e168b9cdc593278b882fb 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/StudentCostExtendService.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/StudentCostExtendService.java
@@ -2,6 +2,7 @@ package com.seasky.costCalculateSpecialSkd.business.service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.EachDepartmentWaitShareDto;
+import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.PublicServiceWaitShareDto;
 import com.seasky.costCalculateSpecialSkd.business.entity.ExecutionPo;
 import com.seasky.costCalculateSpecialSkd.business.entity.StudentCostExtendPo;
 
@@ -17,5 +18,5 @@ public interface StudentCostExtendService {
 
     List<EachDepartmentWaitShareDto> eachdepartmentWaitShareDtos(Long executionId);
 
-    JSONObject publicServiceShareProportion(Long executionId);
+    PublicServiceWaitShareDto publicServiceShareProportion(Long executionId);
 }
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolCostSubjectAnalysisServiceImpl.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolCostSubjectAnalysisServiceImpl.java
index 2e26b534b5369f40195813b963077325e2066456..057695aac6af9d0d691a86b4648e94f8e4ff8cff 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolCostSubjectAnalysisServiceImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolCostSubjectAnalysisServiceImpl.java
@@ -10,6 +10,7 @@ import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.*;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.schoolCostSubjectAnalysis.*;
 import com.seasky.costCalculateSpecialSkd.business.dto.costAnalysis.teachingStatus.TeachingSituationMiningOut;
 import com.seasky.costCalculateSpecialSkd.business.dto.strategy.UsedSubjectVo;
+import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.PublicServiceWaitShareDto;
 import com.seasky.costCalculateSpecialSkd.business.entity.*;
 import com.seasky.costCalculateSpecialSkd.business.enums.*;
 import com.seasky.costCalculateSpecialSkd.business.service.*;
@@ -78,6 +79,9 @@ public class SchoolCostSubjectAnalysisServiceImpl implements SchoolCostSubjectAn
     @Resource
     ExecutionParameterGhostService executionParameterGhostService;
 
+    @Resource
+    StudentCostExtendService studentCostExtendService;
+
     @Resource
     EssentialCapitalEquipmentMapper essentialCapitalEquipmentMapper;
 
@@ -123,12 +127,19 @@ public class SchoolCostSubjectAnalysisServiceImpl implements SchoolCostSubjectAn
             case 瀛︾敓濂栧姪瀛﹂噾_娲ヨˉ璐�:
                 costSubjectEnumList.add(CostSubjectEnum.StudentSalaryCost.getKey());
                 break;
+            case 鍏叡閮ㄥ垎鍒嗘憡:
+                costSubjectEnumList.add(CostSubjectEnum.鍏叡閮ㄥ垎鍒嗘憡.getKey());
+                break;
             default:
                 break;
         }
         if (analysisSubjectEnum.equals(CostAnalysisSubjectEnum.瀛︾敓濂栧姪瀛﹂噾_娲ヨˉ璐�)) {
             studentSalaryGroupCollegeCost(out, executionPo);
-        } else {
+        }
+//        else if (analysisSubjectEnum.equals(CostAnalysisSubjectEnum.鍏叡閮ㄥ垎鍒嗘憡)) {
+//
+//        }
+        else {
             Map<String, BigDecimal> map = new HashMap<>();
 
             List<StudentCostPo> studentCostPos = studentCostMapper.groupStudentCostBySourceDepartment(new BaseConditionQry(executionPo.getId(), qry.getIsTeaching()), costSubjectEnumList);
@@ -163,6 +174,7 @@ public class SchoolCostSubjectAnalysisServiceImpl implements SchoolCostSubjectAn
         return out;
     }
 
+
     void studentSalaryGroupCollegeCost(CostSubjectAnalysisOut out, ExecutionPo executionPo) {
         ChartData chartData = new ChartData();
         BigDecimal sumAmount = BigDecimal.ZERO;
@@ -232,6 +244,9 @@ public class SchoolCostSubjectAnalysisServiceImpl implements SchoolCostSubjectAn
             case 瀛︾敓濂栧姪瀛﹂噾_娲ヨˉ璐�:
                 base = studentSalaryCollegeCostSubject(qry, executionPo);
                 break;
+            case 鍏叡閮ㄥ垎鍒嗘憡:
+                base = publicServiceShartCost(qry, executionPo);
+                break;
             default:
                 base = null;
                 break;
@@ -242,6 +257,52 @@ public class SchoolCostSubjectAnalysisServiceImpl implements SchoolCostSubjectAn
         return base;
     }
 
+    PublicServiceCollegeCostSubjectDetailOut publicServiceShartCost(CollegeCostSubjectDetailsQry qry, ExecutionPo executionPo) {
+        PublicServiceCollegeCostSubjectDetailOut out = new PublicServiceCollegeCostSubjectDetailOut();
+        List<PublicServiceCollegeCostSubjectDetailOut.ShareTypeDetail> shareTypeDetails = new ArrayList<>();
+        PublicServiceWaitShareDto publicServiceWaitShareDto = studentCostExtendService.publicServiceShareProportion(executionPo.getId());
+
+        BigDecimal prop = BigDecimal.ZERO;
+        BigDecimal secondProp = BigDecimal.ZERO;
+        if (qry.getIsTeaching()) {
+            prop = publicServiceWaitShareDto.getJx();
+        } else {
+            if (qry.getCostType().equals(0)) {
+                secondProp = publicServiceWaitShareDto.getZjKy();
+            } else {
+                secondProp = publicServiceWaitShareDto.getJjKy();
+            }
+
+        }
+
+        Map<Integer, BigDecimal> collect = publicServiceWaitShareDto.getDetails().stream()
+                .filter(x -> x.getDCode().equals(qry.getRealCollegeCode()))
+                .collect(Collectors.groupingBy(x -> x.getCs(), Collectors.reducing(BigDecimal.ZERO, x -> x.getAt(), BigDecimal::add)));
+
+        for (Integer integer : collect.keySet()) {
+            CostSubjectEnum enumByKey = CostSubjectEnum.getEnumByKey(integer);
+            BigDecimal multiply = collect.get(integer).multiply(prop);
+            PublicServiceCollegeCostSubjectDetailOut.ShareTypeDetail build = PublicServiceCollegeCostSubjectDetailOut.ShareTypeDetail.builder()
+                    .costType(enumByKey.getValue())
+                    .totalAmount(collect.get(integer))
+                    .proportion(prop)
+                    .propAmount(multiply)
+                    .secondProp(secondProp)
+                    .secondPropAmount(secondProp.multiply(multiply))
+                    .build();
+
+
+            shareTypeDetails.add(build);
+        }
+
+        out.setShareTypeDetails(shareTypeDetails);
+
+        return out;
+
+
+    }
+
+
     /**
      * 瀛︾敓鐨勮柂璧勫彂鏀�
      *
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolTotalExpendSituationServiceImpl.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolTotalExpendSituationServiceImpl.java
index 5ec87fd1dd087d82ca965b18b894474aa5a4ccce..125b235b67d07d6df959ffa17ce3e56beba4cb1e 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolTotalExpendSituationServiceImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/SchoolTotalExpendSituationServiceImpl.java
@@ -16,6 +16,7 @@ import com.seasky.costCalculateSpecialSkd.business.dto.strategy.UsedSubjectVo;
 import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.EachDepartmentWaitShareDto;
 import com.seasky.costCalculateSpecialSkd.business.entity.*;
 import com.seasky.costCalculateSpecialSkd.business.enums.CostAnalysisSubjectEnum;
+import com.seasky.costCalculateSpecialSkd.business.enums.FundingTypeEnum;
 import com.seasky.costCalculateSpecialSkd.business.enums.SubjectBelongEnum;
 import com.seasky.costCalculateSpecialSkd.business.enums.TopicGroupTypeEnum;
 import com.seasky.costCalculateSpecialSkd.business.service.*;
@@ -292,36 +293,32 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
         Pagination<PageStudentSalaryCostDetailOut> pagination = new Pagination<>(qry.getPageIndex(), qry.getPageSize());
         Page<PageStudentSalaryCostDetailOut> page = Pagination.toPage(pagination);
 
-        List<PageStudentSalaryCostDetailOut> list = essentialStudentSalaryMapper.pageStudentSalaryCostDetail(page, executionPo.getYear(), qry.getDepartmentCode());
+        List<PageStudentSalaryCostDetailOut> list = essentialStudentSalaryMapper.pageStudentSalaryCostDetail2(page, executionPo.getYear(), qry);
         page.setRecords(list);
         return Pagination.fromPage(page);
     }
 
     @Override
-    public Pagination<PageOtherExpenseCostDetailOut> pageExpenseOtherDetails(PageSchoolTotalExpendSituationQry qry) {
-        return pageExpense(SubjectBelongEnum.other, qry);
+    public Pagination<PageOtherExpenseCostDetailOut> pagePublicFundingDetails(PageSchoolTotalExpendSituationQry qry) {
+        return pageExpense(SubjectBelongEnum.other, qry, FundingTypeEnum.鍏敤缁忚垂);
     }
 
     @Override
-    public Pagination<PageOtherExpenseCostDetailOut> pageExpensePersonSelfAndFamilyAllowanceDetails(PageSchoolTotalExpendSituationQry qry) {
-        return pageExpense(SubjectBelongEnum.subsidy, qry);
+    public Pagination<PageOtherExpenseCostDetailOut> pageExternalResearchFundingDetails(PageSchoolTotalExpendSituationQry qry) {
+        return pageExpense(SubjectBelongEnum.subsidy, qry, FundingTypeEnum.澶栭儴绉戠爺缁忚垂);
     }
 
     @Override
-    public Pagination<PageOtherExpenseCostDetailOut> pageExpenseGoodsAndServiceDetails(PageSchoolTotalExpendSituationQry qry) {
-        return pageExpense(SubjectBelongEnum.goods, qry);
+    public Pagination<PageOtherExpenseCostDetailOut> pageProjectFundingDetails(PageSchoolTotalExpendSituationQry qry) {
+        return pageExpense(SubjectBelongEnum.goods, qry, FundingTypeEnum.椤圭洰缁忚垂);
     }
 
 
-    Pagination<PageOtherExpenseCostDetailOut> pageExpense(SubjectBelongEnum subjectBelongEnum, PageSchoolTotalExpendSituationQry qry) {
+    Pagination<PageOtherExpenseCostDetailOut> pageExpense(SubjectBelongEnum subjectBelongEnum, PageSchoolTotalExpendSituationQry qry, FundingTypeEnum fundingTypeEnum) {
         ExecutionPo executionPo = executionMapper.selectById(qry.getExecutionId());
         if (null == executionPo) {
             throw ExceptionUtil.getException(null, "鏈煡鐨刬d锛�" + qry.getExecutionId());
         }
-        List<String> topicGroupCodesCondition = new ArrayList<>();
-        if (StringUtils.isNotBlank(qry.getDepartmentCode())) {
-            topicGroupCodesCondition = essentialDepartmentService.getTopicGroupCodesByDepartCode(executionPo.getYear(), qry.getDepartmentCode(), null);
-        }
 
 
         UsedSubjectVo usedSubjectVo = executionParameterGhostService.ghostStrategyExpenses(executionPo.getId());
@@ -331,12 +328,11 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
                 .collect(Collectors.toList());
         Pagination<PageOtherExpenseCostDetailOut> pagination = new Pagination<>(qry.getPageIndex(), qry.getPageSize());
         Page<PageOtherExpenseCostDetailOut> page = Pagination.toPage(pagination);
-        List<PageOtherExpenseCostDetailOut> list = this.essentialExpensesMapper.pageOtherExpenseCostDetail(page,
-                topicGroupCodesCondition,
-                subjectBelongEnum.getKey(),
+        List<PageOtherExpenseCostDetailOut> list = this.essentialExpensesMapper.pageOtherExpenseCostDetail2(page,
                 executionPo.getYear(),
                 subjectCodes,
-                null
+                qry,
+                fundingTypeEnum.getKey()
         );
         //  Arrays.asList(CommConstant.FILTER_EXPENSES_SUMMARY));
 
@@ -350,10 +346,7 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
         if (null == executionPo) {
             throw ExceptionUtil.getException(null, "鏈煡鐨刬d锛�" + qry.getExecutionId());
         }
-        List<String> topicGroupCodesCondition = new ArrayList<>();
-        if (StringUtils.isNotBlank(qry.getDepartmentCode())) {
-            topicGroupCodesCondition = essentialDepartmentService.getTopicGroupCodesByDepartCode(executionPo.getYear(), qry.getDepartmentCode(), null);
-        }
+
         Pagination<PageHousePropertyDetailOut> pagination = new Pagination<>(qry.getPageIndex(), qry.getPageSize());
         Page<PageHousePropertyDetailOut> page = Pagination.toPage(pagination);
 
@@ -363,7 +356,7 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
         List<EssentialHousePropertyPo> essentialHousePropertyPos = essentialHousePropertyMapper.selectList(queryWrapper);
         HousePropertyShareVo housePropertyShareVo = executionParameterGhostService.ghostStrategyHouse(executionPo.getId());
         BigDecimal allSchoolDivide = allSchoolDivideAmount(essentialHousePropertyPos);
-        List<PageHousePropertyDetailOut> pageHousePropertyDetailOuts = essentialHousePropertyMapper.pageHousePropertyDetail(page, executionPo.getYear(), topicGroupCodesCondition);
+        List<PageHousePropertyDetailOut> pageHousePropertyDetailOuts = essentialHousePropertyMapper.pageHousePropertyDetail2(page, executionPo.getYear(), qry);
         for (PageHousePropertyDetailOut pageHousePropertyDetailOut : pageHousePropertyDetailOuts) {
             if (null == pageHousePropertyDetailOut.getDepreciationValue() || pageHousePropertyDetailOut.getDepreciationValue().compareTo(BigDecimal.ZERO) < 1) {
                 BigDecimal divide = allSchoolDivide.multiply(pageHousePropertyDetailOut.getArea()).divide(BigDecimal.valueOf(housePropertyShareVo.getDepreciationLimit()), CommConstant.COST_RESERVE_SCALE, BigDecimal.ROUND_HALF_UP);
@@ -386,14 +379,10 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
         Page<PageCapitalEquipmentCostDetailOut> page = Pagination.toPage(pagination);
 
 
-//        detailQry.setCollegeName(qry.getDepartmentCode() + CommConstant.SPLIT_STRING + qry.getDepartmentCode());
-
-        List<String> topicGroupCodesCondition = new ArrayList<>();
-        if (StringUtils.isNotBlank(qry.getDepartmentCode())) {
-            topicGroupCodesCondition = essentialDepartmentService.getTopicGroupCodesByDepartCode(executionPo.getYear(), qry.getDepartmentCode(), null);
-        }
-
-        List<PageCapitalEquipmentCostDetailOut> list = essentialCapitalEquipmentMapper.pageCapitalEquipmentCostDetail(page, topicGroupCodesCondition, executionPo.getYear(), systemParameterService.noDepreciationCodes());
+        List<PageCapitalEquipmentCostDetailOut> list = essentialCapitalEquipmentMapper.pageCapitalEquipmentCostDetail2(
+                page, qry,
+                executionPo.getYear(),
+                systemParameterService.noDepreciationCodes());
 
         page.setRecords(list);
         return Pagination.fromPage(page);
@@ -406,21 +395,17 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
             throw ExceptionUtil.getException(null, "鏈煡鐨刬d锛�" + qry.getExecutionId());
         }
 
-        List<String> topicGroupCodesCondition = new ArrayList<>();
-        if (StringUtils.isNotBlank(qry.getDepartmentCode())) {
-            topicGroupCodesCondition = essentialDepartmentService.getTopicGroupCodesByDepartCode(executionPo.getYear(), qry.getDepartmentCode(), null);
-        }
-
         Pagination<PageDepartEmployeeActualityMiningOut> pagination = new Pagination<>(qry.getPageIndex(), qry.getPageSize());
         Page<PageDepartEmployeeActualityMiningOut> page = Pagination.toPage(pagination);
 
         SalaryConditionDto dto = SalaryConditionDto.builder()
                 .year(executionPo.getYear())
+                .topicGroupCode(qry.getTopicGroupCode())
                 .employeeCode(qry.getEmployeeCode())
                 .employeeName(qry.getEmployeeName())
                 .build();
 
-        List<PageDepartEmployeeActualityMiningOut> pageEmployeeActualityOuts = essentialSalaryMapper.pageSalaryEmployeeDetails(page, dto, topicGroupCodesCondition);
+        List<PageDepartEmployeeActualityMiningOut> pageEmployeeActualityOuts = essentialSalaryMapper.pageSalaryEmployeeDetails2(page, dto);
         page.setRecords(pageEmployeeActualityOuts);
         return Pagination.fromPage(page);
     }
@@ -535,8 +520,8 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
 
 
         Map<Integer, BigDecimal> collect = eachDepartmentWaitShareDtos.stream()
-                .collect(Collectors.groupingBy(x -> x.getCostSubject(),
-                        Collectors.reducing(BigDecimal.ZERO, x -> x.getAmount(), BigDecimal::add)));
+                .collect(Collectors.groupingBy(x -> x.getCs(),
+                        Collectors.reducing(BigDecimal.ZERO, x -> x.getAt(), BigDecimal::add)));
         BigDecimal bigDecimal = BigDecimal.ZERO;
         for (Integer integer : collect.keySet()) {
             CostAnalysisSubjectEnum enumByKey = CostAnalysisSubjectEnum.getEnumByKey(integer);
@@ -583,8 +568,8 @@ public class SchoolTotalExpendSituationServiceImpl implements SchoolTotalExpendS
         Map<String, String> mapTopicCodeToName = essentialDepartmentService.mapTopicCodeToName(executionPo.getYear(), qry.getDepartmentCode());
 
         Map<String, BigDecimal> collect = eachDepartmentWaitShareDtos.stream()
-                .filter(x -> x.getCostSubject().equals(enumByValue.getKey()))
-                .collect(Collectors.groupingBy(x -> x.getTCode(), Collectors.reducing(BigDecimal.ZERO, x -> x.getAmount(), BigDecimal::add)));
+                .filter(x -> x.getCs().equals(enumByValue.getKey()))
+                .collect(Collectors.groupingBy(x -> x.getTCode(), Collectors.reducing(BigDecimal.ZERO, x -> x.getAt(), BigDecimal::add)));
 
         List<TempDataOrder> list = new ArrayList<>();
         for (String s : collect.keySet()) {
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/StudentCostExtendServiceImpl.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/StudentCostExtendServiceImpl.java
index 1f125c038816a329977c286e686847aa32c89224..5f202f268cdffa575603bda398c30cf9986dcd6d 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/StudentCostExtendServiceImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/StudentCostExtendServiceImpl.java
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.seasky.costCalculateSpecialSkd.business.dao.mapper.StudentCostExtendMapper;
 import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.EachDepartmentWaitShareDto;
+import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.PublicServiceWaitShareDto;
 import com.seasky.costCalculateSpecialSkd.business.entity.ExecutionPo;
 import com.seasky.costCalculateSpecialSkd.business.entity.StudentCostExtendPo;
 import com.seasky.costCalculateSpecialSkd.business.enums.StudentCostExtendEnum;
@@ -57,11 +58,10 @@ public class StudentCostExtendServiceImpl implements StudentCostExtendService {
     }
 
     @Override
-    public JSONObject publicServiceShareProportion(Long executionId) {
+    public PublicServiceWaitShareDto publicServiceShareProportion(Long executionId) {
         StudentCostExtendPo studentCostExtendPo = selectEntity(executionId, StudentCostExtendEnum.鍏叡鏈嶅姟鍒嗘憡姣斾緥);
 
-
-        return JSONObject.parseObject(studentCostExtendPo.getExtendValue());
+        return JSONObject.parseObject(studentCostExtendPo.getExtendValue(), PublicServiceWaitShareDto.class);
     }
 
 
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/TotalExpenditureOfTheSchoolServiceImpl.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/TotalExpenditureOfTheSchoolServiceImpl.java
index 59e282f75b5d1d8c0c1ef39fc45df3cc40dde2e3..248aea49cc3e6773c00dd1e9c75e9574fdfad31e 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/TotalExpenditureOfTheSchoolServiceImpl.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/TotalExpenditureOfTheSchoolServiceImpl.java
@@ -101,7 +101,7 @@ public class TotalExpenditureOfTheSchoolServiceImpl implements TotalExpenditureO
                     .collect(Collectors.toList());
             BigDecimal reduce3 = eachDepartmentWaitShareDtos.stream()
                     .filter(x -> collect.contains(x.getTCode()))
-                    .map(x -> x.getAmount())
+                    .map(x -> x.getAt())
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
 
             out.getEachDepartmentExpendPieData().add(new ChartPie(topicGroupType, reduce3));
@@ -130,7 +130,7 @@ public class TotalExpenditureOfTheSchoolServiceImpl implements TotalExpenditureO
 
         Map<String, BigDecimal> collect1 = eachDepartmentWaitShareDtos.stream()
                 .filter(x -> collect.contains(x.getTCode()))
-                .collect(Collectors.groupingBy(x -> x.getDCode(), Collectors.reducing(BigDecimal.ZERO, x -> x.getAmount(), BigDecimal::add)));
+                .collect(Collectors.groupingBy(x -> x.getDCode(), Collectors.reducing(BigDecimal.ZERO, x -> x.getAt(), BigDecimal::add)));
 
         List<TempDataOrder> list = new ArrayList<>();
         for (String s : collect1.keySet()) {
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/CalculationService.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/CalculationService.java
index 359ce1b75a8a89fbf2946c51ad3d4595ee5e16da..aee5b408e52f806f5e1314e85c7e60bb608d603d 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/CalculationService.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/CalculationService.java
@@ -81,17 +81,14 @@ public class CalculationService {
 
 
         }
-
+        List<EachDepartmentWaitShareDto> eachDepartmentWaitShareDtoList = new ArrayList<>();
         for (ExecutionBase executionBase : executionBaseList) {
-
-            List<EachDepartmentWaitShareDto> eachDepartmentWaitShareDtoList = new ArrayList<>();
             eachDepartmentWaitShareDtoList.addAll(executionBase.eachDepartmentWaitShareDtoList);
-
-            this.studentCostExtendPoList.add(StudentCostExtendPo.builder()
-                    .extendKey(StudentCostExtendEnum.鍚勯儴闂ㄦ牎鏀嚭鎯呭喌.getKey())
-                    .extendValue(JSONObject.toJSONString(eachDepartmentWaitShareDtoList))
-                    .build());
         }
+        this.studentCostExtendPoList.add(StudentCostExtendPo.builder()
+                .extendKey(StudentCostExtendEnum.鍚勯儴闂ㄦ牎鏀嚭鎯呭喌.getKey())
+                .extendValue(JSONObject.toJSONString(eachDepartmentWaitShareDtoList))
+                .build());
 
 
         ExecutionSecondaryAllocationOfPublicServices executionSecondaryAllocationOfPublicServices = new ExecutionSecondaryAllocationOfPublicServices(calculationCache, executionBaseList);
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/ExecutionBase.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/ExecutionBase.java
index 6e27cab9f4bf6193217115605d0319b8f8ab2248..1fc0c76a804b585676510e37a3cf367f0701d573 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/ExecutionBase.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/ExecutionBase.java
@@ -97,8 +97,8 @@ public abstract class ExecutionBase {
         this.eachDepartmentWaitShareDtoList.add(EachDepartmentWaitShareDto.builder()
                 .dCode(departmentPo.getDepartmentCode())
                 .tCode(departmentPo.getTopicGroupCode())
-                .costSubject(costAnalysisSubjectEnum.getKey())
-                .amount(amount)
+                .cs(costAnalysisSubjectEnum.getKey())
+                .at(amount)
                 .build());
     }
 
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/expenses/ExecutionExpenses.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/expenses/ExecutionExpenses.java
index 76e3a23c27dbf259e41b36716d0de3a7db2b6748..8aef95b00c1b0bbf4ebbe17885f064921dfc5eaa 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/expenses/ExecutionExpenses.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/expenses/ExecutionExpenses.java
@@ -98,7 +98,8 @@ public class ExecutionExpenses extends ExecutionBase {
                     this.calculationCache.fileAppenderUtil.append(" 閲戦涓�0 鐩存帴continue");
                     continue;
                 }
-                this.analysisEachDepartWaitShareData(essentialDepartmentPo, CostAnalysisSubjectEnum.璧勪骇璁惧鎶樻棫,currentSumAmount);
+                CostAnalysisSubjectEnum enumByValue = CostAnalysisSubjectEnum.getEnumByValue(fundingTypeEnum.getKey());
+                this.analysisEachDepartWaitShareData(essentialDepartmentPo, enumByValue,currentSumAmount);
                 this.shareMethod(essentialDepartmentPo, currentSumAmount, CostSubjectEnum.getEnumByValue(fundingTypeEnum.getKey()), "");
             }
         }
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/special/ExecutionSecondaryAllocationOfPublicServices.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/special/ExecutionSecondaryAllocationOfPublicServices.java
index 75fa793837c74d07ba04b057ab4b7c4f24669581..fee58cc8c807cb338bad065cbc0ca1d677f84739 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/special/ExecutionSecondaryAllocationOfPublicServices.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/business/service/impl/execution/special/ExecutionSecondaryAllocationOfPublicServices.java
@@ -4,6 +4,7 @@ import cn.hutool.core.io.file.FileAppender;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.seasky.costCalculateSpecialSkd.business.constant.CommConstant;
+import com.seasky.costCalculateSpecialSkd.business.dto.studentCostExtend.PublicServiceWaitShareDto;
 import com.seasky.costCalculateSpecialSkd.business.entity.EssentialDepartmentPo;
 import com.seasky.costCalculateSpecialSkd.business.entity.StrategyPo;
 import com.seasky.costCalculateSpecialSkd.business.entity.StudentCostExtendPo;
@@ -14,6 +15,7 @@ import com.seasky.costCalculateSpecialSkd.business.enums.CostTypeEnum;
 import com.seasky.costCalculateSpecialSkd.business.enums.StudentCostExtendEnum;
 import com.seasky.costCalculateSpecialSkd.business.service.impl.execution.CalculationCache;
 import com.seasky.costCalculateSpecialSkd.business.service.impl.execution.ExecutionBase;
+import com.sun.org.apache.regexp.internal.RE;
 import lombok.extern.slf4j.Slf4j;
 
 import java.math.BigDecimal;
@@ -62,6 +64,8 @@ public class ExecutionSecondaryAllocationOfPublicServices extends ExecutionBase
     //鍘熷鐨� 闂存帴绉戠爺鎴愭湰 閮ㄩ棬缂栧彿_璇鹃缁勭紪鍙�---->姹囨€婚噾棰�
     Map<String, BigDecimal> mapOriginalIndirectSRTopicGroupCodeToAmount;
 
+    PublicServiceWaitShareDto publicServiceWaitShareDto = new PublicServiceWaitShareDto();
+
     public ExecutionSecondaryAllocationOfPublicServices(CalculationCache calculationCache, List<ExecutionBase> executionBaseList) {
         super(calculationCache, StrategyPo.builder().id(3344520L).strategyName("鍏叡鏈嶅姟浜屾鍒嗘憡").build());
         this.calculationCache = calculationCache;
@@ -125,21 +129,37 @@ public class ExecutionSecondaryAllocationOfPublicServices extends ExecutionBase
 
         this.calculationCache.fileAppenderUtil.append("鍏叡鏈嶅姟 鍒嗘憡缁欑鐮旂殑鎴愭湰姣斾緥锛�" + proportionOfSR + "=" + costScientificResearch + "/" + total + "\t鍒嗘憡缁欐暀瀛︾殑閮ㄥ垎姣斾緥锛�" + proportionOfTeaching + "=" + 1 + "-" + proportionOfSR, true);
 
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("ky", proportionOfSR);
-        jsonObject.put("jx", proportionOfTeaching);
-        jsonObject.put("totalAmount", total);
-        jsonObject.put("kyAmount", costScientificResearch);
-        jsonObject.put("jxAmount", costTeaching);
 
-        this.studentCostExtendPoList.add(StudentCostExtendPo.builder()
-                .extendKey(StudentCostExtendEnum.鍏叡鏈嶅姟鍒嗘憡姣斾緥.getKey())
-                .extendValue(JSONObject.toJSONString(jsonObject))
-                .build());
+        publicServiceWaitShareDto.setKy(proportionOfSR);
+        publicServiceWaitShareDto.setJx(proportionOfTeaching);
+        publicServiceWaitShareDto.setHjAmount(total);
+        publicServiceWaitShareDto.setKyAmount(costScientificResearch);
+        publicServiceWaitShareDto.setJxAmount(costTeaching);
+
+        Map<String, BigDecimal> mapWaitCost = this.firstPublicServiceList.stream().collect(Collectors.groupingBy(x -> x.getSourceDepartmentCode() + CommConstant.SPLIT_STRING + x.getCostSubject(), Collectors.reducing(BigDecimal.ZERO, x -> x.getCost(), BigDecimal::add)));
+        List<PublicServiceWaitShareDto.Detail> details = new ArrayList<>();
+        for (String key : mapWaitCost.keySet()) {
+            String[] split = key.split(CommConstant.SPLIT_STRING);
+            PublicServiceWaitShareDto.Detail build = PublicServiceWaitShareDto.Detail.builder()
+                    .dCode(split[0])
+                    .cs(Integer.parseInt(split[1]))
+                    .at(mapWaitCost.get(key))
+                    .build();
+            details.add(build);
+        }
+
+        publicServiceWaitShareDto.setDetails(details);
 
         shareTeaching(proportionOfTeaching);
         shareFirstScientificResearch(proportionOfSR);
         shareIndirectToDirect();
+
+
+        this.studentCostExtendPoList.add(StudentCostExtendPo.builder()
+                .extendKey(StudentCostExtendEnum.鍏叡鏈嶅姟鍒嗘憡姣斾緥.getKey())
+                .extendValue(JSONObject.toJSONString(publicServiceWaitShareDto))
+                .build());
+
         this.calculationCache.fileAppenderUtil.append("缁撴潫鎵ц 鍏叡鏈嶅姟鐨勪簩娆″垎鎽�...", true);
     }
 
@@ -271,7 +291,7 @@ public class ExecutionSecondaryAllocationOfPublicServices extends ExecutionBase
                     .departmentName(studentCostPo.getSourceDepartmentCode())
                     .build();
             CostSubjectEnum enumByKey = CostSubjectEnum.getEnumByKey(studentCostPo.getCostSubject());
-            this.analysisIndirectTeachingList(departmentPo, multiply, CostSubjectEnum.鍏叡閮ㄥ垎鍒嗘憡, studentCostPo.getEmployeeCode(),enumByKey.getKey());
+            this.analysisIndirectTeachingList(departmentPo, multiply, CostSubjectEnum.鍏叡閮ㄥ垎鍒嗘憡, studentCostPo.getEmployeeCode(), enumByKey.getKey());
         }
         this.calculationCache.fileAppenderUtil.append("缁撴潫寰幆鍏叡鏈嶅姟鏁版嵁 鐩殑锛氭暀瀛﹀垎鎽�.....", true);
 
@@ -304,6 +324,10 @@ public class ExecutionSecondaryAllocationOfPublicServices extends ExecutionBase
             firstShareIndirectSR(studentCostPo, waitForShareSRAmount, totalSRAmount);
         }
 
+        BigDecimal divide = reduce.divide(totalSRAmount, CommConstant.COST_RESERVE_SCALE, BigDecimal.ROUND_HALF_UP);
+        this.publicServiceWaitShareDto.setZjKy(divide);
+        this.publicServiceWaitShareDto.setJjKy(BigDecimal.valueOf(1).subtract(divide));
+
         this.calculationCache.fileAppenderUtil.append("缁撴潫寰幆鍏叡鏈嶅姟鏁版嵁绗竴娆$鐮斿垎鎽� 鐩殑锛氬皢鍏叡鏈嶅姟涓€閮ㄥ垎鎴愭湰鍒嗘憡缁欐墍鏈夌鐮斾笂.....", true);
     }
 
diff --git a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/web/controller/ReportFormController.java b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/web/controller/ReportFormController.java
index 02721f65e031a56d2f441c115f211f6d95b91dfc..1328722080cd803a74a5c7c72aa8e7b70c8b41eb 100644
--- a/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/web/controller/ReportFormController.java
+++ b/ServiceSite/src/main/java/com/seasky/costCalculateSpecialSkd/web/controller/ReportFormController.java
@@ -729,8 +729,8 @@ public class ReportFormController {
 
 
     @PostMapping("pc/v1/schoolTotalExpendSituationChartData")
-    @ApiOperation(value = "1101.鏍℃€绘敮鍑烘儏鍐�-鏌辩姸鍥�", notes = "鏍℃€绘敮鍑烘儏鍐�")
-    @ApiOperationSupport(order = 1109)
+    @ApiOperation(value = "1102.鏍℃€绘敮鍑烘儏鍐�-鏌辩姸鍥�", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperationSupport(order = 1102)
     public Result<ChartData> schoolTotalExpendSituationChartData(@RequestBody @Validated SchoolTotalExpendSituationBarChartQry qry) {
         return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.schoolTotalExpendSituationChartData(qry));
     }
@@ -739,19 +739,19 @@ public class ReportFormController {
 
 
 
-    /**
-     * 宸ヨ祫绂忓埄鍙戞斁淇℃伅 姹囨€诲浘琛�
-     *
-     * @param qry 鏉′欢
-     * @return 缁撴灉
-     */
-    @PostMapping("pc/v1/salaryDistributionInformation")
-    @ApiOperation(value = "1102.宸ヨ祫绂忓埄鍙戞斁淇℃伅 姹囨€诲浘琛�", notes = "鏍℃€绘敮鍑烘儏鍐�")
-    @ApiOperationSupport(order = 1102)
-    public Result<ChartData> salaryDistributionInformation(@RequestBody @Validated SchoolTotalExpendSituationQry qry) {
-        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.salaryDistributionInformation(qry));
-    }
-
+//    /**
+//     * 宸ヨ祫绂忓埄鍙戞斁淇℃伅 姹囨€诲浘琛�
+//     *
+//     * @param qry 鏉′欢
+//     * @return 缁撴灉
+//     */
+//    @PostMapping("pc/v1/salaryDistributionInformation")
+//    @ApiOperation(value = "1102.宸ヨ祫绂忓埄鍙戞斁淇℃伅 姹囨€诲浘琛�", notes = "鏍℃€绘敮鍑烘儏鍐�")
+//    @ApiOperationSupport(order = 1102)
+//    public Result<ChartData> salaryDistributionInformation(@RequestBody @Validated SchoolTotalExpendSituationQry qry) {
+//        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.salaryDistributionInformation(qry));
+//    }
+//
 
     /**
      * 鍒嗛〉-宸ヨ祫绂忓埄璐圭敤璇︾粏鍒楄〃
@@ -760,7 +760,7 @@ public class ReportFormController {
      * @return 缁撴灉
      */
     @PostMapping("pc/v1/pageSalaryEmployeeDetails")
-    @ApiOperation(value = "1103.鍒嗛〉-宸ヨ祫绂忓埄璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperation(value = "1103.鍒嗛〉-浜哄憳缁忚垂璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
     @ApiOperationSupport(order = 1103)
     public Result<PageDepartEmployeeActualityMiningOut> pageSalaryEmployeeDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
         return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageSalaryEmployeeDetails(qry));
@@ -773,7 +773,7 @@ public class ReportFormController {
      * @return 缁撴灉
      */
     @PostMapping("pc/v1/pageCapitalEquipmentDetails")
-    @ApiOperation(value = "1104.鍒嗛〉-璧勪骇璁惧璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperation(value = "1104.鍒嗛〉-璧勪骇璁惧鎶樻棫璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
     @ApiOperationSupport(order = 1104)
     public Result<PageCapitalEquipmentCostDetailOut> pageCapitalEquipmentDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
         return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageCapitalEquipmentDetails(qry));
@@ -786,66 +786,69 @@ public class ReportFormController {
      * @return 缁撴灉
      */
     @PostMapping("pc/v1/pageHousePropertyDetails")
-    @ApiOperation(value = "1105.鍒嗛〉-鎴夸骇璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperation(value = "1105.鍒嗛〉-鎴垮眿鎴夸骇璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
     @ApiOperationSupport(order = 1105)
     public Result<PageHousePropertyDetailOut> pageHousePropertyDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
         return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageHousePropertyDetails(qry));
     }
 
+
     /**
-     * 鍒嗛〉-鍟嗗搧涓庢湇鍔¤缁嗗垪琛�
+     * 鍒嗛〉-瀛︾敓娲ヨˉ鍔�
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    @PostMapping("pc/v1/pageExpenseGoodsAndServiceDetails")
-    @ApiOperation(value = "1106.鍒嗛〉-鍟嗗搧涓庢湇鍔¤缁嗗垪琛�", notes = "鏍℃€绘敮鍑烘儏鍐�")
-    @ApiOperationSupport(order = 1106)
-    public Result<PageOtherExpenseCostDetailOut> pageExpenseGoodsAndServiceDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
-        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageExpenseGoodsAndServiceDetails(qry));
+    @PostMapping("pc/v1/pageStudentSalaryDetails")
+    @ApiOperation(value = "1106.鍒嗛〉-瀛︾敓娲ヨˉ鍔�", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperationSupport(order = 1109)
+    public Result<PageStudentSalaryCostDetailOut> pageStudentSalaryDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
+        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageStudentSalaryDetails(qry));
     }
 
+
     /**
-     * 鍒嗛〉-涓汉涓庡搴ˉ鍔╄缁嗗垪琛�
+     * 鍒嗛〉-椤圭洰缁忚垂璇︾粏鍒楄〃
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    @PostMapping("pc/v1/pageExpensePersonSelfAndFamilyAllowanceDetails")
-    @ApiOperation(value = "1107.鍒嗛〉-涓汉涓庡搴ˉ鍔╄缁嗗垪琛�", notes = "鏍℃€绘敮鍑烘儏鍐�")
-    @ApiOperationSupport(order = 1107)
-    public Result<PageOtherExpenseCostDetailOut> pageExpensePersonSelfAndFamilyAllowanceDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
-        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageExpensePersonSelfAndFamilyAllowanceDetails(qry));
+    @PostMapping("pc/v1/pageProjectFundingDetails")
+    @ApiOperation(value = "1106.鍒嗛〉-椤圭洰缁忚垂璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperationSupport(order = 1106)
+    public Result<PageOtherExpenseCostDetailOut> pageProjectFundingDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
+        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageProjectFundingDetails(qry));
     }
 
-
     /**
-     * 鍒嗛〉-鍏朵粬涓氬姟璐圭敤璇︾粏鍒楄〃
+     * 鍒嗛〉-鍏敤缁忚垂璇︾粏鍒楄〃
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    @PostMapping("pc/v1/pageExpenseOtherDetails")
-    @ApiOperation(value = "1108.鍒嗛〉-鍏朵粬涓氬姟璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
-    @ApiOperationSupport(order = 1108)
-    public Result<PageOtherExpenseCostDetailOut> pageExpenseOtherDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
-        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageExpenseOtherDetails(qry));
+    @PostMapping("pc/v1/pagePublicFundingDetails")
+    @ApiOperation(value = "1107.鍒嗛〉-鍏敤缁忚垂璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperationSupport(order = 1107)
+    public Result<PageOtherExpenseCostDetailOut> pagePublicFundingDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
+        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pagePublicFundingDetails(qry));
     }
 
+
     /**
-     * 鍒嗛〉-瀛︾敓娲ヨˉ鍔�
+     * 鍒嗛〉-澶栭儴绉戠爺璐圭敤璇︾粏鍒楄〃
      *
      * @param qry 鏉′欢
      * @return 缁撴灉
      */
-    @PostMapping("pc/v1/pageStudentSalaryDetails")
-    @ApiOperation(value = "1109.鍒嗛〉-瀛︾敓娲ヨˉ鍔�", notes = "鏍℃€绘敮鍑烘儏鍐�")
-    @ApiOperationSupport(order = 1109)
-    public Result<PageStudentSalaryCostDetailOut> pageStudentSalaryDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
-        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageStudentSalaryDetails(qry));
+    @PostMapping("pc/v1/pageExternalResearchFundingDetails")
+    @ApiOperation(value = "1108.鍒嗛〉-澶栭儴绉戠爺璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @ApiOperationSupport(order = 1108)
+    public Result<PageOtherExpenseCostDetailOut> pageExternalResearchFundingDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry) {
+        return Response.ok(ResponseCode.SUCCESS, schoolTotalExpendSituationService.pageExternalResearchFundingDetails(qry));
     }
 
 
+
     /**
      * 瀵煎嚭-宸ヨ祫绂忓埄璐圭敤璇︾粏鍒楄〃
      *
@@ -899,36 +902,36 @@ public class ReportFormController {
     }
 
     /**
-     * 瀵煎嚭-鍟嗗搧涓庢湇鍔¤缁嗗垪琛�
+     * 瀵煎嚭-鍏敤缁忚垂璇︾粏鍒楄〃
      *
      * @param qry      鏉′欢
      * @param response response
      */
-    @PostMapping("pc/v1/exportExpenseGoodsAndServiceDetails")
-    @ApiOperation(value = "1113.瀵煎嚭-鍟嗗搧涓庢湇鍔¤缁嗗垪琛�", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @PostMapping("pc/v1/exportPublicFundingDetails")
+    @ApiOperation(value = "1113.瀵煎嚭-鍏敤缁忚垂璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
     @ApiOperationSupport(order = 1113)
-    public void exportExpenseGoodsAndServiceDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry, HttpServletResponse response) {
+    public void exportPublicFundingDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry, HttpServletResponse response) {
         qry.setPageIndex(1);
         qry.setPageSize(-1);
-        Pagination<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetailOutPagination = schoolTotalExpendSituationService.pageExpenseGoodsAndServiceDetails(qry);
-        FileUtil.writeExcel(response, "鍟嗗搧涓庢湇鍔�", pageOtherExpenseCostDetailOutPagination.getRecords(), "鍟嗗搧涓庢湇鍔�", null, PageOtherExpenseCostDetailOut.class);
+        Pagination<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetailOutPagination = schoolTotalExpendSituationService.pagePublicFundingDetails(qry);
+        FileUtil.writeExcel(response, "鍏敤缁忚垂璇︾粏鍒楄〃", pageOtherExpenseCostDetailOutPagination.getRecords(), "鍏敤缁忚垂璇︾粏鍒楄〃", null, PageOtherExpenseCostDetailOut.class);
 
     }
 
     /**
-     * 瀵煎嚭-涓汉涓庡搴ˉ鍔╄缁嗗垪琛�
+     * 瀵煎嚭-椤圭洰缁忚垂璇︾粏鍒楄〃
      *
      * @param qry      鏉′欢
      * @param response response
      */
-    @PostMapping("pc/v1/exportExpensePersonSelfAndFamilyAllowanceDetails")
-    @ApiOperation(value = "1114.瀵煎嚭-涓汉涓庡搴ˉ鍔╄缁嗗垪琛�", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @PostMapping("pc/v1/exportProjectFundingDetails")
+    @ApiOperation(value = "1114.瀵煎嚭-椤圭洰缁忚垂璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
     @ApiOperationSupport(order = 1114)
-    public void exportExpensePersonSelfAndFamilyAllowanceDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry, HttpServletResponse response) {
+    public void exportProjectFundingDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry, HttpServletResponse response) {
         qry.setPageIndex(1);
         qry.setPageSize(-1);
-        Pagination<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetailOutPagination = schoolTotalExpendSituationService.pageExpensePersonSelfAndFamilyAllowanceDetails(qry);
-        FileUtil.writeExcel(response, "涓汉涓庡搴ˉ鍔�", pageOtherExpenseCostDetailOutPagination.getRecords(), "涓汉涓庡搴ˉ鍔�", null, PageOtherExpenseCostDetailOut.class);
+        Pagination<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetailOutPagination = schoolTotalExpendSituationService.pageProjectFundingDetails(qry);
+        FileUtil.writeExcel(response, "椤圭洰缁忚垂璇︾粏鍒楄〃", pageOtherExpenseCostDetailOutPagination.getRecords(), "椤圭洰缁忚垂璇︾粏鍒楄〃", null, PageOtherExpenseCostDetailOut.class);
 
     }
 
@@ -939,14 +942,14 @@ public class ReportFormController {
      * @param qry      鏉′欢
      * @param response response
      */
-    @PostMapping("pc/v1/exportExpenseOtherDetails")
-    @ApiOperation(value = "1115.瀵煎嚭-鍏朵粬涓氬姟璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
+    @PostMapping("pc/v1/exportExternalResearchFundingDetails")
+    @ApiOperation(value = "1115.瀵煎嚭-澶栭儴绉戠爺璐圭敤璇︾粏鍒楄〃", notes = "鏍℃€绘敮鍑烘儏鍐�")
     @ApiOperationSupport(order = 1115)
-    public void exportExpenseOtherDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry, HttpServletResponse response) {
+    public void exportExternalResearchFundingDetails(@RequestBody @Validated PageSchoolTotalExpendSituationQry qry, HttpServletResponse response) {
         qry.setPageIndex(1);
         qry.setPageSize(-1);
-        Pagination<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetailOutPagination = schoolTotalExpendSituationService.pageExpenseOtherDetails(qry);
-        FileUtil.writeExcel(response, "鍏朵粬涓氬姟璐圭敤", pageOtherExpenseCostDetailOutPagination.getRecords(), "鍏朵粬涓氬姟璐圭敤", null, PageOtherExpenseCostDetailOut.class);
+        Pagination<PageOtherExpenseCostDetailOut> pageOtherExpenseCostDetailOutPagination = schoolTotalExpendSituationService.pageExternalResearchFundingDetails(qry);
+        FileUtil.writeExcel(response, "澶栭儴绉戠爺璐圭敤璇︾粏鍒楄〃", pageOtherExpenseCostDetailOutPagination.getRecords(), "澶栭儴绉戠爺璐圭敤璇︾粏鍒楄〃", null, PageOtherExpenseCostDetailOut.class);
 
     }