Forráskód Böngészése

更新下拉列表,调整导出模板内容格式,增加查询字典的联动,增加保存校验规则。

zhang_qk 3 hónapja
szülő
commit
f1e356e074
75 módosított fájl, 616 hozzáadás és 241 törlés
  1. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/model/BankListModel.java
  2. 10 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/model/GeneralSectorModel.java
  3. 10 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/model/ListOfPublicSectorModel.java
  4. 17 14
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/mybatis/DevelopBankListMapper.xml
  5. 15 12
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/mybatis/GeneralSectorMapper.xml
  6. 15 12
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/mybatis/SysListOfPublicSectorMapper.xml
  7. 2 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/service/DevelopBankListService.java
  8. 2 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/service/GeneralSectorService.java
  9. 2 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/service/SysListOfPublicSectorService.java
  10. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/utils/FilesValueCheckUtils.java
  11. 10 10
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/DiscountTableModel.java
  12. 10 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/GuaranteeTableModel.java
  13. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/NonStandardInvestmentModel.java
  14. 10 10
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/OnCreditCardModel.java
  15. 27 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/model/PolicyBankModel.java
  16. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/model/SovereignModel.java
  17. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FaGlBalanceSheetMapper.xml
  18. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcLoanMapper.xml
  19. 4 4
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcOffSheetMapper.xml
  20. 32 31
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/PolicyBankMapper.xml
  21. 21 19
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/SovereigMapper.xml
  22. 5 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/GovFinancialAssetCompService.java
  23. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/PolicyBankService.java
  24. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/SovereignService.java
  25. 6 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/action/RuleListAction.java
  26. 7 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/mybatis/RuleListMapper.xml
  27. 5 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/service/RuleListService.java
  28. 8 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/action/StageConfigAction.java
  29. 12 4
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/mybatis/CreditRiskMeteringRuleMapper.xml
  30. 5 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/mybatis/StageConfigMapper.xml
  31. 12 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/service/StageConfigService.java
  32. 5 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigacquisition/action/RuleAction.java
  33. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigacquisition/mybatis/RuleMapper.xml
  34. 5 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigacquisition/service/RuleService.java
  35. 8 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/action/RealEstateAction.java
  36. 1 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mapper/RealEstateMapper.java
  37. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/ProductListMapper.xml
  38. 52 16
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/RealEstateMapper.xml
  39. 6 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/service/RealEstateService.java
  40. 1 1
      Procedure/frontend/projectb/src/app.tsx
  41. 34 23
      Procedure/frontend/projectb/src/pages/product/datasupplementary/datasupplementation.tsx
  42. 1 0
      Procedure/frontend/projectb/src/pages/product/datasupplementary/supplementtemplatedefine.tsx
  43. 6 2
      Procedure/frontend/projectb/src/pages/product/rwa_calc_config_004rwa/creditriskmeteringrule.tsx
  44. 21 8
      Procedure/frontend/projectb/src/pages/product/rwa_calc_config_004rwa/stageinformation.tsx
  45. 16 5
      Procedure/frontend/projectb/src/pages/project/businessconfig/DevelopBankList.tsx
  46. 13 3
      Procedure/frontend/projectb/src/pages/project/businessconfig/GeneralSectorList.tsx
  47. 13 1
      Procedure/frontend/projectb/src/pages/project/businessconfig/ListOfPublicSector.tsx
  48. 3 3
      Procedure/frontend/projectb/src/pages/project/businessconfig/RiskExposureClass.tsx
  49. 6 2
      Procedure/frontend/projectb/src/pages/project/dataquality/BondInvestment.tsx
  50. 8 4
      Procedure/frontend/projectb/src/pages/project/dataquality/DiscountTable.tsx
  51. 11 1
      Procedure/frontend/projectb/src/pages/project/dataquality/GuaranteeTable.tsx
  52. 6 3
      Procedure/frontend/projectb/src/pages/project/dataquality/InterbankDepositOrLendingTable.tsx
  53. 7 2
      Procedure/frontend/projectb/src/pages/project/dataquality/NonStandardInvestment.tsx
  54. 7 1
      Procedure/frontend/projectb/src/pages/project/dataquality/OffCreditCard.tsx
  55. 16 4
      Procedure/frontend/projectb/src/pages/project/dataquality/OnCreditCard.tsx
  56. 0 9
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcOffSheet.tsx
  57. 28 4
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/policybank.tsx
  58. 7 0
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/sovereign.tsx
  59. 5 5
      Procedure/frontend/projectb/src/pages/rwa_calc_config_acquisition/rule.tsx
  60. 1 1
      Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx
  61. 8 2
      Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/realestate.tsx
  62. 4 3
      Procedure/frontend/projectb/src/pages/rwa_data_check/rule_list.tsx
  63. 1 0
      Procedure/frontend/projectb/src/services/rwa/DevelopBankList.ts
  64. 1 0
      Procedure/frontend/projectb/src/services/rwa/GeneralSectorList.ts
  65. 1 0
      Procedure/frontend/projectb/src/services/rwa/ListOfPublicSector.ts
  66. 2 2
      Procedure/frontend/projectb/src/services/rwa/dataquality/DiscountTable.ts
  67. 2 0
      Procedure/frontend/projectb/src/services/rwa/dataquality/GuaranteeTable.ts
  68. 1 0
      Procedure/frontend/projectb/src/services/rwa/dataquality/NonStandardInvestment.ts
  69. 2 0
      Procedure/frontend/projectb/src/services/rwa/dataquality/OnCreditCard.ts
  70. 4 0
      Procedure/frontend/projectb/src/services/rwa/policybank.ts
  71. 1 1
      Procedure/frontend/projectb/src/services/rwa/product/datasupplementary/datasupplementation.ts
  72. 12 1
      Procedure/frontend/projectb/src/services/rwa/product/rwa_calc_config_004rwa/stageinformation.ts
  73. 1 1
      Procedure/frontend/projectb/src/services/rwa/rwa_calc_config_acquisition/rule.ts
  74. 6 2
      Procedure/frontend/projectb/src/services/rwa/rwa_calc_config_dataparam/realestate.ts
  75. 1 0
      Procedure/frontend/projectb/src/services/rwa/sovereign.ts

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

@@ -26,6 +26,15 @@ public class BankListModel {
     private String note;
     // 豁免后缓释权重
     private BigDecimal exemptionWeight;
+    private String qualfiedCreditToolTypeNames;
+
+    public String getQualfiedCreditToolTypeNames() {
+        return qualfiedCreditToolTypeNames;
+    }
+
+    public void setQualfiedCreditToolTypeNames(String qualfiedCreditToolTypeNames) {
+        this.qualfiedCreditToolTypeNames = qualfiedCreditToolTypeNames;
+    }
 
     public String getCalcIndex() {
         return calcIndex;

+ 10 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/model/GeneralSectorModel.java

@@ -22,6 +22,16 @@ public class GeneralSectorModel {
     private String crmToolTypename;
     // 豁免后缓释权重
     private BigDecimal exemptionWeight;
+    private String crmToolTypenames;
+
+    public String getCrmToolTypenames() {
+        return crmToolTypenames;
+    }
+
+    public void setCrmToolTypenames(String crmToolTypenames) {
+        this.crmToolTypenames = crmToolTypenames;
+    }
+
     // 备注
     private String note;
 

+ 10 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/model/ListOfPublicSectorModel.java

@@ -22,6 +22,16 @@ public class ListOfPublicSectorModel {
     // 豁免后缓释权重
     private BigDecimal exemptionWeight;
 
+    private String crmToolTypenames;
+
+    public String getCrmToolTypenames() {
+        return crmToolTypenames;
+    }
+
+    public void setCrmToolTypenames(String crmToolTypenames) {
+        this.crmToolTypenames = crmToolTypenames;
+    }
+
     public String getCalcIndex() {
         return calcIndex;
     }

+ 17 - 14
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/mybatis/DevelopBankListMapper.xml

@@ -20,22 +20,25 @@
     <!-- 初始化与按条件查询 -->
     <select id="selectDataList"  resultType="com.sundata.product.rwa.businessconfig.model.BankListModel" parameterType="com.sundata.product.rwa.businessconfig.model.BankListModel">
         select
-        CALCINDEX as calcIndex,
-        SDATE as startDate,
-        EDATE as endDate,
-        TERM as yearMonth,
-        DATA_DATE as dataDate,
-        CUST_NAME as customerName,
-        RATING as rating,
-        CRM_FIRST_LEVEL as crmFirstLevel,
-        QUALFIED_CREDIT_TOOL_TYPE_NAME as crmToolTypename,
-        EXEMPTION_WEIGHT as exemptionWeight,
-        NOTE as note
-        from RWA_BDM_OBJ_CONF_MULTILATERAL_DEVELOPMENT_BANKS_LIST
+        T1.CALCINDEX as calcIndex,
+        T1.SDATE as startDate,
+        T1.EDATE as endDate,
+        T1.TERM as yearMonth,
+        T1.DATA_DATE as dataDate,
+        T1.CUST_NAME as customerName,
+        T1.RATING as rating,
+        T1.CRM_FIRST_LEVEL as crmFirstLevel,
+        T1.QUALFIED_CREDIT_TOOL_TYPE_NAME as crmToolTypename,
+        T1.QUALFIED_CREDIT_TOOL_TYPE_NAME||'-'||T2.REGULARRRCSRULE_NAME AS qualfiedCreditToolTypeNames,
+        T1.EXEMPTION_WEIGHT as exemptionWeight,
+        T1.NOTE as note
+        from RWA_BDM_OBJ_CONF_MULTILATERAL_DEVELOPMENT_BANKS_LIST T1
+        LEFT JOIN RWA_CALC_CONF_REGULARRRCSRULE T2
+        ON T1.QUALFIED_CREDIT_TOOL_TYPE_NAME = T2.REGULARRRCSRULE_NO
         <where>
             1=1
             <if test="model.customerName != null and '' != model.customerName">
-                and CUST_NAME like "%"#{model.customerName}"%"
+                and CUST_NAME like '%'||#{model.customerName"}||'%'
             </if>
             order by CUST_NAME
         </where>
@@ -86,7 +89,7 @@
          #{model.customerName},
          #{model.rating},
          #{model.crmFirstLevel},
-         #{model.crmToolTypename},
+         substr(#{model.crmToolTypename},0,INSTR(#{model.crmToolTypename},'-')-1),
          #{model.exemptionWeight}*0.01,
          #{model.note}
         )

+ 15 - 12
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/mybatis/GeneralSectorMapper.xml

@@ -19,21 +19,24 @@
     <!-- 初始化与按条件查询 -->
     <select id="selectDataList"  resultType="com.sundata.product.rwa.businessconfig.model.GeneralSectorModel" parameterType="com.sundata.product.rwa.businessconfig.model.GeneralSectorModel">
         select
-        CALCINDEX as calcIndex,
-        SDATE as startDate,
-        EDATE as endDate,
-        CUST_NAME as customerName,
-        CRM_FIRST_LEVEL as crmFirstLevel,
-        QUALFIED_CREDIT_TOOL_TYPE_NAME as crmToolTypename,
-        EXEMPTION_WEIGHT*100 as exemptionWeight,
-        NOTE  as note
-        from RWA_BDM_OBJ_CONF_GENERAL_ENTITY
+        T1.CALCINDEX as calcIndex,
+        T1.SDATE as startDate,
+        T1.EDATE as endDate,
+        T1.CUST_NAME as customerName,
+        T1.CRM_FIRST_LEVEL as crmFirstLevel,
+        T1.QUALFIED_CREDIT_TOOL_TYPE_NAME as crmToolTypename,
+        T1.QUALFIED_CREDIT_TOOL_TYPE_NAME||'-'||T2.REGULARRRCSRULE_NAME AS crmToolTypenames,
+        T1.EXEMPTION_WEIGHT*100 as exemptionWeight,
+        T1.NOTE  as note
+        from RWA_BDM_OBJ_CONF_GENERAL_ENTITY T1
+        LEFT JOIN RWA_CALC_CONF_REGULARRRCSRULE T2
+        ON T1.QUALFIED_CREDIT_TOOL_TYPE_NAME = T2.REGULARRRCSRULE_NO
         <where>
             1=1
             <if test="model.customerName != null and '' != model.customerName">
-                and CUST_NAME like concat(concat('%',#{model.customerName}),'%')
+                and T1.CUST_NAME like concat(concat('%',#{model.customerName}),'%')
             </if>
-            order by CUST_NAME,CRM_FIRST_LEVEL,QUALFIED_CREDIT_TOOL_TYPE_NAME
+            order by T1.CUST_NAME,T1.CRM_FIRST_LEVEL,T1.QUALFIED_CREDIT_TOOL_TYPE_NAME
         </where>
     </select>
 
@@ -77,7 +80,7 @@
         #{model.endDate},
         #{model.customerName},
         #{model.crmFirstLevel},
-        #{model.crmToolTypename},
+        substr(#{model.crmToolTypename},0,INSTR(#{model.crmToolTypename},'-')-1),
         #{model.exemptionWeight}*0.01,
         #{model.note}
         )

+ 15 - 12
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/mybatis/SysListOfPublicSectorMapper.xml

@@ -17,21 +17,24 @@
     <!-- 初始化与按查询条件查询 -->
     <select id="getDataList"  resultType="com.sundata.product.rwa.businessconfig.model.ListOfPublicSectorModel" parameterType="com.sundata.product.rwa.businessconfig.model.ListOfPublicSectorModel">
         select
-        CALCINDEX as calcIndex,
-        SDATE as startDate,
-        EDATE as endDate,
-        CUST_NAME as customerName,
-        CRM_FIRST_LEVEL as crmFirstLevel,
-        QUALFIED_CREDIT_TOOL_TYPE_NAME as crmToolTypename,
-        EXEMPTION_WEIGHT*100 as exemptionWeight,
-        NOTE  as note
-        from RWA_BDM_OBJ_CONF_OTHER_PUBLIC_ENTITY_LIST
+        T1.CALCINDEX as calcIndex,
+        T1.SDATE as startDate,
+        T1.EDATE as endDate,
+        T1.CUST_NAME as customerName,
+        T1.CRM_FIRST_LEVEL as crmFirstLevel,
+        T1.QUALFIED_CREDIT_TOOL_TYPE_NAME as crmToolTypename,
+        T1.QUALFIED_CREDIT_TOOL_TYPE_NAME||'-'||T2.REGULARRRCSRULE_NAME AS crmToolTypenames,
+        T1.EXEMPTION_WEIGHT*100 as exemptionWeight,
+        T1.NOTE  as note
+        from RWA_BDM_OBJ_CONF_OTHER_PUBLIC_ENTITY_LIST T1
+        LEFT JOIN RWA_CALC_CONF_REGULARRRCSRULE T2
+        ON T1.QUALFIED_CREDIT_TOOL_TYPE_NAME = T2.REGULARRRCSRULE_NO
         <where>
             1=1
             <if test="model.customerName != null and '' != model.customerName">
-               and CUST_NAME like concat(concat('%',#{model.customerName}),'%')
+               and T1.CUST_NAME like concat(concat('%',#{model.customerName}),'%')
             </if>
-            order by CUST_NAME,CRM_FIRST_LEVEL,QUALFIED_CREDIT_TOOL_TYPE_NAME
+            order by T1.CUST_NAME,T1.CRM_FIRST_LEVEL,T1.QUALFIED_CREDIT_TOOL_TYPE_NAME
         </where>
     </select>
 
@@ -69,7 +72,7 @@
             #{model.endDate},
             #{model.customerName},
             #{model.crmFirstLevel},
-            #{model.crmToolTypename},
+        substr(#{model.crmToolTypename},0,INSTR(#{model.crmToolTypename},'-')-1),
             #{model.exemptionWeight}*0.01,
             #{model.note}
         )

+ 2 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/service/DevelopBankListService.java

@@ -49,6 +49,8 @@ public class DevelopBankListService extends BaseService<RptDefineModel> {
     // 改
     public boolean updateExistData(BankListModel model){
         developBankListMapper.deleteRows(model.getCustomerName());
+        String name =model.getCrmToolTypename()+'-';
+        model.setCrmToolTypename(name);
         return developBankListMapper.createRows(model);
     }
 

+ 2 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/service/GeneralSectorService.java

@@ -45,6 +45,8 @@ public class GeneralSectorService extends BaseService<RptDefineModel> {
 
     public boolean updateExistData(GeneralSectorModel model) {
          generalSectorMapper.deleteRows(model.getCustomerName());
+        String name =model.getCrmToolTypename()+'-';
+        model.setCrmToolTypename(name);
         return generalSectorMapper.createRows(model);
     }
 

+ 2 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/service/SysListOfPublicSectorService.java

@@ -61,6 +61,8 @@ public class SysListOfPublicSectorService extends BaseService<RptDefineModel> {
     // 更新数据
     public boolean updateExistData (ListOfPublicSectorModel model) {
         sysListOfPublicSectorMapper.deleteRows(model.getCustomerName());
+        String name =model.getCrmToolTypename()+'-';
+        model.setCrmToolTypename(name);
         return sysListOfPublicSectorMapper.createDetailData(model);
     }
 

+ 1 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/businessconfig/utils/FilesValueCheckUtils.java

@@ -91,7 +91,7 @@ public class FilesValueCheckUtils {
         }
 
         // 读取文件sheet页
-        int sheetNum = book.getNumberOfSheets();
+        int sheetNum = book.getNumberOfSheets()-1;
         // 遍历每一个sheet页
         for (int i =0;i<=sheetNum-1;i++){
             // 读取第i个sheet页

+ 10 - 10
Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/DiscountTableModel.java

@@ -5,9 +5,9 @@ public class DiscountTableModel {
     // 计算实例号
     private String calcIndex;
     // 起始数据日期
-    private String startDate;
+    private String sDate;
     // 截止数据日期
-    private String endDate;
+    private String eDate;
     // 年月
     private String yearMonth;
     //数据日期
@@ -112,20 +112,20 @@ public class DiscountTableModel {
         this.calcIndex = calcIndex;
     }
 
-    public String getStartDate() {
-        return startDate;
+    public String getsDate() {
+        return sDate;
     }
 
-    public void setStartDate(String startDate) {
-        this.startDate = startDate;
+    public void setsDate(String sDate) {
+        this.sDate = sDate;
     }
 
-    public String getEndDate() {
-        return endDate;
+    public String geteDate() {
+        return eDate;
     }
 
-    public void setEndDate(String endDate) {
-        this.endDate = endDate;
+    public void seteDate(String eDate) {
+        this.eDate = eDate;
     }
 
     public String getYearMonth() {

+ 10 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/GuaranteeTableModel.java

@@ -36,6 +36,16 @@ public class GuaranteeTableModel {
     //关联债项编号
     private String relatedDebtitemNo;
 
+    private String mitigationProdTypees;
+
+    public String getMitigationProdTypees() {
+        return mitigationProdTypees;
+    }
+
+    public void setMitigationProdTypees(String mitigationProdTypees) {
+        this.mitigationProdTypees = mitigationProdTypees;
+    }
+
     public String getCalcIndex() {
         return calcIndex;
     }

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

@@ -71,6 +71,15 @@ public class NonStandardInvestmentModel {
     private String reserveAccountNo;
     // 核心客户号
     private String coreClientNo;
+    private String ccy;
+
+    public String getCcy() {
+        return ccy;
+    }
+
+    public void setCcy(String ccy) {
+        this.ccy = ccy;
+    }
 
     public String getCalcIndex() {
         return calcIndex;

+ 10 - 10
Procedure/backend/project/src/main/java/com/sundata/product/rwa/interfacedatasheet/model/OnCreditCardModel.java

@@ -4,9 +4,9 @@ public class OnCreditCardModel {
     // 计算实例号
     private String calcIndex;
     // 起始数据日期
-    private String startDate;
+    private String sDate;
     // 截止数据日期
-    private String endDate;
+    private String eDate;
     // 年月
     private String yearMonth;
     // 数据日期
@@ -90,20 +90,20 @@ public class OnCreditCardModel {
         this.calcIndex = calcIndex;
     }
 
-    public String getStartDate() {
-        return startDate;
+    public String getsDate() {
+        return sDate;
     }
 
-    public void setStartDate(String startDate) {
-        this.startDate = startDate;
+    public void setsDate(String sDate) {
+        this.sDate = sDate;
     }
 
-    public String getEndDate() {
-        return endDate;
+    public String geteDate() {
+        return eDate;
     }
 
-    public void setEndDate(String endDate) {
-        this.endDate = endDate;
+    public void seteDate(String eDate) {
+        this.eDate = eDate;
     }
 
     public String getYearMonth() {

+ 27 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/model/PolicyBankModel.java

@@ -20,6 +20,33 @@ public class PolicyBankModel {
     private int flag;
     private String  remark; // 是否用于合格缓释认定
     private String qualfiedCreditToolName;
+    private String qualfiedCreditToolNames;
+    private String isRiskclassUses;
+    private String isSlowreleaseUses;
+
+    public String getIsRiskclassUses() {
+        return isRiskclassUses;
+    }
+
+    public void setIsRiskclassUses(String isRiskclassUses) {
+        this.isRiskclassUses = isRiskclassUses;
+    }
+
+    public String getIsSlowreleaseUses() {
+        return isSlowreleaseUses;
+    }
+
+    public void setIsSlowreleaseUses(String isSlowreleaseUses) {
+        this.isSlowreleaseUses = isSlowreleaseUses;
+    }
+
+    public String getQualfiedCreditToolNames() {
+        return qualfiedCreditToolNames;
+    }
+
+    public void setQualfiedCreditToolNames(String qualfiedCreditToolNames) {
+        this.qualfiedCreditToolNames = qualfiedCreditToolNames;
+    }
 
     public String getQualfiedCreditToolName() {
         return qualfiedCreditToolName;

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

@@ -20,6 +20,15 @@ public class SovereignModel  {
     private String sundataEditType; // 判断新增还是修改
     private int flag;
     private String state;
+    private  String qualfiedCreditToolTypeNames;
+
+    public String getQualfiedCreditToolTypeNames() {
+        return qualfiedCreditToolTypeNames;
+    }
+
+    public void setQualfiedCreditToolTypeNames(String qualfiedCreditToolTypeNames) {
+        this.qualfiedCreditToolTypeNames = qualfiedCreditToolTypeNames;
+    }
 
     public static Map<String, String> getCastFileCellToJson() {
         Map<String, String> map = new HashMap<>();

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

@@ -21,7 +21,7 @@
             and T1.DATA_DATE = replace(#{dataDate},'-','')
         </if>
 
-        <if test="accountNo !='' and accountNo!=null">CollateralTable
+        <if test="accountNo !='' and accountNo!=null">
             and T1.ACCOUNT_NO like concat ('%',#{accountNo},'%')
         </if>
 

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

@@ -76,7 +76,7 @@
              ELSE NULL
              END AS crossBorderGoodsTradeFlagDesc,
         T1.DATA_SRC_TABLE as dataSrcTable
-        from  RIM_APM_BS_FC_LOAN T1
+        from  RWA_BDM_BS_FC_LOAN T1
         where 1=1
         <if test="dataDate !='' and dataDate!=null">
             and T1.DATA_DATE = replace(#{dataDate},'-','')
@@ -191,7 +191,7 @@
         ELSE NULL
         END AS crossBorderGoodsTradeFlagDesc,
         T1.DATA_SRC_TABLE as dataSrcTable
-        from  RIM_APM_BS_FC_LOAN T1
+        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}

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

@@ -80,8 +80,8 @@
              WHEN T1.LG_OR_NON_LG_LABEL ='NO' THEN '非融资'
              ELSE NULL
              END AS lgOrNonLgLabelDesc,
-        T1.ISSUE_DATE as issueDate
-       -- T1.DATA_SRC_TABLE as dataSrcTable
+        T1.ISSUE_DATE as issueDate,
+        T1.DATA_SRC_TABLE as dataSrcTable
         from  RWA_BDM_BS_FC_OFF_SHEET T1
         where 1=1
         <if test="dataDate !='' and dataDate!=null">
@@ -198,8 +198,8 @@
         WHEN T1.LG_OR_NON_LG_LABEL ='NO' THEN '非融资'
         ELSE NULL
         END AS lgOrNonLgLabelDesc,
-        T1.ISSUE_DATE as issueDate
-        -- T1.DATA_SRC_TABLE as dataSrcTable
+        T1.ISSUE_DATE as issueDate,
+         T1.DATA_SRC_TABLE as dataSrcTable
         from  RIM_APM_BS_FC_OFF_SHEET T1
         where 1=1
         and T1.PRIN_ACCOUNT_NO =#{subjectNumber}

+ 32 - 31
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/PolicyBankMapper.xml

@@ -28,12 +28,15 @@
         T1.BASE_WEIGHT,
         T1.EXEMPTION_WEIGHT*100 as exemptionWeight,
         case when T1.IS_RISKCLASS_USE = '1' then '是' else '否' end as isRiskclassUse,
+        case when T1.IS_RISKCLASS_USE = '1' then '1-是' else '0-否' end as isRiskclassUses,
         case when T1.IS_SLOWRELEASE_USE = '1' then '是' else '否' end  as isSlowreleaseUse,
-        T2.NOUNNAME as qualfiedCreditToolName
+        case when T1.IS_SLOWRELEASE_USE = '1' then '1-是' else '0-否' end  as isSlowreleaseUses,
+        T2.REGULARRRCSRULE_NAME as qualfiedCreditToolName,
+        T2.REGULARRRCSRULE_NO||'-'||T2.REGULARRRCSRULE_NAME AS qualfiedCreditToolNames,
+        T1.remark
         FROM RWA_BDM_OBJ_CONF_POLICY_BANK_LIST T1
-        LEFT JOIN SYS_NOUN T2
-        ON T1.QUALFIED_CREDIT_TOOL_TYPE_NAME = T2.NOUNVALUE
-        AND T2.NOUNITEM = 'qualfiedCreditToolTypeName'
+        LEFT JOIN rwa_calc_conf_regularrrcsrule T2
+        ON T1.QUALFIED_CREDIT_TOOL_TYPE_NAME = T2.REGULARRRCSRULE_NO
         where 1=1
         <if test="custName !=null and custName !=''">
             and cust_name like concat('%',#{custName},'%')
@@ -74,36 +77,34 @@
     <insert id="insertePolicyBank" parameterType="com.sundata.product.rwa.parameter.model.PolicyBankModel">
 
         insert into RWA_BDM_OBJ_CONF_POLICY_BANK_LIST(CALCINDEX,SDATE,EDATE,TERM,DATA_DATE,CUST_NAME,CRM_FIRST_LEVEL,QUALFIED_CREDIT_TOOL_TYPE_NAME,BASE_WEIGHT,EXEMPTION_WEIGHT,IS_RISKCLASS_USE,IS_SLOWRELEASE_USE,REMARK)
-        values(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{custName},#{crmFirstLevel},#{qualfiedCreditToolTypeName},#{baseWeight}
+<!--        values(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{custName},#{crmFirstLevel},#{qualfiedCreditToolTypeName},#{baseWeight}-->
         <if test="flag !=0">
-            ,#{exemptionWeight}
+            values(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{custName},#{crmFirstLevel},substr(#{qualfiedCreditToolTypeName},0,INSTR(#{qualfiedCreditToolTypeName},'-')-1),#{baseWeight},#{exemptionWeight},substr(#{isRiskclassUse},0,1),substr(#{isSlowreleaseUse},0,1),#{remark})
         </if>
         <if test="flag !=1">
-            ,#{exemptionWeight}*0.01
+            values(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{custName},#{crmFirstLevel},#{qualfiedCreditToolTypeName},#{baseWeight},#{exemptionWeight}*0.01,#{isRiskclassUse},#{isSlowreleaseUse},#{remark})
         </if>
-        <choose>
-            <when test="isRiskclassUse =='是'.toString()">
-                ,'1'
-            </when>
-            <when test="isRiskclassUse =='否'.toString()">
-                ,'0'
-            </when>
-            <otherwise>
-                ,#{isRiskclassUse}
-            </otherwise>
-        </choose>
-        <choose>
-            <when test='isSlowreleaseUse =="是"'>
-                ,'1'
-            </when>
-            <when test='isSlowreleaseUse =="否"'>
-                ,'0'
-            </when>
-            <otherwise>
-                ,#{isSlowreleaseUse}
-            </otherwise>
-        </choose>
-        ,#{remark}
-        )
+<!--        <choose>-->
+<!--            <when test="isRiskclassUse =='是'.toString()">-->
+<!--                ,'1'-->
+<!--            </when>-->
+<!--            <when test="isRiskclassUse =='否'.toString()">-->
+<!--                ,'0'-->
+<!--            </when>-->
+<!--            <otherwise>-->
+
+<!--            </otherwise>-->
+<!--        </choose>-->
+<!--        <choose>-->
+<!--            <when test='isSlowreleaseUse =="是"'>-->
+<!--                ,'1'-->
+<!--            </when>-->
+<!--            <when test='isSlowreleaseUse =="否"'>-->
+<!--                ,'0'-->
+<!--            </when>-->
+<!--            <otherwise>-->
+
+<!--            </otherwise>-->
+<!--        </choose>-->
     </insert>
 </mapper>

+ 21 - 19
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/SovereigMapper.xml

@@ -7,23 +7,26 @@
 
     <select id="sovere" resultType="com.sundata.product.rwa.parameter.model.SovereignModel">
           SELECT
-         CUST_NAME as custName
-        ,SOVEREIGN_CODE as sovereignCode
-        ,SOVEREIGN_RATING as sovereignRating
-        ,CRM_FIRST_LEVEL as  crmFirstLevel
-        ,QUALFIED_CREDIT_TOOL_TYPE_NAME as  qualfiedCreditToolTypeName
-        ,BASE_WEIGHT as baseWeight
-        ,EXEMPTION_WEIGHT*100 as exemptionWeight
-        ,case when STATE ='0' then '生效' else '作废' end as state
-        FROM RWA_BDM_OBJ_CONF_SOVEREIGN_LIST
+         T1.CUST_NAME as custName
+        ,T1.SOVEREIGN_CODE as sovereignCode
+        ,T1.SOVEREIGN_RATING as sovereignRating
+        ,T1.CRM_FIRST_LEVEL as  crmFirstLevel
+        ,T1.QUALFIED_CREDIT_TOOL_TYPE_NAME as  qualfiedCreditToolTypeName
+        ,T1.QUALFIED_CREDIT_TOOL_TYPE_NAME||'-'||T2.REGULARRRCSRULE_NAME AS qualfiedCreditToolTypeNames
+        ,T1.BASE_WEIGHT as baseWeight
+        ,T1.EXEMPTION_WEIGHT*100 as exemptionWeight
+        ,case when T1.STATE ='0' then '生效' else '作废' end as state
+        FROM RWA_BDM_OBJ_CONF_SOVEREIGN_LIST T1
+        LEFT JOIN RWA_CALC_CONF_REGULARRRCSRULE T2
+        ON T1.QUALFIED_CREDIT_TOOL_TYPE_NAME = T2.REGULARRRCSRULE_NO
         where 1=1
                 <if test="custName !=null and custName !=''">
-                    and CUST_NAME like concat('%',#{custName},'%')
+                    and T1.CUST_NAME like concat('%',#{custName},'%')
              </if>
         <if test="sovereignCode !='' and sovereignCode !=null">
-            and SOVEREIGN_CODE =#{sovereignCode}
+            and T1.SOVEREIGN_CODE =#{sovereignCode}
         </if>
-        order by CUST_NAME asc
+        order by T1.CUST_NAME asc
     </select>
 
     <select id="deleteSovere" resultType="com.sundata.product.rwa.parameter.model.SovereignModel">
@@ -67,19 +70,18 @@
         select REGULARRRCSRULE_NO as id ,REGULARRRCSRULE_NAME as text from RWA_CALC_CONF_REGULARRRCSRULE
     </select>
 
-    <insert id="insertSovere"
-            parameterType="com.sundata.product.rwa.parameter.model.SovereignModel">
-
+    <insert id="insertSovere" parameterType="com.sundata.product.rwa.parameter.model.SovereignModel">
        insert into RWA_BDM_OBJ_CONF_SOVEREIGN_LIST (CUST_NAME,SOVEREIGN_CODE,SOVEREIGN_RATING,CRM_FIRST_LEVEL,QUALFIED_CREDIT_TOOL_TYPE_NAME,BASE_WEIGHT,EXEMPTION_WEIGHT,STATE)
         <trim prefix="VALUES (" suffix=")"   suffixOverrides=",">
-        #{custName},#{sovereignCode},#{sovereignRating},#{crmFirstLevel},#{qualfiedCreditToolTypeName},#{baseWeight},
+
         <if test= "flag !=1 ">
-            #{exemptionWeight}*0.01,
+            #{custName},#{sovereignCode},#{sovereignRating},#{crmFirstLevel},#{qualfiedCreditToolTypeName},#{baseWeight},
+            #{exemptionWeight}*0.01,'0'
         </if>
         <if test= "flag !=0 " >
-            #{exemptionWeight},
+            #{custName},#{sovereignCode},#{sovereignRating},#{crmFirstLevel},substr(#{qualfiedCreditToolTypeName},0,INSTR(#{qualfiedCreditToolTypeName},'-')-1),#{baseWeight},
+            #{exemptionWeight},'0'
         </if>
-            "0",
         </trim>
     </insert>
 </mapper>

+ 5 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/service/GovFinancialAssetCompService.java

@@ -150,6 +150,7 @@ public class GovFinancialAssetCompService extends BaseService<RptDefineModel> {
 
             // 读取文件sheet页
             int sheetNum = book.getNumberOfSheets();
+            System.out.println(sheetNum-1);
             for (int i =0;i<=sheetNum-1;i++){
                 // 读取第i个sheet页
                 Sheet sheet = book.getSheetAt(i);
@@ -159,7 +160,8 @@ public class GovFinancialAssetCompService extends BaseService<RptDefineModel> {
                     return "文件内容为空,请检查";
                 }
                 // 遍历当前sheet页每一行
-                for (int j=0;j<=dataRows;j++){
+                for (int j=0;j<=dataRows-1;j++){
+                    System.out.println(dataRows-1);
                     int a = 0;
                     // int b =0;
                     List<String> index =new ArrayList<>();
@@ -179,6 +181,8 @@ public class GovFinancialAssetCompService extends BaseService<RptDefineModel> {
                         if (j == 0) {
                             if (!GovFinancialAssetCompModel.getCastFileCellToJson()
                                     .containsKey(sheet.getRow(j).getCell(m).toString())) {
+                                System.out.println(GovFinancialAssetCompModel.getCastFileCellToJson()
+                                        .containsKey(sheet.getRow(j).getCell(m).toString()));
                                 return "列名不一致、请检查模板是否正确";
                             }
                             continue;

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

@@ -51,7 +51,7 @@ public class PolicyBankService   extends BaseService<RptDefineModel> {
 
     public String insertePolicyBank(PolicyBankModel policyBankModelDemo){
         String a = DBExecutor.doQuery("select count(1) from RWA_BDM_OBJ_CONF_POLICY_BANK_LIST where CUST_NAME ='" + policyBankModelDemo.getCustName() + "'");
-       if(Integer.valueOf(a)>=1){
+       if(Integer.valueOf(a)>1){
            return "交易对手名称已重复,请重新输入";
        }else {
            //return sovereigMapper.deleteSovere(cust_NAME);

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

@@ -136,7 +136,7 @@ public String importExcelModel(InputStream io, MultipartFile file) {
         }
 
         // 读取文件sheet页
-        int sheetNum = book.getNumberOfSheets();
+        int sheetNum = book.getNumberOfSheets()-1;
         for (int i =0;i<=sheetNum-1;i++){
             // 读取第i个sheet页
             Sheet sheet = book.getSheetAt(i);

+ 6 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/action/RuleListAction.java

@@ -42,4 +42,10 @@ public class RuleListAction  extends BaseAction {
         sendData(response,RuletListservice.rule_addone(RuleListModelDemo));
     }
 
+    @RequestMapping("/selectsubjectNature")
+    @SysLog(funcName="查询科目名称")
+    public void  selectsubjectNature (HttpServletRequest request, HttpServletResponse response, @RequestParam String glCode){
+        sendData(response,RuletListservice.selectsubjectNature(glCode));
+
+    }
 }

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

@@ -11,6 +11,7 @@
          end as accountingDirection,
     case when CALC_METHOD ='M' then '贷方-借方'
          when CALC_METHOD ='N' then '借方-贷方'
+         when CALC_METHOD ='T' then '联合校验'
          end as calcMethod,
     CALCINDEX as calcindex,
     DATA_DATE as dataDate,
@@ -89,16 +90,20 @@
     </insert>
     
     <select id="positiveRiskType" resultType="com.sundata.admin.nounmanage.model.DictContent">
-        select RISKEXPOSURE_NO as id , RISKEXPOSURE_NAME as text,RISKEXPOSURE_SUPER as PARENTID from RWA_CALC_CONF_RISKEXPOSURE
+        select RISKEXPOSURE_NO as id , RISKEXPOSURE_NAME as text,RISKEXPOSURE_SUPER as PARENTID from RWA_CALC_CONF_RISKEXPOSURE order by RISKEXPOSURE_NO asc
     </select>
 
     <select id="positiveOffProjectType" resultType="com.sundata.admin.nounmanage.model.DictContent">
-        select OFFOBJECT_NO as id , OFFOBJECT_NAME as text,OFFOBJECT_SUPER as PARENTID from RWA_CALC_CONF_OFFBALANCEPROTYPE
+        select OFFOBJECT_NO as id , OFFOBJECT_NAME as text,OFFOBJECT_SUPER as PARENTID from RWA_CALC_CONF_OFFBALANCEPROTYPE order by  OFFOBJECT_NO asc
     </select>
 
     <select id="stageinId" resultType="com.sundata.admin.nounmanage.model.DictContent">
         select STAGE_ID as id , STAGE_NAME as text from rwa_calc_conf_stage
     </select>
 
+    <select id="glCode" resultType="com.sundata.admin.nounmanage.model.DictContent">
+        SELECT subject_code as id , subject_code AS text FROM rwa_cbs_gl_ac_subject
+    </select>
+
 
 </mapper>

+ 5 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/service/RuleListService.java

@@ -27,6 +27,11 @@ public class RuleListService {
         return "修改成功";
     }
 
+    public String selectsubjectNature(String glCode){
+        String res = DBExecutor.doQuery("SELECT SUBJECT_DESC AS subjectDesc FROM rwa_cbs_gl_ac_subject WHERE subject_code='"+glCode+"'");
+        return res;
+    }
+
     public String rule_addone(RuleListModel RuleListModelDemo){
         if(Objects.equals(RuleListModelDemo.getSundataEditType(), "update")){
             RuleListmapper.rule_deleteone(RuleListModelDemo.getRuleId());

+ 8 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/action/StageConfigAction.java

@@ -179,6 +179,14 @@ public class StageConfigAction extends BaseAction {
         }
     }
 
+    @RequestMapping({"selectname"})
+    public void selectname(HttpServletRequest request, HttpServletResponse response, @RequestParam String  stageSuper ) {
+        sendData(response,stageConfigService.selectname(stageSuper));
+    }
+    @RequestMapping({"selectcount"})
+    public void selectcount(HttpServletRequest request, HttpServletResponse response, @RequestParam String  stepId ) {
+        sendData(response,stageConfigService.selectcount(stepId));
+    }
 
 
 }

+ 12 - 4
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/mybatis/CreditRiskMeteringRuleMapper.xml

@@ -315,15 +315,19 @@
 
     <!-- 输入源数据展示 -->
     <select id="getInDataList" resultType="com.sundata.product.rwa.rwacalcconfig004rwa.model.InOrOutDataListModel">
+        <![CDATA[
         SELECT
         distinct T3.DATACLASSCODE      AS dataClassCode ,
         T3.DATACLASSNAME               AS dataClassName ,
         T3.TABNAME                     AS tableName
         from RWA_CALC_CONF_CREDITRISK t1
-        left join RWA_CALC_CONF_CREDITRISKRULE T2
-        on t1.CREDITRISK_NO = t2.CREDITRISK_NO
+        left JOIN( SELECT TRIM(REGEXP_SUBSTR(T1.STR, '[^,]+', 1, N.N)) AS STEP_IN,CREDITRISK_NO
+        FROM (SELECT  STEP_IN AS STR,CREDITRISK_NO AS CREDITRISK_NO FROM RWA_CALC_CONF_CREDITRISKRULE ) T1
+        JOIN (SELECT LEVEL  AS N FROM DUAL CONNECT BY LEVEL < 100 ) N ON LENGTH(T1.STR) - LENGTH(REPLACE(T1.STR,',',''))>=N.N-1
+        )T2 on t1.CREDITRISK_NO = t2.CREDITRISK_NO
         left join SYS_SQLEDIT_DEF_DATACLASS T3
         on t2.STEP_IN = t3.DATACLASSCODE
+        ]]>
         <where>
             <if test=" key != null and key !=''">
                 t1.CREDITRISK_NO = #{dataClassCode}
@@ -333,15 +337,19 @@
 
     <!-- 输出源数据展示 -->
     <select id="getOutDataList" resultType="com.sundata.product.rwa.rwacalcconfig004rwa.model.InOrOutDataListModel">
+        <![CDATA[
         SELECT
         distinct T3.DATACLASSCODE      AS dataClassCode ,
         T3.DATACLASSNAME               AS dataClassName ,
         T3.TABNAME                     AS tableName
         from RWA_CALC_CONF_CREDITRISK t1
-        left join RWA_CALC_CONF_CREDITRISKRULE T2
-        on t1.CREDITRISK_NO = t2.CREDITRISK_NO
+        left JOIN( SELECT TRIM(REGEXP_SUBSTR(T1.STR, '[^,]+', 1, N.N)) AS STEP_OUT,CREDITRISK_NO
+        FROM (SELECT  STEP_OUT AS STR,CREDITRISK_NO AS CREDITRISK_NO FROM RWA_CALC_CONF_CREDITRISKRULE ) T1
+        JOIN (SELECT LEVEL  AS N FROM DUAL CONNECT BY LEVEL < 100 ) N ON LENGTH(T1.STR) - LENGTH(REPLACE(T1.STR,',',''))>=N.N-1
+        )T2 on t1.CREDITRISK_NO = t2.CREDITRISK_NO
         left join SYS_SQLEDIT_DEF_DATACLASS T3
         on t2.STEP_OUT = t3.DATACLASSCODE
+        ]]>
         <where>
             <if test=" key != null and key !=''">
                 t1.CREDITRISK_NO = #{dataClassCode}

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

@@ -26,6 +26,7 @@
                 and STAGE_NAME like concat(concat('%', #{model.stageName}),'%')
             </if>
         </where>
+        order by stage_id,STAGE_ISVALID
     </select>
 
     <!-- 缓释工具类型新建数据 -->
@@ -258,5 +259,9 @@
         </where>
     </select>
 
+    <select id="stageSuper" resultType="com.sundata.admin.nounmanage.model.DictContent">
+        SELECT stage_id AS id , stage_id AS text , stage_super AS PARENTID FROM RWA_CALC_CONF_STAGE order by stage_id
+    </select>
+
 
 </mapper>

+ 12 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfig004rwa/service/StageConfigService.java

@@ -1,6 +1,7 @@
 package com.sundata.product.rwa.rwacalcconfig004rwa.service;
 
 
+import com.sundata.common.util.DBExecutor;
 import com.sundata.product.rwa.rwacalcconfig004rwa.mapper.StageConfigMapper;
 import com.sundata.product.rwa.rwacalcconfig004rwa.model.MeteringRuleStepsModel;
 import com.sundata.product.rwa.rwacalcconfig004rwa.model.StageDefinitionModel;
@@ -8,6 +9,7 @@ import com.sundata.product.rwa.rwacalcconfig004rwa.model.StageStepsModel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.DatabaseMetaData;
 import java.util.List;
 
 @Service
@@ -177,4 +179,14 @@ public class StageConfigService {
     public StageStepsModel selectStageConfigRule(StageStepsModel model) {
         return stageConfigMapper.selectStageConfigRule(model);
     }
+
+    public String selectname(String  stageSuper){
+        String res = DBExecutor.doQuery("SELECT stage_name AS stageSuper FROM RWA_CALC_CONF_STAGE WHERE stage_id = '"+stageSuper+"'");
+        return res;
+    }
+
+    public Integer selectcount(String  stepId){
+        int res =Integer.parseInt(DBExecutor.doQuery("SELECT count(1) FROM RWA_CALC_CONF_STAGEIN2OUT WHERE STEP_ID = '"+stepId+"'"));
+        return res;
+    }
 }

+ 5 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigacquisition/action/RuleAction.java

@@ -46,6 +46,11 @@ public class RuleAction extends BaseAction {
         // 作废当前行
         sendData(response, ruleService.updateDataState(ruleNo));
     }
+    @RequestMapping("/seleDictCodeName")
+    public void seleDictCodeName (HttpServletRequest request,
+                                 HttpServletResponse response, @RequestParam String subjectCode) {
+        sendData(response, ruleService.seleDictCodeName(subjectCode));
+    }
 
     @RequestMapping("/selectDetailData")
     public void selectDetailData (HttpServletRequest request,

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

@@ -93,7 +93,7 @@
         #{model.ledgerOffObjectNo},
         #{model.ledgerStageId},
         #{model.ledgerGetdataRule},
-        #{model.state}
+        '1'
         )
     </insert>
 

+ 5 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigacquisition/service/RuleService.java

@@ -48,6 +48,11 @@ public class RuleService extends BaseService<RptDefineModel> {
         return ddlSqlFlag;
     }
 
+    public String seleDictCodeName(String subjectCode) {
+        String ddlSqlFlag = DBExecutor.doQuery("SELECT SUBJECT_DESC AS subjectDesc FROM rwa_cbs_gl_ac_subject WHERE subject_code='"+subjectCode+"'");
+        return ddlSqlFlag;
+    }
+
     // 查询当前行数据
     public RuleModel selectDetailData(RuleModel model) {
         RuleModel resultModel = ruleMapper.selectDetailData(model);

+ 8 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/action/RealEstateAction.java

@@ -43,6 +43,12 @@ public class RealEstateAction extends BaseAction {
         sendData(response, realEstateService.selectDataList(model));
     }
 
+    @RequestMapping("/selectDataList1")
+    public void selectDataList1 (HttpServletRequest request, HttpServletResponse response) {
+        // 初始化
+        sendData(response, realEstateService.selectDataList1());
+    }
+
     // 查询当前行
     @RequestMapping("/selectRowData")
     public void selectRowData (HttpServletRequest request, HttpServletResponse response,
@@ -85,10 +91,10 @@ public class RealEstateAction extends BaseAction {
 
     @RequestMapping("/templateUploadModel")
     public void templateUploadModel (HttpServletRequest request,
-                                     HttpServletResponse response,@RequestParam String fileNameCode) throws IOException {
+                                     HttpServletResponse response,@RequestParam String fileNameCode,@RequestBody List<RealEstateModel> modelList) throws IOException {
 
         // 模板下载
-        realEstateService.templateUploadModel(response,fileNameCode);
+        realEstateService.templateUploadModel(response,fileNameCode,modelList);
     }
 
 //    @RequestMapping("/isNotExist")

+ 1 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mapper/RealEstateMapper.java

@@ -10,6 +10,7 @@ public interface RealEstateMapper {
 
     List<RealEstateModel> selectDataList(@Param("model") RealEstateModel model);
 
+    List<RealEstateModel> selectDataList1();
     Object selectRowData(@Param("model") RealEstateModel model);
 
     boolean deleteRows(Object o);

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

@@ -263,7 +263,7 @@
     <select id="ruleIn" resultType="com.sundata.admin.nounmanage.model.DictContent">
         select t1.STEP_ID as id , t2.tabname as text from RWA_CALC_CONF_STAGEIN2OUT t1
         left join SYS_SQLEDIT_DEF_DATACLASS t2
-        on t1.STEP_OUT = t2.dataclasscode
+        on t1.STEP_IN = t2.dataclasscode
         <if test="defaultOut !='' and defaultOut !=null" >
             where 1=1 and t1.STEP_STAGE_ID = #{defaultOut}
         </if>

+ 52 - 16
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/RealEstateMapper.xml

@@ -52,6 +52,21 @@
         order by dataDateFlag,dataDate
     </select>
 
+    <select id="selectDataList1" resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.RealEstateModel">
+        SELECT t1.data_date AS dataDate
+        ,t1.DEBTITEM_NO  AS loanReferenceNo
+        ,t1.CLIENT_NAME  AS custName
+        ,t1.PRODUCT_NAME AS productName
+        ,t2.ISRECOMBINE AS isrecombine
+        FROM RIM_TDM_BS_FC_LOAN_CMS_ENT t1
+        LEFT JOIN RWA_BDM_BUS_ITM_FC_REALTY_LOAN t2
+        ON t1.DEBTITEM_NO =t2.LOAN_REFERENCE_NO
+        WHERE T1.INDUSTRY_INVEST_GROUP ='K701'
+        AND T1.PRODUCT_NO IN ('1050','1030030','106010')
+        AND COALESCE(T1.CLIENT_NO,'0') !='20170924000016'
+        AND T2.ISRECOMBINE IS NULL OR T2.ISRECOMBINE = ''
+    </select>
+
     <!-- 修改数据 -->
     <update id="updateExistData">
         update RWA_BDM_BUS_ITM_FC_REALTY_LOAN
@@ -114,22 +129,43 @@
         ISRECOMBINE,
         BP_CUST_NO
         )
-        values(
-        #{model.calcIndex},
-        #{model.startDate},
-        #{model.endDate},
-        #{model.term},
-        #{model.dataDate},
-        #{model.loanReferenceNo},
-        #{model.custNo},
-        #{model.custName},
-        #{model.productNo},
-        #{model.productName},
-        #{model.mgmtBranchNo},
-        #{model.overdueDays},
-        #{model.isrecombine},
-        #{model.bpCustNo}
-        )
+        SELECT
+        #{model.calcIndex} as CALCINDEX,
+        #{model.startDate} as SDATE,
+        #{model.endDate} as EDATE,
+        #{model.term} as TERM,
+        #{model.dataDate} as DATA_DATE,
+        t1.LOAN_REFERENCE_NO as LOAN_REFERENCE_NO,
+        t2.CLIENT_NO as CUST_NO,
+        t1.CUST_NAME as CUST_NAME,
+        t2.PRODUCT_NO as PRODUCT_NO,
+        t1.PRODUCT_NAME as PRODUCT_NAME,
+        t2.MANAGE_ORGN_NO as MGMT_BRANCH_NO,
+        t2.OVERDUE_DAYS as OVERDUE_DAYS,
+        t1.ISRECOMBINE as ISRECOMBINE,
+        t2.CORE_CLIENT_NO as BP_CUST_NO
+        FROM ( SELECT  #{model.loanReferenceNo} AS LOAN_REFERENCE_NO ,#{model.custName} AS CUST_NAME, #{model.productName} AS PRODUCT_NAME , #{model.isrecombine} AS ISRECOMBINE FROM dual) t1
+        LEFT JOIN RIM_TDM_BS_FC_LOAN_CMS_ENT t2
+        ON t1.LOAN_REFERENCE_NO =t2.DEBTITEM_NO
+        WHERE T2.INDUSTRY_INVEST_GROUP ='K701'
+        AND T2.PRODUCT_NO IN ('1050','1030030','106010')
+        AND COALESCE(T2.CLIENT_NO,'0') !='20170924000016'
+<!--        values(-->
+<!--        #{model.calcIndex},-->
+<!--        #{model.startDate},-->
+<!--        #{model.endDate},-->
+<!--        #{model.term},-->
+<!--        #{model.dataDate},-->
+<!--        #{model.loanReferenceNo},-->
+<!--        #{model.custNo},-->
+<!--        #{model.custName},-->
+<!--        #{model.productNo},-->
+<!--        #{model.productName},-->
+<!--        #{model.mgmtBranchNo},-->
+<!--        #{model.overdueDays},-->
+<!--        #{model.isrecombine},-->
+<!--        #{model.bpCustNo}-->
+<!--        )-->
     </insert>
 
     <!-- 删除当前行 -->

+ 6 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/service/RealEstateService.java

@@ -44,6 +44,10 @@ public class RealEstateService extends BaseService<RptDefineModel> {
         return realEstateMapper.selectDataList(model);
     }
 
+    public List<RealEstateModel> selectDataList1() {
+        return realEstateMapper.selectDataList1();
+    }
+
     public Object selectRowData(RealEstateModel model) {
         return realEstateMapper.selectRowData(model);
     }
@@ -155,8 +159,8 @@ public class RealEstateService extends BaseService<RptDefineModel> {
         }
     }
 
-    public void templateUploadModel(HttpServletResponse response, String fileNameCode) throws IOException {
-        List<RealEstateModel> modelList = new ArrayList<RealEstateModel>();
+    public void templateUploadModel(HttpServletResponse response, String fileNameCode,List<RealEstateModel> modelList) throws IOException {
+      //  List<RealEstateModel> modelList = new ArrayList<RealEstateModel>();
         modelList.add(new RealEstateModel());
         // 取得文件名
         String fileName = DBExecutor.doQuery("select RPTNAME from SYS_RPTDEFINE where RPTCODE = '"+ fileNameCode +"'");

+ 1 - 1
Procedure/frontend/projectb/src/app.tsx

@@ -140,7 +140,7 @@ export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) =
   const dev = isDev; // 不赋值的话,后面用的时候取不到
   return {
     ...curLayout,
-    title: '舜德数据',
+    title: '晋商银行',
     logo: '/images/logo_suo.png',
     rightContentRender: () => <RightContent
       color={baseStyle.getColorProps(initialState?.color||'').primary}

+ 34 - 23
Procedure/frontend/projectb/src/pages/product/datasupplementary/datasupplementation.tsx

@@ -2,13 +2,14 @@ import React, { useEffect, useRef, useState } from "react";
 import { type ProColumns, type ActionType, type ProFormInstance, ProTable, EditableProTable } from '@ant-design/pro-components';
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
-import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, } from "@sundata/ui-frame";
+import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, SDFormDict, } from "@sundata/ui-frame";
 import type { DataSupplementTaskExampleModel,DataSupplementInstancesIntaskModel } from '@/services/rwa/product/datasupplementary/datasupplementation';
 import {getDataList,selectDetailData} from '@/services/rwa/product/datasupplementary/datasupplementation';
 import { PlusSquareTwoTone, PoweroffOutlined, 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";
+import dayjs from 'dayjs';
 type widowRush = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
@@ -25,13 +26,15 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
     /** 表格引用对象,刷新表格使用   */
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
+    const formRef1 = useRef<FormInstance<any>>();
+    const formRef2 = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
 
-    const [formDetailData, setFormDetailData] = useState<DataSupplementInstancesIntaskModel[]>();
-    const [templateCheckData, setTemplateCheckData] = useState<DataSupplementInstancesIntaskModel[]>();
+    const [templateCheckData, setTemplateCheckData] = useState<DataSupplementInstancesIntaskModel[]>([]);
 
     // 页面数据
     var formDataList = new Array<DataSupplementTaskExampleModel>;
+    var formDataList1 = new Array<DataSupplementInstancesIntaskModel>;
     /**上传文件 */
     const [fileData, setFileData] = useState<File>();
     // 导入窗口显示
@@ -41,6 +44,7 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
 
      const { fetchDict } = useModel('dict');   
 
+
       /**上传属性 */
   const fileProps = {
     onRemove: () => {
@@ -50,19 +54,22 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
     setFileData(info);
   },
 };
+const { initialState } = useModel('@@initialState');
+const workdate = initialState?.workDate;
 
     /** 字段关系序号编辑 */
     var dataIndex = 1;
 
     useEffect(() => {
+      
       }, []);
-    
 
     // 修改查询查询
-    const selectData = async (formdata : DataSupplementTaskExampleModel) => {
-      const data = await selectDetailData(formdata);
-      formRef.current?.setFieldsValue(data);
-
+    const selectData = async (record : DataSupplementTaskExampleModel) => {
+      const data = await selectDetailData(record);
+      console.log(JSON.stringify(data));
+     //setTemplateCheckData(data);
+      setTemplateCheckData(eval('['+JSON.stringify(data)+']'));
      }
 
 
@@ -119,7 +126,7 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '数据补录任务', 
-          dataIndex: 'taskName',
+          dataIndex: 'tmpName',
           valueType:'select',
           request:()=>fetchDict({dictKey : '@taskName'}),
           hideInTable: false,
@@ -132,7 +139,7 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '首选责任人', 
-          dataIndex: 'account',
+          dataIndex: 'tmpName',
           search: false,
           hideInTable: false,
         },
@@ -154,6 +161,7 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
               onClick={
                 ()=>{ 
                 selectData(record);
+                setSelectVisible(false);
                 setFieldDetailVisible(true);
                 // setDetailVisible(true);
                 setEditType('update');
@@ -167,9 +175,9 @@ const datasupplementation : React.FC<widowRush> = (prop:widowRush) => {
             successMessage=""
             onClick={
               ()=>{ 
-              selectData(record);
+             // selectData(record);
               setSelectVisible(true);
-              setEditType('update');
+              setEditType('display');
              } }
           >
             查看
@@ -223,14 +231,14 @@ const templateCheckColumns: ProColumns<DataSupplementInstancesIntaskModel>[] = [
       },
       {
         title: '补录人',
-        dataIndex: 'taskFirstPerson',
+        dataIndex: 'account',
         hideInTable: false,
         width:150,
         ellipsis:true
       },
       {
         title: '补录机构',
-        dataIndex: 'taskOrgCode',
+        dataIndex: 'orgCode',
         hideInTable: false,
         width:150,
         ellipsis:true
@@ -269,7 +277,7 @@ const templateCheckColumns: ProColumns<DataSupplementInstancesIntaskModel>[] = [
         dataIndex: 'operate',
         valueType: 'option',
         width:150,
-        ellipsis:true,
+        ellipsis:false,
         render: (_, record) => [
           <SDOperate
             key="roleCfg"
@@ -355,7 +363,7 @@ const templateCheckColumns: ProColumns<DataSupplementInstancesIntaskModel>[] = [
           visible={detailVisible}
           onVisibleChange={() => {setDetailVisible(false)}}
           footer={[
-            <SDSubmitButton  editType={editType}   formRef={formRef} doSubmit={handleExecute} >发起</SDSubmitButton>,
+            <SDSubmitButton  editType={editType}   formRef={formRef1} doSubmit={handleExecute} >发起</SDSubmitButton>,
             <SDButton
               key="closeUpdate"
               successMessage=''
@@ -364,21 +372,23 @@ const templateCheckColumns: ProColumns<DataSupplementInstancesIntaskModel>[] = [
               }}>关闭</SDButton>
             ]}
           tableRef={actionRef}
-          formRef={formRef}
+          formRef={formRef1}
+          initialValues={{term:workdate}}
         >
             <SDAreaTtile title='补录数据任务发起'/>
-            <SDFormText name="term"       label="数据期次"/>
-            <SDFormText name="tmpType"       label="数据补录任务"/>
-            <SDFormText name="rowRange"      label="数据补录模板"/>
+            <SDFormText name="term"       label="数据期次" type="prodmonth"  readonlyCond="both"/>
+            <SDFormDict name="tmpType"       label="数据补录任务"  dictKey="@taskName" />
+            <SDFormDict name="rowRange"      label="数据补录模板" dictKey="@rowRange"/>
         </SDModalForm>
       )}
 
       {fieldDetailVisible && (
+        
         <SDModalForm
         visible={fieldDetailVisible}
         onVisibleChange={() => {setFieldDetailVisible(false)}}
         footer={[
-          <SDSubmitButton  editType={editType}   formRef={formRef} doSubmit={handleSave} >确定</SDSubmitButton>,
+          <SDSubmitButton  editType={editType}   formRef={formRef2} doSubmit={handleSave} >确定</SDSubmitButton>,
           <SDButton
             key="closeUpdate"
             successMessage=''
@@ -392,9 +402,10 @@ const templateCheckColumns: ProColumns<DataSupplementInstancesIntaskModel>[] = [
         <ProTable
           search={false}
           rowKey="index"
-          formRef={formRef}
+          formRef={formRef2}
           columns={templateCheckColumns}
           dataSource={templateCheckData}
+          actionRef={actionRef}
         />
         </SDLayout>
         </SDModalForm>
@@ -448,7 +459,7 @@ const templateCheckColumns: ProColumns<DataSupplementInstancesIntaskModel>[] = [
          onVisibleChange={() => {setFieldDetailVisible(false)}}
          >
          <SDAreaTtile title='补录数据任务发起'/>
-          <SDFormText name="term"       label="数据期次"/>
+          <SDFormText name="term"       label="数据期次" type="date" />
           <SDFormText name="tmpType"       label="数据补录任务"/>
           <SDFormText name="rowRange"      label="数据补录模板"/>          
 

+ 1 - 0
Procedure/frontend/projectb/src/pages/product/datasupplementary/supplementtemplatedefine.tsx

@@ -212,6 +212,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
               selectData(record);
               setDetailVisible(true);
               setEditType('display');
+              setBusiPk(String(record.tmpCode));
              } }
           >
             查看

+ 6 - 2
Procedure/frontend/projectb/src/pages/product/rwa_calc_config_004rwa/creditriskmeteringrule.tsx

@@ -59,6 +59,8 @@ const creditriskmeteringrule : React.FC<widowProps> = (prop:widowProps) => {
     // 默认输出源
     const [productKey,setProductKey] = useState<any>();
 
+    const [productNo0,setProductNo0] = useState<any>();
+
     const [creditRiskBussinessCode,setCreditRiskBussinessCode] = useState<any>();
 
     const [defaultOut,setDefaultOut] = useState<any>();
@@ -342,7 +344,8 @@ const creditriskmeteringrule : React.FC<widowProps> = (prop:widowProps) => {
           successMessage=""
           onClick={()=>{
             //selecReleaseTypeData(record);
-            setInOrOutKey(record.defaultOut);
+           // setInOrOutKey(record.defaultOut);
+           setInOrOutKey(record.creditRiskNo);
             setInOrOutListVisible(true);
             //setEditType('display')
           } }
@@ -552,6 +555,7 @@ const productColumns: ProColumns<productListModel>[] = [
         selectProductInfo(record);
         setTransferVisible(true);
         setDefaultOut(record.productStageId)
+        setProductNo0(record.productNo)
          } }
       >
         查看
@@ -929,7 +933,7 @@ return (
            rowKey="ruleCode"
            search={false} 
            request={(async ()=>{
-               const formDatas = await product_modifyone2(productKey)
+               const formDatas = await product_modifyone2(productNo0)
                return {data:formDatas}
            })
            }

+ 21 - 8
Procedure/frontend/projectb/src/pages/product/rwa_calc_config_004rwa/stageinformation.tsx

@@ -5,18 +5,20 @@ import { SDPage,SDTable,EditType,DictTree,SDFormItem,SDButton, baseFun,SDModalFo
 import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
 import {getDataList,createStageConfigType,updateStageConfigType,deleteStageConfigType,selectStageConfigType
-    ,getStageConfigRuleList,createStageConfigRule,updateStageConfigRule,deleteStageConfigRule,selectStageConfigRule,isNotExist
+    ,getStageConfigRuleList,createStageConfigRule,updateStageConfigRule,deleteStageConfigRule,selectStageConfigRule,isNotExist, selectname, selectcount
   } from "@/services/rwa/product/rwa_calc_config_004rwa/stageinformation";
 import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
 import { StageDefinitionModel, StageStepsModel } from "@/services/rwa/product/rwa_calc_config_004rwa/stageinformation";
 import { toNumber, values } from "lodash";
 import { countChineseChars } from "@/services/rwa/product/rwacheckutils";
+import { mode } from "crypto-js";
 
 type widowProps = {
   onCancel:  () => void;
   onChangeVisible(visible: boolean, type: string): unknown;
   onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
   treeData: DictTree[];
+  stepId:String;
 }& ProductProps;
 // 客户基本信息表
 const stageinformation : React.FC<widowProps> = (prop:widowProps) => {
@@ -143,10 +145,17 @@ const stageinformation : React.FC<widowProps> = (prop:widowProps) => {
       //  await updateStageConfigRule(data);
       //  closeAndRefreshRule();
     } else if (toolRuleEditType == 'create' ) {
+      const res = await selectcount(data.stepId);
+      if(res >0){
+        baseFun.warning("步骤序号以存在,请重新输入");
+      }else{
       stageFormData.push(data);
       setStageFormData([...stageFormData]);
+      baseFun.info("添加成功")
+      setStageConfigRuleVisible(false);
+      }
     }
-    setStageConfigRuleVisible(false);
+    
   }
 
 
@@ -454,8 +463,12 @@ return (
       onVisibleChange={() => {
         setDetailVisible(false);
       }}
-      onValuesChange={(changevalue,values)=>{
+      onValuesChange={async (changevalue,values)=>{
         setStageConfigKey(formRef.current?.getFieldValue('stageId'));
+        if(values.stageSuper != '' && values.stageSuper != undefined){
+          const names = await selectname(values.stageSuper);
+          formRef.current?.setFieldValue('stageSuperName',names);
+        }
       }}
       footer={[
       <SDSubmitButton  editType={editType}   formRef={formRef} doSubmit={handleReleaseTypeSave} >保存</SDSubmitButton>,
@@ -495,7 +508,7 @@ return (
               callback();
             }
          }}]} label="阶段名称"/>
-        <SDFormDict dictKey='' name="stageSuper" label="阶段上级编号" />
+        <SDFormDict dictKey='@stageSuper' name="stageSuper" label="阶段上级编号" />
         <SDFormText name="stageSuperName" label="阶段上级名称"/>
         <SDFormText name="stageIndex" label="阶段序号"/>
         <SDFormDict name="stageIsvalid" dictKey='YESORNO' label="是否有效"/>
@@ -532,7 +545,7 @@ return (
           onVisibleChange={() => {setStageConfigRuleVisible(false)}}
           initialValues={{
             detailRuleNo:editRuleNo,
-            stepType : ''
+            stepType : '',
           }}
           onValuesChange={(changevalue,values)=>{
             if(values.stepType =='1'){
@@ -545,7 +558,7 @@ return (
           editType={toolRuleEditType}
           formRef={toolRuleFormRef}
           footer={[
-            <SDSubmitButton  editType={toolRuleEditType}   formRef={toolRuleFormRef} doSubmit={handleReleaseRuleSave} >保存</SDSubmitButton>,
+            <SDSubmitButton successMessage=""  editType={toolRuleEditType}   formRef={toolRuleFormRef} doSubmit={handleReleaseRuleSave} >保存</SDSubmitButton>,
             <SDButton
               key="closeUpdate"
               successMessage=''
@@ -566,8 +579,8 @@ return (
               callback();
             }
          }}]} label="步骤名称"/>
-        <SDFormDict dictKey='org' multiple={true} name="stepIns"  label="阶段输入表" />
-        <SDFormDict dictKey='org' multiple={true}  name="stepOuts"  label="阶段输出表"/>
+        <SDFormDict dictKey='@englishSourceTable' multiple={true} name="stepIns"  label="阶段输入表" />
+        <SDFormDict dictKey='@englishSourceTable' multiple={true}  name="stepOuts"  label="阶段输出表"/>
         <SDFormDict dictKey='STEP_TYPE'  name="stepType"  label="阶段步骤类型"/>
         {stepInfo &&<SDFormText type="textarea" name="stepInfo" label="阶段步骤内容" required={stepInfo}/>}
         

+ 16 - 5
Procedure/frontend/projectb/src/pages/project/businessconfig/DevelopBankList.tsx

@@ -3,12 +3,13 @@ import type { ProColumns, ActionType, ProFormInstance } from '@ant-design/pro-co
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
 import { SDPage, SDFormText, SDModalForm, SDTable, SDButton, SDFormItem, SDSubmitButton, EditType, SDAreaTtile, SDOperate, baseFun,validateFun, SDFormDict } from "@sundata/ui-frame";
-import type { SysListModel } from '@/services/rwa/ListOfPublicSector';
+
 import {getDataList,deleteRows,selectDetailData
-  ,updateExistData,exportExcelModel,uploadAction,templateUpload,isNotExist } from '@/services/rwa/DevelopBankList';
+  ,updateExistData,exportExcelModel,uploadAction,templateUpload,isNotExist, SysListModel } from '@/services/rwa/DevelopBankList';
 import { WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { countChineseChars } from "@/services/rwa/product/rwacheckutils";
+import { useModel } from "@umijs/max";
 
 type widowRush = {
   onCancel:  () => void;
@@ -32,6 +33,7 @@ const DevelopBankList : React.FC<widowRush> = (prop:widowRush) => {
     const [fileData, setFileData] = useState<File>();
     // 导入窗口显示
     const [importVisible, setImportVisible] = useState<boolean>(false);
+    const { fetchDict } = useModel('dict');  
 
     useEffect(() => {
       //actionRef.current?.reload();
@@ -68,10 +70,11 @@ const DevelopBankList : React.FC<widowRush> = (prop:widowRush) => {
       if (editType == 'update' ) {
         const res = await selectDetailData(data);
         if (null === res || undefined === res) {
+          // await updateExistData(data);
+          // closeAndRefresh();
+        } else{
           await updateExistData(data);
           closeAndRefresh();
-        } else{
-
         }
       }
       // else if (editType == 'create' ) {
@@ -170,9 +173,17 @@ const DevelopBankList : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '合格信用风险缓释工具类型', 
           dataIndex: 'crmToolTypename',
+          valueType:'select',
+          request:()=>fetchDict({ dictKey :"@qualfiedCreditToolTypeName"}),
           search: false,
           hideInTable: false,
         },
+        {
+          title: '合格信用风险缓释工具类型', 
+          dataIndex: 'qualfiedCreditToolTypeNames',
+          search: false,
+          hideInTable: true,
+        },
         {
           title: '豁免后缓释权重',
           dataIndex: 'exemptionWeight',
@@ -292,7 +303,7 @@ const DevelopBankList : React.FC<widowRush> = (prop:widowRush) => {
             <SDFormDict name="crmToolTypename" label="合格信用风险缓释工具类型" dictKey='qualfiedCreditToolTypeName' />
             <SDFormText name="exemptionWeight" label="缓释权重%"
             rules={[{validator: validateFun.double,message:'请输入数字类型'},
-              {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]}/>
+              {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]} oldValue="%"/>
             <SDFormText name="note" type="textarea" label="备注"
             rules={[{validator:(rules,value,callback)=>{
               let chineseCount = countChineseChars(value);

+ 13 - 3
Procedure/frontend/projectb/src/pages/project/businessconfig/GeneralSectorList.tsx

@@ -3,12 +3,13 @@ import type { ProColumns, ActionType, ProFormInstance } from '@ant-design/pro-co
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDButton,SDFormItem,SDForm,SDSubmitButton,EditType, SDAreaTtile, validateFun, SDOperate, baseFun, SDFormDict, } from "@sundata/ui-frame";
-import type { SysListModel } from '@/services/rwa/ListOfPublicSector';
+
 import {getDataList,deleteRows,selectDetailData,
-  updateExistData,exportExcelModel,uploadAction,templateUpload} from '@/services/rwa/GeneralSectorList';
+  updateExistData,exportExcelModel,uploadAction,templateUpload, SysListModel} from '@/services/rwa/GeneralSectorList';
 import { WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { countChineseChars } from "@/services/rwa/product/rwacheckutils";
+import { useModel } from "@umijs/max";
 
 type widowRush = {
   onCancel:  () => void;
@@ -33,6 +34,7 @@ const GeneralSectorList : React.FC<widowRush> = (prop:widowRush) => {
     const [fileData, setFileData] = useState<File>();
     // 导入窗口显示
     const [importVisible, setImportVisible] = useState<boolean>(false);
+    const { fetchDict } = useModel('dict');  
 
     useEffect(() => {
       //actionRef.current?.reload();
@@ -156,9 +158,17 @@ const GeneralSectorList : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '缓释工具类型', 
           dataIndex: 'crmToolTypename',
+          valueType:'select',
+          request:()=>fetchDict({ dictKey :'@qualfiedCreditToolTypeName'}),
           search: false,
           hideInTable: false,
         },
+        {
+          title: '缓释工具类型', 
+          dataIndex: 'crmToolTypenames',
+          search: false,
+          hideInTable: true,
+        },
         {
           title: '豁免后缓释权重',
           dataIndex: 'exemptionWeight',
@@ -279,7 +289,7 @@ const GeneralSectorList : React.FC<widowRush> = (prop:widowRush) => {
             <SDFormDict name="crmToolTypename" label="合格信用风险缓释工具类型" dictKey='qualfiedCreditToolTypeName' />
             <SDFormText name="exemptionWeight" label="缓释风险权重%"
             rules={[{validator: validateFun.double,message:'请输入数字类型'},
-              {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]}
+              {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]} oldValue="%"
             />
             <SDFormText name="note" type="textarea" rules={[{validator:(rules,value,callback)=>{
             let chineseCount = countChineseChars(value);

+ 13 - 1
Procedure/frontend/projectb/src/pages/project/businessconfig/ListOfPublicSector.tsx

@@ -9,6 +9,7 @@ import {getDataList,deleteRows,selectDetailData,
 import { WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 import { countChineseChars } from "@/services/rwa/product/rwacheckutils";
+import { useModel } from "@umijs/max";
 
 type widowRush = {
   onCancel:  () => void;
@@ -26,6 +27,9 @@ const ListOfPublicSector : React.FC<widowRush> = (prop:widowRush) => {
     const actionRef = useRef<ActionType>();
     const formRef = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
+    
+    const { fetchDict } = useModel('dict');  
+
 
     // 页面数据
     var formDataList = new Array<SysListModel>;
@@ -148,9 +152,17 @@ const ListOfPublicSector : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '合格信用风险缓释工具类型', 
           dataIndex: 'crmToolTypename',
+          valueType:'treeSelect',
+          request:()=>fetchDict({ dictKey :"@qualfiedCreditToolTypeName"}),
           search: false,
           hideInTable: false,
         },
+        {
+          title: '合格信用风险缓释工具类型', 
+          dataIndex: 'crmToolTypenames',
+          search: false,
+          hideInTable: true,
+        },
         {
           title: '操作',
           dataIndex: 'operate',
@@ -260,7 +272,7 @@ const ListOfPublicSector : React.FC<widowRush> = (prop:widowRush) => {
             <SDFormText name="exemptionWeight" 
             rules={[{validator: validateFun.double,message:'请输入数字类型'},
             {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]}
-            label="缓释风险权重%" width={380} oldValue="%"/>
+            label="缓释风险权重%"  oldValue="%"/>
             <SDFormText name="note" type="textarea" rules={[{validator:(rules,value,callback)=>{
             let chineseCount = countChineseChars(value);
             if (chineseCount > 500) {

+ 3 - 3
Procedure/frontend/projectb/src/pages/project/businessconfig/RiskExposureClass.tsx

@@ -3,9 +3,9 @@ import type { ProColumns, ActionType, ProFormInstance } from '@ant-design/pro-co
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDButton,SDFormItem,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,validateFun } from "@sundata/ui-frame";
-import type { SysListModel } from '@/services/rwa/ListOfPublicSector';
+
 import {getDataList,deleteRows,selectDetailData,
-  updateExistData,exportExcelModel,uploadAction,templateUpload} from '@/services/rwa/RiskExposureClass';
+  updateExistData,exportExcelModel,uploadAction,templateUpload, SysListModel} from '@/services/rwa/RiskExposureClass';
 import { WomanOutlined } from "@ant-design/icons";
 import { ProductProps } from "@/sundataImport";
 
@@ -270,7 +270,7 @@ const RiskExposureClass : React.FC<widowRush> = (prop:widowRush) => {
             <SDFormText name="riskExposureHierarchy" label="风险暴露分类层级" />
             <SDFormText name="riskWeight" label="风险权重" 
              rules={[{validator: validateFun.double,message:'请输入数字类型'},
-              {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]} />
+              {pattern: RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:'小数位超位'}]} oldValue="%"/>
          
         </SDModalForm>
         

+ 6 - 2
Procedure/frontend/projectb/src/pages/project/dataquality/BondInvestment.tsx

@@ -3,8 +3,8 @@ import type { ProColumns, ActionType, ProFormInstance } from '@ant-design/pro-co
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
 import { SDPage,SDModalForm,SDTable,SDFormItem,SDButton,SDForm,SDSubmitButton,EditType, SDOperate, baseFun, } from "@sundata/ui-frame";
-import type { SysListModel } from '@/services/rwa/ListOfPublicSector';
-import {getDataList,selectDetailData,exportExcelModel} from '@/services/rwa/dataquality/BondInvestment';
+
+import {getDataList,selectDetailData,exportExcelModel, SysListModel} from '@/services/rwa/dataquality/BondInvestment';
 import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
 
@@ -75,6 +75,7 @@ const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
           title: '数据日期',
           dataIndex: 'dataDate',
           hideInTable: false,
+          valueType:'date',
           width:150,
           ellipsis:true,
           order:-1
@@ -204,6 +205,7 @@ const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
           title: '生效日',
           dataIndex: 'effectDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -212,6 +214,7 @@ const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
           title: '到期日',
           dataIndex: 'expiryDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -398,6 +401,7 @@ const BondInvestment : React.FC<widowRush> = (prop:widowRush) => {
           fieldProps: {
           treeDefaultExpandAll: true,
           treeCheckable:true,
+          popupMatchSelectWidth:300,
           },
         },
         {

+ 8 - 4
Procedure/frontend/projectb/src/pages/project/dataquality/DiscountTable.tsx

@@ -40,13 +40,13 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
           title: '计算实例号',
           dataIndex: 'calcIndex',
           search: false,
-          hideInTable: false,
+          hideInTable: true,
           width:150,
           ellipsis:true
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
+          dataIndex: 'sDate',
           search: false,
           hideInTable: false,
           width:150,
@@ -54,7 +54,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
+          dataIndex: 'eDate',
           search: false,
           hideInTable: false,
           width:150,
@@ -64,7 +64,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
           title: '年月',
           dataIndex: 'yearMonth',
           search: false,
-          hideInTable: false,
+          hideInTable: true,
           width:150,
           ellipsis:true
           },
@@ -209,6 +209,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '生效日',
           dataIndex: 'effectDate',
+          valueType:'date',
           search: false,
           hideInTable: false,
           width:150,
@@ -217,6 +218,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '到期日',
           dataIndex: 'expiryDate',
+          valueType:'date',
           search: false,
           hideInTable: false,
           width:150,
@@ -257,6 +259,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'billType',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '票据类型',
@@ -374,6 +377,7 @@ const DiscountTable : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'accountOrgnName',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '经营机构编号',

+ 11 - 1
Procedure/frontend/projectb/src/pages/project/dataquality/GuaranteeTable.tsx

@@ -117,8 +117,16 @@ const GuaranteeTable : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '缓释品类型', 
-          dataIndex: 'mitigationProdTypes',
+          dataIndex: 'mitigationProdTypees',
           hideInTable: false,
+          search:false,
+          width:150,
+          ellipsis:true,
+        },
+        {
+          title: '缓释品类型', 
+          dataIndex: 'mitigationProdTypes',
+          hideInTable: true,
           width:150,
           ellipsis:true,
           order:-4,
@@ -157,6 +165,7 @@ const GuaranteeTable : React.FC<widowRush> = (prop:widowRush) => {
           title: '缓释起始日',
           dataIndex: 'mitigantOrginDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -164,6 +173,7 @@ const GuaranteeTable : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '缓释到期日',
           dataIndex: 'mitigantExpiryDate',
+          valueType:'date',
           search: false,
           hideInTable: false,
           width:150,

+ 6 - 3
Procedure/frontend/projectb/src/pages/project/dataquality/InterbankDepositOrLendingTable.tsx

@@ -234,6 +234,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
         {
           title: '生效日',
           dataIndex: 'effectDate',
+          valueType:'date',
           search: false,
           hideInTable: false,
           width:150,
@@ -243,6 +244,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
           title: '到期日',
           dataIndex: 'expiryDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -312,7 +314,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
         },
         {
           title: '账务机构编号', 
-          dataIndex: 'finBranchNo',
+          dataIndex: 'financialOrgnNo',
           search: false,
           hideInTable: false,
           width:150,
@@ -320,7 +322,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
         },
         {
           title: '账务机构名称', 
-          dataIndex: 'finBranchName',
+          dataIndex: 'financialOrgnName',
           search: false,
           hideInTable: false,
           width:150,
@@ -338,7 +340,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
         {
           title: '经营机构编号',
           dataIndex: 'manageOrgnNos',
-          hideInTable: false,
+          hideInTable: true,
           width:150,
           ellipsis:true,
           order:-5,
@@ -353,6 +355,7 @@ const InterbankDepositOrLendingTable : React.FC<widowRush> = (prop:widowRush) =>
           title: '经营机构编名称',
           dataIndex: 'manageOrgnName',
           search: false,
+          width:150,
           hideInTable: false,
         },
         {

+ 7 - 2
Procedure/frontend/projectb/src/pages/project/dataquality/NonStandardInvestment.tsx

@@ -3,8 +3,8 @@ import type { ProColumns, ActionType, ProFormInstance } from '@ant-design/pro-co
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDForm,SDSubmitButton,EditType, SDAreaTtile, SDLayout, SDOperate, baseFun, } from "@sundata/ui-frame";
-import type { SysListModel } from '@/services/rwa/ListOfPublicSector';
-import {getDataList,selectDetailData,exportExcelModel} from '@/services/rwa/dataquality/NonStandardInvestment';
+
+import {getDataList,selectDetailData,exportExcelModel, SysListModel} from '@/services/rwa/dataquality/NonStandardInvestment';
 import { ProductProps } from "@/sundataImport";
 import { useModel } from '@umijs/max';
 
@@ -74,6 +74,7 @@ const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
           title: '数据日期',
           dataIndex: 'dataDate',
           hideInTable: false,
+          valueType:'date',
           order:-1,
           width:150,
           ellipsis:true,
@@ -260,6 +261,7 @@ const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
           title: '生效日',
           dataIndex: 'effectDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true,
@@ -268,6 +270,7 @@ const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
           title: '到期日',
           dataIndex: 'expiryDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true,
@@ -355,6 +358,8 @@ const NonStandardInvestment : React.FC<widowRush> = (prop:widowRush) => {
           request: () => fetchDict('org'),
           fieldProps: {
            treeDefaultExpandAll: true,
+           treeCheckable:true,
+           popupMatchSelectWidth:300,
           },
           width:150,
           ellipsis:true,

+ 7 - 1
Procedure/frontend/projectb/src/pages/project/dataquality/OffCreditCard.tsx

@@ -252,6 +252,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           title: '表内外标识代码',
           dataIndex: 'onbalshOffbalshFlag',
           search: false,
+          width:150,
           hideInTable: false,
         },
         {
@@ -260,6 +261,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           search: false,
           hideInTable: false,
           valueType: 'treeSelect',
+          width:150,
           request: () => fetchDict('ONOROFF'),
           fieldProps: {
            treeDefaultExpandAll: true,
@@ -270,11 +272,13 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'accountBookType',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '账簿类型',
           dataIndex: 'accountBookType',
           search: false,
+          width:150,
           hideInTable: false,
           valueType: 'treeSelect',
           request: () => fetchDict('ACCOUNT_TYPE'),
@@ -285,6 +289,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
         {
           title: '生效日',
           dataIndex: 'effectDate',
+          valueType:'date',
           search: false,
           hideInTable: false,
           width:150,
@@ -294,6 +299,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           title: '到期日',
           dataIndex: 'expiryDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -364,7 +370,7 @@ const OffCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'accordStandardUnuseLimitLabel',
           search: false,
           hideInTable: false,
-          width:150,
+          width:200,
           ellipsis:true,
         },
         {

+ 16 - 4
Procedure/frontend/projectb/src/pages/project/dataquality/OnCreditCard.tsx

@@ -50,16 +50,18 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
         },
         {
           title: '起始数据日期',
-          dataIndex: 'startDate',
+          dataIndex: 'sDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
         },
         {
           title: '截止数据日期',
-          dataIndex: 'endDate',
+          dataIndex: 'eDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -68,7 +70,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           title: '年月',
           dataIndex: 'yearMonth',
           search: false,
-          hideInTable: false,
+          hideInTable: true,
           width:150,
           ellipsis:true
           },
@@ -229,6 +231,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           title: '生效日',
           dataIndex: 'effectDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -237,6 +240,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           title: '到期日',
           dataIndex: 'expiryDate',
           search: false,
+          valueType:'date',
           hideInTable: false,
           width:150,
           ellipsis:true
@@ -262,6 +266,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'onbalshOffbalshFlag',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '表内外标识',
@@ -269,6 +274,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           search: false,
           hideInTable: false,
           valueType: 'treeSelect',
+          width:150,
           request: () => fetchDict('ONOROFF'),
           fieldProps: {
            treeDefaultExpandAll: true,
@@ -279,6 +285,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'accountBookType',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '账簿类型',
@@ -286,6 +293,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           search: false,
           hideInTable: false,
           valueType: 'treeSelect',
+          width:150,
           request: () => fetchDict('ACCOUNT_TYPE'),
           fieldProps: {
            treeDefaultExpandAll: true,
@@ -312,24 +320,28 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           dataIndex: 'accountOrgnNo',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '账务机构名称', 
           dataIndex: 'accountOrgnName',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '经营机构编号',
           dataIndex: 'manageOrgnNo',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '经营机构编名称',
           dataIndex: 'manageOrgnName',
           search: false,
           hideInTable: false,
+          width:150,
         },
         {
           title: '经营机构编名称',
@@ -383,7 +395,7 @@ const OnCreditCard : React.FC<widowRush> = (prop:widowRush) => {
           width:150,
           ellipsis:true,
           valueType: 'treeSelect',
-          request: () => fetchDict(''),
+          request: () => fetchDict('TORF'),
           fieldProps: {
            treeDefaultExpandAll: true,
           },

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

@@ -74,8 +74,6 @@ type aaa = {
 	   {
         title  : '债项编号',
         dataIndex : 'debtitemNo',
-       //  hideInTable: true,String币种代码
-       // search: false,
        order:-2,
        width:150,  
       },
@@ -467,31 +465,24 @@ type aaa = {
       {
         title  : '经营机构名称',
         dataIndex : 'manageOrgnName',
-       //  hideInTable: true,
         search: false,
        width:150,  
       },
 	   {
         title  : '核心客户号',
         dataIndex : 'coreClientNo',
-       //  hideInTable: true,
-       // search: false,
        order:-3,
        width:150,  
       },
 	  {
         title  : '客户编号',
         dataIndex : 'clientNo',
-       //  hideInTable: true,
-        //search: false,
         order:-4,
        width:150,  
       },
 	  {
         title  : '客户名称',
         dataIndex : 'clientName',
-       //  hideInTable: true,
-        //search: false,
         order:-5,
        width:150,  
       },

+ 28 - 4
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/policybank.tsx

@@ -149,7 +149,6 @@ const [importVisible, setImportVisible] = useState<boolean>(false);
       search: false,
       hideInTable: true,
       width:150, 
-      
   },
   { 
     title: '缓释工具类型',
@@ -157,7 +156,6 @@ const [importVisible, setImportVisible] = useState<boolean>(false);
     search: false,
   //  hideInTable: true,
     width:150, 
-    
 },
   
   { 
@@ -166,7 +164,34 @@ const [importVisible, setImportVisible] = useState<boolean>(false);
     search: false,
     hideInTable: true,
     width:150, 
-    
+},
+{ 
+  title: '缓释工具类型',
+  dataIndex: 'qualfiedCreditToolNames', // 查询结果中的隐藏列
+  search: false,
+  hideInTable: true,
+  width:150, 
+},
+{ 
+  title: '是否用于风险暴露划分',
+  dataIndex: 'isRiskclassUses', // 查询结果中的隐藏列
+  search: false,
+  hideInTable: true,
+  width:150, 
+},
+{ 
+  title: '是否用于合格缓释认定',
+  dataIndex: 'isSlowreleaseUses', // 查询结果中的隐藏列
+  search: false,
+  hideInTable: true,
+  width:150, 
+},
+{ 
+  title: '备注',
+  dataIndex: 'remark', // 查询结果中的隐藏列
+  search: false,
+  hideInTable: true,
+  width:150, 
 },
         {
             title: '操作',
@@ -180,7 +205,6 @@ const [importVisible, setImportVisible] = useState<boolean>(false);
                 
                 onClick={()=>{ 
                   selectdata(record);
-                  
                 setVisible(true);
                 setEditType('update')
                  } }

+ 7 - 0
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/sovereign.tsx

@@ -156,6 +156,13 @@ const sovereignts: React.FC<aaa>= (prop : aaa) => {
            hideInTable: true,
           width:180  
    },
+   { 
+    title: '合格信用风险缓释工具类型',
+    dataIndex: 'qualfiedCreditToolTypeNames', // 查询结果中的隐藏列
+    search: false,
+    hideInTable: true,
+   width:180  
+},
        {
            title: '基础缓释权重',
            dataIndex: 'baseWeight', // 查询结果中的隐藏列

+ 5 - 5
Procedure/frontend/projectb/src/pages/rwa_calc_config_acquisition/rule.tsx

@@ -293,7 +293,7 @@ const rule : React.FC<widowRush> = (prop:widowRush) => {
           visible={detailVisible}
           initialValues={
             {
-              getdataMode:'取实际余额',
+              getdataMode:'1',
               subjectCodes:prop.subjectCodes,
               resultType:prop.resultType,
               onOrOff:prop.onOrOff
@@ -307,10 +307,10 @@ const rule : React.FC<widowRush> = (prop:widowRush) => {
             }
             if (changevalues.resultType != undefined) {
               if (changevalues.resultType == '1') {
-                formRef.current?.setFieldValue('onOrOff','表内');
+                formRef.current?.setFieldValue('onOrOff','ON');
                 setLedgerOffObjectNo(false);
               } else if (changevalues.resultType == '2') {
-                formRef.current?.setFieldValue('onOrOff','表外');
+                formRef.current?.setFieldValue('onOrOff','OFF');
                 setLedgerOffObjectNo(true);
               } else {
                 formRef.current?.setFieldValue('onOrOff','');
@@ -334,13 +334,13 @@ const rule : React.FC<widowRush> = (prop:widowRush) => {
             <SDAreaTtile title='缓释品信息'/>
             <SDFormText name="ruleNo" rules={[{max:20, message:'名称长度不能超过20位'}]} label="规则编号" readonlyCond = 'update'/>
             <SDFormText name="ruleName" label="规则名称" rules={[{max:30, message:'名称长度不能超过30位'}]} />
-            <SDFormDict name="subjectCodes" dictKey="SUBJECTCODE"  label="科目代码" />
+            <SDFormDict name="subjectCodes"  label="科目代码"  dictKey="@glCode"/>
             <SDFormText name="subjectNames"  label="科目名称" />
             <SDFormDict name="accountingDirection" dictKey="ACCOUNTING_DIRECTION"  label="记账方向"/> 
             <SDFormDict name="calcMode" dictKey="CALC_METHOD" label="计算方式"/>
             <SDFormDict name="getdataMode"  label="取值方式" dictKey="GETDATA_MODE" />
             <SDFormDict name="resultType" dictKey="RESULT_TYPE"  label="计算项" />
-            <SDFormText name="onOrOff"  label="表内外标识" readonlyCond = 'both' />
+            <SDFormDict name="onOrOff"  label="表内外标识" readonlyCond = 'both' dictKey ='ONOROFF' />
             <SDFormDict name="ledgerRiskexposureNo"  label="表内风险暴露分类" dictKey="@positiveRiskType" />
             <SDFormDict name="ledgerOffObjectNo"  label="表外项目分类" required={ledgerOffObjectNo} dictKey="@positiveOffProjectType"/>
             <SDFormDict name="ledgerStageId"  label="所属阶段" dictKey="@stageinId" />

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

@@ -785,7 +785,7 @@ const setRuleNoAdd = () => {
           <SDFormText name="ruleCode"   label="规则编号"   readonlyCond ='update'/>
           <SDFormText name="ruleName"   label="规则说明"  required/>
           <SDFormDict name="dataType"   label="数据类型"  dictKey='DATA_TYPE' required/>
-          <SDFormDict name="ruleSubject"   label="对应科目"  onlyLeafCheck={true}  required/>
+          <SDFormDict name="ruleSubject"   label="对应科目"  onlyLeafCheck={true}  required dictKey='@glCode'/>
           <SDFormDict name="ruleIn"   label="输入数据源"  dictKey='@ruleIn'   dictParam={`{"defaultOut":"${defaultOut}"}`} required/>
           <SDFormDict name="ruleOut"   label="输出数据源"  dictKey='@selectdefaultOut'   dictParam={`{"defaultOut":"${defaultOut}"}`} required/>
           <SDFormText name="ruleIndex"   label="规则序号"  required rules={[{validator: validateFun.zinteger,message:'请输入数字类型'},]}/>

+ 8 - 2
Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/realestate.tsx

@@ -3,7 +3,7 @@ import type { ProColumns, ActionType, ProFormInstance } from '@ant-design/pro-co
 import type {FormInstance} from 'antd'
 import  {Upload} from 'antd'
 import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDFormDict, } from "@sundata/ui-frame";
-import type { SysListModel } from '@/services/rwa/rwa_calc_config_dataparam/realestate';
+import { getDataList1, SysListModel } from '@/services/rwa/rwa_calc_config_dataparam/realestate';
 import {getDataList,selectDetailData,fetchDetailData,
   updateExistData,exportExcelModel,uploadAction,templateUpload,seleDictCodeName} from '@/services/rwa/rwa_calc_config_dataparam/realestate';
 import { WomanOutlined } from "@ant-design/icons";
@@ -28,6 +28,8 @@ const realestate : React.FC<widowRush> = (prop:widowRush) => {
     const formRef = useRef<FormInstance<any>>();
     const templateRef = useRef<FormInstance<any>>();
 
+    const [formDataList1,setFormDataList1] = useState<SysListModel[]>();
+
     // 页面数据
     var formDataList = new Array<SysListModel>;
     /**上传文件 */
@@ -74,9 +76,13 @@ const realestate : React.FC<widowRush> = (prop:widowRush) => {
   // 模板下载
   const templateUploadAction = async() => {
     // 模板下载(模板code:ListOfPublicSector)
-    await templateUpload("realestateimport");
+    const formData1 = await getDataList1();
+  //  setFormDataList1(formData1);
+    console.log(formData1);
+    await templateUpload(formData1,"realestateimport");
   }
 
+
   /**上传属性 */
   const fileProps = {
       onRemove: () => {

+ 4 - 3
Procedure/frontend/projectb/src/pages/rwa_data_check/rule_list.tsx

@@ -311,7 +311,8 @@ width : 150
         if(Values.glCode!=undefined){    
             const sd = await selectsubjectNature(Values.glCode);  
             console.log(sd);
-          formRef.current?.setFieldValue('subjectDesc',sd)}
+          formRef.current?.setFieldValue('subjectDesc',sd)
+        }
           if(Values.subjectNature=="04"){
             setOnoroff(false);
           }else{
@@ -337,8 +338,8 @@ width : 150
               callback();
             }
          }}]}/>
-<SDFormDict  name="glCode"   label="科目代码" dictKey='org' readonlyCond='update' required/>
-<SDFormText name="subjectDesc"   label="科目名称"   readonlyCond='both' />
+<SDFormDict  name="glCode"   label="科目代码"  readonlyCond='update' dictKey='@glCode'  required/>
+<SDFormText name="subjectDesc"   label="科目名称"    />
 <SDFormDict name="subjectNature"   label="科目性质"  dictKey='SUBJECT_DESC' required/>
 <SDFormDict name="onoroff"   label="表内外标识"  required={onoroff1} dictKey='ONOROFF' />
 <SDFormDict name="accountingDirection"   label="记账方向"   dictKey='ACCOUNTING_DIRECTION'  required />

+ 1 - 0
Procedure/frontend/projectb/src/services/rwa/DevelopBankList.ts

@@ -24,6 +24,7 @@ export type SysListModel = {
     exemptionWeight?: string;
     // 备注
     note?: string;
+    qualfiedCreditToolTypeNames:string;
   } & BasePageModel;
 
   /** 获取页面初始化查询 POST*/

+ 1 - 0
Procedure/frontend/projectb/src/services/rwa/GeneralSectorList.ts

@@ -22,6 +22,7 @@ export type SysListModel = {
     exemptionWeight?: string;
     // 备注
     note?: string;
+    crmToolTypenames:string;
   } & BasePageModel;
 
   /** 获取页面初始化查询 POST*/

+ 1 - 0
Procedure/frontend/projectb/src/services/rwa/ListOfPublicSector.ts

@@ -18,6 +18,7 @@ export type SysListModel = {
     note?: string;
     // 豁免后缓释权重
     exemptionWeight?: string;
+    crmToolTypenames:string;
   } & BasePageModel;
 
   /** 获取页面初始化查询 POST*/

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

@@ -5,13 +5,13 @@ export type SysListModel = {
     // 计算实例号
     calcIndex?:string;
     // 起始数据日期
-    startDate?:string;
+    sDate?:string;
     // 截止数据日期
     endDate?:string;
     // 年月
     yearMonth?:string;
     //数据日期
-    dataDate?:string;
+    eDate?:string;
     //债项编号
     debtitemNo?:string;
     //合同编号

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

@@ -29,6 +29,8 @@ export type SysListModel = {
     //关联债项编号
     relatedDebtitemNo?:string;
 
+    mitigationProdTypees:string;
+
   } & BasePageModel;
 
   /** 获取页面初始化查询 POST*/

+ 1 - 0
Procedure/frontend/projectb/src/services/rwa/dataquality/NonStandardInvestment.ts

@@ -64,6 +64,7 @@ export type SysListModel = {
     reserveAccountNo?:string;
     // 核心客户号
     coreClientNo?:string;
+    ccy:string;
 
   } & BasePageModel;
 

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

@@ -74,6 +74,8 @@ export type SysListModel = {
     clientName?:string;
     //合格交易者标志代码
     qualifiedTradersFlag?:string;
+    sDate:string;
+    eDate:string;
 
   } & BasePageModel;
 

+ 4 - 0
Procedure/frontend/projectb/src/services/rwa/policybank.ts

@@ -26,6 +26,10 @@ export type PolicyBankModel ={
     //是否用于合格缓释认定
     isSlowreleaseUse:String;
     qualfiedCreditToolName: String;
+    qualfiedCreditToolNames:String;
+    isRiskclassUses:String;
+    isSlowreleaseUses:String;
+    remark:String;
 }
 
 

+ 1 - 1
Procedure/frontend/projectb/src/services/rwa/product/datasupplementary/datasupplementation.ts

@@ -78,7 +78,7 @@ export async function getDataList(body:DataSupplementTaskExampleModel) {
 
 /** 获取页面初始化及条件查询 POST*/
 export async function selectDetailData(body:DataSupplementTaskExampleModel) {
-    return baseFun.request<DataSupplementTaskExampleModel>('/api/product/rwa/datasupplementary/SupplementTemplateDefineAction/selectDetailData.do',{data: body});
+    return baseFun.request<DataSupplementInstancesIntaskModel>('/api/product/rwa/datasupplementary/SupplementTemplateDefineAction/selectDetailData.do',{data: body});
 }
 
 

+ 12 - 1
Procedure/frontend/projectb/src/services/rwa/product/rwa_calc_config_004rwa/stageinformation.ts

@@ -114,4 +114,15 @@ export async function isNotExist(body: StageDefinitionModel) {
   return baseFun.request<any>('/api/product/rwa/rwacalcconfig004rwa/StageConfigAction/isNotExist.do', {
     data: body,
   });
-}
+}
+
+/** 查询阶段上级名称*/
+export async function selectname(stageSuper: string) {
+  return baseFun.request<String>('/api/product/rwa/rwacalcconfig004rwa/StageConfigAction/selectname.do?stageSuper='+stageSuper);
+}
+export async function selectcount(stepId: string) {
+  return baseFun.request<Number>('/api/product/rwa/rwacalcconfig004rwa/StageConfigAction/selectcount.do?stepId='+stepId);
+}
+
+
+

+ 1 - 1
Procedure/frontend/projectb/src/services/rwa/rwa_calc_config_acquisition/rule.ts

@@ -69,7 +69,7 @@ export async function getDataList(body:SysListModel) {
 
 /** 获取页面初始化查询 POST*/
 export async function seleDictCodeName(subjectCode:string) {
-    return baseFun.request<string>('/api/product/rwa/rwacalcconfigacquisition/RuleAction/getDataList.do',{data: subjectCode});
+    return baseFun.request<string>('/api/product/rwa/rwacalcconfigacquisition/RuleAction/seleDictCodeName.do',{params: {subjectCode}});
 }
 
   /** 新建数据 POST*/

+ 6 - 2
Procedure/frontend/projectb/src/services/rwa/rwa_calc_config_dataparam/realestate.ts

@@ -43,6 +43,10 @@ export async function getDataList(body:SysListModel) {
     return baseFun.request<SysListModel[]>('/api/product/rwa/rwacalcconfigdataparam/RealEstateAction/selectDataList.do',{data: body});
   }
 
+  export async function getDataList1() {
+    return baseFun.request<SysListModel[]>('/api/product/rwa/rwacalcconfigdataparam/RealEstateAction/selectDataList1.do',{});
+  }
+
 /** 获取页面初始化查询 POST*/
 export async function seleDictCodeName(subjectCode:string) {
     return baseFun.request<string>('/api/product/rwa/rwacalcconfigdataparam/RealEstateAction/getDataList.do',{data: subjectCode});
@@ -82,12 +86,12 @@ export async function uploadAction(file?: File) {
 }
 
 /** 模板下载 */
-export async function templateUpload(fileNameCode:string) {
+export async function templateUpload(body:any,fileNameCode:string) {
   // return baseFun.request('/api/product/rwa/rwacalcconfigdataparam/RealEstateAction/templateUploadModel.do');
     
   // const resFileName = (  fileName + '.xlsx') as string;
   const url = "/api/product/rwa/rwacalcconfigdataparam/RealEstateAction/templateUploadModel.do?fileNameCode="+fileNameCode;
-  const res = baseFun.download(url,null);
+  const res = baseFun.download(url,body);
 
     // 下载方式二
     //const file =  baseFun.request('/api/product/rwa/rwacalcconfigdataparam/RealEstateAction/templateUploadModel.do',{params:{fileName}});

+ 1 - 0
Procedure/frontend/projectb/src/services/rwa/sovereign.ts

@@ -28,6 +28,7 @@ export type SovereignModel={
     roleStr?: string;//操作列
     editType?: String;//新增,修改标志 
     state ?: String;
+    qualfiedCreditToolTypeNames:String;
 
 }& BasePageModel;