Browse Source

新增
国家主权评级信息维护:合格信用风险缓释工具类型选项;
总账勾稽规则:所属阶段选项;
产品配置的所属阶段,默认输出数据源,所属业务,科目取数规则列表里面:输入数据源,输出数据源选项;
表外项目分类定义:默认输出数据源,所属阶段,表外项目分类认定规则列表的:输入数据源/输出数据源选项
业务配置功能:科目列表查询加上别名
总分勾稽结果:查询勾稽明细修改

zhang_qk 8 months ago
parent
commit
48a447b7f2
16 changed files with 327 additions and 82 deletions
  1. 3 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/SovereigMapper.xml
  2. 4 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/mybatis/RuleListMapper.xml
  3. 9 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/action/InfoListAction.java
  4. 18 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/model/RwaCalcConfOffbalanceprotyperuleModel.java
  5. 67 15
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/mybatis/InfoListMapper.xml
  6. 12 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/service/InfoListService.java
  7. 18 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/model/RwaCalcConfProductrulesModel.java
  8. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/BusinessMapper.xml
  9. 88 26
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/ProductListMapper.xml
  10. 1 1
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/sovereign.tsx
  11. 37 11
      Procedure/frontend/projectb/src/pages/rwa_calc_config_002offbalanceprotype/info_list.tsx
  12. 45 19
      Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx
  13. 9 7
      Procedure/frontend/projectb/src/pages/rwa_data_check/result_list.tsx
  14. 1 1
      Procedure/frontend/projectb/src/pages/rwa_data_check/rule_list.tsx
  15. 9 0
      Procedure/frontend/projectb/src/services/rwa/info_list.ts
  16. 5 0
      Procedure/frontend/projectb/src/services/rwa/product_list.ts

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

@@ -63,6 +63,9 @@
     <update id="updateSovereign" parameterType="com.sundata.admin.nounmanage.model.DictContent">
         update RWA_BDM_OBJ_CONF_SOVEREIGN_LIST set state ='1' where CUST_NAME =#{custName}
     </update>
+    <select id="qualfiedCreditToolTypeName" resultType="com.sundata.admin.nounmanage.model.DictContent">
+        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">

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

@@ -96,5 +96,9 @@
         select OFFOBJECT_NO as id , OFFOBJECT_NAME as text,OFFOBJECT_SUPER as PARENTID from RWA_CALC_CONF_OFFBALANCEPROTYPE
     </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>
+
 
 </mapper>

+ 9 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/action/InfoListAction.java

@@ -34,7 +34,7 @@ public class InfoListAction extends BaseAction {
        System.out.println(offobjectNo);
         InfoListModel funinfo =this.infoListService.queryOne(offobjectNo);
         System.out.println(funinfo);
-        funinfo.setButtonList(this.infoListService.queryButtons(offobjectNo));
+        funinfo.setButtonList(this.infoListService.rules_list(offobjectNo));
       //  return funinfo;
         System.out.println(funinfo);
         return funinfo;
@@ -103,6 +103,14 @@ public class InfoListAction extends BaseAction {
     }
 
 
+    @RequestMapping({"getoffobjectStageId"})
+    @SysLog(funcName="获取根目录选择的阶段信息配置")
+    public void getoffobjectStageId(HttpServletRequest request, HttpServletResponse response, @RequestParam String offobjectNo){
+//        String offobjectNo =data.getOffobjectNo();
+        sendData(response,infoListService.getoffobjectStageId(offobjectNo));
+    }
+
+
 
 
 }

+ 18 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/model/RwaCalcConfOffbalanceprotyperuleModel.java

@@ -16,6 +16,24 @@ public class RwaCalcConfOffbalanceprotyperuleModel {
     private String  ruleGetdata;   //分类规则
     private String  ruleIn;   //输入
     private String  ruleOut;   //输出
+    private String  ruleInName;
+    private String  ruleOutName;
+
+    public String getRuleInName() {
+        return ruleInName;
+    }
+
+    public void setRuleInName(String ruleInName) {
+        this.ruleInName = ruleInName;
+    }
+
+    public String getRuleOutName() {
+        return ruleOutName;
+    }
+
+    public void setRuleOutName(String ruleOutName) {
+        this.ruleOutName = ruleOutName;
+    }
 
     public String getCalcindex() {
         return calcindex;

+ 67 - 15
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/mybatis/InfoListMapper.xml

@@ -55,21 +55,46 @@
         VALUES(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{offobjectNo},#{ruleName},#{ruleNo},#{ruleIndex},#{ruleProductNo},#{ruleGetdata},#{ruleIn},#{ruleOut})
     </insert>
 <select id="rules_list" resultType="com.sundata.product.rwa.rwaCalcConfig002offbalanceprotype.model.RwaCalcConfOffbalanceprotyperuleModel">
-    select CALCINDEX as calcindex,
-    SDATE as sdate,
-    EDATE as edate,
-    TERM as term,
-    DATA_DATE as dataDate,
-    OFFOBJECT_NO as offobjectNo,
-    RULE_NAME as ruleName,
-    RULE_NO as ruleNo,
-    RULE_INDEX as ruleIndex,
-    RULE_PRODUCT_NO as ruleProductNo,
-    RULE_GETDATA as ruleGetdata,
-    RULE_IN as ruleIn,
-    RULE_OUT as ruleOut
-    from  RWA_CALC_CONF_OFFBALANCEPROTYPERULE
-    where OFFOBJECT_NO = #{offobjectNo} or( OFFOBJECT_NO is null and substr(RULE_NO,5,length(#{offobjectNo})) =#{offobjectNo})
+    select
+    T1.CALCINDEX as calcindex,
+    T1.SDATE as sdate,
+    T1.EDATE as edate,
+    T1.TERM as term,
+    T1.DATA_DATE as dataDate,
+    T1.OFFOBJECT_NO as offobjectNo,
+    T1.RULE_NAME as ruleName,
+    T1.RULE_NO as ruleNo,
+    T1.RULE_INDEX as ruleIndex,
+    T1.RULE_PRODUCT_NO as ruleProductNo,
+    T1.RULE_GETDATA as ruleGetdata,
+    T1.RULE_IN as ruleIn,
+    T2.tabname AS ruleInName,
+    T1.RULE_OUT as ruleOut,
+    T3.tabname AS ruleOutName
+    from  RWA_CALC_CONF_OFFBALANCEPROTYPERULE T1
+    LEFT JOIN (
+    select t1.RULE_IN as RULE_IN,t1.RULE_NO as RULE_NO,t3.tabname as tabname
+    from RWA_CALC_CONF_OFFBALANCEPROTYPERULE t1
+    left join RWA_CALC_CONF_STAGEIN2OUT t2
+    on t1.RULE_IN =t2.STEP_ID
+    left join SYS_SQLEDIT_DEF_DATACLASS t3
+    on t2.STEP_IN = t3.dataclasscode
+    where t1.OFFOBJECT_NO = #{offobjectNo}
+    )T2
+    ON T1.RULE_IN =T2.RULE_IN
+    AND T1.RULE_NO =T2.RULE_NO
+    LEFT JOIN (
+    select t1.RULE_OUT as RULE_OUT,t1.RULE_NO as RULE_NO,t3.tabname as tabname
+    from RWA_CALC_CONF_OFFBALANCEPROTYPERULE t1
+    left join RWA_CALC_CONF_STAGEIN2OUT t2
+    on t1.RULE_OUT =t2.STEP_ID
+    left join SYS_SQLEDIT_DEF_DATACLASS t3
+    on t2.STEP_IN = t3.dataclasscode
+    where t1.OFFOBJECT_NO = #{offobjectNo}
+    )T3
+    ON T1.RULE_OUT =T3.RULE_OUT
+    AND T1.RULE_NO =T3.RULE_NO
+    where T1.OFFOBJECT_NO = #{offobjectNo} or( T1.OFFOBJECT_NO is null and substr(T1.RULE_NO,5,length(#{offobjectNo})) =#{offobjectNo})
 </select>
 
     <delete id="info_deleteone" parameterType="com.sundata.product.rwa.rwaCalcConfig002offbalanceprotype.model.InfoListModel">
@@ -126,5 +151,32 @@
             </where>
     </update>
 
+    <select id="offobjectStageId" resultType="com.sundata.admin.nounmanage.model.DictContent">
+        select STAGE_ID as id , STAGE_NAME as text from rwa_calc_conf_stage
+    </select>
+
+    <select id="selectdefaultOut1" 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
+        <if test="defaultOut !='' and defaultOut !=null" >
+            where 1=1 and t1.STEP_STAGE_ID = #{defaultOut}
+        </if>
+        <if test="defaultOut == null  or defaultOut ==''">
+            where 1=2
+        </if>
+    </select>
+
+    <select id="ruleIn1" 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
+        <if test="defaultOut !='' and defaultOut !=null" >
+            where 1=1 and t1.STEP_STAGE_ID = #{defaultOut}
+        </if>
+    </select>
+
+
+
 
 </mapper>

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

@@ -80,6 +80,18 @@ public  class InfoListService extends BaseService<InfoListModel> implements Comm
     public void deleteFunc(String[] offobjectNo){
         infoListMapper.deleteFunc(offobjectNo);
     }
+    public String getoffobjectStageId(String offobjectNo){
+      String res =  DBExecutor.doQuery("    select  coalesce(T4.OFFOBJECT_STAGE_ID,t3.OFFOBJECT_STAGE_ID,t2.OFFOBJECT_STAGE_ID,t1.OFFOBJECT_STAGE_ID) as res\n" +
+              "    from  RWA_CALC_CONF_OFFBALANCEPROTYPE T1\n" +
+              "    left join RWA_CALC_CONF_OFFBALANCEPROTYPE T2\n" +
+              "    on t1.offobject_super = t2.offobject_no\n" +
+              "    left join RWA_CALC_CONF_OFFBALANCEPROTYPE t3\n" +
+              "    on t2.offobject_super = t3.offobject_no\n" +
+              "    left join RWA_CALC_CONF_OFFBALANCEPROTYPE t4\n" +
+              "    on t3.offobject_super = t4.offobject_no\n" +
+              "    where t1.offobject_no = '"+offobjectNo+"'");
+      return  res;
+    }
     public String jiaoyan(String offobjectNo){
         String res =DBExecutor.doQuery("select count(OFFOBJECT_NO) from RWA_CALC_CONF_OFFBALANCEPROTYPE where OFFOBJECT_NO='"+offobjectNo+"'");
         return res;

+ 18 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/model/RwaCalcConfProductrulesModel.java

@@ -17,6 +17,24 @@ public class RwaCalcConfProductrulesModel {
     private String  ruleIn;   //输入
     private String  ruleOut;   //输出
     private String  ruleGetdata;   //取数规则
+    private String  ruleInName;
+    private String  ruleOutName;
+
+    public String getRuleInName() {
+        return ruleInName;
+    }
+
+    public void setRuleInName(String ruleInName) {
+        this.ruleInName = ruleInName;
+    }
+
+    public String getRuleOutName() {
+        return ruleOutName;
+    }
+
+    public void setRuleOutName(String ruleOutName) {
+        this.ruleOutName = ruleOutName;
+    }
 
     public String getCalcindex() {
         return calcindex;

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

@@ -151,7 +151,7 @@
         <where>
             T2.PRODUCT_BUSSINESS_CODE = #{productBussinessCode}
         </where>
-        ORDER BY PRODUCT_NO ASC
+        ORDER BY T1.PRODUCT_NO ASC
     </select>
 
 

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

@@ -45,34 +45,47 @@
 
     <select id="productlist1" resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.RwaCalcConfProductrulesModel">
         select
-              CALCINDEX as calcindex,
-              DATA_DATE as dataDate,
-              DATA_TYPE as dataType,
-              EDATE as edate,
-              PRODUCT_NO as productNo,
-              RULE_CODE as ruleCode,
-              RULE_GETDATA as ruleGetdata,
-              RULE_IN as ruleIn,
-              RULE_INDEX as ruleIndex,
-              RULE_NAME as ruleName,
-              RULE_OUT as ruleOut,
-              RULE_SUBJECT as ruleSubject,
-              SDATE as sdate,
-              TERM as term
+        T1.CALCINDEX as calcindex,
+        T1.DATA_DATE as dataDate,
+        T1.DATA_TYPE as dataType,
+        T1.EDATE as edate,
+        T1.PRODUCT_NO as productNo,
+        T1.RULE_CODE as ruleCode,
+        T1.RULE_GETDATA as ruleGetdata,
+        T2.RULE_IN as ruleIn,
+        T2.tabname AS ruleInName,
+        T1.RULE_INDEX as ruleIndex,
+        T1.RULE_NAME as ruleName,
+        T3.RULE_OUT as ruleOut,
+        T3.tabname AS ruleOutName,
+        T1.RULE_SUBJECT as ruleSubject,
+        T1.SDATE as sdate,
+        T1.TERM as term
         from
-             RWA_CALC_CONF_PRODUCTRULES
+        RWA_CALC_CONF_PRODUCTRULES T1
+        left join (
+        select t1.RULE_IN as RULE_IN,t1.RULE_CODE ,t3.tabname as tabname from RWA_CALC_CONF_PRODUCTRULES t1
+        left join RWA_CALC_CONF_STAGEIN2OUT t2
+        on t1.RULE_IN =t2.STEP_ID
+        left join SYS_SQLEDIT_DEF_DATACLASS t3
+        on t2.STEP_IN = t3.dataclasscode
+        where t1.PRODUCT_NO = #{productNo}
+        ) t2
+         on t1.RULE_CODE =t2.RULE_CODE
+        and t1.RULE_IN = t2.RULE_IN
+        left join
+        (
+        select t1.RULE_OUT as RULE_OUT,t1.RULE_CODE,t3.tabname as tabname from RWA_CALC_CONF_PRODUCTRULES t1
+        left join RWA_CALC_CONF_STAGEIN2OUT t2
+        on t1.RULE_OUT =t2.STEP_ID
+        left join SYS_SQLEDIT_DEF_DATACLASS t3
+        on t2.STEP_OUT = t3.dataclasscode
+        where t1.PRODUCT_NO = #{productNo}
+        ) t3
+         on  t1.RULE_CODE =t3.RULE_CODE
+        and t1.RULE_OUT = t3.RULE_OUT
         where 1=1
-    and (PRODUCT_NO = #{productNo} or  (PRODUCT_NO is null and  RULE_CODE is not null))
-
-
-
-<!--        <if test="ruleCode !='' and ruleCode !=null">-->
-<!--            and (PRODUCT_NO =#{productNo} or RULE_CODE in-->
-<!--            <foreach collection="ruleCode" item="item" index="index"  open="(" close=")">-->
-<!--                #{item}-->
-<!--            </foreach>-->
-<!--            )-->
-<!--        </if>-->
+        and (t1.PRODUCT_NO = #{productNo} or  (t1.PRODUCT_NO is null and  t1.RULE_CODE is not null))
     </select>
 
     <select id="product_modifyone" resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.RwaCalcConfProductrulesModel">
@@ -206,6 +219,10 @@
             </if>
         </where>
     </select>
+    
+    <select id="BUSSINESS_CODE"  resultType="com.sundata.admin.nounmanage.model.DictContent">
+        select BUSSINESS_CODE AS id,BUSSINESS_NAME AS text FROM RWA_CALC_CONF_BUSSINESS
+    </select>
 
 
     <select id="productFromSystems" resultType="com.sundata.admin.nounmanage.model.DictContent">
@@ -219,4 +236,49 @@
         and t2.NOUNITEM ='PRODUCTFROMSYSTEM' ) a
     </select>
 
+    <select id="productStageId" resultType="com.sundata.admin.nounmanage.model.DictContent">
+        select STAGE_ID as id , STAGE_NAME as text from rwa_calc_conf_stage
+    </select>
+
+    <select id="selectdefaultOut" 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
+        <if test="defaultOut !='' and defaultOut !=null" >
+            where 1=1 and t1.STEP_STAGE_ID = #{defaultOut}
+    </if>
+        <if test="defaultOut == null  or defaultOut ==''">
+            where 1=2
+        </if>
+    </select>
+
+
+    <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
+        <if test="defaultOut !='' and defaultOut !=null" >
+            where 1=1 and t1.STEP_STAGE_ID = #{defaultOut}
+        </if>
+    </select>
+
+<!--    <select id="ruleIn" resultType="com.sundata.admin.nounmanage.model.DictContent">-->
+<!--        select t1.RULE_IN as id,t3.tabname as text from RWA_CALC_CONF_PRODUCTRULES t1-->
+<!--        left join RWA_CALC_CONF_STAGEIN2OUT t2-->
+<!--        on t1.RULE_IN =t2.STEP_ID-->
+<!--        left join SYS_SQLEDIT_DEF_DATACLASS t3-->
+<!--        on t2.STEP_IN = t3.dataclasscode-->
+<!--        where t1.PRODUCT_NO = #{productNo}-->
+<!--    </select>-->
+
+<!--    <select id="ruleOut" resultType="com.sundata.admin.nounmanage.model.DictContent">-->
+<!--        select t1.RULE_OUT as id,t3.tabname as text from RWA_CALC_CONF_PRODUCTRULES t1-->
+<!--        left join RWA_CALC_CONF_STAGEIN2OUT t2-->
+<!--        on t1.RULE_OUT =t2.STEP_ID-->
+<!--        left join SYS_SQLEDIT_DEF_DATACLASS t3-->
+<!--        on t2.STEP_OUT = t3.dataclasscode-->
+<!--        where t1.PRODUCT_NO = #{productNo}-->
+<!--    </select>-->
+
+
 </mapper>

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

@@ -378,7 +378,7 @@ return (
          }}]} /> 
       <SDFormDict name="sovereignRating" label="主权评级(标普)"   dictKey="sovereignRating"  />
       <SDFormText name="crmFirstLevel" label="缓释分类"   />
-      <SDFormText name="qualfiedCreditToolTypeName" label="合格信用风险缓释工具类型"   />
+      <SDFormDict name="qualfiedCreditToolTypeName" label="合格信用风险缓释工具类型"  dictKey='@qualfiedCreditToolTypeName'  />
       <SDFormText name="exemptionWeight" label="缓释风险权重%"  rules={ [{validator: validateFun.double,message:"请输入数字类型" }
       ,{pattern :RegExp(`^\\d+\\.{${0},${1}}\\d{${0},${4}}$`),message:"小数位超位" }]}
       oldValue="%"></SDFormText>   

+ 37 - 11
Procedure/frontend/projectb/src/pages/rwa_calc_config_002offbalanceprotype/info_list.tsx

@@ -3,7 +3,7 @@ import { Button, Checkbox, Dropdown, Form, FormInstance, Input, Menu, Space, Too
 import { ActionType, EditableFormInstance, ProColumns, ProFormInstance, ProTable } from '@ant-design/pro-components';
 import { baseFun, ContextMenu, DictTree, EditType, SDAreaTtile, SDButton, SDForm, SDFormDict, SDFormText, SDLayout, SDModalForm, SDOperate, SDPage, SDSubmitButton, SDTree } from '@sundata/ui-frame';
 import { SysFunButtonInfoModel } from '@/services/authMng/funcMng';
-import {  getDetail1, getFunTree1,save, rules_addone, rules_list, rwaCalcConfOffbalanceprotypeModel, rwaCalcConfOffbalanceprotyperuleModel, shunxu, save2, rules_modifyone, rules_deleteone, info_deleteone, jiaoyan, deleteFunc } from '@/services/rwa/info_list';
+import {  getDetail1, getFunTree1,save, rules_addone, rules_list, rwaCalcConfOffbalanceprotypeModel, rwaCalcConfOffbalanceprotyperuleModel, shunxu, save2, rules_modifyone, rules_deleteone, info_deleteone, jiaoyan, deleteFunc, getoffobjectStageId } from '@/services/rwa/info_list';
 import { DataNode } from 'antd/lib/tree';
 import { MenuInfo } from 'rc-menu/lib/interface';
 import { CheckSquareOutlined, CloseSquareTwoTone, DownOutlined, WomanOutlined } from '@ant-design/icons';
@@ -19,6 +19,7 @@ type aaa ={
   ismini ?:any;
   offobjectNo ?:any;
   offobjectSuper ?:any;
+  offobjectStageId :any;
 }
 const infolist: React.FC<aaa> = (prop :aaa) => {
   const [selectedNode, setSelectedNode] = useState(null);
@@ -50,6 +51,7 @@ const [state1,setState1] = useState<String>();
 const [dataSource, setDataSource] = useState<any>() ;
 
 const [offobjec,setOffobjec]=useState<boolean>(false);
+const [defaultOut,setDefaultOut]= useState<any>() ;
 
 
   const [mockData, setMockData] = useState<rwaCalcConfOffbalanceprotyperuleModel[]>([]);
@@ -61,10 +63,11 @@ const [offobjec,setOffobjec]=useState<boolean>(false);
     console.log(treeData1);
 return data;
   });
+  
       formInit(data[0].value);
     });
     // eslint-disable-next-line react-hooks/exhaustive-deps
-  }, []);
+  }, [setDefaultOut]);
 
 
   const [selectedKeys, setSelectedKeys] = useState([]);
@@ -80,6 +83,8 @@ return data;
 
   const formInit = async (offobjectNo : any) => {
     const data1 = await getDetail1(offobjectNo);
+    const getoffobjectStage = await getoffobjectStageId(offobjectNo);
+    setDefaultOut(getoffobjectStage);
     if (!data1.buttonList) data1.buttonList = [];
     let i = 0;
     data1.buttonList = data1.buttonList.map((item:any) => {
@@ -311,13 +316,24 @@ const items: any[] = [
     
     { title : '输入',
     dataIndex : 'ruleIn',
+    hideInTable:true,
+    width : 150
+    },
+    { title : '输入',
+    dataIndex : 'ruleInName',
     width : 150
     },
     
     { title : '输出',
     dataIndex : 'ruleOut',
+    hideInTable:true,
     width : 150
-    }, {
+    }, 
+    { title : '输出',
+    dataIndex : 'ruleOutName',
+    width : 150
+    }, 
+    {
             title: '操作',
             dataIndex: 'operate',
             valueType: 'option',
@@ -353,12 +369,14 @@ const items: any[] = [
   ]
     const handleSave =async(formData:rwaCalcConfOffbalanceprotypeModel)=>{
     // formData.buttonList=mockData
-    if(mockData.length<=0){
+    if(mockData.length<=0 && formData.ismini=='1'){
       baseFun.warning("表外项目分类认定规则列表中至少有一条记录");
     }else{
       if(editType=='update'){
         await save({...formData})
+        if(formData.ismini=='1'){
         save1(formData.offobjectNo);
+        }
         refreshTree().then((data) => {
         formInit(data[0].value);
       });
@@ -372,7 +390,9 @@ const items: any[] = [
       formRef.current?.setFieldValue('offobjectNo',null)
     }else{
       await save({...formData})
+      if(formData.ismini=='1'){
       save1(formData.offobjectNo);
+      }
       refreshTree().then((data) => {
       formInit(data[0].value);
     });
@@ -414,6 +434,8 @@ const setRuleNoAdd = () => {
       const funccode = node[0] as string;
       // 右键菜单点击新增按钮后,再点击树节点时,需要重置editType
       setEditType('update');
+      const getoffobjectStage = await getoffobjectStageId(funccode);
+      setDefaultOut(getoffobjectStage);
       // formRef.current?.resetFields(); TODO 尝试配合request解决表单内容不刷新问题
       formRef.current?.setFieldsValue(await  formInit(funccode));
      
@@ -433,7 +455,7 @@ const setRuleNoAdd = () => {
           <DirectoryTree treeData={treeData1} onSelect={onNodeClick} checkable showLine={true} onCheck={checkedSelectTreeKeys} autoExpandParent={true}  
     //  onCheck={handleTreeCheck}
       //checkedKeys={selectedKeys}
-
+      
 // MenuProps={{
 //   selectedKeys: selectedKeys,
 // }}
@@ -475,7 +497,7 @@ const setRuleNoAdd = () => {
          <SDForm
     formRef={formRef}
      editType={editType}
-     initialValues={{state:'1',ismini:prop.ismini,offobjectNo:prop.offobjectNo}}
+     initialValues={{state:'1',ismini:prop.ismini,offobjectNo:prop.offobjectNo,offobjectStageId:prop.offobjectStageId}}
      onValuesChange={(changedValues,value)=>{
       if(value.ismini!='' && value.ismini!=undefined){
         if(value.ismini=='0'){
@@ -486,6 +508,10 @@ const setRuleNoAdd = () => {
           setVisible2(true);
         }
       }
+      if(value.offobjectStageId!='' &&value.offobjectStageId!=undefined ){
+        setDefaultOut(value.offobjectStageId)
+      }
+      //setDefaultOut(value.offobjectStageId)
       setState1(value.offobjectNo)
      }}
   >
@@ -493,10 +519,10 @@ const setRuleNoAdd = () => {
 <SDFormText name="offobjectName" label="表外项目名称" required />
 <SDFormText name="offobjectSuper" label="上级表外项目代码" required readonlyCond='both' />
 <SDFormText name="offobjectSuperName" label="上级表外项目名称" required readonlyCond='both' />
-<SDFormDict name="ismini" label="是否最细一级" required  dictKey='YESORNO'/>
+<SDFormDict name="ismini"  required  dictKey='YESORNO' label="是否最细一级"/>
 {ismini1&&(<SDFormText name="ccf" label="转换系数(%)" required={ismini1} />)}
-<SDFormText name="defaultOut" label="默认输出数据源" required />
-{offobjec &&<SDFormText name="offobjectStageId" label="所属阶段" required ={offobjec}/>}
+<SDFormDict name="defaultOut" label="默认输出数据源" required dictKey='@selectdefaultOut1' dictParam={`{"defaultOut":"${defaultOut}"}`}  />
+{offobjec &&<SDFormDict name="offobjectStageId" label="所属阶段" required ={offobjec} dictKey='@offobjectStageId'/>}
 <SDFormText name="offobjectIndex" label="认定顺序号" required />
 <SDFormText name="yesorno" label="状态"  readonlyCond='both'/>
   </SDForm>
@@ -571,8 +597,8 @@ const setRuleNoAdd = () => {
             }
          }}]} />
 <SDFormDict name="ruleProductNo"   label="产品名称"  dictKey='@ruleProductNo' />
-<SDFormText name="ruleIn"   label="输入数据源 "  />
-<SDFormText name="ruleOut"   label="输出数据源"  />
+<SDFormDict name="ruleIn"   label="输入数据源 " dictKey='@ruleIn1'   dictParam={`{"defaultOut":"${defaultOut}"}`}  />
+<SDFormDict name="ruleOut"   label="输出数据源" dictKey='@selectdefaultOut1'   dictParam={`{"defaultOut":"${defaultOut}"}`} />
 <SDFormText name="ruleIndex"   label="规则序号"  />
 <SDFormText name="ruleGetdata"   label="表外项目分类认定规则"  />
   </SDForm>

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

@@ -33,6 +33,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         const [dataSource, setDataSource] = useState<any>() ;
         const [currentRow, setCurrentRow] = useState<productListModel>();
         const [currentRow1, setCurrentRow1] = useState<string>();
+        const [defaultOut,setDefaultOut]=useState<String>();
     var formDataList = new Array<productListModel>;
     var formDataList1 = new Array<rwaCalcConfProductrulesModel>;
     var formDataList2 = new Array<rwaCalcConfOffbalanceprotyperuleModel>;
@@ -43,6 +44,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     const [mockData1, setMockData1] = useState<rwaCalcConfOffbalanceprotyperuleModel[]>([]);
     const [editRuleNo, setEditRuleNo] = useState<any>();
     const [riskMockData, setRiskMockData] = useState<riskListModel[]>([]);
+    const [ruleCode,setRuleCode]= useState<any>();
     const closeAndRefresh = ()=>{
         setVisible(false);
         actionRef.current?.reloadAndRest?.();
@@ -87,20 +89,20 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         const inst2 =async(formData:rwaCalcConfProductrulesModel)=>{
            const res = await product_addone2(formData);
           // ,新增修改不是一个页面吗 是一个页面,参数不一样 datasource设的一样吧 
-          if (res=='新增成功') {
-            if(editType != 'update'){
-              const sd = await product_querylist(null);
-              setEditType1('update');
-              setMockData(sd)
-            }else{
+       //   if (res=='新增成功') {
+            // if(editType != 'update'){
+            //   const sd = await product_querylist(null);
+            //   setEditType1('update');
+            //   setMockData(sd)
+            // }else{
                const sd = await product_querylist(state1);
                setEditType1('update');
                setMockData(sd)
              
-            }
+            // }
             actionRef1.current?.reloadAndRest?.();
             setVisible1(false);
-          }
+        //  }
           
              
         }
@@ -137,8 +139,9 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
       //产品参数页面点修改的科目取数规则列表的查询
       const data2 =async(record:any)=>{
         console.log(record);
-        const sd = await product_modifyone2(record);
+        const sd = await product_querylist(record);
         setState1(record);
+        setRuleCode(record.ruleCode)
          console.log(sd);
          formDataList1 =[...sd];
        // count1(formDataList1);
@@ -160,6 +163,10 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     const data = await selectRiskList(record.productNo);
     setRiskMockData(data);
   }
+
+  useEffect(() => {
+    
+  }, [setDefaultOut]);
       
     const columns: ProColumns<productListModel>[] = [
         { title : '计算实例号',
@@ -269,6 +276,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
                 setVisible(true);
                 setCurrentRow(record);
                 setEditType('update')
+                setDefaultOut(record.productStageId)
                  } }
               >
                 修改
@@ -394,11 +402,25 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         
         { title : '输入数据源',
         dataIndex : 'ruleIn',
+        hideInTable:true,
+       // request:()=>fetchDict({ dictKey: '@ruleIn',dictParam:`{"ruleCode":"${ruleCode}"},{"productNo":"${state1}"}` }),
+        width : 150
+        },
+        { title : '输入数据源',
+        dataIndex : 'ruleInName',
+       // request:()=>fetchDict({ dictKey: '@ruleIn',dictParam:`{"ruleCode":"${ruleCode}"},{"productNo":"${state1}"}` }),
         width : 150
         },
         
         { title : '输出数据源',
         dataIndex : 'ruleOut',
+        hideInTable:true,
+       // request:()=>fetchDict({ dictKey: '@ruleOut',dictParam:`{"ruleCode":"${ruleCode}"},{"productNo":"${state1}"}` }),
+        width : 150
+        },
+        { title : '输出数据源',
+        dataIndex : 'ruleOutName',
+       // request:()=>fetchDict({ dictKey: '@ruleOut',dictParam:`{"ruleCode":"${ruleCode}"},{"productNo":"${state1}"}` }),
         width : 150
         },
         
@@ -643,7 +665,7 @@ const setRuleNoAdd = () => {
             setVisible(true);
             setEditType('create')
             setState("1")
-          //setMockData([]);
+          setMockData([]);
           }}
         >
           新增
@@ -662,12 +684,16 @@ const setRuleNoAdd = () => {
       setDetailVisible={setVisible}   
        />
        {visible &&(
-        <SDModalForm title={''} visible={visible} editType={editType} onVisibleChange={() => {  setVisible(false);  }} 
+        <SDModalForm title={''} visible={visible} editType={editType} onVisibleChange={() => {  setVisible(false);   }} 
     // footer={<span style={editType =='display'?{display:'none'}:{}}>[<SDSubmitButton  editType={editType}   formRef={formRef1} successMessage=""  doSubmit={inst} >保存</SDSubmitButton>,
     // <SDButton     successMessage="" onClick={()=>closeAndRefresh()} >关闭</SDButton>]</span>}
     footer={[editType.toString== setEditType?[]:getButtons()]}
     formRef={formRef1} 
-    onValuesChange={(changedValues,Values)=>{setState1(Values.productNo)}}
+    onValuesChange={(changedValues,Values)=>{setState1(Values.productNo)
+    if(Values.productStageId!=''||Values.productStageId!=undefined){
+      setDefaultOut(Values.productStageId);
+    }
+    }}
     >
         <span style={{display:'none'}}>
     <SDFormText name="calcindex"   label="计算实例号"  />
@@ -679,11 +705,11 @@ const setRuleNoAdd = () => {
     <SDFormText name="productNo"   label="产品代码"  rules={[{max:20, message:'名称长度不能超过20位'}]} required/>
     <SDFormText name="productName"   label="产品名称"  rules={[{max:100, message:'名称长度不能超过50个汉字'}]} required/>
     <SDFormDict name="productType"   label="产品大类"  required dictKey='PRODUCT_TYPE'/>
-    <SDFormText name="productIndex"   label="产品序号"  />
-    <SDFormDict name="productStageId"   label="所属阶段"  />
+    <SDFormText name="productIndex"   label="产品序号" />
+    <SDFormDict name="productStageId"   label="所属阶段"  dictKey ='@productStageId' />
     <SDFormDict name="productFromSystem"   label="来源系统"  multiple={true} dictKey='PRODUCTFROMSYSTEM' required/>
-    <SDFormDict name="defaultOut"   label="默认输出数据源"  />
-    <SDFormDict name="productBussinessCode"   label="所属业务"  />
+    <SDFormDict name="defaultOut"   label="默认输出数据源"  dictKey='@selectdefaultOut'   dictParam={`{"defaultOut":"${defaultOut}"}`}  />
+    <SDFormDict name="productBussinessCode"   label="所属业务"  dictKey='@BUSSINESS_CODE' />
     <SDFormText name="defaultGetdatarule"   label="默认取数逻辑"  />
 
       <SDAreaTtile title='科目取数规则列表' />
@@ -750,9 +776,9 @@ const setRuleNoAdd = () => {
           <SDFormText name="ruleCode"   label="规则编号"   readonlyCond ='update'/>
           <SDFormText name="ruleName"   label="规则说明"  />
           <SDFormDict name="dataType"   label="数据类型"  dictKey='DATA_TYPE' />
-          <SDFormText name="ruleSubject"   label="对应科目"  />
-          <SDFormText name="ruleIn"   label="输入"  />
-          <SDFormText name="ruleOut"   label="输出"  />
+          <SDFormDict name="ruleSubject"   label="对应科目"  onlyLeafCheck={true}  />
+          <SDFormDict name="ruleIn"   label="输入数据源"  dictKey='@ruleIn'   dictParam={`{"defaultOut":"${defaultOut}"}`} />
+          <SDFormDict name="ruleOut"   label="输出数据源"  dictKey='@selectdefaultOut'   dictParam={`{"defaultOut":"${defaultOut}"}`} />
           <SDFormText name="ruleIndex"   label="规则序号"  />
           <SDFormText name="ruleGetdata"   label="取数规则" type='textarea'  />
           </SDForm>

+ 9 - 7
Procedure/frontend/projectb/src/pages/rwa_data_check/result_list.tsx

@@ -35,6 +35,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
     const subjcode = useRef<any>();
 
     const trem = useRef<any>();
+    const term = useRef<any>();
       /** 登录后初始化的前台全局变量 */
       const { initialState } = useModel('@@initialState');
       const workdate = initialState?.workDate;
@@ -53,7 +54,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
         return <div style={{background :'red'}}>{record}</div> ; // 返回红色
         }
       };
-      const lastMonthDate = moment().subtract(1, 'months').startOf('month');
+
     const columns: ProColumns<resultListModel>[] = [
         { title : '数据期次',
         dataIndex : 'term',
@@ -153,6 +154,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                 setVisible(true);
                 subjcode.current=record.subjcode; 
                 trem.current = record.term;
+                term.current = record.term;
                 setEditType('update')
                  } }
               >
@@ -231,7 +233,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"DiscountTable",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                           },"coding")
                       )
                       
@@ -245,7 +247,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"OnCreditCard",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                           },"coding")
                       )
                       
@@ -259,7 +261,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"OffCreditCard",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                           },"coding")
                       )
                       
@@ -273,7 +275,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"InterbankDepositOrLendingTable",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                           },"coding")
                       )
                       
@@ -287,7 +289,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"BondInvestment",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                           },"coding")
                       )
                       
@@ -301,7 +303,7 @@ const resultlist: React.FC<aaa>= (prop : aaa) => {
                               key: "scbaseinfo",
                               prodCode:"NonStandardInvestment",
                               openType:"child",
-                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',trem:trem.current},
+                              initParams:{editType:'display',subjectNumber:subjcode.current,search:'0',term:trem.current},
                           },"coding")
                       )
                       

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

@@ -337,7 +337,7 @@ width : 150
 <SDFormDict name="negativeRiskType"   label="负差异风险暴露分类"  dictKey='@positiveRiskType'/>
 <SDFormDict name="positiveOffProjectType"   label="正差异表外项目分类"  dictKey='@positiveOffProjectType' required={positiveOffProjectType}/>
 <SDFormDict name="negativeOffProjectType"   label="负差异表外项目分类" dictKey='@positiveOffProjectType'   required={positiveOffProjectType}/>
-<SDFormDict name="stageinId"   label="所属阶段"  />
+<SDFormDict name="stageinId"   label="所属阶段"  dictKey='@stageinId'/>
 <SDFormText name="subjectSql"   label="总账取数规则" type='textarea' />
 <SDFormText name="productSql"   label="勾稽明细取数规则"  type='textarea' />
 <div style={{display:"none"}}>

+ 9 - 0
Procedure/frontend/projectb/src/services/rwa/info_list.ts

@@ -69,6 +69,8 @@ ismini : string;
 ccf : number;
 offobjectSuperName: string;
 yesorno :string;
+ruleInName:string
+ruleOutName:string;
 }& BaseModel;
 
 
@@ -159,4 +161,11 @@ export async function rules_modifyone(ruleNo:String){
   ;
 }
 
+export async function getoffobjectStageId(offobjectNo:string){
+  return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/getoffobjectStageId',{
+     params:{offobjectNo}
+  })
+  ;
+}
+
 

+ 5 - 0
Procedure/frontend/projectb/src/services/rwa/product_list.ts

@@ -63,6 +63,9 @@ ruleOut : String;
 //取数规则
 ruleGetdata : String;
 
+ruleInName :String;
+ruleOutNmae : String;
+
 }
 
 export type rwaCalcConfOffbalanceprotyperuleModel={
@@ -230,3 +233,5 @@ export async function selectRiskList(productNo:String){
 }
 
 
+
+