Browse Source

更新代码,增加合计行,增加页面超链接

zhang_qk 2 months ago
parent
commit
9af3132142
58 changed files with 2691 additions and 401 deletions
  1. 28 24
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/mybatis/GuaranteeTableMapper.xml
  2. 2 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mapper/WithinTableCorporateLoansMapper.java
  3. 1 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mybatis/CorporateLoansCustomersMapper.xml
  4. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mybatis/ProductTypeCreditRiskListMapper.xml
  5. 11 10
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mybatis/WithinTableCorporateLoansMapper.xml
  6. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcCommitmentAction.java
  7. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcLoanAction.java
  8. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcOffSheetAction.java
  9. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FfRepoAction.java
  10. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FcCommitmentMapper.java
  11. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FcLoanMapper.java
  12. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FcOffSheetMapper.java
  13. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FfRepoMapper.java
  14. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcCommitmentMapper.xml
  15. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcLoanMapper.xml
  16. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcOffSheetMapper.xml
  17. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FfRepoMapper.xml
  18. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FcCommitmentService.java
  19. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FcLoanService.java
  20. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FcOffSheetService.java
  21. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FfRepoService.java
  22. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/model/ResultListModel.java
  23. 23 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/mybatis/ResultListMapper.xml
  24. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/model/StageDefinitionModel.java
  25. 33 27
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/mybatis/StageConfigMapper.xml
  26. 1 1
      Procedure/frontend/projectb/config/config.ts
  27. 56 12
      Procedure/frontend/projectb/src/pages/product/internal/accountmanagercreditriskoccupy.tsx
  28. 174 24
      Procedure/frontend/projectb/src/pages/product/internal/capitaloccupymonitor.tsx
  29. 506 16
      Procedure/frontend/projectb/src/pages/product/internal/corporateloanscustomerstop10.tsx
  30. 3 3
      Procedure/frontend/projectb/src/pages/product/internal/multidimensionalcreditrisk.tsx
  31. 498 14
      Procedure/frontend/projectb/src/pages/product/internal/productcreditriskcapitaloccupy.tsx
  32. 500 20
      Procedure/frontend/projectb/src/pages/product/internal/producttypecreditriskcapitaloccupy.tsx
  33. 599 102
      Procedure/frontend/projectb/src/pages/product/internal/withintablecorporateloans.tsx
  34. 6 3
      Procedure/frontend/projectb/src/pages/product/rwa_calc_config_004rwa/stageinformation.tsx
  35. 10 0
      Procedure/frontend/projectb/src/pages/project/dataquality/BondInvestment.tsx
  36. 10 1
      Procedure/frontend/projectb/src/pages/project/dataquality/DiscountTable.tsx
  37. 10 0
      Procedure/frontend/projectb/src/pages/project/dataquality/InterbankDepositOrLendingTable.tsx
  38. 10 0
      Procedure/frontend/projectb/src/pages/project/dataquality/NonStandardInvestment.tsx
  39. 10 0
      Procedure/frontend/projectb/src/pages/project/dataquality/OffCreditCard.tsx
  40. 19 9
      Procedure/frontend/projectb/src/pages/project/dataquality/OnCreditCard.tsx
  41. 2 2
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcCommitment.tsx
  42. 3 3
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcLoan.tsx
  43. 2 2
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcOffSheet.tsx
  44. 2 2
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/ffRepo.tsx
  45. 6 3
      Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx
  46. 23 5
      Procedure/frontend/projectb/src/pages/rwa_data_check/result_list.tsx
  47. 2 2
      Procedure/frontend/projectb/src/services/rwa/fcCommitment.ts
  48. 2 2
      Procedure/frontend/projectb/src/services/rwa/fcLoan.ts
  49. 2 2
      Procedure/frontend/projectb/src/services/rwa/fcOffSheet.ts
  50. 2 2
      Procedure/frontend/projectb/src/services/rwa/ffRepo.ts
  51. 11 10
      Procedure/frontend/projectb/src/services/rwa/product/internal/accountmanagercreditriskoccupy.ts
  52. 22 21
      Procedure/frontend/projectb/src/services/rwa/product/internal/capitaloccupymonitor.ts
  53. 15 14
      Procedure/frontend/projectb/src/services/rwa/product/internal/corporateloanscustomerstop10.ts
  54. 12 11
      Procedure/frontend/projectb/src/services/rwa/product/internal/productcreditriskcapitaloccupy.ts
  55. 12 11
      Procedure/frontend/projectb/src/services/rwa/product/internal/producttypecreditriskcapitaloccupy.ts
  56. 16 15
      Procedure/frontend/projectb/src/services/rwa/product/internal/withintablecorporateloans.ts
  57. 2 0
      Procedure/frontend/projectb/src/services/rwa/product/rwa_calc_config_004rwa/stageinformation.ts
  58. 2 0
      Procedure/frontend/projectb/src/services/rwa/result_list.ts

+ 28 - 24
Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/mybatis/GuaranteeTableMapper.xml

@@ -7,51 +7,55 @@
     <!-- 初始化 -->
     <select id="selectDataList"  resultType="com.sundata.product.rwa.interfacedatasheet.model.GuaranteeTableModel">
         select
-        SDATE                               AS   sDate,
-        EDATE                               AS   eDate,
-        DATA_DATE                           AS   dataDate,
-        MITIGATION_PROD_NO                  AS   mitigationProdNo,
-        MITIGATION_PROD_NAME                AS   mitigationProdName,
-        MITIGATION_PROD_TYPE                AS   mitigationProdType,
-        GUARANTOR_TRADE_CNTRPTY_NAME        AS   guarantorTradeCntrptyName,
-        GUARANTOR_TRADE_CNTRPTY_NO          AS   guarantorTradeCntrptyNo,
-        RISK_MITIGANT_CONTRACT_NO           AS   riskMitigantContractNo,
-        CONTRACT_NO                         AS   contractNo,
-        MITIGANT_ORGIN_DATE                 AS   mitigantOrginDate,
-        MITIGANT_EXPIRY_DATE                AS   mitigantExpiryDate,
-        RELATED_DEBTITEM_NO                 AS   relatedDebtitemNo,
-        GUARANTEE_AMT                       AS   guaranteeAmt
-        from RIM_APM_BS_FC_GUARENTEE
+        T1.SDATE                               AS   sDate,
+        T1.EDATE                               AS   eDate,
+        T1.DATA_DATE                           AS   dataDate,
+        T1.MITIGATION_PROD_NO                  AS   mitigationProdNo,
+        T1.MITIGATION_PROD_NAME                AS   mitigationProdName,
+        T1.MITIGATION_PROD_TYPE                AS   mitigationProdType,
+        T2.nounname                            AS   mitigationProdTypees ,
+        T1.GUARANTOR_TRADE_CNTRPTY_NAME        AS   guarantorTradeCntrptyName,
+        T1.GUARANTOR_TRADE_CNTRPTY_NO          AS   guarantorTradeCntrptyNo,
+        T1.RISK_MITIGANT_CONTRACT_NO           AS   riskMitigantContractNo,
+        T1.CONTRACT_NO                         AS   contractNo,
+        T1.MITIGANT_ORGIN_DATE                 AS   mitigantOrginDate,
+        T1.MITIGANT_EXPIRY_DATE                AS   mitigantExpiryDate,
+        T1.RELATED_DEBTITEM_NO                 AS   relatedDebtitemNo,
+        T1.GUARANTEE_AMT                       AS   guaranteeAmt
+        FROM RIM_APM_BS_FC_GUARENTEE T1
+        LEFT JOIN SYS_NOUN T2
+        ON T1.MITIGATION_PROD_TYPE = T2.NOUNVALUE
+        AND T2.nounitem ='SLOW_RELEASE_TYPE'
         <where>
             1=1
             <if test="model.dataDate != null and '' != model.dataDate">
-              and  DATA_DATE =#{model.dataDate}
+              and  T1.DATA_DATE =replace(#{model.dataDate},'-','')
             </if>
             <if test="model.mitigationProdNo != null and '' != model.mitigationProdNo">
-                and MITIGATION_PROD_NO like concat(concat('%',#{model.mitigationProdNo}),'%')
+                and T1.MITIGATION_PROD_NO like concat(concat('%',#{model.mitigationProdNo}),'%')
             </if>
             <if test="model.mitigationProdName != null and '' != model.mitigationProdName">
-                and MITIGATION_PROD_NAME like concat(concat('%',#{model.mitigationProdName}),'%')
+                and T1.MITIGATION_PROD_NAME like concat(concat('%',#{model.mitigationProdName}),'%')
             </if>
             <if test="model.mitigationProdTypes != null and '' != model.mitigationProdTypes">
-                <foreach collection="model.mitigationProdTypes" item="item" open="and MITIGATION_PROD_TYPE  in ( " separator="," close=")">
+                <foreach collection="model.mitigationProdTypes" item="item" open="and T1.MITIGATION_PROD_TYPE  in ( " separator="," close=")">
                     #{item}
                 </foreach>
             </if>
             <if test="model.guarantorTradeCntrptyName != null and '' != model.guarantorTradeCntrptyName">
-                and GUARANTOR_TRADE_CNTRPTY_NAME like concat(concat('%',#{model.guarantorTradeCntrptyName}),'%')
+                and T1.GUARANTOR_TRADE_CNTRPTY_NAME like concat(concat('%',#{model.guarantorTradeCntrptyName}),'%')
             </if>
             <if test="model.riskMitigantContractNo != null and '' != model.riskMitigantContractNo">
-                and RISK_MITIGANT_CONTRACT_NO like concat(concat('%',#{model.riskMitigantContractNo}),'%')
+                and T1.RISK_MITIGANT_CONTRACT_NO like concat(concat('%',#{model.riskMitigantContractNo}),'%')
             </if>
             <if test="model.contractNo != null and '' != model.contractNo">
-                and CONTRACT_NO like concat(concat('%',#{model.contractNo}),'%')
+                and T1.CONTRACT_NO like concat(concat('%',#{model.contractNo}),'%')
             </if>
             <if test="model.relatedDebtitemNo != null and '' != model.relatedDebtitemNo">
-                and RELATED_DEBTITEM_NO like concat(concat('%',#{model.relatedDebtitemNo}),'%')
+                and T1.RELATED_DEBTITEM_NO like concat(concat('%',#{model.relatedDebtitemNo}),'%')
             </if>
         </where>
-        order by MITIGATION_PROD_NO ASC
+        order by T1.MITIGATION_PROD_NO ASC
     </select>
 
     <select id="selectRowData" resultType="com.sundata.product.rwa.interfacedatasheet.model.GuaranteeTableModel" parameterType="com.sundata.product.rwa.interfacedatasheet.model.GuaranteeTableModel">

+ 2 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mapper/WithinTableCorporateLoansMapper.java

@@ -1,9 +1,10 @@
 package com.sundata.product.rwa.internal.mapper;
 
 import com.sundata.product.rwa.internal.model.CorporateLoansListModel;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 public interface WithinTableCorporateLoansMapper {
-    List<CorporateLoansListModel> getDataList(CorporateLoansListModel model);
+    List<CorporateLoansListModel> getDataList(@Param("model") CorporateLoansListModel model);
 }

+ 1 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mybatis/CorporateLoansCustomersMapper.xml

@@ -28,6 +28,7 @@
         AVERAGE_RISK_WEIGHT              AS   averageRiskWeight
         from RWA_REPORT_RS_ENTCUSTTOP10
         <where>
+            1=1
 <!--            <if test="model.orgCode != null and '' != model.orgCode">-->
 <!--                and ORGCODE like concat(concat('%',#{model.orgCode}),'%')-->
 <!--            </if>-->

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mybatis/ProductTypeCreditRiskListMapper.xml

@@ -12,7 +12,7 @@
         TERM                               AS   term,
         DATA_DATE                          AS   dataDate,
         PRODUCT_TYPE                       AS   productType,
-        RISK_WEIGHT                        AS   riskWeight,
+        '风险权重为'||RISK_WEIGHT||'%'                        AS   riskWeight,
         SUM_BALANCE                        AS   sumBalance,
         MONTHAVERAGE_BALANCE               AS   monthaverageBalance,
         ENDOFTERM_THISTERM_SUM_BALANCE     AS   endoftermThistermSumBalance,

+ 11 - 10
Procedure/backend/project/src/main/java/com/sundata/product/rwa/internal/mybatis/WithinTableCorporateLoansMapper.xml

@@ -25,19 +25,20 @@
         RWA                            AS     rwa,
         RWA_WEIGHT                     AS     rwaWeight,
         AVERAGE_RISK_WEIGHT            AS     averageRiskWeight
-        from RWA_REPORT_RS_PRODUCTCREDICTRISKGROUP
+        from RWA_REPORT_RS_ENTONLOAN
         <where>
-            <if test="model.ruleNo != null and '' != model.ruleNo">
-                 RULE_NO like concat(concat('%',#{model.ruleNo}),'%')
-            </if>
-            <if test="model.ruleName != null and '' != model.ruleName">
-                and RULE_NAME like concat(concat('%',#{model.ruleName}),'%')
-            </if>
-            <if test="model.subjectCodes != null and '' != model.subjectCodes">
-                and SUBJECT_CODES like concat(concat('%',#{model.subjectCodes}),'%')
+            1=1
+            <if test="model.term != null and '' != model.term">
+                 and TERM =#{model.term}
             </if>
+<!--            <if test="model.ruleName != null and '' != model.ruleName">-->
+<!--                and RULE_NAME like concat(concat('%',#{model.ruleName}),'%')-->
+<!--            </if>-->
+<!--            <if test="model.subjectCodes != null and '' != model.subjectCodes">-->
+<!--                and SUBJECT_CODES like concat(concat('%',#{model.subjectCodes}),'%')-->
+<!--            </if>-->
         </where>
-        order by RULE_NO,SUBJECT_CODES,LEDGER_RISKEXPOSURE_NO,LEDGER_OFFOBJECT_NO
+        order by RWA desc
     </select>
 
 

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcCommitmentAction.java

@@ -42,8 +42,8 @@ public class FcCommitmentAction extends BaseAction {
 
     @RequestMapping(value="/getFcCommitment1", method = RequestMethod.POST )
     @SysLog(funcName="总账勾稽查询承诺表明细")
-    public void getFcCommitment1(HttpServletRequest request, HttpServletResponse response,@RequestParam String subjectNumber,@RequestParam String trem){
-        sendData(response,fcCommitmentService.getFcCommitment1(subjectNumber,trem));
+    public void getFcCommitment1(HttpServletRequest request, HttpServletResponse response,@RequestParam String subjectNumber,@RequestParam String term){
+        sendData(response,fcCommitmentService.getFcCommitment1(subjectNumber,term));
     }
 
     @RequestMapping("/exportExcelModel")

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcLoanAction.java

@@ -31,12 +31,12 @@ public class FcLoanAction  extends BaseAction {
     }
     @RequestMapping("/getFcLoan1")
     @SysLog(funcName="总账勾稽查询信贷表明细")
-    public void getFcLoan1(HttpServletRequest request, HttpServletResponse response, @RequestParam String subjectNumber,@RequestParam String trem){
+    public void getFcLoan1(HttpServletRequest request, HttpServletResponse response, @RequestParam String subjectNumber,@RequestParam String term){
 
 
         System.out.println(subjectNumber);
 
-        sendData(response,fcLoanService.getFcLoan1(subjectNumber,trem) );
+        sendData(response,fcLoanService.getFcLoan1(subjectNumber,term) );
     }
     @RequestMapping("/exportExcelModel")
     public void exportExcelModel (HttpServletRequest request,

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcOffSheetAction.java

@@ -30,8 +30,8 @@ public class FcOffSheetAction extends BaseAction {
     }
     @RequestMapping("/getFcOffSheet1")
     @SysLog(funcName="总账勾稽查询银承、保函、信用证等表外业务明细")
-    public void getFcOffSheet(HttpServletRequest request, HttpServletResponse response,@RequestParam String subjectNumber,@RequestParam String trem){
-        sendData(response,fcOffSheetService.getFcOffSheet1(subjectNumber,trem));
+    public void getFcOffSheet(HttpServletRequest request, HttpServletResponse response,@RequestParam String subjectNumber,@RequestParam String term){
+        sendData(response,fcOffSheetService.getFcOffSheet1(subjectNumber,term));
     }
     @RequestMapping("/exportExcelModel")
     public void exportExcelModel (HttpServletRequest request,

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FfRepoAction.java

@@ -34,8 +34,8 @@ public class FfRepoAction extends BaseAction {
 
     @RequestMapping("/getFfRepo1")
     @SysLog(funcName="总账勾稽查询回购表明细")
-    public void getFfRepo1 (HttpServletRequest request, HttpServletResponse response,@RequestParam String subjectNumber,@RequestParam String trem) throws JsonProcessingException {
-        sendData(response,ffRepoService.getFfRepo1(subjectNumber,trem));
+    public void getFfRepo1 (HttpServletRequest request, HttpServletResponse response,@RequestParam String subjectNumber,@RequestParam String term) throws JsonProcessingException {
+        sendData(response,ffRepoService.getFfRepo1(subjectNumber,term));
     }
 
     @RequestMapping("/exportExcelModel")

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FcCommitmentMapper.java

@@ -8,6 +8,6 @@ import java.util.List;
 
 public interface FcCommitmentMapper {
     public List<FcCommitmentModel> getFcCommitment(FcCommitmentModel FcCommitmentDemoFr);
-    public List<FcCommitmentModel> getFcCommitment1(@Param("subjectNumber")String subjectNumber, @Param("trem")String trem);
+    public List<FcCommitmentModel> getFcCommitment1(@Param("subjectNumber")String subjectNumber, @Param("term")String term);
 }
 

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FcLoanMapper.java

@@ -8,5 +8,5 @@ import java.util.List;
 
 public interface FcLoanMapper {
     public List<FcLoanModel> fcLoan(FcLoanModel fcLoanModelDemoFr);
-    public List<FcLoanModel>getFcLoan1(@Param("subjectNumber") String subjectNumber,@Param("trem")String trem);
+    public List<FcLoanModel>getFcLoan1(@Param("subjectNumber") String subjectNumber,@Param("term")String term);
 }

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FcOffSheetMapper.java

@@ -8,5 +8,5 @@ import java.util.List;
 
 public interface FcOffSheetMapper {
     public List<FcOffSheetModel> fcOffSheet(FcOffSheetModel fcOffSheetModelDemoFr);
-    public List<FcOffSheetModel> fcOffSheet1(@Param("subjectNumber") String subjectNumber, @Param("trem")String trem);
+    public List<FcOffSheetModel> fcOffSheet1(@Param("subjectNumber") String subjectNumber, @Param("term")String term);
 }

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mapper/FfRepoMapper.java

@@ -7,6 +7,6 @@ import java.util.List;
 
 public interface FfRepoMapper {
     public List<FfRepoModel> getFfRepo( FfRepoModel ffRepoModeltsDemoFr);
-    public List<FfRepoModel> getFfRepo1( @Param("subjectNumber") String subjectNumber, @Param("trem")String trem);
+    public List<FfRepoModel> getFfRepo1( @Param("subjectNumber") String subjectNumber, @Param("term")String term);
 
 }

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcCommitmentMapper.xml

@@ -128,6 +128,6 @@
         FROM  RIM_TDM_BS_FC_COMMITMENT_CBS T1
         where 1=1
         and T1.PRIN_ACCOUNT_NO =#{subjectNumber}
-        and substr(T1.DATA_DATE,1,6) = #{trem}
+        and substr(T1.DATA_DATE,1,6) = #{term}
     </select>
 </mapper>

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcLoanMapper.xml

@@ -194,6 +194,6 @@
         from  RWA_BDM_BS_FC_LOAN T1
         where 1=1
         and (T1.PRIN_ACCOUNT_NO =#{subjectNumber} or T1.FAIR_VALUE_CHANGE_ACCOUNT_NO =#{subjectNumber} or T1.INT_ADJ_ACCOUNT_NO =#{subjectNumber} or T1.RECEIVABLE_INT_ACCOUNT_NO =#{subjectNumber} or T1.ACCR_INT_ACCOUNT_NO =#{subjectNumber} or T1.RESERVE_ACCOUNT_NO = #{subjectNumber})
-        and substr(DATA_DATE,1,6) = #{trem}
+        and substr(DATA_DATE,1,6) = #{term}
     </select>
 </mapper>

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcOffSheetMapper.xml

@@ -203,7 +203,7 @@
         from  RIM_APM_BS_FC_OFF_SHEET T1
         where 1=1
         and T1.PRIN_ACCOUNT_NO =#{subjectNumber}
-        and substr(DATA_DATE,1,6) = #{trem}
+        and substr(DATA_DATE,1,6) = #{term}
     </select>
 
 </mapper>

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FfRepoMapper.xml

@@ -132,7 +132,7 @@
         FROM  RIM_TDM_BS_FF_REPO_CTS T1
         where 1=1
         and (T1.PRIN_ACCOUNT_NO =#{subjectNumber} or T1.FAIR_VALUE_CHANGE_ACCOUNT_NO =#{subjectNumber} or T1.INT_ADJ_ACCOUNT_NO =#{subjectNumber} or T1.RECEIVABLE_INT_ACCOUNT_NO =#{subjectNumber} or T1.ACCR_INT_ACCOUNT_NO =#{subjectNumber} or T1.RESERVE_ACCOUNT_NO = #{subjectNumber})
-        and substr(DATA_DATE,1,6) = #{trem}
+        and substr(DATA_DATE,1,6) = #{term}
     </select>
 
 </mapper>

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FcCommitmentService.java

@@ -40,8 +40,8 @@ public class FcCommitmentService extends BaseService<RptDefineModel> {
         return  fcCommitmentMapper.getFcCommitment(FcCommitmentDemoFr);
     }
 
-    public List<FcCommitmentModel> getFcCommitment1(String subjectNumber,String trem){
-        return fcCommitmentMapper.getFcCommitment1(subjectNumber,trem);
+    public List<FcCommitmentModel> getFcCommitment1(String subjectNumber,String term){
+        return fcCommitmentMapper.getFcCommitment1(subjectNumber,term);
 
     }
     // 导出数据

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FcLoanService.java

@@ -40,9 +40,9 @@ public class FcLoanService extends BaseService<RptDefineModel> {
 
         return fcLoanMapper.fcLoan(fcLoanModelDemoFr);
     }
-    public List<FcLoanModel> getFcLoan1(String subjectNumber,String trem){
+    public List<FcLoanModel> getFcLoan1(String subjectNumber,String term){
 
-        return fcLoanMapper.getFcLoan1(subjectNumber,trem);
+        return fcLoanMapper.getFcLoan1(subjectNumber,term);
     }
 
     // 导出数据

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FcOffSheetService.java

@@ -34,8 +34,8 @@ public class FcOffSheetService extends BaseService<RptDefineModel> {
     public List<FcOffSheetModel> getFcOffSheet(FcOffSheetModel fcOffSheetModelDemoFr){
         return fcOffSheetMapper.fcOffSheet(fcOffSheetModelDemoFr);
     }
-    public List<FcOffSheetModel> getFcOffSheet1(String subjectNumber ,String trem){
-        return fcOffSheetMapper.fcOffSheet1(subjectNumber,trem);
+    public List<FcOffSheetModel> getFcOffSheet1(String subjectNumber ,String term){
+        return fcOffSheetMapper.fcOffSheet1(subjectNumber,term);
     }
 
     // 导出数据

+ 2 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/FfRepoService.java

@@ -38,8 +38,8 @@ public class FfRepoService extends BaseService<RptDefineModel> {
       return ffRepoMapper.getFfRepo(ffRepoModeltsDemoFr);
     }
 
-    public List<FfRepoModel> getFfRepo1 (String subjectNumber, String trem){
-        return ffRepoMapper.getFfRepo1(subjectNumber,trem);
+    public List<FfRepoModel> getFfRepo1 (String subjectNumber, String term){
+        return ffRepoMapper.getFfRepo1(subjectNumber,term);
     }
 
 

+ 9 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/model/ResultListModel.java

@@ -15,6 +15,15 @@ public class ResultListModel {
     private BigDecimal  percthreshold;   //差异容忍度%
     private String  leartresulttype;   //是否超过容忍度
     private BigDecimal  offsetdifferamt;   //轧差后核对差异(万元)
+    private String[] subjcodes;
+
+    public String[] getSubjcodes() {
+        return subjcodes;
+    }
+
+    public void setSubjcodes(String[] subjcodes) {
+        this.subjcodes = subjcodes;
+    }
 
     public String getTerm() {
         return term;

+ 23 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/mybatis/ResultListMapper.xml

@@ -24,12 +24,33 @@
         <if test="orgcode !='' and orgcode!=null">
             AND ORGCODE=#{orgcode}
         </if>
-        <if test="subjcode !='' and subjcode!=null">
-            AND SUBJCODE=#{subjcode}
+        <if test="subjcodes !='' and subjcodes!=null">
+            <foreach collection="subjcodes" open=" and SUBJCODE in (" close=")" item="item"  separator=",">
+                #{item}
+            </foreach>
         </if>
         <if test="leartresulttype !='' and leartresulttype!=null">
             AND LEARTRESULTTYPE=#{leartresulttype}
         </if>
     </select>
 
+    <select id="kmsj"  resultType="com.sundata.admin.nounmanage.model.DictContent">
+        SELECT  gl_code AS id,subject_desc AS text,subject_code AS PARENTID FROM (
+        SELECT T1.gl_code AS gl_code,T1.subject_desc AS subject_desc ,T3.subject_code AS  subject_code FROM RWA_OBJ_CONF_GL_RECONCILIATION T1
+        LEFT JOIN rwa_cbs_gl_ac_subject T2
+        ON T1.gl_code = T2.subject_code
+        LEFT JOIN rwa_cbs_gl_ac_subject T3
+        ON T2.control_subject = T3.subject_code
+        UNION ALL
+        SELECT DISTINCT subject_code2 AS gl_code,subject_desc2 AS subject_desc ,NULL AS subject_code FROM (
+        SELECT t1.subject_code AS subject_code1 , t1.subject_desc AS subject_desc1,t2.subject_code AS subject_code2,t2.subject_desc AS subject_desc2 FROM rwa_cbs_gl_ac_subject t1
+        LEFT JOIN rwa_cbs_gl_ac_subject t2
+        ON t2.subject_code = t1.control_subject
+        WHERE t1.subject_code IN (SELECT gl_code FROM RWA_OBJ_CONF_GL_RECONCILIATION  )
+        ORDER BY t1.subject_code asc
+        ) t
+        ) t
+        ORDER BY CAST (t.gl_code AS int)  asc
+    </select>
+
 </mapper>

+ 9 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/model/StageDefinitionModel.java

@@ -22,6 +22,15 @@ public class StageDefinitionModel {
     private String stageIndex;
     //是否有效
     private String stageIsvalid;
+    private String stageSuperName;
+
+    public String getStageSuperName() {
+        return stageSuperName;
+    }
+
+    public void setStageSuperName(String stageSuperName) {
+        this.stageSuperName = stageSuperName;
+    }
 
     public String getCalcIndex() {
         return calcIndex;

+ 33 - 27
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/mybatis/StageConfigMapper.xml

@@ -7,26 +7,29 @@
     <!-- 缓释工具类型页面初始化 -->
     <select id="getDataList" resultType="com.sundata.product.rwa.rwacalcconfig004rwa.model.StageDefinitionModel">
         SELECT
-        CALCINDEX          AS  calcIndex,
-        SDATE              AS  startDate,
-        EDATE              AS  endDate,
-        TERM               AS  term,
-        DATA_DATE          AS  dataDate,
-        STAGE_ID           AS  stageId,
-        STAGE_NAME         AS  stageName,
-        STAGE_SUPER        AS  stageSuper,
-        STAGE_INDEX	       AS  stageIndex,
-        STAGE_ISVALID      AS  stageIsvalid
-        FROM RWA_CALC_CONF_STAGE
+        T1.CALCINDEX          AS  calcIndex,
+        T1.SDATE              AS  startDate,
+        T1.EDATE              AS  endDate,
+        T1.TERM               AS  term,
+        T1.DATA_DATE          AS  dataDate,
+        T1.STAGE_ID           AS  stageId,
+        T1.STAGE_NAME         AS  stageName,
+        T1.STAGE_SUPER        AS  stageSuper,
+        T2.STAGE_NAME         AS  stageSuperName,
+        T1.STAGE_INDEX	      AS  stageIndex,
+        T1.STAGE_ISVALID      AS  stageIsvalid
+        FROM RWA_CALC_CONF_STAGE T1
+        LEFT JOIN RWA_CALC_CONF_STAGE T2
+        ON T1.STAGE_SUPER = T2.STAGE_ID
         <where>
             <if test="model.stageId != null and model.stageId !=''">
-                STAGE_ID like concat(concat('%',#{model.stageId}),'%')
+                T1.STAGE_ID like concat(concat('%',#{model.stageId}),'%')
             </if>
             <if test="model.stageName != null and model.stageName !=''">
-                and STAGE_NAME like concat(concat('%', #{model.stageName}),'%')
+                and T1.STAGE_NAME like concat(concat('%', #{model.stageName}),'%')
             </if>
         </where>
-        order by stage_id,STAGE_ISVALID
+        order by T1.stage_id,T1.STAGE_ISVALID
     </select>
 
     <!-- 缓释工具类型新建数据 -->
@@ -99,23 +102,26 @@
     <!-- 缓释品类型当前行数据 -->
     <select id="selectStageConfigType" resultType="com.sundata.product.rwa.rwacalcconfig004rwa.model.StageDefinitionModel">
         SELECT
-        CALCINDEX          AS  calcIndex,
-        SDATE              AS  startDate,
-        EDATE              AS  endDate,
-        TERM               AS  term,
-        DATA_DATE          AS  dataDate,
-        STAGE_ID           AS  stageId,
-        STAGE_NAME         AS  stageName,
-        STAGE_SUPER        AS  stageSuper,
-        STAGE_INDEX	       AS  stageIndex,
-        STAGE_ISVALID      AS  stageIsvalid
-        FROM RWA_CALC_CONF_STAGE
+        T1.CALCINDEX          AS  calcIndex,
+        T1.SDATE              AS  startDate,
+        T1.EDATE              AS  endDate,
+        T1.TERM               AS  term,
+        T1.DATA_DATE          AS  dataDate,
+        T1.STAGE_ID           AS  stageId,
+        T1.STAGE_NAME         AS  stageName,
+        T1.STAGE_SUPER        AS  stageSuper,
+        T2.STAGE_NAME         AS  stageSuperName,
+        T1.STAGE_INDEX	      AS  stageIndex,
+        T1.STAGE_ISVALID      AS  stageIsvalid
+        FROM RWA_CALC_CONF_STAGE T1
+        LEFT JOIN RWA_CALC_CONF_STAGE T2
+        ON T1.STAGE_SUPER = T2.STAGE_ID
         <where>
             <if test="model.stageId != null and model.stageId !=''">
-                STAGE_ID = #{model.stageId}
+                T1.STAGE_ID = #{model.stageId}
             </if>
             <if test="model.stageName != null and model.stageName !=''">
-                and STAGE_NAME = #{model.stageName}
+                and T1.STAGE_NAME = #{model.stageName}
             </if>
         </where>
     </select>

+ 1 - 1
Procedure/frontend/projectb/config/config.ts

@@ -101,7 +101,7 @@ export default defineConfig({
    { path: '/result_list' , component: './rwa_data_check/result_list' },
 
    { path: '/product_list' , component: './rwa_calc_config_dataparam/product_list' },
-   { path: '/info_list' , component: './rwa_calc_config_002offbalanceprotype/info_list' },
+   { path: '/1info_list' , component: './rwa_calc_config_002offbalanceprotype/info_list' },
    
 
    { path: '/CustomerTable' , component: './project/dataquality/CustomerTable'},

+ 56 - 12
Procedure/frontend/projectb/src/pages/product/internal/accountmanagercreditriskoccupy.tsx

@@ -28,6 +28,7 @@ const accountmanagercreditriskoccupy : React.FC<widowRush> = (prop:widowRush) =>
     const templateRef = useRef<FormInstance<any>>();
 
     const [formDetailData, setFormDetailData] = useState<AccountManageListModel[]>();
+    const [formDetailData1, setFormDetailData1] = useState<AccountManageListModel[]>([]);
     // 页面数据
     var formDataList = new Array<AccountManageListModel>;
 
@@ -64,17 +65,17 @@ const accountmanagercreditriskoccupy : React.FC<widowRush> = (prop:widowRush) =>
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
+          dataIndex: 'sDate',
           order:-2,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
+          dataIndex: 'eDate',
           order:-3,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '期次',
@@ -112,7 +113,7 @@ const accountmanagercreditriskoccupy : React.FC<widowRush> = (prop:widowRush) =>
           children: [
             {
                 title: '期末本期余额合计',
-                dataIndex: 'endoftermBalance',
+                dataIndex: 'endoftermThistermSumBalance',
                 search: false,
             },
             { title: '月均本期余额', dataIndex: 'monthaverageThistermBalance',search: false, },
@@ -163,17 +164,59 @@ const accountmanagercreditriskoccupy : React.FC<widowRush> = (prop:widowRush) =>
         },
 
       ];
-
+      var objs1 =0;
+      var objs2 =0;
+      var objs3 =0;
+      var objs4 =0;
+      var objs5 =0;
+      var objs6 =0;
+      var objs7 =0;
+      var objs8 =0;
+      var objs9 =0;
+      var objs10 =0;
+      
     return (
         <SDPage>
-        <SDTable
-         title="查询表格"
+        <ProTable
+      //   title="查询表格"
          rowKey="customerName"
          request={async (formdata:AccountManageListModel) =>{
            const formDatas = await getDataList(formdata);
            // 解构数组(导出用)
            formDataList=[...formDatas];
-           return {data: formDatas}
+           setFormDetailData1(formDatas);
+           console.log(formDetailData1);
+           formDatas.forEach(function(erement,index,array){
+            if(erement.key != 'summary') {
+          objs1 = objs1 + Number(erement.sumBalance);
+          objs2 = objs2 + Number(erement.monthaverageBalance);
+          objs3 = objs3 + Number(erement.endoftermThistermSumBalance);
+          objs4 = objs4 + Number(erement.monthaverageThistermBalance);
+          objs5 = objs5 + Number(erement.endoftermEcl);
+          objs6 = objs6 + Number(erement.endoftermSumEad);
+          objs7 = objs7 + Number(erement.monthaverageEad);
+          objs8 = objs8 + Number(erement.sumRwa);
+          objs9 = objs9 + Number(erement.monthaverageRwa);
+          objs10 = objs10 + Number(erement.averageRiskWeight);
+            }
+        } );
+        var objs = {key :'summary', loanReferenceNo :'合计', 
+        sumBalance:objs1,
+        monthaverageBalance:objs2,
+        endoftermThistermSumBalance:objs3,
+        monthaverageThistermBalance:objs4,
+        endoftermEcl:objs5,
+        endoftermSumEad:objs6,
+        monthaverageEad:objs7,
+        sumRwa:objs8,
+        monthaverageRwa:objs9,
+        averageRiskWeight:objs10,
+        calcIndex:'',sDate:'',eDate:'',term:'',dataDate:'',riskWeight:''};
+        if(formDatas.length >0){
+          formDatas.push(objs)
+      }
+      console.log(formDetailData1);
+           return {data: formDetailData1}
          }  }
          columns={columns}
          toolBarRender={(_, { selectedRows }) => [
@@ -190,9 +233,10 @@ const accountmanagercreditriskoccupy : React.FC<widowRush> = (prop:widowRush) =>
         ]}
          actionRef={actionRef}
          formRef={formRef}
-         setDetailVisible={() => {setDetailVisible(true)}}
-         setEditType={setEditType}
-         setCurrentRow={setCurrentRow}
+         dataSource={formDetailData1}
+        //  setDetailVisible={() => {setDetailVisible(true)}}
+        //  setEditType={setEditType}
+        //  setCurrentRow={setCurrentRow}
          />
 
         </SDPage>

+ 174 - 24
Procedure/frontend/projectb/src/pages/product/internal/capitaloccupymonitor.tsx

@@ -8,8 +8,11 @@ import {getDataList,exportExcelModel,getDetailDataList} from '@/services/rwa/pro
 import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
+import { forEach } from "lodash";
+import moment from "moment";
 
 type widowRush = {
+    fullDisplay?: boolean;
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
@@ -29,6 +32,8 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
     const templateRef = useRef<FormInstance<any>>();
 
     const [formDetailData, setFormDetailData] = useState<detailInfoListModel[]>();
+
+    const [formDetailData2, setFormDetailData2] = useState<CapitalOccupyMonitorModel[]>([]);
     // 页面数据
     var formDataList = new Array<CapitalOccupyMonitorModel>;
 
@@ -38,9 +43,30 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
     var dataIndex = 1;
 
     useEffect(() => {
-      }, []);
+ }, []);
+      var objs1 =0;
+    var objs2 =0;
+    var objs3 =0;
+    var objs4 =0;
+    var objs5 =0;
+    var objs6 =0;
+    var objs7 =0;
+    var objs8 =0;
+    var objs9 =0;
+    var objs10 =0;
+    var objs11 =0;
+    var objs12 =0;
+    var objs13 =0;
+    var objs14 =0;
+    var objs15 =0;
+    var objs16 =0;
+    var objs17 =0;
+    var objs18 =0;
+    var objs19 =0;
+    var objs20 =0;
     
-
+   
+      
 
     //关闭窗口刷新父页面
     const closeAndRefresh = ()=>{
@@ -53,6 +79,60 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
       setFormDetailData(data);
      
      }
+
+     const selectlist =async (formdata:CapitalOccupyMonitorModel) =>{
+        const formDatas = await getDataList(formdata);
+        // 解构数组(导出用)
+        formDataList=[...formDatas];
+
+setFormDetailData2(formDatas)
+console.log(formDetailData2);
+formDatas.forEach(function(erement,index,array){
+    if(erement.key != 'summary'  ){
+  objs1 = objs1 + Number(erement.sumBalance);
+  objs2 = objs2 + Number(erement.onBalance);
+  objs3 = objs3 + Number(erement.offBalance);
+  objs4 = objs4 + Number(erement.monthaverageBalance);
+  objs5 = objs5 + Number(erement.endoftermBalance);
+  objs6 = objs6 + Number(erement.thistermOnBalance);
+  objs7 = objs7 + Number(erement.thistermOffBalance);
+  objs8 = objs8 + Number(erement.monthaverageThistermBalance);
+  objs9 = objs9 + Number(erement.endoftermEcl);
+  objs10 = objs10 + Number(erement.endoftermOnEcl);
+  objs11 = objs11 + Number(erement.endoftermOffEcl);
+  objs12 = objs12 + Number(erement.endoftermSumEad);
+  objs13 = objs13 + Number(erement.endoftermOnEad);
+  objs14 = objs14 + Number(erement.endoftermOffEad);
+  objs15 = objs15 + Number(erement.monthaverageEad);
+  objs16 = objs16 + Number(erement.sumRwa);
+  objs17 = objs17 + Number(erement.onRwa);
+  objs18 = objs18 + Number(erement.offRwa);
+  objs19 = objs19 + Number(erement.monthaverageRwa);
+  objs20 = objs20 + Number(erement.averageRiskWeight);
+    }
+} 
+
+);
+  let objs = {key :'summary', orgCode :'合计', 
+  sumBalance:objs1,
+  onBalance:objs2,
+  offBalance:objs3,
+  monthaverageBalance:objs4,
+  endoftermBalance:objs5,
+  thistermOnBalance:objs6,
+  thistermOffBalance:objs7,
+  monthaverageThistermBalance:objs8,
+  endoftermEcl:objs9,
+  endoftermOnEcl:objs10,
+  endoftermOffEcl:objs11,
+  endoftermSumEad:objs12,endoftermOnEad:objs13,endoftermOffEad:objs14,monthaverageEad:objs15,sumRwa:objs16,onRwa:objs17,
+  offRwa:objs18,monthaverageRwa:objs19,averageRiskWeight:objs20,calcIndex:'',sDate:'',eDate:'',term:'',dataDate:''};
+        if(formDatas.length >0){
+        formDatas.push(objs)
+    }
+
+        return {data:formDetailData2 }
+      } 
      
     // 页面展示元素
     const columns: ProColumns<CapitalOccupyMonitorModel>[] = [
@@ -72,17 +152,19 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
+          dataIndex: 'sDate',
           order:-2,
           hideInTable: true,
-          valueType:'date'
+          render:(text)=>moment().format('YYYYMM'),
+          valueType:'dateMonth'
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
+          dataIndex: 'eDate',
           order:-3,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth',
+          render:(text)=>moment().format('YYYYMM'),
         },
         {
           title: '期次',
@@ -100,9 +182,10 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
           title: '经营机构',
           dataIndex: 'orgCode',
           order:-1,
-          render: (_, record) => [
-            <a>支行列表查询</a>
-          ],
+          // render: (_, record) => [
+          //   <a>支行列表查询</a>,
+            
+          // ],
         },
         {
           title: '资产余额(不含利息)',
@@ -115,8 +198,9 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
                 search: false,
                 render: (_, record) => [
                   <a onClick={()=>{
+                    if(record.key !='summary'){
                     selectDetailData(record);
-                    setDetailVisible(true);}
+                    setDetailVisible(true);}}
                   }>{record.sumBalance}</a>
                 ],
             },
@@ -197,26 +281,32 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
             title: '债项编号',
             dataIndex: 'loanReferenceNo',
             search: false,
+           
+            width:200,
         },
         {
             title: '合同编号',
             dataIndex: 'contNo',
             search: false,
+            width:200,
         },
         {
             title: '经营机构',
             dataIndex: 'mgmtBranchNo',
             search: false,
+            width:200,
         },
         {
             title: '客户编号',
             dataIndex: 'custNo',
             search: false,
+             width:200,
         },
         {
             title: '客户名称',
             dataIndex: 'custName',
             search: false,
+            width:200,
         },
         {
             title: '交易对手大类',
@@ -227,21 +317,25 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
             fieldProps: {
               treeDefaultExpandAll: true,
             },
+            width:200,
         },
         {
             title: '是否小微企业',
             dataIndex: 'micro',
             search: false,
+            width:200,
         },
         {
             title: '是否中小企业',
             dataIndex: 'medium',
             search: false,
+            width:200,
         },
         {
             title: '是否监管零售',
             dataIndex: 'regulatoryRetail',
             search: false,
+            width:200,
         },
         {
             title: '产品大类',
@@ -252,186 +346,224 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
             fieldProps: {
               treeDefaultExpandAll: true,
             },
+            width:200,
         },
         {
             title: '产品名称',
             dataIndex: 'productName',
             search: false,
+            width:200,
         },
         {
             title: '表内外标识',
             dataIndex: 'onOffFlag',
             search: false,
+            width:200,
         },
         {
             title: '贴现类型',
             dataIndex: 'discType',
             search: false,
+            width:200,
         },
         {
             title: '票据类型',
             dataIndex: 'vouchTypeCd',
             search: false,
+            width:200,
         },
         {
             title: '是否我行承兑',
             dataIndex: 'isMybankSetFlag',
             search: false,
+            width:200,
         },
         {
             title: '承兑人',
             dataIndex: 'acceptorNo',
             search: false,
+            width:200,
         },
         {
             title: '承兑人客户名',
             dataIndex: 'acceptorName',
             search: false,
+            width:200,
         },
         {
             title: '证券类型',
             dataIndex: 'secTypeCd',
             search: false,
+            width:200,
         },
         {
             title: '一般专项标志',
             dataIndex: 'purposeFlag',
             search: false,
+            width:200,
         },
         {
             title: '币种',
             dataIndex: 'ccyCd',
             search: false,
+            width:100,
         },
         {
             title: '生效日',
             dataIndex: 'startDt',
             search: false,
+            width:200,
         },
         {
             title: '到期日',
             dataIndex: 'matDt',
             search: false,
+            width:150,
         },
         {
             title: '原始期限(月)',
             dataIndex: 'originalTerm',
             search: false,
+            width:150,
         },
         {
             title: '剩余期限(月)',
             dataIndex: 'residualterm',
             search: false,
+            width:150,
         },
         {
             title: '五级分类',
             dataIndex: 'fiveClassCd',
             search: false,
+            width:200,
         },
         {
             title: '逾期天数(天)',
             dataIndex: 'overdueDays',
             search: false,
+            width:100,
         },
         {
             title: '投向行业',
             dataIndex: 'investIndustryCd',
             search: false,
+            width:200,
         },
         {
             title: '质押买断类型',
             dataIndex: 'zhiyaMaiduanCd',
             search: false,
+            width:200,
         },
         {
             title: '回购类型',
             dataIndex: 'repoTypeCd',
             search: false,
+            width:200,
         },
         {
             title: '回购期限(天)',
             dataIndex: 'repoDays',
             search: false,
+            width:100,
         },
         {
             title: '债券代码',
             dataIndex: 'billNo',
             search: false,
+            width:200,
         },
         {
             title: '核心市场参与者标识',
             dataIndex: 'coreMarketPartFlag',
             search: false,
+            width:200,
         },
         {
             title: '资产余额',
             dataIndex: 'balance',
             search: false,
+            width:200,
         },
         {
             title: '本金科目号',
             dataIndex: 'glAccountId',
             search: false,
+            width:200,
         },
         {
             title: '应收利息',
             dataIndex: 'recInt',
             search: false,
+            width:200,
+         //   ellipsis:true,
         },
         {
             title: '应收利息科目号',
             dataIndex: 'recIntAccount',
             search: false,
+            width:200,
         },
         {
             title: '应计利息',
             dataIndex: 'accrInt',
             search: false,
+            width:200,
         },
         {
             title: '应计利息科目号',
             dataIndex: 'accrIntAccount',
             search: false,
+            width:200,
         },
         {
             title: '利息调整',
             dataIndex: 'intAdj',
             search: false,
+            width:200,
         },
         {
             title: '利息调整科目号',
             dataIndex: 'intAdjAccount',
             search: false,
+            width:200,
         },
         {
             title: '公允价值变动',
             dataIndex: 'fairValueChange',
             search: false,
+            width:200,
         },
         {
             title: '公允价值变动科目号',
             dataIndex: 'fairValAccount',
             search: false,
+            width:200,
         },
         {
             title: '手续费',
             dataIndex: 'chargeFee',
             search: false,
+            width:200,
         },
         {
             title: '手续费科目号',
             dataIndex: 'chargeFeeAccount',
             search: false,
+            width:200,
         },
         {
             title: '所属条线',
             dataIndex: 'busLine',
             search: false,
+            width:200,
         },
         {
             title: '承诺类型',
             dataIndex: 'commType',
             search: false,
+            width:200,
         },
         // {
         //     title: '未使用额度',
@@ -447,104 +579,117 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
             title: '计提准备金',
             dataIndex: 'reserve',
             search: false,
+            width:200,
         },
         {
             title: '准备金科目号',
             dataIndex: 'reserveAccount',
             search: false,
+            width:200,
         },
         {
             title: '本期余额',
             dataIndex: 'balanceAll',
             search: false,
+            width:200,
         },
         {
             title: '缓释覆盖部分的风险暴露-现金类资产(0%)',
             dataIndex: 'cashRisk',
             search: false,
+            width:200,
         },
         {
             title: '缓释覆盖部分的风险暴露-我国中央政府(0%)',
             dataIndex: 'governmentRisk',
             search: false,
+            width:200,
         },
         {
             title: '缓释覆盖部分的风险暴露-我国开发性金融机构和政策性银行(0%)',
             dataIndex: 'financeRisk',
             search: false,
+            width:200,
         },
         {
             title: '缓释覆盖部分的风险暴露-境内外商业银行(短期)(20%)',
             dataIndex: 'dfBank',
             search: false,
+            width:200,
         },
         {
             title: '缓释覆盖部分的风险暴露-境内商业银行(0%)',
             dataIndex: 'dBank',
             search: false,
+            width:200,
         },
         {
             title: '缓释覆盖部分的风险暴露-其他缓释类型',
             dataIndex: 'otherRiskSum',
             search: false,
+            width:200,
         },
         {
             title: '未缓释风险暴露',
             dataIndex: 'unfinishEad',
             search: false,
+             width:200,
         },
         {
             title: '表外项目分类',
             dataIndex: '',
             search: false,
+            width:200,
         },
         {
             title: '信用转换系数%',
             dataIndex: '',
             search: false,
+            width:200,
         },
         {
             title: '风险暴露分类(系统认定)',
             dataIndex: 'riskExposureCode',
             search: false,
+            width:200,
         },
         {
             title: '风险权重%(系统认定)',
             dataIndex: 'loanWeight',
             search: false,
+            width:200,
         },
         {
             title: '风险暴露分类(人工认定)',
             dataIndex: 'riskExposureCodeArtificial',
             search: false,
+            width:200,
         },
         {
             title: '风险权重%(人工认定)',
             dataIndex: 'loanWeightArtificial',
             search: false,
+            width:200,
         },
         {
             title: '风险加权资产',
             dataIndex: 'rwa',
             search: false,
+            width:200,
         },
 
     ]
 
-
+    
 
     return (
         <SDPage>
-        <SDTable
-         title="查询表格"
-         rowKey="customerName"
-         request={async (formdata:CapitalOccupyMonitorModel) =>{
-           const formDatas = await getDataList(formdata);
-           // 解构数组(导出用)
-           formDataList=[...formDatas];
-           return {data: formDatas}
-         }  }
+        <ProTable 
+      //   title="查询表格"
+         rowKey="orgCode"
+         request={selectlist}
          columns={columns}
+         dataSource={formDetailData2}
          toolBarRender={(_, { selectedRows }) => [
           <SDButton
             key="export"
@@ -559,28 +704,33 @@ const capitaloccupymonitor : React.FC<widowRush> = (prop:widowRush) => {
         ]}
          actionRef={actionRef}
          formRef={formRef}
-         setDetailVisible={() => {setDetailVisible(true)}}
-         setEditType={setEditType}
-         setCurrentRow={setCurrentRow}
+      //   setDetailVisible={setDetailVisible}
+        // setDetailVisible={() => {setDetailVisible(true)}}
+        //  setEditType={setEditType}
+        //  setCurrentRow={setCurrentRow}
+         
          />
 
 
         {detailVisible && (
         <SDModalForm
           title={'详细信息'}
-          editType={editType}
+          editType={editType}   
           params={currentRow}
           visible={detailVisible}
           onVisibleChange={() => {setDetailVisible(false)}}
           tableRef={actionRef}
           formRef={formRef}
         >
+               <div style={{ width: '100%', overflowX: 'auto' }}>
           <ProTable
           search={false}
           rowKey="index"
           columns={detailInfoColumns}
           dataSource={formDetailData}
+          scroll={{ x: 'max-content' }}
           />
+          </div>
         </SDModalForm>
       )}
 

+ 506 - 16
Procedure/frontend/projectb/src/pages/product/internal/corporateloanscustomerstop10.tsx

@@ -3,12 +3,13 @@ import { type ProColumns, type ActionType, type ProFormInstance, ProTable, Edita
 import type {FormInstance} from 'antd'
 import  {Table, Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, } from "@sundata/ui-frame";
-import type { CorporateLoansCustomersModel, } from '@/services/rwa/product/internal/corporateloanscustomerstop10';
+import { CorporateLoansCustomersModel, detailInfoListModel, getDetailDataList, } from '@/services/rwa/product/internal/corporateloanscustomerstop10';
 import {getDataList,exportExcelModel} from '@/services/rwa/product/internal/corporateloanscustomerstop10';
 import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
 import { ReportCalculationModel } from "@/services/rwa/product/report_form_config_reportcreater/reportfillingconfig";
+
 type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
@@ -23,12 +24,14 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
     /** 是否显示详细信息窗口 */
     const [detailVisible, setDetailVisible] = useState<boolean>(false);
     const [currentRow, setCurrentRow] = useState<CorporateLoansCustomersModel>();
+    
     /** 表格引用对象,刷新表格使用   */
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
 
-    const [formDetailData, setFormDetailData] = useState<CorporateLoansCustomersModel[]>();
+    const [formDetailData, setFormDetailData] = useState<detailInfoListModel[]>();
+    const [formDetailData1, setFormDetailData1] = useState<CorporateLoansCustomersModel[]>([]);
     // 页面数据
     var formDataList = new Array<CorporateLoansCustomersModel>;
     const { fetchDict } = useModel('dict');
@@ -46,6 +49,11 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
     actionRef.current?.reloadAndRest?.();
     }
 
+    const selectDetailData = async (formdata : CorporateLoansCustomersModel) => {
+      const data = await getDetailDataList(formdata);
+      setFormDetailData(data);
+     
+     }
 
      
     // 页面展示元素
@@ -66,23 +74,26 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
-          order:-2,
+          dataIndex: 'sDate',
+          search: false,
+       //   order:-2,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
-          order:-3,
+          dataIndex: 'eDate',
+          search: false,
+      //    order:-3,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '期次',
           dataIndex: 'term',
-          search: false,
+          order:-2,
           hideInTable: true,
+          valueType:'dateMonth'
         },
         {
           title: '数据日期',
@@ -93,6 +104,7 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '对公贷款前十大客户',
           dataIndex: 'custName',
+          search: false,
         },
         {
           title: '资产余额(不含利息)',
@@ -103,6 +115,13 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
                 title: '资产余额',
                 dataIndex: 'balance',
                 search: false,
+                render: (_, record) => [
+                  <a onClick={()=>{
+                    if(record.key !='summary'){
+                    selectDetailData(record);
+                    setDetailVisible(true);}}
+                  }>{record.balance}</a>
+                ],
             },
             { title: '资产余额占比%', dataIndex: 'balanceWeight',search: false, },
           ],
@@ -183,17 +202,467 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
         },
 
       ];
+      const detailInfoColumns: ProColumns<detailInfoListModel>[] = [
+        {
+            title: '债项编号',
+            dataIndex: 'loanReferenceNo',
+            search: false,
+           
+            width:200,
+        },
+        {
+            title: '合同编号',
+            dataIndex: 'contNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '经营机构',
+            dataIndex: 'mgmtBranchNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '客户编号',
+            dataIndex: 'custNo',
+            search: false,
+             width:200,
+        },
+        {
+            title: '客户名称',
+            dataIndex: 'custName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '交易对手大类',
+            dataIndex: 'busType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('CUST_TYPE_LV02'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
+            },
+            width:200,
+        },
+        {
+            title: '是否小微企业',
+            dataIndex: 'micro',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否中小企业',
+            dataIndex: 'medium',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否监管零售',
+            dataIndex: 'regulatoryRetail',
+            search: false,
+            width:200,
+        },
+        {
+            title: '产品大类',
+            dataIndex: 'productType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('PRODUCT_TYPE'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
+            },
+            width:200,
+        },
+        {
+            title: '产品名称',
+            dataIndex: 'productName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '表内外标识',
+            dataIndex: 'onOffFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '贴现类型',
+            dataIndex: 'discType',
+            search: false,
+            width:200,
+        },
+        {
+            title: '票据类型',
+            dataIndex: 'vouchTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否我行承兑',
+            dataIndex: 'isMybankSetFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人',
+            dataIndex: 'acceptorNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人客户名',
+            dataIndex: 'acceptorName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '证券类型',
+            dataIndex: 'secTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '一般专项标志',
+            dataIndex: 'purposeFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '币种',
+            dataIndex: 'ccyCd',
+            search: false,
+            width:100,
+        },
+        {
+            title: '生效日',
+            dataIndex: 'startDt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '到期日',
+            dataIndex: 'matDt',
+            search: false,
+            width:150,
+        },
+        {
+            title: '原始期限(月)',
+            dataIndex: 'originalTerm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '剩余期限(月)',
+            dataIndex: 'residualterm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '五级分类',
+            dataIndex: 'fiveClassCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '逾期天数(天)',
+            dataIndex: 'overdueDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '投向行业',
+            dataIndex: 'investIndustryCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '质押买断类型',
+            dataIndex: 'zhiyaMaiduanCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购类型',
+            dataIndex: 'repoTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购期限(天)',
+            dataIndex: 'repoDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '债券代码',
+            dataIndex: 'billNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '核心市场参与者标识',
+            dataIndex: 'coreMarketPartFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '资产余额',
+            dataIndex: 'balance',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本金科目号',
+            dataIndex: 'glAccountId',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应收利息',
+            dataIndex: 'recInt',
+            search: false,
+            width:200,
+         //   ellipsis:true,
+        },
+        {
+            title: '应收利息科目号',
+            dataIndex: 'recIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息',
+            dataIndex: 'accrInt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息科目号',
+            dataIndex: 'accrIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整',
+            dataIndex: 'intAdj',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整科目号',
+            dataIndex: 'intAdjAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动',
+            dataIndex: 'fairValueChange',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动科目号',
+            dataIndex: 'fairValAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费',
+            dataIndex: 'chargeFee',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费科目号',
+            dataIndex: 'chargeFeeAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '所属条线',
+            dataIndex: 'busLine',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承诺类型',
+            dataIndex: 'commType',
+            search: false,
+            width:200,
+        },
+        // {
+        //     title: '未使用额度',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        // {
+        //     title: '表外承诺科目号',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        {
+            title: '计提准备金',
+            dataIndex: 'reserve',
+            search: false,
+            width:200,
+        },
+        {
+            title: '准备金科目号',
+            dataIndex: 'reserveAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本期余额',
+            dataIndex: 'balanceAll',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-现金类资产(0%)',
+            dataIndex: 'cashRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国中央政府(0%)',
+            dataIndex: 'governmentRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国开发性金融机构和政策性银行(0%)',
+            dataIndex: 'financeRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内外商业银行(短期)(20%)',
+            dataIndex: 'dfBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内商业银行(0%)',
+            dataIndex: 'dBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-其他缓释类型',
+            dataIndex: 'otherRiskSum',
+            search: false,
+            width:200,
+        },
+        {
+            title: '未缓释风险暴露',
+            dataIndex: 'unfinishEad',
+            search: false,
+             width:200,
+        },
+        {
+            title: '表外项目分类',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '信用转换系数%',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(系统认定)',
+            dataIndex: 'riskExposureCode',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(系统认定)',
+            dataIndex: 'loanWeight',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(人工认定)',
+            dataIndex: 'riskExposureCodeArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(人工认定)',
+            dataIndex: 'loanWeightArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险加权资产',
+            dataIndex: 'rwa',
+            search: false,
+            width:200,
+        },
+
+    ]
+      var objs1 =0;
+      var objs2 =0;
+      var objs3 =0;
+      var objs4 =0;
+      var objs5 =0;
+      var objs6 =0;
+      var objs7 =0;
+      var objs8 =0;
+      var objs9 =0;
+      var objs10 =0;
+      var objs11 =0;
+      var objs12 =0;
+      var objs13 =0;
+      
 
     return (
         <SDPage>
-        <SDTable
-         title="查询表格"
+        <ProTable
+         headerTitle="查询表格"
          rowKey="customerName"
          request={async (formdata:CorporateLoansCustomersModel) =>{
            const formDatas = await getDataList(formdata);
            // 解构数组(导出用)
            formDataList=[...formDatas];
-           return {data: formDatas}
+           setFormDetailData1(formDatas);
+           formDatas.forEach(function(erement,index,array){
+            if(erement.key != 'summary') {
+          objs1 = objs1 + Number(erement.balance);
+          objs2 = objs2 + Number(erement.balanceWeight);
+          objs3 = objs3 + Number(erement.thistermBalance);
+          objs4 = objs4 + Number(erement.thistermBalanceWeight);
+          objs5 = objs5 + Number(erement.ecl);
+          objs6 = objs6 + Number(erement.eclWeight);
+          objs7 = objs7 + Number(erement.ead);
+          objs8 = objs8 + Number(erement.eadWeight);
+          objs9 = objs9 + Number(erement.crm);
+          objs10 = objs10 + Number(erement.crmWeight);
+          objs11 = objs11 + Number(erement.rwa);
+          objs12 = objs12 + Number(erement.rwaWeight);
+          objs13= objs13 + Number(erement.averageRiskWeight);
+            }
+        } );
+        var objs = {key :'summary', custName :'合计', 
+        balance:objs1,
+        balanceWeight:objs2,
+        thistermBalance:objs3,
+        thistermBalanceWeight:objs4,
+        ecl:objs5,
+        eclWeight:objs6,
+        ead:objs7,
+        eadWeight:objs8,
+        crm:objs9,
+        crmWeight:objs10,
+        calcIndex:'',sDate:'',eDate:'',term:'',dataDate:'',rwa:objs11,rwaWeight:objs12,averageRiskWeight:objs13,custNo:''};
+        if(formDatas.length >0){
+          formDatas.push(objs)
+      }
+           return {data: formDetailData1}
          }  }
          columns={columns}
          toolBarRender={(_, { selectedRows }) => [
@@ -210,11 +679,32 @@ const corporateloanscustomerstop10 : React.FC<widowRush> = (prop:widowRush) => {
         ]}
          actionRef={actionRef}
          formRef={formRef}
-         setDetailVisible={() => {setDetailVisible(true)}}
-         setEditType={setEditType}
-         setCurrentRow={setCurrentRow}
+         dataSource={formDetailData1}
+        //  setDetailVisible={() => {setDetailVisible(true)}}
+        //  setEditType={setEditType}
+        //  setCurrentRow={setCurrentRow}
          />
-
+{detailVisible && (
+        <SDModalForm
+          title={'详细信息'}
+          editType={editType}   
+          params={currentRow}
+          visible={detailVisible}
+          onVisibleChange={() => {setDetailVisible(false)}}
+          tableRef={actionRef}
+          formRef={formRef}
+        >
+               <div style={{ width: '100%', overflowX: 'auto' }}>
+          <ProTable
+          search={false}
+          rowKey="index"
+          columns={detailInfoColumns}
+          dataSource={formDetailData}
+          scroll={{ x: 'max-content' }}
+          />
+          </div>
+        </SDModalForm>
+      )}
         </SDPage>
         
     );

+ 3 - 3
Procedure/frontend/projectb/src/pages/product/internal/multidimensionalcreditrisk.tsx

@@ -70,7 +70,7 @@ const multidimensionalcreditrisk : React.FC<widowRush> = (prop:widowRush) => {
         {
             title: '经营机构',
             dataIndex: 'mgmtBranchNo',
-            orrder:-2
+            order:-2
         },
         {
             title: '客户编号',
@@ -85,7 +85,7 @@ const multidimensionalcreditrisk : React.FC<widowRush> = (prop:widowRush) => {
         {
             title: '交易对手大类',
             dataIndex: 'busType',
-            orrder:-4,
+            order:-4,
             valueType: 'treeSelect',
             request: () => fetchDict('CUST_TYPE_LV02'),
             fieldProps: {
@@ -290,7 +290,7 @@ const multidimensionalcreditrisk : React.FC<widowRush> = (prop:widowRush) => {
         {
             title: '所属条线',
             dataIndex: 'busLine',
-            orrder:-3
+            order:-3
         },
         {
             title: '承诺类型',

+ 498 - 14
Procedure/frontend/projectb/src/pages/product/internal/productcreditriskcapitaloccupy.tsx

@@ -3,11 +3,12 @@ import { type ProColumns, type ActionType, type ProFormInstance, ProTable, Edita
 import type {FormInstance} from 'antd'
 import  {Table, Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, } from "@sundata/ui-frame";
-import type { ProductCreditRiskListModel, } from '@/services/rwa/product/internal/productcreditriskcapitaloccupy';
+import { detailInfoListModel, getDetailDataList, ProductCreditRiskListModel, } from '@/services/rwa/product/internal/productcreditriskcapitaloccupy';
 import {getDataList,exportExcelModel} from '@/services/rwa/product/internal/productcreditriskcapitaloccupy';
 import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { ReportCalculationModel } from "@/services/rwa/product/report_form_config_reportcreater/reportfillingconfig";
+import { useModel } from "@umijs/max";
 type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
@@ -27,24 +28,30 @@ const productcreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush) =>
     const formRef = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
 
-    const [formDetailData, setFormDetailData] = useState<ProductCreditRiskListModel[]>();
+    const [formDetailData, setFormDetailData] = useState<detailInfoListModel[]>();
     // 页面数据
     var formDataList = new Array<ProductCreditRiskListModel>;
 
+    const [formDetailData1, setFormDetailData1] = useState<ProductCreditRiskListModel[]>([]);
     /** 字段关系序号编辑 */
     var dataIndex = 1;
 
     useEffect(() => {
       }, []);
     
-
+      const { fetchDict } = useModel('dict');
 
     //关闭窗口刷新父页面
     const closeAndRefresh = ()=>{
     actionRef.current?.reloadAndRest?.();
     }
 
-
+    // 修改查询查询
+    const selectDetailData = async (formdata : ProductCreditRiskListModel) => {
+      const data = await getDetailDataList(formdata);
+      setFormDetailData(data);
+     
+     }
      
     // 页面展示元素
     const columns: ProColumns<ProductCreditRiskListModel>[] = [
@@ -64,17 +71,17 @@ const productcreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush) =>
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
+          dataIndex: 'sDate',
           order:-2,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
+          dataIndex: 'eDate',
           order:-3,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '期次',
@@ -91,10 +98,21 @@ const productcreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush) =>
         {
           title: '产品编号',
           dataIndex: 'productNo',
+          search: false,
+          render: (_, record) => [
+            
+            <a onClick={()=>{
+              if(record.key !='summary'){
+                selectDetailData(record);
+                setDetailVisible(true);}
+              }
+            }>{record.productNo}</a>
+          ],
         },
         {
           title: '产品名称',
           dataIndex: 'productName',
+          search: false,
         },
         {
           title: '资产余额(不含利息)',
@@ -167,17 +185,461 @@ const productcreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush) =>
         },
 
       ];
+      const detailInfoColumns: ProColumns<detailInfoListModel>[] = [
+        {
+            title: '债项编号',
+            dataIndex: 'loanReferenceNo',
+            search: false,
+           
+            width:200,
+        },
+        {
+            title: '合同编号',
+            dataIndex: 'contNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '经营机构',
+            dataIndex: 'mgmtBranchNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '客户编号',
+            dataIndex: 'custNo',
+            search: false,
+             width:200,
+        },
+        {
+            title: '客户名称',
+            dataIndex: 'custName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '交易对手大类',
+            dataIndex: 'busType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('CUST_TYPE_LV02'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
+            },
+            width:200,
+        },
+        {
+            title: '是否小微企业',
+            dataIndex: 'micro',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否中小企业',
+            dataIndex: 'medium',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否监管零售',
+            dataIndex: 'regulatoryRetail',
+            search: false,
+            width:200,
+        },
+        {
+            title: '产品大类',
+            dataIndex: 'productType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('PRODUCT_TYPE'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
+            },
+            width:200,
+        },
+        {
+            title: '产品名称',
+            dataIndex: 'productName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '表内外标识',
+            dataIndex: 'onOffFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '贴现类型',
+            dataIndex: 'discType',
+            search: false,
+            width:200,
+        },
+        {
+            title: '票据类型',
+            dataIndex: 'vouchTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否我行承兑',
+            dataIndex: 'isMybankSetFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人',
+            dataIndex: 'acceptorNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人客户名',
+            dataIndex: 'acceptorName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '证券类型',
+            dataIndex: 'secTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '一般专项标志',
+            dataIndex: 'purposeFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '币种',
+            dataIndex: 'ccyCd',
+            search: false,
+            width:100,
+        },
+        {
+            title: '生效日',
+            dataIndex: 'startDt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '到期日',
+            dataIndex: 'matDt',
+            search: false,
+            width:150,
+        },
+        {
+            title: '原始期限(月)',
+            dataIndex: 'originalTerm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '剩余期限(月)',
+            dataIndex: 'residualterm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '五级分类',
+            dataIndex: 'fiveClassCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '逾期天数(天)',
+            dataIndex: 'overdueDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '投向行业',
+            dataIndex: 'investIndustryCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '质押买断类型',
+            dataIndex: 'zhiyaMaiduanCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购类型',
+            dataIndex: 'repoTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购期限(天)',
+            dataIndex: 'repoDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '债券代码',
+            dataIndex: 'billNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '核心市场参与者标识',
+            dataIndex: 'coreMarketPartFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '资产余额',
+            dataIndex: 'balance',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本金科目号',
+            dataIndex: 'glAccountId',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应收利息',
+            dataIndex: 'recInt',
+            search: false,
+            width:200,
+         //   ellipsis:true,
+        },
+        {
+            title: '应收利息科目号',
+            dataIndex: 'recIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息',
+            dataIndex: 'accrInt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息科目号',
+            dataIndex: 'accrIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整',
+            dataIndex: 'intAdj',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整科目号',
+            dataIndex: 'intAdjAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动',
+            dataIndex: 'fairValueChange',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动科目号',
+            dataIndex: 'fairValAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费',
+            dataIndex: 'chargeFee',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费科目号',
+            dataIndex: 'chargeFeeAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '所属条线',
+            dataIndex: 'busLine',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承诺类型',
+            dataIndex: 'commType',
+            search: false,
+            width:200,
+        },
+        // {
+        //     title: '未使用额度',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        // {
+        //     title: '表外承诺科目号',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        {
+            title: '计提准备金',
+            dataIndex: 'reserve',
+            search: false,
+            width:200,
+        },
+        {
+            title: '准备金科目号',
+            dataIndex: 'reserveAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本期余额',
+            dataIndex: 'balanceAll',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-现金类资产(0%)',
+            dataIndex: 'cashRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国中央政府(0%)',
+            dataIndex: 'governmentRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国开发性金融机构和政策性银行(0%)',
+            dataIndex: 'financeRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内外商业银行(短期)(20%)',
+            dataIndex: 'dfBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内商业银行(0%)',
+            dataIndex: 'dBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-其他缓释类型',
+            dataIndex: 'otherRiskSum',
+            search: false,
+            width:200,
+        },
+        {
+            title: '未缓释风险暴露',
+            dataIndex: 'unfinishEad',
+            search: false,
+             width:200,
+        },
+        {
+            title: '表外项目分类',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '信用转换系数%',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(系统认定)',
+            dataIndex: 'riskExposureCode',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(系统认定)',
+            dataIndex: 'loanWeight',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(人工认定)',
+            dataIndex: 'riskExposureCodeArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(人工认定)',
+            dataIndex: 'loanWeightArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险加权资产',
+            dataIndex: 'rwa',
+            search: false,
+            width:200,
+        },
+
+    ]
+      var objs1 =0;
+      var objs2 =0;
+      var objs3 =0;
+      var objs4 =0;
+      var objs5 =0;
+      var objs6 =0;
+      var objs7 =0;
+      var objs8 =0;
+      var objs9 =0;
+      var objs10 =0;
+     
 
     return (
         <SDPage>
-        <SDTable
-         title="查询表格"
+        <ProTable
+       //  title="查询表格"
          rowKey="customerName"
          request={async (formdata:ProductCreditRiskListModel) =>{
            const formDatas = await getDataList(formdata);
            // 解构数组(导出用)
            formDataList=[...formDatas];
-           return {data: formDatas}
+           setFormDetailData1(formDatas);
+           formDatas.forEach(function(erement,index,array){
+            if(erement.key != 'summary') {
+          objs1 = objs1 + Number(erement.sumBalance);
+          objs2 = objs2 + Number(erement.monthaverageBalance);
+          objs3 = objs3 + Number(erement.endoftermBalance);
+          objs4 = objs4 + Number(erement.monthaverageThistermBalance);
+          objs5 = objs5 + Number(erement.endoftermEcl);
+          objs6 = objs6 + Number(erement.endoftermSumEad);
+          objs7 = objs7 + Number(erement.monthaverageEad);
+          objs8 = objs8 + Number(erement.sumRwa);
+          objs9 = objs9 + Number(erement.monthaverageRwa);
+          objs10 = objs10 + Number(erement.averageRiskWeight);
+            }
+        } )
+        var objs = {key :'summary', productNo :'合计', 
+        sumBalance:objs1,
+        monthaverageBalance:objs2,
+        endoftermBalance:objs3,
+        monthaverageThistermBalance:objs4,
+        endoftermEcl:objs5,
+        endoftermSumEad:objs6,
+        monthaverageEad:objs7,
+        sumRwa:objs8,
+        monthaverageRwa:objs9,
+        averageRiskWeight:objs10,
+        calcIndex:'',sDate:'',eDate:'',term:'',dataDate:'',productName:''}
+        if(formDatas.length >0){
+          formDatas.push(objs)
+      }
+           return {data: formDetailData1}
          }  }
          columns={columns}
          toolBarRender={(_, { selectedRows }) => [
@@ -192,12 +654,34 @@ const productcreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush) =>
             导出
           </SDButton>,
         ]}
+        dataSource={formDetailData1}
          actionRef={actionRef}
          formRef={formRef}
-         setDetailVisible={() => {setDetailVisible(true)}}
-         setEditType={setEditType}
-         setCurrentRow={setCurrentRow}
+        //  setDetailVisible={() => {setDetailVisible(true)}}
+        //  setEditType={setEditType}
+        //  setCurrentRow={setCurrentRow}
          />
+{detailVisible && (
+        <SDModalForm
+          title={'详细信息'}
+          editType={editType}   
+          params={currentRow}
+          visible={detailVisible}
+          onVisibleChange={() => {setDetailVisible(false)}}
+          tableRef={actionRef}
+          formRef={formRef}
+        >
+               <div style={{ width: '100%', overflowX: 'auto' }}>
+          <ProTable
+          search={false}
+          rowKey="index"
+          columns={detailInfoColumns}
+          dataSource={formDetailData}
+          scroll={{ x: 'max-content' }}
+          />
+          </div>
+        </SDModalForm>
+      )}
 
         </SDPage>
         

+ 500 - 20
Procedure/frontend/projectb/src/pages/product/internal/producttypecreditriskcapitaloccupy.tsx

@@ -3,8 +3,8 @@ import { type ProColumns, type ActionType, type ProFormInstance, ProTable, Edita
 import type {FormInstance} from 'antd'
 import  {Table, Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, } from "@sundata/ui-frame";
-import type { ProductTypeCreditRiskListModel, } from '@/services/rwa/product/internal/producttypecreditriskcapitaloccupy';
-import {getDataList,exportExcelModel} from '@/services/rwa/product/internal/producttypecreditriskcapitaloccupy';
+
+import {getDataList,exportExcelModel, ProductTypeCreditRiskListModel, getDetailDataList, detailInfoListModel} from '@/services/rwa/product/internal/producttypecreditriskcapitaloccupy';
 import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
@@ -28,13 +28,14 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
     const formRef = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
 
-    const [formDetailData, setFormDetailData] = useState<ProductTypeCreditRiskListModel[]>();
+    const [formDetailData, setFormDetailData] = useState<detailInfoListModel[]>([]);
     // 页面数据
     var formDataList = new Array<ProductTypeCreditRiskListModel>;
     const { fetchDict } = useModel('dict');
 
     /** 字段关系序号编辑 */
     var dataIndex = 1;
+    const [formDetailData1, setFormDetailData1] = useState<ProductTypeCreditRiskListModel[]>([]);
 
     useEffect(() => {
       }, []);
@@ -46,8 +47,12 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
     actionRef.current?.reloadAndRest?.();
     }
 
-
+    
+    const selectDetailData = async (formdata : ProductTypeCreditRiskListModel) => {
+      const data = await getDetailDataList(formdata);
+      setFormDetailData(data);
      
+     }
     // 页面展示元素
     const columns: ProColumns<ProductTypeCreditRiskListModel>[] = [
         {
@@ -66,17 +71,17 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
+          dataIndex: 'sDate',
           order:-2,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
+          dataIndex: 'eDate',
           order:-3,
           hideInTable: true,
-          valueType:'date'
+          valueType:'dateMonth'
         },
         {
           title: '期次',
@@ -93,15 +98,18 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
         {
           title: '产品大类',
           dataIndex: 'productType',
+          search:false,
           valueType: 'treeSelect',
             request: () => fetchDict('PRODUCT_TYPE'),
             fieldProps: {
               treeDefaultExpandAll: true,
            },
+          // onCell:(row:any)=>({rowSpan :row.rowSpan ||0})
         },
         {
           title: '风险权重',
           dataIndex: 'riskWeight',
+          search:false,
         },
         {
           title: '资产余额(不含利息)',
@@ -112,6 +120,13 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
                 title: '期末资产余额合计',
                 dataIndex: 'sumBalance',
                 search: false,
+                render: (_, record) => [
+                  <a onClick={()=>{
+                    if(record.key !='summary'){
+                    selectDetailData(record);
+                    setDetailVisible(true);}}
+                  }>{record.sumBalance}</a>
+                ],
             },
             { title: '月均资产余额', dataIndex: 'monthaverageBalance',search: false, },
           ],
@@ -123,7 +138,7 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
           children: [
             {
                 title: '期末本期余额合计',
-                dataIndex: 'endoftermBalance',
+                dataIndex: 'endoftermThistermSumBalance',
                 search: false,
             },
             { title: '月均本期余额', dataIndex: 'monthaverageThistermBalance',search: false, },
@@ -175,17 +190,461 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
 
       ];
 
+      const detailInfoColumns: ProColumns<detailInfoListModel>[] = [
+        {
+            title: '债项编号',
+            dataIndex: 'loanReferenceNo',
+            search: false,
+           
+            width:200,
+        },
+        {
+            title: '合同编号',
+            dataIndex: 'contNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '经营机构',
+            dataIndex: 'mgmtBranchNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '客户编号',
+            dataIndex: 'custNo',
+            search: false,
+             width:200,
+        },
+        {
+            title: '客户名称',
+            dataIndex: 'custName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '交易对手大类',
+            dataIndex: 'busType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('CUST_TYPE_LV02'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
+            },
+            width:200,
+        },
+        {
+            title: '是否小微企业',
+            dataIndex: 'micro',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否中小企业',
+            dataIndex: 'medium',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否监管零售',
+            dataIndex: 'regulatoryRetail',
+            search: false,
+            width:200,
+        },
+        {
+            title: '产品大类',
+            dataIndex: 'productType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('PRODUCT_TYPE'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
+            },
+            width:200,
+        },
+        {
+            title: '产品名称',
+            dataIndex: 'productName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '表内外标识',
+            dataIndex: 'onOffFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '贴现类型',
+            dataIndex: 'discType',
+            search: false,
+            width:200,
+        },
+        {
+            title: '票据类型',
+            dataIndex: 'vouchTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否我行承兑',
+            dataIndex: 'isMybankSetFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人',
+            dataIndex: 'acceptorNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人客户名',
+            dataIndex: 'acceptorName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '证券类型',
+            dataIndex: 'secTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '一般专项标志',
+            dataIndex: 'purposeFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '币种',
+            dataIndex: 'ccyCd',
+            search: false,
+            width:100,
+        },
+        {
+            title: '生效日',
+            dataIndex: 'startDt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '到期日',
+            dataIndex: 'matDt',
+            search: false,
+            width:150,
+        },
+        {
+            title: '原始期限(月)',
+            dataIndex: 'originalTerm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '剩余期限(月)',
+            dataIndex: 'residualterm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '五级分类',
+            dataIndex: 'fiveClassCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '逾期天数(天)',
+            dataIndex: 'overdueDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '投向行业',
+            dataIndex: 'investIndustryCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '质押买断类型',
+            dataIndex: 'zhiyaMaiduanCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购类型',
+            dataIndex: 'repoTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购期限(天)',
+            dataIndex: 'repoDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '债券代码',
+            dataIndex: 'billNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '核心市场参与者标识',
+            dataIndex: 'coreMarketPartFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '资产余额',
+            dataIndex: 'balance',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本金科目号',
+            dataIndex: 'glAccountId',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应收利息',
+            dataIndex: 'recInt',
+            search: false,
+            width:200,
+         //   ellipsis:true,
+        },
+        {
+            title: '应收利息科目号',
+            dataIndex: 'recIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息',
+            dataIndex: 'accrInt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息科目号',
+            dataIndex: 'accrIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整',
+            dataIndex: 'intAdj',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整科目号',
+            dataIndex: 'intAdjAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动',
+            dataIndex: 'fairValueChange',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动科目号',
+            dataIndex: 'fairValAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费',
+            dataIndex: 'chargeFee',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费科目号',
+            dataIndex: 'chargeFeeAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '所属条线',
+            dataIndex: 'busLine',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承诺类型',
+            dataIndex: 'commType',
+            search: false,
+            width:200,
+        },
+        // {
+        //     title: '未使用额度',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        // {
+        //     title: '表外承诺科目号',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        {
+            title: '计提准备金',
+            dataIndex: 'reserve',
+            search: false,
+            width:200,
+        },
+        {
+            title: '准备金科目号',
+            dataIndex: 'reserveAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本期余额',
+            dataIndex: 'balanceAll',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-现金类资产(0%)',
+            dataIndex: 'cashRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国中央政府(0%)',
+            dataIndex: 'governmentRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国开发性金融机构和政策性银行(0%)',
+            dataIndex: 'financeRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内外商业银行(短期)(20%)',
+            dataIndex: 'dfBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内商业银行(0%)',
+            dataIndex: 'dBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-其他缓释类型',
+            dataIndex: 'otherRiskSum',
+            search: false,
+            width:200,
+        },
+        {
+            title: '未缓释风险暴露',
+            dataIndex: 'unfinishEad',
+            search: false,
+             width:200,
+        },
+        {
+            title: '表外项目分类',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '信用转换系数%',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(系统认定)',
+            dataIndex: 'riskExposureCode',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(系统认定)',
+            dataIndex: 'loanWeight',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(人工认定)',
+            dataIndex: 'riskExposureCodeArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(人工认定)',
+            dataIndex: 'loanWeightArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险加权资产',
+            dataIndex: 'rwa',
+            search: false,
+            width:200,
+        },
+
+    ]
+      var objs1 =0;
+      var objs2 =0;
+      var objs3 =0;
+      var objs4 =0;
+      var objs5 =0;
+      var objs6 =0;
+      var objs7 =0;
+      var objs8 =0;
+      var objs9 =0;
+      var objs10 =0;
+      
     return (
         <SDPage>
-        <SDTable
-         title="查询表格"
+        <ProTable
+        // title="查询表格"
          rowKey="customerName"
          request={async (formdata:ProductTypeCreditRiskListModel) =>{
-           const formDatas = await getDataList(formdata);
-           // 解构数组(导出用)
-           formDataList=[...formDatas];
-           return {data: formDatas}
-         }  }
+          const formDatas = await getDataList(formdata);
+          // 解构数组(导出用)
+          setFormDetailData1(formDatas);
+          formDataList=[...formDatas];
+          formDatas.forEach(function(erement,index,array){
+            if(erement.key != 'summary') {
+          objs1 = objs1 + Number(erement.sumBalance);
+          objs2 = objs2 + Number(erement.monthaverageBalance);
+          objs3 = objs3 + Number(erement.endoftermThistermSumBalance);
+          objs4 = objs4 + Number(erement.monthaverageThistermBalance);
+          objs5 = objs5 + Number(erement.endoftermEcl);
+          objs6 = objs6 + Number(erement.endoftermSumEad);
+          objs7 = objs7 + Number(erement.monthaverageEad);
+          objs8 = objs8 + Number(erement.sumRwa);
+          objs9 = objs9 + Number(erement.monthaverageRwa);
+          objs10 = objs10 + Number(erement.averageRiskWeight);
+            }
+        } );
+        var objs = {key :'summary', productType :'合计', 
+        sumBalance:objs1,
+        monthaverageBalance:objs2,
+        endoftermThistermSumBalance:objs3,
+        monthaverageThistermBalance:objs4,
+        endoftermEcl:objs5,
+        endoftermSumEad:objs6,
+        monthaverageEad:objs7,
+        sumRwa:objs8,
+        monthaverageRwa:objs9,
+        averageRiskWeight:objs10,
+        calcIndex:'',sDate:'',eDate:'',term:'',dataDate:'',riskWeight:''};
+        if(formDatas.length >0){
+          formDatas.push(objs)
+      }
+          return {data: formDetailData1}
+        } }
          columns={columns}
          toolBarRender={(_, { selectedRows }) => [
           <SDButton
@@ -201,11 +660,32 @@ const producttypecreditriskcapitaloccupy : React.FC<widowRush> = (prop:widowRush
         ]}
          actionRef={actionRef}
          formRef={formRef}
-         setDetailVisible={() => {setDetailVisible(true)}}
-         setEditType={setEditType}
-         setCurrentRow={setCurrentRow}
+         dataSource={formDetailData1}
+        //  setDetailVisible={() => {setDetailVisible(true)}}
+        //  setEditType={setEditType}
+        //  setCurrentRow={setCurrentRow}
          />
-
+{detailVisible && (
+        <SDModalForm
+          title={'详细信息'}
+          editType={editType}   
+          params={currentRow}
+          visible={detailVisible}
+          onVisibleChange={() => {setDetailVisible(false)}}
+          tableRef={actionRef}
+          formRef={formRef}
+        >
+               <div style={{ width: '100%', overflowX: 'auto' }}>
+          <ProTable
+          search={false}
+          rowKey="index"
+          columns={detailInfoColumns}
+          dataSource={formDetailData}
+          scroll={{ x: 'max-content' }}
+          />
+          </div>
+        </SDModalForm>
+      )}
         </SDPage>
         
     );

+ 599 - 102
Procedure/frontend/projectb/src/pages/product/internal/withintablecorporateloans.tsx

@@ -3,7 +3,7 @@ import { type ProColumns, type ActionType, type ProFormInstance, ProTable, Edita
 import type {FormInstance} from 'antd'
 import  {Table, Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, } from "@sundata/ui-frame";
-import type { CorporateLoansListModel, } from '@/services/rwa/product/internal/withintablecorporateloans';
+import { CorporateLoansListModel, detailInfoListModel, getDetailDataList, } from '@/services/rwa/product/internal/withintablecorporateloans';
 import {getDataList,exportExcelModel} from '@/services/rwa/product/internal/withintablecorporateloans';
 import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
@@ -28,7 +28,9 @@ const withintablecorporateloans : React.FC<widowRush> = (prop:widowRush) => {
     const formRef = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
 
-    const [formDetailData, setFormDetailData] = useState<CorporateLoansListModel[]>();
+    const [formDetailData, setFormDetailData] = useState<detailInfoListModel[]>();
+
+    const [formDetailData1, setFormDetailData1] = useState<CorporateLoansListModel[]>([]);
     // 页面数据
     var formDataList = new Array<CorporateLoansListModel>;
     const { fetchDict } = useModel('dict');
@@ -46,145 +48,619 @@ const withintablecorporateloans : React.FC<widowRush> = (prop:widowRush) => {
     actionRef.current?.reloadAndRest?.();
     }
 
-
+    const selectDetailData = async (formdata : CorporateLoansListModel) => {
+      const data = await getDetailDataList(formdata);
+      setFormDetailData(data);
+     
+     }
      
     // 页面展示元素
     const columns: ProColumns<CorporateLoansListModel>[] = [
-        {
-          title: '序号',
-          dataIndex: 'index',
+      {
+        title: '序号',
+        dataIndex: 'index',
+        search: false,
+        render: (text, record, index) => { index  = index + 1;dataIndex = index; return index},
+        width:100,
+        ellipsis:true
+      },
+      {
+        title: '计算实例号',
+        dataIndex: 'calcIndex',
+        search: false,
+        hideInTable: true,
+      },
+      {
+        title: '起始数据日期',
+        dataIndex: 'startDate',
+        order:-2,
+        search: false,
+        hideInTable: true,
+        valueType:'date'
+      },
+      {
+        title: '截止数据日期',
+        dataIndex: 'endDate',
+        order:-3,
+        search: false,
+        hideInTable: true,
+        valueType:'date'
+      },
+      {
+        title: '期次',
+        dataIndex: 'term',
+        hideInTable: true,
+        valueType:'dateMonth'
+      },
+      {
+        title: '数据日期',
+        dataIndex: 'dataDate',
+        search: false,
+        hideInTable: true,
+      },
+      {
+        title: '行业门类',
+        dataIndex: 'industryClass',
+        search:false,
+      },
+      {
+        title: '资产余额(不含利息)',
+        dataIndex: '',
+        search: false,
+        children: [
+          {
+              title: '资产余额',
+              dataIndex: 'balance',
+              search: false,
+              render: (_, record) => [
+                <a onClick={()=>{
+                  if(record.key !='summary'){
+                  selectDetailData(record);
+                  setDetailVisible(true);}}
+                }>{record.balance}</a>
+              ],
+          },
+          { title: '资产余额占比%', dataIndex: 'balanceWeight',search: false, },
+        ],
+      },
+      {
+        title: '本期余额(含利息)',
+        dataIndex: '',
+        search: false,
+        children: [
+          {
+              title: '本期余额',
+              dataIndex: 'thistermBalance',
+              search: false,
+          },
+          { title: '本期余额占比%', dataIndex: 'thistermBalanceWeight',search: false, },
+        ],
+      },
+      {
+        title: '减值准备',
+        dataIndex: '',
+        search: false,
+        children: [
+          {
+              title: '减值准备',
+              dataIndex: 'ecl',
+              search: false,
+          },
+          {
+              title: '减值准备占比%',
+              dataIndex: 'eclWeight',
+              search: false,
+          },
+        ],
+      },
+      {
+        title: '风险暴漏',
+        dataIndex: '',
+        search: false,
+        children: [
+          {
+              title: '风险暴漏',
+              dataIndex: 'ead',
+              search: false,
+          },
+          { title: '风险暴露占比%', dataIndex: 'eadWeight',search: false, },
+        ],
+      },
+      {
+          title: '风险缓释',
+          dataIndex: '',
           search: false,
-          render: (text, record, index) => { index  = index + 1;dataIndex = index; return index},
-          width:100,
-          ellipsis:true
+          children: [
+            {
+                title: '风险缓释',
+                dataIndex: 'crm',
+                search: false,
+            },
+            { title: '风险缓释占比%', dataIndex: 'crmWeight',search: false, },
+          ],
         },
+      {
+        title: '风险加权资产',
+        dataIndex: '',
+        search: false,
+        children: [
+          {
+              title: '风险加权资产',
+              dataIndex: 'rwa',
+              search: false,
+          },
+          { title: '风险加权资产占比%', dataIndex: 'rwaWeight',search: false, },
+        ],
+      },
+      {
+        title: '平均风险权重%',
+        dataIndex: 'averageRiskWeight',
+        search: false,
+      },
+
+      ];
+      const detailInfoColumns: ProColumns<detailInfoListModel>[] = [
         {
-          title: '计算实例号',
-          dataIndex: 'calcIndex',
-          search: false,
-          hideInTable: true,
+            title: '债项编号',
+            dataIndex: 'loanReferenceNo',
+            search: false,
+           
+            width:200,
         },
         {
-          title: '起始数据日期',
-          dataIndex: 'startDate',
-          order:-2,
-          hideInTable: true,
-          valueType:'date'
+            title: '合同编号',
+            dataIndex: 'contNo',
+            search: false,
+            width:200,
         },
         {
-          title: '截止数据日期',
-          dataIndex: 'endDate',
-          order:-3,
-          hideInTable: true,
-          valueType:'date'
+            title: '经营机构',
+            dataIndex: 'mgmtBranchNo',
+            search: false,
+            width:200,
         },
         {
-          title: '期次',
-          dataIndex: 'term',
-          search: false,
-          hideInTable: true,
+            title: '客户编号',
+            dataIndex: 'custNo',
+            search: false,
+             width:200,
         },
         {
-          title: '数据日期',
-          dataIndex: 'dataDate',
-          search: false,
-          hideInTable: true,
+            title: '客户名称',
+            dataIndex: 'custName',
+            search: false,
+            width:200,
         },
         {
-          title: '产品大类',
-          dataIndex: 'productType',
-          valueType: 'treeSelect',
-            request: () => fetchDict('PRODUCT_TYPE'),
+            title: '交易对手大类',
+            dataIndex: 'busType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('CUST_TYPE_LV02'),
             fieldProps: {
               treeDefaultExpandAll: true,
-           },
+            },
+            width:200,
         },
         {
-          title: '风险权重',
-          dataIndex: 'riskWeight',
+            title: '是否小微企业',
+            dataIndex: 'micro',
+            search: false,
+            width:200,
         },
         {
-          title: '资产余额(不含利息)',
-          dataIndex: '',
-          search: false,
-          children: [
-            {
-                title: '期末资产余额合计',
-                dataIndex: 'sumBalance',
-                search: false,
-            },
-            { title: '月均资产余额', dataIndex: 'monthaverageBalance',search: false, },
-          ],
+            title: '是否中小企业',
+            dataIndex: 'medium',
+            search: false,
+            width:200,
         },
         {
-          title: '本期余额(含利息)',
-          dataIndex: '',
-          search: false,
-          children: [
-            {
-                title: '期末本期余额合计',
-                dataIndex: 'endoftermBalance',
-                search: false,
-            },
-            { title: '月均本期余额', dataIndex: 'monthaverageThistermBalance',search: false, },
-          ],
+            title: '是否监管零售',
+            dataIndex: 'regulatoryRetail',
+            search: false,
+            width:200,
         },
         {
-          title: '减值准备',
-          dataIndex: '',
-          search: false,
-          children: [
-            {
-                title: '期末减值准备',
-                dataIndex: 'endoftermEcl',
-                search: false,
+            title: '产品大类',
+            dataIndex: 'productType',
+            search: false,
+            valueType: 'treeSelect',
+            request: () => fetchDict('PRODUCT_TYPE'),
+            fieldProps: {
+              treeDefaultExpandAll: true,
             },
-          ],
+            width:200,
         },
         {
-          title: '风险暴漏',
-          dataIndex: '',
-          search: false,
-          children: [
-            {
-                title: '期末风险暴露合计',
-                dataIndex: 'endoftermSumEad',
-                search: false,
-            },
-            { title: '月均风险暴露', dataIndex: 'monthaverageEad',search: false, },
-          ],
+            title: '产品名称',
+            dataIndex: 'productName',
+            search: false,
+            width:200,
         },
         {
-          title: '风险加权资产',
-          dataIndex: '',
-          search: false,
-          children: [
-            {
-                title: '期末风险加权资产合计',
-                dataIndex: 'sumRwa',
-                search: false,
-            },
-            { title: '月均风险加权资产', dataIndex: 'monthaverageRwa',search: false, },
-          ],
+            title: '表内外标识',
+            dataIndex: 'onOffFlag',
+            search: false,
+            width:200,
         },
         {
-          title: '缓释后平均风险权重(%)',
-          dataIndex: 'averageRiskWeight',
-          search: false,
+            title: '贴现类型',
+            dataIndex: 'discType',
+            search: false,
+            width:200,
+        },
+        {
+            title: '票据类型',
+            dataIndex: 'vouchTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '是否我行承兑',
+            dataIndex: 'isMybankSetFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人',
+            dataIndex: 'acceptorNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承兑人客户名',
+            dataIndex: 'acceptorName',
+            search: false,
+            width:200,
+        },
+        {
+            title: '证券类型',
+            dataIndex: 'secTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '一般专项标志',
+            dataIndex: 'purposeFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '币种',
+            dataIndex: 'ccyCd',
+            search: false,
+            width:100,
+        },
+        {
+            title: '生效日',
+            dataIndex: 'startDt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '到期日',
+            dataIndex: 'matDt',
+            search: false,
+            width:150,
+        },
+        {
+            title: '原始期限(月)',
+            dataIndex: 'originalTerm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '剩余期限(月)',
+            dataIndex: 'residualterm',
+            search: false,
+            width:150,
+        },
+        {
+            title: '五级分类',
+            dataIndex: 'fiveClassCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '逾期天数(天)',
+            dataIndex: 'overdueDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '投向行业',
+            dataIndex: 'investIndustryCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '质押买断类型',
+            dataIndex: 'zhiyaMaiduanCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购类型',
+            dataIndex: 'repoTypeCd',
+            search: false,
+            width:200,
+        },
+        {
+            title: '回购期限(天)',
+            dataIndex: 'repoDays',
+            search: false,
+            width:100,
+        },
+        {
+            title: '债券代码',
+            dataIndex: 'billNo',
+            search: false,
+            width:200,
+        },
+        {
+            title: '核心市场参与者标识',
+            dataIndex: 'coreMarketPartFlag',
+            search: false,
+            width:200,
+        },
+        {
+            title: '资产余额',
+            dataIndex: 'balance',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本金科目号',
+            dataIndex: 'glAccountId',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应收利息',
+            dataIndex: 'recInt',
+            search: false,
+            width:200,
+         //   ellipsis:true,
+        },
+        {
+            title: '应收利息科目号',
+            dataIndex: 'recIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息',
+            dataIndex: 'accrInt',
+            search: false,
+            width:200,
+        },
+        {
+            title: '应计利息科目号',
+            dataIndex: 'accrIntAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整',
+            dataIndex: 'intAdj',
+            search: false,
+            width:200,
+        },
+        {
+            title: '利息调整科目号',
+            dataIndex: 'intAdjAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动',
+            dataIndex: 'fairValueChange',
+            search: false,
+            width:200,
+        },
+        {
+            title: '公允价值变动科目号',
+            dataIndex: 'fairValAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费',
+            dataIndex: 'chargeFee',
+            search: false,
+            width:200,
+        },
+        {
+            title: '手续费科目号',
+            dataIndex: 'chargeFeeAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '所属条线',
+            dataIndex: 'busLine',
+            search: false,
+            width:200,
+        },
+        {
+            title: '承诺类型',
+            dataIndex: 'commType',
+            search: false,
+            width:200,
+        },
+        // {
+        //     title: '未使用额度',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        // {
+        //     title: '表外承诺科目号',
+        //     dataIndex: '',
+        //     search: false,
+        // },
+        {
+            title: '计提准备金',
+            dataIndex: 'reserve',
+            search: false,
+            width:200,
+        },
+        {
+            title: '准备金科目号',
+            dataIndex: 'reserveAccount',
+            search: false,
+            width:200,
+        },
+        {
+            title: '本期余额',
+            dataIndex: 'balanceAll',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-现金类资产(0%)',
+            dataIndex: 'cashRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国中央政府(0%)',
+            dataIndex: 'governmentRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-我国开发性金融机构和政策性银行(0%)',
+            dataIndex: 'financeRisk',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内外商业银行(短期)(20%)',
+            dataIndex: 'dfBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-境内商业银行(0%)',
+            dataIndex: 'dBank',
+            search: false,
+            width:200,
+        },
+        {
+            title: '缓释覆盖部分的风险暴露-其他缓释类型',
+            dataIndex: 'otherRiskSum',
+            search: false,
+            width:200,
+        },
+        {
+            title: '未缓释风险暴露',
+            dataIndex: 'unfinishEad',
+            search: false,
+             width:200,
+        },
+        {
+            title: '表外项目分类',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '信用转换系数%',
+            dataIndex: '',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(系统认定)',
+            dataIndex: 'riskExposureCode',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(系统认定)',
+            dataIndex: 'loanWeight',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险暴露分类(人工认定)',
+            dataIndex: 'riskExposureCodeArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险权重%(人工认定)',
+            dataIndex: 'loanWeightArtificial',
+            search: false,
+            width:200,
+        },
+        {
+            title: '风险加权资产',
+            dataIndex: 'rwa',
+            search: false,
+            width:200,
         },
 
-      ];
+    ]
+
+      var objs1 =0;
+      var objs2 =0;
+      var objs3 =0;
+      var objs4 =0;
+      var objs5 =0;
+      var objs6 =0;
+      var objs7 =0;
+      var objs8 =0;
+      var objs9 =0;
+      var objs10 =0;
+      var objs11 =0;
+      var objs12 =0;
+      var objs13 =0;
+      
 
     return (
         <SDPage>
-        <SDTable
-         title="查询表格"
+        <ProTable
+         headerTitle="查询表格"
          rowKey="customerName"
          request={async (formdata:CorporateLoansListModel) =>{
            const formDatas = await getDataList(formdata);
            // 解构数组(导出用)
            formDataList=[...formDatas];
-           return {data: formDatas}
+           setFormDetailData1(formDatas);
+           formDatas.forEach(function(erement,index,array){
+            if(erement.key != 'summary') {
+          objs1 = objs1 + Number(erement.balance);
+          objs2 = objs2 + Number(erement.balanceWeight);
+          objs3 = objs3 + Number(erement.thistermBalance);
+          objs4 = objs4 + Number(erement.thistermBalanceWeight);
+          objs5 = objs5 + Number(erement.ecl);
+          objs6 = objs6 + Number(erement.eclWeight);
+          objs7 = objs7 + Number(erement.ead);
+          objs8 = objs8 + Number(erement.eadWeight);
+          objs9 = objs9 + Number(erement.crm);
+          objs10 = objs10 + Number(erement.crmWeight);
+          objs11 = objs11 + Number(erement.rwa);
+          objs12 = objs12 + Number(erement.rwaWeight);
+          objs13= objs13 + Number(erement.averageRiskWeight);
+            }
+        } );
+        var objs = {key :'summary', industryClass :'合计', 
+        balance:objs1,
+        balanceWeight:objs2,
+        thistermBalance:objs3,
+        thistermBalanceWeight:objs4,
+        ecl:objs5,
+        eclWeight:objs6,
+        ead:objs7,
+        eadWeight:objs8,
+        crm:objs9,
+        crmWeight:objs10,
+        calcIndex:'',sDate:'',eDate:'',term:'',dataDate:'',rwa:objs11,rwaWeight:objs12,averageRiskWeight:objs13};
+        if(formDatas.length >0){
+          formDatas.push(objs)
+      }
+           return {data: formDetailData1}
          }  }
          columns={columns}
          toolBarRender={(_, { selectedRows }) => [
@@ -201,11 +677,32 @@ const withintablecorporateloans : React.FC<widowRush> = (prop:widowRush) => {
         ]}
          actionRef={actionRef}
          formRef={formRef}
-         setDetailVisible={() => {setDetailVisible(true)}}
-         setEditType={setEditType}
-         setCurrentRow={setCurrentRow}
+         dataSource={formDetailData1}
+        //  setDetailVisible={() => {setDetailVisible(true)}}
+        //  setEditType={setEditType}
+        //  setCurrentRow={setCurrentRow}
          />
-
+{detailVisible && (
+        <SDModalForm
+          title={'详细信息'}
+          editType={editType}   
+          params={currentRow}
+          visible={detailVisible}
+          onVisibleChange={() => {setDetailVisible(false)}}
+          tableRef={actionRef}
+          formRef={formRef}
+        >
+               <div style={{ width: '100%', overflowX: 'auto' }}>
+          <ProTable
+          search={false}
+          rowKey="index"
+          columns={detailInfoColumns}
+          dataSource={formDetailData}
+          scroll={{ x: 'max-content' }}
+          />
+          </div>
+        </SDModalForm>
+      )}
         </SDPage>
         
     );

+ 6 - 3
Procedure/frontend/projectb/src/pages/product/rwa_calc_config_004rwa/stageinformation.tsx

@@ -142,6 +142,7 @@ const stageinformation : React.FC<widowProps> = (prop:widowProps) => {
         stageFormData[0]={...data};
         setStageFormData([...stageFormData]);
       }
+      setStageConfigRuleVisible(false);
       //  await updateStageConfigRule(data);
       //  closeAndRefreshRule();
     } else if (toolRuleEditType == 'create' ) {
@@ -374,7 +375,7 @@ const stageinformation : React.FC<widowProps> = (prop:widowProps) => {
             hideInTable: false,
             width:150,
             ellipsis:true,
-          //  valueType:'select',
+            valueType:'select',
             request: () => fetchDict('STEP_TYPE'),
             fieldProps: {
               treeDefaultExpandAll: true,
@@ -470,6 +471,7 @@ return (
           formRef.current?.setFieldValue('stageSuperName',names);
         }
       }}
+      initialValues={{ stageIsvalid :'1',stageSuper:''}}
       footer={[
       <SDSubmitButton  editType={editType}   formRef={formRef} doSubmit={handleReleaseTypeSave} >保存</SDSubmitButton>,
       <SDButton
@@ -495,7 +497,8 @@ return (
             startDate: "",
             endDate: "",
             term: "",
-            dataDate: ""
+            dataDate: "",
+            stageSuperName:""
           }
         )} readonlyCond="update" rules={[{max:60,message:'请输入数字,且最大长度不超过60',validator: validateFun.naturalinteger},]} required={true} label="阶段编号"/>
         <SDFormText name="stageName" rules={[{validator:(rules,value,callback)=>{
@@ -568,7 +571,7 @@ return (
             ]}
         >
         <SDAreaTtile title='步骤信息'/>
-        <SDFormText name="stepId" rules={[{validator: validateFun.zinteger,message:'请输入数字类型'},]} label="步骤编号"/>
+        <SDFormText name="stepId" rules={[{validator: validateFun.zinteger,message:'请输入数字类型'},]} label="步骤编号"  readonlyCond = 'update'/>
         <SDFormText name="stepName" rules={[{validator:(rules,value,callback)=>{
             let chineseCount = countChineseChars(value);
             if (chineseCount > 30) {

+ 10 - 0
Procedure/frontend/projectb/src/pages/project/dataquality/BondInvestment.tsx

@@ -12,6 +12,9 @@ type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
+  subjectNumber ?:any;
+  search ?:any;
+  term ?:any;
 }& ProductProps;
 // 债券投资
 const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
@@ -25,6 +28,7 @@ const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
     const { fetchDict } = useModel('dict');
+    const [list,setList] = useState<any>();
 
     // 页面数据
     var formDataList = new Array<SysListModel>;
@@ -438,12 +442,18 @@ const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
          title="查询表格"
          rowKey="customerName"
          request={async (formdata:SysListModel) =>{
+          if(prop.search=='0'){
+            setList(false)
+          }else{
+            setList(true)
+          }
           const formDatas = await getDataList(formdata);
           // 解构数组(导出用)
           formDataList=[...formDatas];
            return {data: formDatas}
          }  }
          columns={columns}
+         search={list}
          toolBarRender={(_, { selectedRows }) => [
           <SDButton
             key="export"

+ 10 - 1
Procedure/frontend/projectb/src/pages/project/dataquality/DiscountTable.tsx

@@ -9,7 +9,9 @@ import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
 
 type widowRush = {
-
+  subjectNumber ?:any;
+  search ?:any;
+  term ?:any;
 }& ProductProps;
 // 票据表
 const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
@@ -23,6 +25,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
     const { fetchDict } = useModel('dict');
+    const [list,setList] = useState<any>();
 
     // 页面数据
     var formDataList = new Array<SysListModel>;
@@ -436,6 +439,11 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
          title="查询表格"
          rowKey="customerName"
          request={async (formdata:SysListModel) =>{
+          if(prop.search=='0'){
+            setList(false)
+          }else{
+            setList(true)
+          }
           const data = await getDataList(formdata)
            return {data: data}
          }  }
@@ -453,6 +461,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
         ]}
          actionRef={actionRef}
          formRef={formRef}
+         search={list}
          setDetailVisible={() => {setDetailVisible(true)}}
          setEditType={setEditType}
          setCurrentRow={setCurrentRow}

+ 10 - 0
Procedure/frontend/projectb/src/pages/project/dataquality/InterbankDepositOrLendingTable.tsx

@@ -12,6 +12,9 @@ type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
+  subjectNumber ?:any;
+  search ?:any;
+  term ?:any;
 }& ProductProps;
 // 存拆放表
 const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) => {
@@ -25,6 +28,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
     const { fetchDict } = useModel('dict');
+    const [list,setList] = useState<any>();
 
     // 页面数据
     var formDataList = new Array<SysListModel>;
@@ -384,12 +388,18 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
          title="查询表格"
          rowKey="customerName"
          request={async (formdata:SysListModel) =>{
+          if(prop.search=='0'){
+            setList(false)
+          }else{
+            setList(true)
+          }
           const formDatas = await getDataList(formdata);
           // 解构数组(导出用)
           formDataList=[...formDatas];
            return {data: formDatas}
          }  }
          columns={columns}
+         search={list}
          toolBarRender={(_, { selectedRows }) => [
           <SDButton
             key="export"

+ 10 - 0
Procedure/frontend/projectb/src/pages/project/dataquality/NonStandardInvestment.tsx

@@ -12,6 +12,9 @@ type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
+  subjectNumber ?:any;
+  search ?:any;
+  term ?:any;
 }& ProductProps;
 // 非标投资表
 const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
@@ -25,6 +28,7 @@ const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
     const { fetchDict } = useModel('dict');
+    const [list,setList] = useState<any>();
 
     // 页面数据
     var formDataList = new Array<SysListModel>;
@@ -398,12 +402,18 @@ const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
          title="查询表格"
          rowKey="customerName"
          request={async (formdata:SysListModel) =>{
+          if(prop.search=='0'){
+            setList(false)
+          }else{
+            setList(true)
+          }
           const formDatas = await getDataList(formdata);
           // 解构数组(导出用)
           formDataList=[...formDatas];
            return {data: formDatas}
          }  }
          columns={columns}
+         search={list}
          toolBarRender={(_, { selectedRows }) => [
           <SDButton
             key="export"

+ 10 - 0
Procedure/frontend/projectb/src/pages/project/dataquality/OffCreditCard.tsx

@@ -11,6 +11,9 @@ type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
+  subjectNumber ?:any;
+  search ?:any;
+  term ?:any;
 }& ProductProps;
 // 信用卡未使用额度表
 const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
@@ -25,6 +28,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
     const formRef = useRef<FormInstance<any>>();
     const { fetchDict } = useModel('dict');
 
+    const [list,setList] = useState<any>();
     // 页面数据
     var formDataList = new Array<SysListModel>;
     /**上传文件 */
@@ -416,6 +420,11 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
          title="查询表格"
          rowKey="customerName"
          request={async (formdata:SysListModel) =>{
+          if(prop.search=='0'){
+            setList(false)
+          }else{
+            setList(true)
+          }
           const formDatas = await getDataList(formdata);
            // 解构数组(导出用)
            formDataList=[...formDatas];
@@ -436,6 +445,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
          actionRef={actionRef}
          formRef={formRef}
          setDetailVisible={() => {setDetailVisible(true)}}
+         search={list}
          setEditType={setEditType}
          setCurrentRow={setCurrentRow}
          />

+ 19 - 9
Procedure/frontend/projectb/src/pages/project/dataquality/OnCreditCard.tsx

@@ -12,6 +12,9 @@ type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
+  subjectNumber ?:any;
+  search ?:any;
+  term ?:any;
 }& ProductProps;
 // 信用卡表
 const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
@@ -32,6 +35,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
     const [fileData, setFileData] = useState<File>();
     // 导入窗口显示
     const [importVisible, setImportVisible] = useState<boolean>(false);
+    const [list,setList] = useState<any>();
 
     useEffect(() => {
 
@@ -409,11 +413,17 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
          title="查询表格"
          rowKey="customerName"
          request={async (formdata:SysListModel) =>{
+          if(prop.search=='0'){
+            setList(false)
+          }else{
+            setList(true)
+          }
           const formDatas = await getDataList(formdata);
           // 解构数组(导出用)
           formDataList=[...formDatas];
            return {data: formDatas}
          }  }
+         search={list}
          columns={columns}
          toolBarRender={(_, { selectedRows }) => [
           <SDButton
@@ -425,15 +435,15 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           >
             全部导出
           </SDButton>,
-          <SDButton
-          key="import"
-          successMessage=''
-          onClick={() => {
-            setImportVisible(true);
-          }}
-        >
-          导入数据
-        </SDButton>,
+        //   <SDButton
+        //   key="import"
+        //   successMessage=''
+        //   onClick={() => {
+        //     setImportVisible(true);
+        //   }}
+        // >
+        //   导入数据
+        // </SDButton>,
         ]}
          actionRef={actionRef}
          formRef={formRef}

+ 2 - 2
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcCommitment.tsx

@@ -10,7 +10,7 @@ import { useModel } from '@umijs/max';
 export type aaa ={
   subjectNumber ?:any;
   search ?:any;
-  trem ?:any;
+  term ?:any;
 }//承诺表
 
 const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
@@ -336,7 +336,7 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
         if(prop.search==='0'){
           setList(false);
           setRow(true);
-          const sd1  =await getFcCommitment1(prop.subjectNumber,prop.trem);
+          const sd1  =await getFcCommitment1(prop.subjectNumber,prop.term);
           formDataList =[...sd1];
         return {data :sd1 };
         }else{

+ 3 - 3
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcLoan.tsx

@@ -12,7 +12,7 @@ import { type } from '@/pages/rf-eng/rfDefine/compnents/param_new';
 export type FcLoanModel1 ={
   subjectNumber ?:any;
   search ?:any;
-  trem ?:any;
+  term ?:any;
 }//信贷表
 
 
@@ -588,8 +588,8 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         if(props.search=='0'){
           setList(false);
           setA(true);
-          console.log(props.trem);
-          const sd1 =await getFcLoan1(props.subjectNumber,props.trem);
+          console.log(props.term);
+          const sd1 =await getFcLoan1(props.subjectNumber,props.term);
           formDataList =[...sd1];
           return {data :sd1 };
 

+ 2 - 2
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcOffSheet.tsx

@@ -10,7 +10,7 @@ import { useModel } from '@umijs/max';
 type aaa = {
   subjectNumber ?:any;
   search ?:any;
-  trem ?:any;
+  term ?:any;
   }//银承、保函、信用证等表外业务
 
   const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
@@ -496,7 +496,7 @@ type aaa = {
         if(prop.search=='0'){
           setList(false);
           setRow(true);
-        const sd = await getFcOffSheet1(prop.subjectNumber,prop.trem);
+        const sd = await getFcOffSheet1(prop.subjectNumber,prop.term);
         formDataList =[...sd]
         return {data :sd };
         }else{

+ 2 - 2
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/ffRepo.tsx

@@ -11,7 +11,7 @@ import { useModel } from '@umijs/max';
 type aaa = {
   subjectNumber ?:any;
   search ?:any;
-  trem ?:any;
+  term ?:any;
 }//回购表
 
   const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
@@ -352,7 +352,7 @@ type aaa = {
         if(prop.search=='0'){
           setList(false);
           setRow(true);
-        const sd = await getFfRepo1(prop.subjectNumber,prop.trem);
+        const sd = await getFfRepo1(prop.subjectNumber,prop.term);
         formDataList =[...sd];
         return {data :sd };
         }else{

+ 6 - 3
Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx

@@ -30,7 +30,6 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     const formRef2 = useRef<FormInstance<any>>();
     const formRef3 = useRef<FormInstance<any>>();
     const [state1,setState1] = useState<String>();
-        const [dataSource, setDataSource] = useState<any>() ;
         const [currentRow, setCurrentRow] = useState<productListModel>();
         const [currentRow1, setCurrentRow1] = useState<string>();
         const [defaultOut,setDefaultOut]=useState<String>();
@@ -648,7 +647,10 @@ const setRuleNoAdd = () => {
     }
     return nodes;
   }
-    
+
+
+
+ 
 
     return(
         <SDPage>
@@ -660,6 +662,7 @@ const setRuleNoAdd = () => {
         formDataList=[...sd]
         return {data :sd}
       }}
+      
       columns={columns}
      actionRef={actionRef}
      formRef={formRef}
@@ -690,7 +693,7 @@ const setRuleNoAdd = () => {
           全部导出
         </SDButton>,
       ]}    
-      setDetailVisible={setVisible}   
+     // setDetailVisible={setVisible}   
        />
        {visible &&(
         <SDModalForm title={''} visible={visible} editType={editType} onVisibleChange={() => {  setVisible(false);   }} 

+ 23 - 5
Procedure/frontend/projectb/src/pages/rwa_data_check/result_list.tsx

@@ -78,6 +78,25 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
         
         { title : '科目代码',
         dataIndex : 'subjcode',
+        search:false,
+        valueType:'treeSelect',
+        request:()=>fetchDict('@kmsj'),
+        fieldProps: {
+          treeDefaultExpandAll: true,
+          treeCheckable:true,
+         },
+        width : 150
+        },
+        { title : '科目代码',
+        dataIndex : 'subjcodes',
+        hideInTable:true,
+        valueType:'treeSelect',
+        request:()=>fetchDict('@kmsj'),
+        fieldProps: {
+          treeDefaultExpandAll: true,
+          treeCheckable:true,
+          popupMatchSelectWidth:300 // 字典展示宽度
+         },
         width : 150
         },
         
@@ -217,7 +236,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                             key: "scbaseinfo",
                             prodCode:"fcLoan",
                             openType:"child",
-                            initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                            initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                         },"coding")
                         )
                         
@@ -226,7 +245,6 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                       key:'t2',
                       label:'票据表',
                       type:"card",
-                      
                       children: (
                         
                           renderTemplate1({
@@ -317,7 +335,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"fcOffSheet",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:term.current},
                           },"coding")
                       )
                       
@@ -331,7 +349,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"fcCommitment",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:term.current},
                           },"coding")
                       )
                       
@@ -345,7 +363,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"ffRepo",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:term.current},
                           },"coding")
                       )
                       

+ 2 - 2
Procedure/frontend/projectb/src/services/rwa/fcCommitment.ts

@@ -77,9 +77,9 @@ export async function getFcCommitment(body:any){
     })
     ;
 }
-export async function getFcCommitment1(subjectNumber:String,trem:string){
+export async function getFcCommitment1(subjectNumber:String,term:string){
     return baseFun.request<FcCommitmentModel[]>('/api/product/rwa/parameter/FcCommitmentAction/getFcCommitment1',{
-        params:{subjectNumber,trem}
+        params:{subjectNumber,term}
     // dats:modelcode
     })
     ;

+ 2 - 2
Procedure/frontend/projectb/src/services/rwa/fcLoan.ts

@@ -128,9 +128,9 @@ export async function getFcLoan(body:any){
     })
     ;
 }
-export async function getFcLoan1(subjectNumber:string,trem:string){
+export async function getFcLoan1(subjectNumber:string,term:string){
     return baseFun.request<FcLoanModel[]>('/api/product/rwa/parameter/FcLoanAction/getFcLoan1',{
-        params:{subjectNumber,trem}
+        params:{subjectNumber,term}
     // dats:modelcode
     })
     ;

+ 2 - 2
Procedure/frontend/projectb/src/services/rwa/fcOffSheet.ts

@@ -119,9 +119,9 @@ export async function getFcOffSheet(body:any){
     ;
 }
 
-export async function getFcOffSheet1(subjectNumber:string,trem:string){
+export async function getFcOffSheet1(subjectNumber:string,term:string){
     return baseFun.request<FcOffSheetModel[]>('/api/product/rwa/parameter/FcOffSheetAction/getFcOffSheet1',{
-        params:{subjectNumber,trem}
+        params:{subjectNumber,term}
     // dats:modelcode
     })
     ;

+ 2 - 2
Procedure/frontend/projectb/src/services/rwa/ffRepo.ts

@@ -87,9 +87,9 @@ export async function getFfRepo(body:any){
     ;
 }
 
-export async function getFfRepo1(subjectNumber:string,trem:string){
+export async function getFfRepo1(subjectNumber:string,term:string){
     return baseFun.request<FfRepoModel[]>('/api/product/rwa/parameter/FfRepoAction/getFfRepo1',{
-        params:{subjectNumber,trem}
+        params:{subjectNumber,term}
     // dats:modelcode
     })
     ;

+ 11 - 10
Procedure/frontend/projectb/src/services/rwa/product/internal/accountmanagercreditriskoccupy.ts

@@ -16,25 +16,26 @@ export type AccountManageListModel = {
     // 借据号
     loanReferenceNo: string;
     // 期末资产余额合计
-    sumBalance: string;
+    sumBalance: number;
     // 月均资产余额
-    monthaverageBalance: string;
+    monthaverageBalance: number;
     // 期末本期余额合计
-    endoftermThistermSumBalance: string;
+    endoftermThistermSumBalance: number;
     // 月均本期余额
-    monthaverageThistermBalance: string;
+    monthaverageThistermBalance: number;
     // 期末减值准备
-    endoftermEcl: string;
+    endoftermEcl: number;
     // 期末风险暴露合计
-    endoftermSumEad: string;
+    endoftermSumEad: number;
     // 月均风险暴露
-    monthaverageEad: string;
+    monthaverageEad: number;
     // 期末风险加权资产合计
-    sumRwa: string;
+    sumRwa: number;
     // 月均风险加权资产
-    monthaverageRwa: string;
+    monthaverageRwa: number;
     // 缓释后平均风险权重(%)
-    averageRiskWeight: string;
+    averageRiskWeight: number;
+    key:string;
   } & BasePageModel;
 
 // 源数据表关系定义

+ 22 - 21
Procedure/frontend/projectb/src/services/rwa/product/internal/capitaloccupymonitor.ts

@@ -16,45 +16,46 @@ export type CapitalOccupyMonitorModel = {
     // 经营机构
     orgCode: string;
     // 期末资产余额合计
-    sumBalance: string;
+    sumBalance: number;
     // 资产余额(表内)
-    onBalance: string;
+    onBalance: number;
     // 资产余额(表外)
-    offBalance: string;
+    offBalance: number;
     // 月均资产余额
-    monthaverageBalance: string;
+    monthaverageBalance: number;
     // 期末本期余额合计
-    endoftermBalance: string;
+    endoftermBalance: number;
     // 本期余额(表内)
-    thistermOnBalance: string;
+    thistermOnBalance: number;
     // 本期余额(表外)
-    thistermOffBalance: string;
+    thistermOffBalance: number;
     // 月均本期余额
-    monthaverageThistermBalance: string;
+    monthaverageThistermBalance: number;
     // 期末减值准备
-    endoftermEcl: string;
+    endoftermEcl: number;
     // 期末减值准备(表内)
-    endoftermOnEcl: string;
+    endoftermOnEcl: number;
     // 期末减值准备(表外)
-    endoftermOffEcl: string;
+    endoftermOffEcl: number;
     // 期末风险暴露合计
-    endoftermSumEad: string;
+    endoftermSumEad: number;
     // 期末风险暴露(表内)
-    endoftermOnEad: string;
+    endoftermOnEad: number;
     // 期末风险暴露(表外)
-    endoftermOffEad: string;
+    endoftermOffEad: number;
     // 月均风险暴露
-    monthaverageEad: string;
+    monthaverageEad: number;
     // 期末风险加权资产合计
-    sumRwa: string;
+    sumRwa: number;
     // 期末风险加权资产(表内)
-    onRwa: string;
+    onRwa: number;
     // 期末风险加权资产(表外)
-    offRwa: string;
+    offRwa: number;
     // 月均风险加权资产
-    monthaverageRwa: string;
+    monthaverageRwa: number;
     // 缓释后平均风险权重(%)
-    averageRiskWeight: string;
+    averageRiskWeight: number;
+    key:string;
 
   } & BasePageModel;
 
@@ -181,7 +182,7 @@ export type detailInfoListModel = {
   // 风险权重%(人工认定)
   loanWeightArtificial: string;
   // 风险加权资产
-  rwa: string;
+  rwa: number;
 }
 
 

+ 15 - 14
Procedure/frontend/projectb/src/services/rwa/product/internal/corporateloanscustomerstop10.ts

@@ -18,31 +18,32 @@ export type CorporateLoansCustomersModel = {
     // 客户编号
     custNo: string;
     // 资产余额
-    balance: string;
+    balance: number;
     // 资产余额占比%
-    balanceWeight: string;
+    balanceWeight: number;
     // 本期余额
-    thistermBalance: string;
+    thistermBalance: number;
     // 本期余额占比%
-    thistermBalanceWeight: string;
+    thistermBalanceWeight: number;
     // 减值准备
-    ecl: string;
+    ecl: number;
     // 减值准备占比%
-    eclWeight: string;
+    eclWeight: number;
     // 风险暴露
-    ead: string;
+    ead: number;
     // 风险暴露占比%
-    eadWeight: string;
+    eadWeight: number;
     // 风险缓释
-    crm: string;
+    crm: number;
     // 风险缓释占比%
-    crmWeight: string;
+    crmWeight: number;
     // 风险加权资产
-    rwa: string;
+    rwa: number;
     // 风险加权资产占比%
-    rwaWeight: string;
+    rwaWeight: number;
     // 平均风险权重%
-    averageRiskWeight: string;
+    averageRiskWeight: number;
+    key:string;
   } & BasePageModel;
 
 // 源数据表关系定义
@@ -180,7 +181,7 @@ export async function getDataList(body:CorporateLoansCustomersModel) {
 
 /** 获取页面初始化及条件查询 POST*/
 export async function getDetailDataList(body:CorporateLoansCustomersModel) {
-  return baseFun.request<CorporateLoansCustomersModel[]>('/api/product/rwa/internal/CorporateLoansCustomersAction/getDetailDataList.do',{data: body});
+  return baseFun.request<detailInfoListModel[]>('/api/product/rwa/internal/CapitalOccupyMonitorAction/getDetailDataList.do',{data: body});
 }
 
 

+ 12 - 11
Procedure/frontend/projectb/src/services/rwa/product/internal/productcreditriskcapitaloccupy.ts

@@ -18,25 +18,26 @@ export type ProductCreditRiskListModel = {
     // 产品名称
     productName: string;
     // 期末资产余额合计
-    sumBalance: string;
+    sumBalance: number;
     // 月均资产余额
-    monthaverageBalance: string;
+    monthaverageBalance: number;
     // 期末本期余额合计
-    endoftermBalance: string;
+    endoftermBalance: number;
     // 月均本期余额
-    monthaverageThistermBalance: string;
+    monthaverageThistermBalance: number;
     // 期末减值准备
-    endoftermEcl: string;
+    endoftermEcl: number;
     // 期末风险暴露合计
-    endoftermSumEad: string;
+    endoftermSumEad: number;
     // 月均风险暴露
-    monthaverageEad: string;
+    monthaverageEad: number;
     // 期末风险加权资产合计
-    sumRwa: string;
+    sumRwa: number;
     // 月均风险加权资产
-    monthaverageRwa: string;
+    monthaverageRwa: number;
     // 缓释后平均风险权重(%)
-    averageRiskWeight: string;
+    averageRiskWeight: number;
+    key:string;
   } & BasePageModel;
 
 // 源数据表关系定义
@@ -174,7 +175,7 @@ export async function getDataList(body:ProductCreditRiskListModel) {
 
 /** 获取页面初始化及条件查询 POST*/
 export async function getDetailDataList(body:ProductCreditRiskListModel) {
-  return baseFun.request<ProductCreditRiskListModel[]>('/api/product/rwa/internal/ProductCreditRiskListAction/getDetailDataList.do',{data: body});
+  return baseFun.request<detailInfoListModel[]>('/api/product/rwa/internal/CapitalOccupyMonitorAction/getDetailDataList.do',{data: body});
 }
 
 

+ 12 - 11
Procedure/frontend/projectb/src/services/rwa/product/internal/producttypecreditriskcapitaloccupy.ts

@@ -18,25 +18,26 @@ export type ProductTypeCreditRiskListModel = {
     // 风险权重
     riskWeight: string;
     // 期末资产余额合计
-    sumBalance: string;
+    sumBalance: number;
     // 月均资产余额
-    monthaverageBalance: string;
+    monthaverageBalance: number;
     // 期末本期余额合计
-    endoftermThistermSumBalance: string;
+    endoftermThistermSumBalance: number;
     // 月均本期余额
-    monthaverageThistermBalance: string;
+    monthaverageThistermBalance: number;
     // 期末减值准备
-    endoftermEcl: string;
+    endoftermEcl: number;
     // 期末风险暴露合计
-    endoftermSumEad: string;
+    endoftermSumEad: number;
     // 月均风险暴露
-    monthaverageEad: string;
+    monthaverageEad: number;
     // 期末风险加权资产合计
-    sumRwa: string;
+    sumRwa: number;
     // 月均风险加权资产
-    monthaverageRwa: string;
+    monthaverageRwa: number;
     // 缓释后平均风险权重(%)
-    averageRiskWeight: string;
+    averageRiskWeight: number;
+    key:string;
   } & BasePageModel;
 
 // 源数据表关系定义
@@ -174,7 +175,7 @@ export async function getDataList(body:ProductTypeCreditRiskListModel) {
 
 /** 获取页面初始化及条件查询 POST*/
 export async function getDetailDataList(body:ProductTypeCreditRiskListModel) {
-  return baseFun.request<ProductTypeCreditRiskListModel[]>('/api/product/rwa/internal/ProductTypeCreditRiskListAction/getDetailDataList.do',{data: body});
+  return baseFun.request<detailInfoListModel[]>('/api/product/rwa/internal/CapitalOccupyMonitorAction/getDetailDataList.do',{data: body});
 }
 
 

+ 16 - 15
Procedure/frontend/projectb/src/services/rwa/product/internal/withintablecorporateloans.ts

@@ -16,31 +16,32 @@ export type CorporateLoansListModel = {
     // 行业门类
     industryClass: string;
     // 资产余额
-    balance: string;            
+    balance: number;            
     // 资产余额占比%
-    balanceWeight: string;  
+    balanceWeight: number;  
     // 本期余额
-    thistermBalance: string;
+    thistermBalance: number;
     // 本期余额占比%
-    thistermBalanceWeight: string;
+    thistermBalanceWeight: number;
     // 减值准备
-    ecl: string;
+    ecl: number;
     // 减值准备占比%
-    eclWeight: string;
+    eclWeight: number;
     // 风险暴露
-    ead: string;
+    ead: number;
     // 风险暴露占比%
-    eadWeight: string;
+    eadWeight: number;
     // 风险缓释
-    crm: string;
+    crm: number;
     // 风险缓释占比%
-    crmWeight: string;
+    crmWeight: number;
     // 风险加权资产
-    rwa: string;
+    rwa: number;
     // 风险加权资产占比
-    rwaWeight: string;
+    rwaWeight: number;
     // 平均风险权重%
-    averageRiskWeight: string;
+    averageRiskWeight: number;
+    key:string;
   } & BasePageModel;
 
 // 源数据表关系定义
@@ -173,12 +174,12 @@ export type detailInfoListModel = {
 
 /** 获取页面初始化及条件查询 POST*/
 export async function getDataList(body:CorporateLoansListModel) {
-    return baseFun.request<CorporateLoansListModel[]>('/api/product/rwa/internal/CapitalOccupyMonitorAction/getDataList.do',{data: body});
+    return baseFun.request<CorporateLoansListModel[]>('/api/product/rwa/internal/WithinTableCorporateLoansAction/getDataList.do',{data: body});
 }
 
 /** 获取页面初始化及条件查询 POST*/
 export async function getDetailDataList(body:CorporateLoansListModel) {
-  return baseFun.request<CorporateLoansListModel[]>('/api/product/rwa/internal/CapitalOccupyMonitorAction/getDetailDataList.do',{data: body});
+  return baseFun.request<detailInfoListModel[]>('/api/product/rwa/internal/CapitalOccupyMonitorAction/getDetailDataList.do',{data: body});
 }
 
 

+ 2 - 0
Procedure/frontend/projectb/src/services/rwa/product/rwa_calc_config_004rwa/stageinformation.ts

@@ -22,6 +22,8 @@ export type StageDefinitionModel = {
     stageIndex: string;
     //是否有效
     stageIsvalid: string;
+    //上级阶段名称
+    stageSuperName:string;
   } & BasePageModel;
 
 

+ 2 - 0
Procedure/frontend/projectb/src/services/rwa/result_list.ts

@@ -26,6 +26,8 @@ leartresulttype : String;
 //轧差后核对差异(万元)
 offsetdifferamt : number;
 
+subjcodes:string[];
+
 }
 
 //总分勾稽规则列表