Преглед изворни кода

后端更新导出配置,前端增加对应的校验规则和字典

zhang_qk пре 4 месеци
родитељ
комит
c1ba74de9a
34 измењених фајлова са 479 додато и 172 уклоњено
  1. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FaGlBalanceSheetAction.java
  2. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcCommitmentAction.java
  3. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcLoanAction.java
  4. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FcOffSheetAction.java
  5. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/FfRepoAction.java
  6. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/GovFinancialAssetCompAction.java
  7. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/ItItfRateAction.java
  8. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/PolicyBankAction.java
  9. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/action/SovereignAction.java
  10. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/model/FcLoanModel.java
  11. 18 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/model/ItItfRateModel.java
  12. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcCommitmentMapper.xml
  13. 5 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/FcLoanMapper.xml
  14. 13 11
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/ItItfRateMapper.xml
  15. 15 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/action/ResultListAction.java
  16. 2 2
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/mybatis/DiffconfigListMapper.xml
  17. 14 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/mybatis/ResultListMapper.xml
  18. 55 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/service/ResultListService.java
  19. 6 12
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/action/InfoListAction.java
  20. 1 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/mapper/InfoListMapper.java
  21. 9 0
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/mybatis/InfoListMapper.xml
  22. 2 15
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwaCalcConfig002offbalanceprotype/service/InfoListService.java
  23. 8 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/action/ProductListAction.java
  24. 1 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mapper/ProductListMapper.java
  25. 19 7
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/model/ProductListModel.java
  26. 43 20
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/mybatis/ProductListMapper.xml
  27. 6 1
      Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/service/ProductListService.java
  28. 40 6
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcCommitment.tsx
  29. 62 28
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcLoan.tsx
  30. 7 0
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/fcOffSheet.tsx
  31. 15 0
      Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/itItfRate.tsx
  32. 86 40
      Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx
  33. 14 6
      Procedure/frontend/projectb/src/pages/rwa_data_check/rule_list.tsx
  34. 19 9
      Procedure/frontend/projectb/src/services/rwa/info_list.ts

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

@@ -35,6 +35,6 @@ public class FaGlBalanceSheetAction extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, faGlBalanceSheetService.exportExcelModel(fileName,response,FaGlBalanceSheetModelDemoFr,fileNameModel));
+         faGlBalanceSheetService.exportExcelModel(fileName,response,FaGlBalanceSheetModelDemoFr,fileNameModel);
     }
 }

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

@@ -59,7 +59,7 @@ public class FcCommitmentAction extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, fcCommitmentService.exportExcelModel(fileName,response,FcCommitmentDemoFr,fileNameModel));
+        fcCommitmentService.exportExcelModel(fileName,response,FcCommitmentDemoFr,fileNameModel);
     }
 
 }

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

@@ -48,7 +48,7 @@ public class FcLoanAction  extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, fcLoanService.exportExcelModel(fileName,response,fcLoanModelDemoFr,fileNameModel));
+         fcLoanService.exportExcelModel(fileName,response,fcLoanModelDemoFr,fileNameModel);
     }
 
 }

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

@@ -39,6 +39,6 @@ public class FcOffSheetAction extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, fcOffSheetService.exportExcelModel(fileName,response,fcOffSheetModelDemoFr,fileNameModel));
+         fcOffSheetService.exportExcelModel(fileName,response,fcOffSheetModelDemoFr,fileNameModel);
     }
 }

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

@@ -41,6 +41,6 @@ public class FfRepoAction extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, ffRepoService.exportExcelModel(fileName,response,ffRepoModeltsDemoFr,fileNameModel));
+         ffRepoService.exportExcelModel(fileName,response,ffRepoModeltsDemoFr,fileNameModel);
     }
 }

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

@@ -61,7 +61,7 @@ public class GovFinancialAssetCompAction  extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, govFinancialAssetCompService.exportExcelModel(fileName,response,GovFinancialAssetCompModelDemo,fileNameModel));
+         govFinancialAssetCompService.exportExcelModel(fileName,response,GovFinancialAssetCompModelDemo,fileNameModel);
     }
 
     @RequestMapping("/importExcelModel")

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

@@ -36,6 +36,6 @@ public class ItItfRateAction extends BaseAction {
         response.setContentType("text/html; charset=UTF-8");
         String fileNameModel=fileName+"Model";
         // 更新数据前行
-        sendData(response, ItItfRateService.exportExcelModel(fileName,response,ItItfRateModelDemoFr,fileNameModel));
+        ItItfRateService.exportExcelModel(fileName,response,ItItfRateModelDemoFr,fileNameModel);
     }
 }

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

@@ -71,7 +71,7 @@ public class PolicyBankAction extends BaseAction {
         String fileNameModel=fileName+"Model";
 
         // 更新数据前行
-        sendData(response, policyBankService.exportExcelModel(fileName,response,policyBankModelDemo,fileNameModel));
+        policyBankService.exportExcelModel(fileName,response,policyBankModelDemo,fileNameModel);
     }
 
     @RequestMapping("/importExcelModel")

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

@@ -66,7 +66,7 @@ public class SovereignAction extends BaseAction {
         String fileNameModel=fileName+"Model";
 
         // 更新数据前行
-        sendData(response, sovereignService.exportExcelModel(fileName,response,sovereignModeltsDemoFrom,fileNameModel));
+         sovereignService.exportExcelModel(fileName,response,sovereignModeltsDemoFrom,fileNameModel);
     }
 
     @RequestMapping("/importExcelModel")

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

@@ -67,6 +67,15 @@ public class FcLoanModel {
     private String  domDocFlagId;
     private String  orgname1;
     private String  orgname2;
+    private String busLinesId;
+
+    public String getBusLinesId() {
+        return busLinesId;
+    }
+
+    public void setBusLinesId(String busLinesId) {
+        this.busLinesId = busLinesId;
+    }
 
     public String getBusLines() {
         return busLines;

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

@@ -5,11 +5,29 @@ import java.math.BigDecimal;
 public class ItItfRateModel {
     private String  calcindex;   //计算实例号
     private String[]  currcd;   //币种
+    private String  currcds;   //币种
     private String  dataDate;   //数据日期
     private String  edate;   //截止数据日期
     private BigDecimal rmbexchrate;   //人民币汇率
     private String  sdate;   //起始数据日期
     private String  term;   //期次
+    private String  currcdId;
+
+    public String getCurrcds() {
+        return currcds;
+    }
+
+    public void setCurrcds(String currcds) {
+        this.currcds = currcds;
+    }
+
+    public String getCurrcdId() {
+        return currcdId;
+    }
+
+    public void setCurrcdId(String currcdId) {
+        this.currcdId = currcdId;
+    }
 
     public String getCalcindex() {
         return calcindex;

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

@@ -32,7 +32,7 @@
         ,T1.SDATE as sdate
         ,T1.START_DT as startDt
         ,T1.TERM as term
-        ,T1.CUST_TYPE as custTypes
+        ,T1.CUST_TYPE as custType
         ,T2.NOUNNAME as ccyCdId
         ,T3.NOUNNAME as commTypeId
         ,T4.NOUNNAME as onOffFlagId

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

@@ -63,7 +63,8 @@
         T11.NOUNNAME AS propDevelProjTypeCdId,
         T12.NOUNNAME AS domDocFlagId,
         T13.ORGNAME AS orgname1,
-        T14.ORGNAME AS orgname2
+        T14.ORGNAME AS orgname2,
+        T15.NOUNNAME AS busLinesId
         from  RWA_BDM_BUS_IT_FC_LOAN T1
         LEFT JOIN SYS_NOUN T2
         ON T1.CCY_CD =T2.NOUNVALUE
@@ -102,6 +103,9 @@
         ON T13.ORGCODE = T1.FIN_BRANCH_NO
         LEFT JOIN sys_organization T14
         ON T1.MGMT_BRANCH_NO = T14.ORGCODE
+        left join SYS_NOUN T15
+        on T1.BUS_LINE=T15.NOUNVALUE
+        and T15.NOUNITEM ='BUSINESSLINE'
         where 1=1
         <if test="dataDate !='' and dataDate!=null">
             and DATA_DATE = replace(#{dataDate},'-','')

+ 13 - 11
Procedure/backend/project/src/main/java/com/sundata/product/rwa/parameter/mybatis/ItItfRateMapper.xml

@@ -5,23 +5,25 @@
 <mapper namespace="com.sundata.product.rwa.parameter.mapper.ItItfRateMapper">
     <select id="getItItfRate"   resultType="com.sundata.product.rwa.parameter.model.ItItfRateModel">
         select
-        CALCINDEX as calcindex,
-        CURRCD as currcd,
-        DATA_DATE as dataDate,
-        EDATE as edate,
-        RMBEXCHRATE as rmbexchrate,
-        SDATE as sdate,
-        TERM as term
-        from  RWA_BDM_BUS_IT_ITF_RATE
+        T1.CALCINDEX as calcindex,
+        T1.CURRCD as currcds,
+        T1.DATA_DATE as dataDate,
+        T1.EDATE as edate,
+        T1.RMBEXCHRATE as rmbexchrate,
+        T1.SDATE as sdate,
+        T1.TERM as term,
+        T2.NOUNNAME  AS currcdId
+        from  RWA_BDM_BUS_IT_ITF_RATE T1
+        LEFT JOIN SYS_NOUN  T2  ON T1.CURRCD =T2.NOUNVALUE  AND  T2.NOUNITEM ='currCd'
         where 1=1
         <if test="dataDate !='' and dataDate!=null">
-            and DATA_DATE = replace(#{dataDate},'-','')
+            and T1.DATA_DATE = replace(#{dataDate},'-','')
         </if>
         <if test="currcd !='' and currcd!=null">
-            <foreach collection="currcd"  open="and CURRCD in ("  close=")" item="item">
+            <foreach collection="currcd"  open="and T1.CURRCD in ("  close=")" item="item">
                 #{item}
             </foreach>
-            order by CURRCD asc
+            order by T1.CURRCD asc
         </if>
     </select>
 

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

@@ -2,6 +2,7 @@ package com.sundata.product.rwa.resultList.action;
 
 import com.sundata.common.annotation.SysLog;
 import com.sundata.common.base.BaseAction;
+import com.sundata.product.rwa.parameter.model.FcLoanModel;
 import com.sundata.product.rwa.resultList.model.ResultListModel;
 import com.sundata.product.rwa.resultList.model.RuleListModel;
 import com.sundata.product.rwa.resultList.service.ResultListService;
@@ -11,6 +12,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.io.IOException;
+import java.util.List;
 
 @Controller
 @RequestMapping("/product/rwa/resultList/ResultListAction")
@@ -22,4 +27,14 @@ public class ResultListAction extends BaseAction {
     public void  result_list (HttpServletRequest request, HttpServletResponse response, @RequestBody ResultListModel ResultListModelDemo){
         sendData(response,resultListService.result_list(ResultListModelDemo));
     }
+
+    @RequestMapping("/exportExcelModel")
+    public void exportExcelModel (HttpServletRequest request,
+                                  HttpServletResponse response, @RequestParam String fileName, @RequestBody List<ResultListModel> ResultListModelDemo) throws IOException {
+        response.setCharacterEncoding("UTF-8");
+        response.setContentType("text/html; charset=UTF-8");
+        String fileNameModel=fileName+"Model";
+        // 更新数据前行
+       resultListService.exportExcelModel(fileName,response,ResultListModelDemo,fileNameModel);
+    }
 }

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

@@ -14,7 +14,7 @@
         RULE_NAME as ruleName,
         UPPER_LIMIT as upperLimit,
         LOWER_LIMIT as lowerLimit,
-        INTERVAL_TYPE as intervalType,
+        INTERVAL_TYPE  as intervalType,
         RULE_AREA_TYPE as ruleAreaType
         from  RWA_CALC_CONF_DIFFTOLERANCE
         where 1=1
@@ -52,7 +52,7 @@
         from RWA_CALC_CONF_DIFFTOLERANCERANGE t1
         left join RWA_OBJ_CONF_GL_RECONCILIATION t2
         on t1.ROLE_LEDGERCHECK_NO= t2.RULE_ID
-        where t1.RULE_NO =#{ruleNo}
+        where (t1.RULE_NO =#{ruleNo} or (RULE_NO is null and  RULE_ID is not null))
     </select>
     <select id="rule_querylist1" resultType="com.sundata.product.rwa.resultList.model.RuleListModel">
         select

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

@@ -15,8 +15,21 @@
         PERCTHRESHOLD as percthreshold,
         SUBJCODE as subjcode,
         SUBJNAME as subjname,
-        TERM as term
+        replace(substr(TERM,1,7),'-','') as term
         from  RWA_LEART_INS_LEDGRESULT
+        WHERE 1=1
+        <if test="term !='' and term!=null">
+            AND  TERM =replace(#{term},'-','')
+        </if>
+        <if test="orgcode !='' and orgcode!=null">
+            AND ORGCODE=#{orgcode}
+        </if>
+        <if test="subjcode !='' and subjcode!=null">
+            AND SUBJCODE=#{subjcode}
+        </if>
+        <if test="leartresulttype !='' and leartresulttype!=null">
+            AND LEARTRESULTTYPE=#{leartresulttype}
+        </if>
     </select>
 
 </mapper>

+ 55 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/resultList/service/ResultListService.java

@@ -1,16 +1,70 @@
 package com.sundata.product.rwa.resultList.service;
 
+import com.sundata.admin.excelmanage.mapper.RptDefineMapper;
+import com.sundata.admin.excelmanage.model.RptDefineModel;
+import com.sundata.common.base.BaseMapper;
+import com.sundata.common.base.BaseService;
+import com.sundata.common.util.DBExecutor;
+import com.sundata.product.rwa.parameter.model.FcLoanModel;
+import com.sundata.product.rwa.parameter.utils.FilesValueCheckUtils;
 import com.sundata.product.rwa.resultList.mapper.ResultListMapper;
 import com.sundata.product.rwa.resultList.model.ResultListModel;
+import jakarta.servlet.http.HttpServletResponse;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.*;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+
 @Service
-public class ResultListService {
+public class ResultListService extends BaseService<RptDefineModel> {
     @Autowired
     ResultListMapper resultListMapper;
+    @Autowired
+    private RptDefineMapper<RptDefineModel> rptDefineMapper;
+    @Override
+    public BaseMapper<RptDefineModel> getMapper() {
+        return this.rptDefineMapper;
+    }
     public List<ResultListModel> result_list(ResultListModel ResultListModelDemo){
         return resultListMapper.result_list(ResultListModelDemo);
     }
+    // 导出数据
+    public boolean exportExcelModel(String fileName, HttpServletResponse response, List<ResultListModel> ResultListModelDemo, String fileNameModel ) throws IOException {
+        // List <FcLoanModel> model =policyBankMapper.getPolicyBank(new FcLoanModel());
+        RptDefineModel fileName1 = this.queryOne(fileName);
+        RptDefineModel fileNamemodel = this.queryOne(fileNameModel);
+        String filename = DBExecutor.doQuery("select RPTNAME from SYS_RPTDEFINE where RPTCODE = '"+ fileName +"'");
+        String templatePath = DBExecutor.doQuery("select NOUNVALUE from sys_noun where NOUNITEM ='ATTACHPATH'");
+        File folder = new File(templatePath+"/"+fileName1.getRptcode());
+        if (!folder.exists()) {
+            // 创建文件夹
+            folder.mkdir();
+            System.out.println("文件夹创建成功。");
+        } else {
+            System.out.println("文件夹已存在。");
+        }
+        byte[] byteArr = fileName1.getReportinfo();
+        byte[] byteArr1 = fileNamemodel.getReportinfo();
+        InputStream in = new ByteArrayInputStream(byteArr);
+        InputStream in1 = new ByteArrayInputStream(byteArr1);
+        Workbook workbook = new XSSFWorkbook(); // 创建工作簿实例
+        FileOutputStream out = new FileOutputStream(new File(folder.getAbsolutePath()+"/"+fileName1.getRptname()+".xlsx"));
+        FileOutputStream out1 = new FileOutputStream(new File(folder.getAbsolutePath()+"/"+fileNamemodel.getRptname()+".xlsx"));
+        int byteValue=0;
+        int byteValue1=0;
+        while (-1 !=(byteValue=in.read()))
+            out.write(byteValue);
+        while (-1 !=(byteValue1=in1.read()))
+            out1.write(byteValue1);
+        workbook.close(); // 关闭工作簿
+        Map<String, Object> data = new HashMap<>();
+
+        FilesValueCheckUtils.exportExcelModel(response,ResultListModelDemo,folder+"/",filename);
+        return true;
+    }
 }

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

@@ -30,22 +30,16 @@ public class InfoListAction extends BaseAction {
     }
 
     @RequestMapping({"getDetail1"})
-    public InfoListModel getFunTree1(HttpServletRequest request, HttpServletResponse response, @RequestBody InfoListModel data) {
-       System.out.println(data.getOffobjectNo());
-        InfoListModel funinfo =this.infoListService.queryOne(data.getOffobjectNo());
+    public InfoListModel getFunTree1(HttpServletRequest request, HttpServletResponse response, @RequestParam String offobjectNo) {
+       System.out.println(offobjectNo);
+        InfoListModel funinfo =this.infoListService.queryOne(offobjectNo);
         System.out.println(funinfo);
-        funinfo.setButtonList(this.infoListService.queryButtons(data.getOffobjectNo()));
+        funinfo.setButtonList(this.infoListService.queryButtons(offobjectNo));
       //  return funinfo;
         System.out.println(funinfo);
         return funinfo;
     }
 
-    @RequestMapping({"shunxu"})
-    public void shunxu(HttpServletRequest request, HttpServletResponse response, @RequestParam String offobjectNo){
-//        String offobjectNo =data.getOffobjectNo();
-                System.out.println(offobjectNo);
-        sendData(response, infoListService.shunxu(offobjectNo));
-    }
 
     @RequestMapping({"rules_addone"})
     public void rules_addone(HttpServletRequest request, HttpServletResponse response, @RequestBody RwaCalcConfOffbalanceprotyperuleModel data){
@@ -104,8 +98,8 @@ public class InfoListAction extends BaseAction {
 
     @RequestMapping("/deleteFunc")
     @SysLog(funcName="树状结构作废")
-    public void  deleteFunc (HttpServletRequest request, HttpServletResponse response, @RequestParam String  offobjectNo){
-        sendData(response,infoListService.deleteFunc(offobjectNo));
+    public void  deleteFunc (HttpServletRequest request, HttpServletResponse response, @RequestParam String[]  offobjectNo){
+        infoListService.deleteFunc(offobjectNo);
     }
 
 

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

@@ -19,6 +19,7 @@ public interface InfoListMapper<T> extends BaseMapper<T> {
     void info_deleteone2(@Param("ruleNo") String ruleNo);
     void save(InfoListModel data);
     void save2 (@Param("list") List<RwaCalcConfOffbalanceprotyperuleModel> data);
+    void deleteFunc (@Param("offobjectNo") String[] offobjectNo);
 
     RwaCalcConfOffbalanceprotyperuleModel rules_modifyone(@Param("ruleNo") String ruleNo);
     //String shunxu(@Param("offobjectNo") String offobjectNo);

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

@@ -117,5 +117,14 @@
         select PRODUCT_NAME as id ,PRODUCT_NAME as text from RWA_CALC_CONF_PRODUCT where 1=1 and PRODUCT_NAME is not null
     </select>
 
+    <update id="deleteFunc">
+        update RWA_CALC_CONF_OFFBALANCEPROTYPE  SET YESORNO = '0'
+            <where>
+                <foreach collection="offobjectNo" separator="," open="OFFOBJECT_NO in (" close=")" item="item">
+                    #{item}
+                </foreach>
+            </where>
+    </update>
+
 
 </mapper>

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

@@ -45,18 +45,6 @@ public  class InfoListService extends BaseService<InfoListModel> implements Comm
         return this.infoListMapper.queryButtons(getOffobjectNo);
     }
 
-    public String shunxu(String offobjectNo){
-        String msg= DBExecutor.doQuery("select max(right(RULE_NO,3)) as msg from RWA_CALC_CONF_OFFBALANCEPROTYPERULE where  substr(RULE_NO,5,length('"+offobjectNo+"')) = '"+offobjectNo+"'");
-        if(msg == null || msg ==""){
-            String res ="BWXM"+offobjectNo+"001";
-            return res;
-        }else{
-            Integer res1 = Integer.valueOf(msg);
-            String res ="BWXM"+offobjectNo+String.format("%03d", res1+1);
-            return res;
-        }
-
-    }
 
     public void rules_addone(RwaCalcConfOffbalanceprotyperuleModel data){
         infoListMapper.info_deleteone2(data.getRuleNo());
@@ -89,9 +77,8 @@ public  class InfoListService extends BaseService<InfoListModel> implements Comm
         return "删除成功";
     }
 
-    public String deleteFunc(String offobjectNo){
-        DBExecutor.doModify("UPDATE RWA_CALC_CONF_OFFBALANCEPROTYPE SET YESORNO='0' WHERE OFFOBJECT_NO='"+offobjectNo+"'");
-        return "作废成功";
+    public void deleteFunc(String[] offobjectNo){
+        infoListMapper.deleteFunc(offobjectNo);
     }
     public String jiaoyan(String offobjectNo){
         String res =DBExecutor.doQuery("select count(OFFOBJECT_NO) from RWA_CALC_CONF_OFFBALANCEPROTYPE where OFFOBJECT_NO='"+offobjectNo+"'");

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

@@ -74,6 +74,7 @@ public class ProductListAction extends BaseAction {
     @RequestMapping("/product_addone")
     @SysLog(funcName="修改科目取数规则页面的查询")
     public void  product_addone (HttpServletRequest request, HttpServletResponse response, @RequestBody ProductListModel ProductListModelDemo){
+       
         sendData(response,productListService.product_addone(ProductListModelDemo));
     }
 
@@ -99,7 +100,7 @@ public class ProductListAction extends BaseAction {
         String fileNameModel=fileName+"Model";
 
         // 更新数据前行
-        sendData(response, productListService.exportExcelModel(fileName,response,ProductListModelDemo,fileNameModel));
+        productListService.exportExcelModel(fileName,response,ProductListModelDemo,fileNameModel);
     }
 
     @RequestMapping("/selectRiskList")
@@ -107,4 +108,10 @@ public class ProductListAction extends BaseAction {
     public void  selectRiskList (HttpServletRequest request, HttpServletResponse response, @RequestParam String productNo){
         sendData(response,productListService.selectRiskList(productNo));
     }
+
+    @RequestMapping("/jiaoyan")
+    @SysLog(funcName="校验产品代码")
+    public void  jiaoyan (HttpServletRequest request, HttpServletResponse response, @RequestParam String productNo){
+        sendData(response,productListService.jiaoyan(productNo));
+    }
 }

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

@@ -20,7 +20,7 @@ public interface ProductListMapper {
     public boolean product_deleteone1 (@Param("ruleCode") String ruleCode);
     public boolean product_deleteone2 (@Param("productNo") String productNo);
 
-    public void product_addone (ProductListModel ProductListModelDemo) ;
+    public int product_addone ( ProductListModel ProductListModelDemo) ;
     void product_addone1 (@Param("list") List<RwaCalcConfProductrulesModel> RwaCalcConfProductrulesModelDemo) ;
     public void product_addone2 (RwaCalcConfProductrulesModel RwaCalcConfProductrulesModelDemo) ;
 

+ 19 - 7
Procedure/backend/project/src/main/java/com/sundata/product/rwa/rwacalcconfigdataparam/model/ProductListModel.java

@@ -1,6 +1,7 @@
 package com.sundata.product.rwa.rwacalcconfigdataparam.model;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 public class ProductListModel {
     private String  calcindex;   //计算实例号
@@ -14,10 +15,27 @@ public class ProductListModel {
     private String  productBussinessCode;   //对应业务
     private String  productStageId;   //产品所属阶段
     private BigDecimal productIndex;   //产品序号
-    private String  productFromSystem;   //来源系统
+    private String[]  productFromSystem;   //来源系统
+    private String  productFromSystems;   //来源系统
     private String  defaultGetdatarule;   //默认取数逻辑
     private String  defaultOut;   //默认输出
 
+    public String getProductFromSystems() {
+        return productFromSystems;
+    }
+
+    public void setProductFromSystems(String productFromSystems) {
+        this.productFromSystems = productFromSystems;
+    }
+
+    public String[] getProductFromSystem() {
+        return productFromSystem;
+    }
+
+    public void setProductFromSystem(String[] productFromSystem) {
+        this.productFromSystem = productFromSystem;
+    }
+
     public String getCalcindex() {
         return calcindex;
     }
@@ -106,13 +124,7 @@ public class ProductListModel {
         this.productIndex = productIndex;
     }
 
-    public String getProductFromSystem() {
-        return productFromSystem;
-    }
 
-    public void setProductFromSystem(String productFromSystem) {
-        this.productFromSystem = productFromSystem;
-    }
 
     public String getDefaultGetdatarule() {
         return defaultGetdatarule;

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

@@ -5,31 +5,41 @@
 <mapper namespace="com.sundata.product.rwa.rwacalcconfigdataparam.mapper.ProductListMapper">
     <select id="productlist" resultType="com.sundata.product.rwa.rwacalcconfigdataparam.model.ProductListModel">
         select
-             CALCINDEX as calcindex,
-             SDATE as sdate,
-             EDATE as edate,
-             TERM as term,
-             DATA_DATE as dataDate,
-             PRODUCT_NO as productNo,
-             PRODUCT_NAME as productName,
-             PRODUCT_TYPE as productType,
-             PRODUCT_BUSSINESS_CODE as productBussinessCode,
-             PRODUCT_STAGE_ID as productStageId,
-             PRODUCT_INDEX as productIndex,
-             PRODUCT_FROM_SYSTEM as productFromSystem,
-             DEFAULT_GETDATARULE as defaultGetdatarule,
-             DEFAULT_OUT as defaultOut
+             T1.CALCINDEX as calcindex,
+             T1.SDATE as sdate,
+             T1.EDATE as edate,
+             T1.TERM as term,
+             T1.DATA_DATE as dataDate,
+             T1.PRODUCT_NO as productNo,
+             T1.PRODUCT_NAME as productName,
+             T1.PRODUCT_TYPE as productType,
+             T1.PRODUCT_BUSSINESS_CODE as productBussinessCode,
+             T1.PRODUCT_STAGE_ID as productStageId,
+             T1.PRODUCT_INDEX as productIndex,
+             T2.VALUER as productFromSystems,
+             T1.DEFAULT_GETDATARULE as defaultGetdatarule,
+             T1.DEFAULT_OUT as defaultOut
         from
-             RWA_CALC_CONF_PRODUCT
+             RWA_CALC_CONF_PRODUCT T1
+      LEFT JOIN (
+        SELECT T1.PRODUCT_NO,GROUP_CONCAT(T2.NOUNNAME SEPARATOR ',') AS VALUER  FROM
+        (SELECT TRIM(REGEXP_SUBSTR(T1.STR, '[^,]+', 1, N.N)) AS ID,PRODUCT_NO
+        FROM (SELECT  PRODUCT_FROM_SYSTEM AS STR,PRODUCT_NO AS PRODUCT_NO FROM RWA_CALC_CONF_PRODUCT ) T1
+        JOIN (SELECT 1  AS N FROM DUAL UNION ALL SELECT 2 FROM DUAL ) N ON LENGTH(T1.STR) - LENGTH(REPLACE(T1.STR,',',''))>=N.N-1 ) T1
+        LEFT JOIN SYS_NOUN T2
+        ON T2.NOUNVALUE = T1.ID
+        AND T2.NOUNITEM ='PRODUCTFROMSYSTEM'
+        GROUP BY T1.PRODUCT_NO) T2
+        ON T1.PRODUCT_NO=T2.PRODUCT_NO
         where 1=1
         <if test="productNo !='' and productNo!=null">
-            and PRODUCT_NO concat('%',#{productNo},'%')
+            and T1.PRODUCT_NO like concat('%',#{productNo},'%')
         </if>
         <if test="productName !='' and productName!=null">
-            and PRODUCT_NAME concat('%',#{productName},'%')
+            and T1.PRODUCT_NAME like  concat('%',#{productName},'%')
         </if>
         <if test="productBussinessCode !='' and productBussinessCode!=null">
-            and PRODUCT_TYPE =#{productType}
+            and T1.PRODUCT_TYPE =#{productType}
         </if>
     </select>
 
@@ -101,7 +111,7 @@
               PRODUCT_BUSSINESS_CODE as productBussinessCode,
               PRODUCT_STAGE_ID as productStageId,
               PRODUCT_INDEX as productIndex,
-              PRODUCT_FROM_SYSTEM as productFromSystem,
+        REPLACE(REPLACE(PRODUCT_FROM_SYSTEM, CHAR(9), ''), CHAR(32), '') as productFromSystems,
               DEFAULT_GETDATARULE as defaultGetdatarule,
               DEFAULT_OUT as defaultOut
         from
@@ -145,7 +155,8 @@
 
     <insert id="product_addone" parameterType="com.sundata.product.rwa.rwacalcconfigdataparam.model.ProductListModel">
         INSERT INTO RWA_CALC_CONF_PRODUCT(CALCINDEX,SDATE,EDATE,TERM,DATA_DATE,PRODUCT_NO,PRODUCT_NAME,PRODUCT_TYPE,PRODUCT_BUSSINESS_CODE,PRODUCT_STAGE_ID,PRODUCT_INDEX,PRODUCT_FROM_SYSTEM,DEFAULT_GETDATARULE,DEFAULT_OUT)
-        VALUES(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{productNo},#{productName},#{productType},#{productBussinessCode},#{productStageId},#{productIndex},#{productFromSystem},#{defaultGetdatarule},#{defaultOut})
+        VALUES(#{calcindex},#{sdate},#{edate},#{term},#{dataDate},#{productNo},#{productName},#{productType},#{productBussinessCode},#{productStageId},#{productIndex},
+        <foreach collection="productFromSystem" index="index" item="item"  open="trim('"  separator="," close="')" >${item}</foreach> ,#{defaultGetdatarule},#{defaultOut})
     </insert>
     <insert id="product_addone1" parameterType="com.sundata.product.rwa.rwacalcconfigdataparam.model.RwaCalcConfProductrulesModel">
         INSERT INTO RWA_CALC_CONF_PRODUCTRULES (CALCINDEX,SDATE,EDATE,TERM,DATA_DATE,PRODUCT_NO,RULE_CODE,RULE_NAME,RULE_INDEX,DATA_TYPE,RULE_SUBJECT,RULE_IN,RULE_OUT,RULE_GETDATA)
@@ -196,4 +207,16 @@
         </where>
     </select>
 
+
+    <select id="productFromSystems" resultType="com.sundata.admin.nounmanage.model.DictContent">
+        select value as id ,value as text from (
+        select group_concat(t2.NOUNNAME) as value  from
+        (SELECT TRIM(REGEXP_SUBSTR(t1.str, '[^,]+', 1, n.n)) AS id
+        FROM (SELECT  PRODUCT_FROM_SYSTEM AS str FROM RWA_CALC_CONF_PRODUCT ) T1
+        JOIN (select 1  as n from dual UNION all select 2 from dual ) n ON LENGTH(t1.str) - LENGTH(REPLACE(t1.str,',',''))>=n.n-1 ) T1
+        left join sys_noun t2
+        on t2.NOUNVALUE = t1.id
+        and t2.NOUNITEM ='PRODUCTFROMSYSTEM' ) a
+    </select>
+
 </mapper>

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

@@ -66,7 +66,7 @@ public class ProductListService extends BaseService<RptDefineModel> {
 
 
 
-    public String product_addone (ProductListModel ProductListModelDemo){
+    public String  product_addone (ProductListModel ProductListModelDemo ){
         productListMapper.product_deleteone(ProductListModelDemo.getProductNo());
          productListMapper.product_addone(ProductListModelDemo);
         return "新增成功";
@@ -120,6 +120,11 @@ public class ProductListService extends BaseService<RptDefineModel> {
         return productListMapper.selectRiskList(productNo);
     }
 
+    public Integer jiaoyan(String productNo){
+        Integer res = Integer.valueOf(DBExecutor.doQuery("SELECT COUNT(1) FROM RWA_CALC_CONF_PRODUCT where PRODUCT_NO ='"+productNo+"'"));
+        return res;
+    }
+
     public BaseMapper<RptDefineModel> getMapper() {
         return this.rptDefineMapper;
     }

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

@@ -27,7 +27,7 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
 
     var formDataList = new Array<FcCommitmentModel>;
     const { fetchDict } = useModel('dict');
-    const [id ,setId] =useState<boolean>(false);
+    const [id ,setId] =useState<any>(false);
     const columns: ProColumns<FcCommitmentModel>[] = [
         {
         title  : '计算实例号',
@@ -159,7 +159,7 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
         title  : '承诺类型代码',
         dataIndex : 'commTypes',
         //  hideInTable: true,
-       // search: false,
+        search: false,
         order:-9,
         // valueType:'treeSelect',
         // request:()=>fetchDict('COMMITMENT_TYPE'),
@@ -169,6 +169,20 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
         // },
         width:150,  
       },
+      {
+        title  : '承诺类型代码',
+        dataIndex : 'commType',
+          hideInTable: true,
+       // search: false,
+        order:-9,
+        valueType:'treeSelect',
+        request:()=>fetchDict('COMMITMENT_TYPE'),
+        fieldProps:{
+          treeDefaultExpandAll:true,
+          treeCheckable:true,
+        },
+        width:150,  
+      },
       {
         title  : '表内外标识',
         dataIndex : 'onOffFlagId',
@@ -229,7 +243,7 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
 	  {
         title  : '经营机构编号',
         dataIndex : 'mgmtBranchNo',
-        //  hideInTable: true,
+          hideInTable: true,
         //search: false,
         valueType:'treeSelect',
         request:()=>fetchDict('org'),
@@ -240,6 +254,14 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
         order:-7,
         width:150,  
       },
+      {
+        title  : '经营机构编号',
+        dataIndex : 'mgmtBranchNos',
+        //  hideInTable: true,
+        search: false,
+        order:-7,
+        width:150,  
+      },
       {
         title  : '经营机构名称',
         dataIndex : 'orgname2',
@@ -296,7 +318,7 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
 	  {
         title  : '所属条线代码',
         dataIndex : 'busLine',
-        //  hideInTable: true,
+          hideInTable: true,
         //search: false,
         order:-8,
         valueType:'treeSelect',
@@ -307,6 +329,15 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
         },
         width:150,  
       },
+      {
+        title  : '所属条线代码',
+        dataIndex : 'busLines',
+        //  hideInTable: true,
+        search: false,
+        order:-8,
+        valueType:'treeSelect',
+        width:150,  
+      },
 	  
     ]
     return(
@@ -318,11 +349,14 @@ const fcOffSheetts: React.FC<aaa>= (prop : aaa) => {
         if(prop.search==='0'){
           setId(false);
           const sd1  =await getFcCommitment1(prop.subjectNumber);
-        }
+          formDataList =[...sd1];
+        return {data :sd1 };
+        }else{
+          setId(true);
         const sd = await getFcCommitment(formData);
         formDataList =[...sd];
         return {data :sd };
-        
+        }
       }}
       columns={columns}
      //  singleSelect={false}

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

@@ -31,7 +31,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
     const tableActionRef = useRef<ActionType>();
     var formDataList = new Array<FcLoanModel>;
     
-    const [id ,setId] =useState<boolean>(false);
+    const [id ,setId] =useState<any>();
 
     console.log(props.subjectNumber);
     console.log(props.search);
@@ -215,7 +215,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '五级分类代码',
-        dataIndex : 'fiveClassCdId',
+        dataIndex : 'fiveClassCd',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -223,7 +223,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '五级分类',
-        dataIndex : 'fiveClassCd',
+        dataIndex : 'fiveClassCdId',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -247,7 +247,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '表内外标识代码',
-        dataIndex : 'onOffFlagId',
+        dataIndex : 'onOffFlag',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -255,7 +255,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '表内外标识',
-        dataIndex : 'onOffFlag',
+        dataIndex : 'onOffFlagId',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -263,7 +263,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '账簿类型代码',
-        dataIndex : 'bookTypeCdId',
+        dataIndex : 'bookTypeCd',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -271,7 +271,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
         { 
         title  : '账簿类型',
-        dataIndex : 'bookTypeCd',
+        dataIndex : 'bookTypeCdId',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -279,7 +279,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '行业投向门类代码',
-        dataIndex : 'investIndustryCdId',
+        dataIndex : 'investIndustryCds',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -288,7 +288,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       { 
         title  : '行业投向门类',
         dataIndex : 'investIndustryCd',
-        //  hideInTable: true,
+          hideInTable: true,
         //search: false,
         width:150,  
         valueType:'treeSelect',
@@ -296,12 +296,21 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         fieldProps:{
           treeDefaultExpandAll:true,
           treeCheckable:true,
+          virtual: 'false'
         },
         order:-10
       },
+      { 
+        title  : '行业投向门类',
+        dataIndex : 'investIndustryCdId',
+        //  hideInTable: true,
+        search: false,
+        width:150,  
+        valueType:'treeSelect',
+      },
       { 
         title  : '行业投向大类代码',
-        dataIndex : 'investIndustryCd1Id',
+        dataIndex : 'investIndustryCd1',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -309,7 +318,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '行业投向大类',
-        dataIndex : 'investIndustryCd1',
+        dataIndex : 'investIndustryCd1Id',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -317,7 +326,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '行业投向中类代码',
-        dataIndex : 'investIndustryCd2Id',
+        dataIndex : 'investIndustryCd2',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -325,7 +334,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '行业投向中类',
-        dataIndex : 'investIndustryCd2',
+        dataIndex : 'investIndustryCd2Id',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -333,7 +342,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '行业投向子类代码',
-        dataIndex : 'investIndustryCd3Id',
+        dataIndex : 'investIndustryCd3',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -341,7 +350,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '行业投向子类',
-        dataIndex : 'investIndustryCd3',
+        dataIndex : 'investIndustryCd3Id',
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -366,7 +375,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       { 
         title  : '经营机构',
         dataIndex : 'mgmtBranchNo',
-        //  hideInTable: true,
+          hideInTable: true,
        // search: false,
         width:150,  
         valueType: 'treeSelect',
@@ -377,6 +386,13 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         },
         order:-7 
       },
+      { 
+        title  : '经营机构',
+        dataIndex : 'mgmtBranchNos',
+        //  hideInTable: true,
+        search: false,
+        width:150,  
+      },
       {
         title  : '经营机构名称',
         dataIndex : 'orgname2',
@@ -411,7 +427,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '客户类型代码',
-        dataIndex : 'custTypeId',
+        dataIndex : 'custTypes',
         //  hideInTable: true,
        // search: false,
         width:150,  
@@ -420,7 +436,7 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       { 
         title  : '客户类型',
         dataIndex : 'custType',
-        //  hideInTable: true,
+          hideInTable: true,
       //  search: false,
         width:150,  
         valueType: 'treeSelect',
@@ -431,9 +447,18 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         },
         order:-6 
       },
+      { 
+        title  : '客户类型',
+        dataIndex : 'custTypeId',
+        //  hideInTable: true,
+        search: false,
+        width:150,  
+        order:-6 
+      },
       { 
         title  : '房地产开发项目类型代码',
-        dataIndex : 'propDevelProjTypeCdId',
+        dataIndex : 'propDevelProjTypeCd',
+       
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -441,7 +466,9 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
       },
       { 
         title  : '房地产开发项目类型',
-        dataIndex : 'propDevelProjTypeCd',
+        dataIndex : 'propDevelProjTypeCdId',
+        // valueType:"treeSelect",
+        // request: () => fetchDict('REAL_ESTATE_PROJECT_TYPE'),// 码值后续添加
         //  hideInTable: true,
         search: false,
         width:150,  
@@ -454,11 +481,18 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         search: false,
         width:150,  
          
+      },       
+       { 
+        title  : '是否重组资产',
+        dataIndex : 'reconstructionFlag',
+         // hideInTable: true,
+        search: false,
+        width:150,  
       },
         { 
         title  : '所属条线',
         dataIndex : 'busLine',
-        //  hideInTable: true,
+          hideInTable: true,
        // search: false,
         width:150,  
         valueType:'treeSelect',
@@ -469,6 +503,13 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         },
          order:-9
       },
+      { 
+        title  : '所属条线',
+        dataIndex : 'busLinesId',
+        //  hideInTable: true,
+        search: false,
+        width:150,  
+      },
       { 
         title  : '开证行行号',
         dataIndex : 'openingBankno',
@@ -516,13 +557,6 @@ const fcLoan: React.FC<FcLoanModel1>= (props : FcLoanModel1) => {
         search: false,
         width:150,  
         order:-1
-      },
-        { 
-        title  : '债务重组标识',
-        dataIndex : 'reconstructionFlag',
-          hideInTable: true,
-        search: false,
-        width:150,  
       },
         { 
         title  : '起始数据日期',

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

@@ -267,6 +267,7 @@ type aaa = {
           order:-10,
        width:150,  
       }, 
+      
 	  {
         title  : '开证日',
         dataIndex : 'openingDt',
@@ -299,6 +300,12 @@ type aaa = {
         treeDefaultExpandAll:true,
         treeCheckable:true,
       },
+    },
+      {
+        title  : '经营机构编号',
+        dataIndex : 'mgmtBranchNos',
+       //  hideInTable: true,
+      //  search: false,
       order:-7,
        width:150,  
       },

+ 15 - 0
Procedure/frontend/projectb/src/pages/rdpMng/Template/Coding/components/itItfRate.tsx

@@ -51,10 +51,25 @@ const itItfRateModel: React.FC<aaa>= (prop : aaa) => {
             treeDefualtExpandAll:true,
             treeCheckable:true,
            },
+           hideInTable:true,
+           order:-2,
+           width : 150
+           },
+           {
+            title : '币种代码',
+           dataIndex : 'currcds',
+           search:false,
            order:-2,
            width : 150
            },
 
+           
+           {
+            title : '币种',
+           dataIndex : 'currcdId',
+           search:false,
+           width : 150
+           },
            {
             title : '截止数据日期',
            dataIndex : 'edate',

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

@@ -1,11 +1,13 @@
 import React, { useEffect, useRef, useState } from 'react';
 import { Button, Form, FormInstance, Input, Space, Tooltip, Upload } from 'antd';
 import { ActionType, ProColumns, ProFormInstance, ProTable } from '@ant-design/pro-components';
-import { baseFun, EditType, SDAreaTtile, SDButton, SDForm, SDFormText, SDLayout, SDModal, SDModalForm, SDOperate, SDPage, SDSubmitButton, SDTable } from '@sundata/ui-frame';
-import { exportExcelModel, productlist,selectRiskList, productListModel, product_addone, product_addone1, product_addone2, product_deleteone, product_deleteone1, product_modifyone, product_modifyone1, product_modifyone2, product_querylist,  rwaCalcConfOffbalanceprotyperuleModel,  rwaCalcConfProductrulesModel, select ,riskListModel} from '@/services/rwa/product_list';
+import { baseFun, EditType, SDAreaTtile, SDButton, SDForm, SDFormDict, SDFormText, SDLayout, SDModal, SDModalForm, SDOperate, SDPage, SDSubmitButton, SDTable } from '@sundata/ui-frame';
+import { exportExcelModel, productlist,selectRiskList, productListModel, product_addone, product_addone1, product_addone2, product_deleteone, product_deleteone1, product_modifyone, product_modifyone1, product_modifyone2, product_querylist,  rwaCalcConfOffbalanceprotyperuleModel,  rwaCalcConfProductrulesModel, select ,riskListModel, jiaoyan} from '@/services/rwa/product_list';
 import { fetchDictList } from '@/services/sysMng/nounMng';
 import { useModel } from '@umijs/max';
 import { WomanOutlined } from '@ant-design/icons';
+import { toNumber } from 'lodash';
+
 
 type aaa = {
     productNo :String;
@@ -17,11 +19,9 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     const [visible1,setVisible1] = useState<boolean>(false);//弹窗是否显示
     const [visible3,setVisible3] = useState<boolean>(false);//弹窗是否显示
     const [riskExportVisible,setRiskExportVisible] = useState<boolean>(false);//弹窗是否显示
-    const [count,setCount] = useState<number>(0);
-    const [count1,setCount1] = useState<string>();
     const formRef = useRef<FormInstance<any>>();
     const [editType, setEditType] = useState<EditType>('create');
-    const [editType1, setEditType1] = useState<EditType>('update');
+    const [editType1, setEditType1] = useState<EditType>('create');
     const [state,setState] = useState<String>();
     const { fetchDict } = useModel('dict');   
     const actionRef = useRef<ActionType>();
@@ -41,6 +41,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
  
     const [mockData, setMockData] = useState<rwaCalcConfProductrulesModel[]>([]);
     const [mockData1, setMockData1] = useState<rwaCalcConfOffbalanceprotyperuleModel[]>([]);
+    const [editRuleNo, setEditRuleNo] = useState<any>();
     const [riskMockData, setRiskMockData] = useState<riskListModel[]>([]);
     const closeAndRefresh = ()=>{
         setVisible(false);
@@ -57,12 +58,26 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
       }
       //保存产品参数
       const inst =async(formData1 : productListModel)=>{
-        console.log(formData1);
-        await product_addone(formData1);
+        if(mockData.length<=0){
+          baseFun.warning("科目取数规则列表中至少有一条记录");
+        }else{
+        if(editType=='create'){
+        const yamzheng = await jiaoyan(formData1.productNo);
+        if(yamzheng>=1){
+          baseFun.warning("产品代码已存在,请重新输入");
+        }else{
+        await product_addone({...formData1});
       const aa =formData1.productNo
-      console.log("11111111")
         //科目取数规则
             inst1(aa);
+        }
+      }else{
+        await product_addone({...formData1});
+        const aa =formData1.productNo
+          //科目取数规则
+              inst1(aa);
+      }
+    }
       }
       const inst1 =async(aa:any)=>{
            await product_addone1(mockData,aa);
@@ -75,12 +90,19 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
           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);
           }
           
-             actionRef1.current?.reloadAndRest?.();
-             setVisible1(false);
+             
         }
  
     
@@ -99,9 +121,15 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         
       }
       //产品参数页面点修改的查询
+  
       const data1 =async(record:any)=>{
         const sd = await product_modifyone1(record.productNo);
-        formRef1.current?.setFieldsValue(sd);
+        const colorsArray = sd.productFromSystems.split(',');
+        let i=0;
+       formRef1.current?.setFieldValue("productFromSystem",colorsArray)
+        const {productFromSystem,...sd1}=sd
+        formRef1.current?.setFieldsValue(sd1);
+
         setVisible(true)
         data2(record.productNo)
         
@@ -182,7 +210,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         { title : '产品大类',
         dataIndex : 'productType',
         valueType:"select",
-        request:()=>fetchDict(''),
+        request:()=>fetchDict('PRODUCT_TYPE'),
         width : 150
         },
         
@@ -208,7 +236,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         },
         
         { title : '来源系统',
-        dataIndex : 'productFromSystem',
+        dataIndex : 'productFromSystems',
         search:false,
         hideInTable:false,
         width : 150
@@ -282,7 +310,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
          >
            风险暴露分类规则
          </SDOperate>,
-           <span style={record?.productBussinessCode==="作废" ? {display:'none'}: {}}>
+           <span style={record?.productBussinessCode=="表外业务" ? {display:'none'}: {}}>
            <SDOperate
            key="roleCfg"
            icon={<WomanOutlined />}
@@ -398,7 +426,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
                   selectdata(record);
                 setVisible(true);
                 
-                setEditType('update')
+                setEditType1('update')
                  } }
               >
                 修改
@@ -410,7 +438,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
                onClick={()=>{ 
                 deldata1(record);
                setVisible(true);
-               setEditType('update')
+               setEditType1('update')
                 } }
              >
                删除
@@ -489,14 +517,28 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
       },
     ]
 
-  function counter(counts:number) {
-      counts = counts+1;
-      setCount(counts);
-    //  `${(counts)}`.padStart(3, '0');
-    // count++; // 每次调用时自增
-      return `${(counts)}`.padStart(3, '0');
-  };
-
+  
+  // 编辑规则编号
+const setRuleNoAdd = () => {
+  let lastEditRuleNo ="";
+  if (mockData !== null || mockData !== undefined) {
+    if (mockData?.length == 0) {
+      lastEditRuleNo = "PROD" + state1 + String('001');
+    } else {
+      let lastNo = mockData?.filter((item)=>{
+        return item.ruleCode == mockData[mockData.length-1].ruleCode;
+      })[0].ruleCode;
+      let numberNo = lastNo?.substring(lastNo.length-3,lastNo.length);
+      let castnumber = toNumber(numberNo);
+      castnumber = castnumber+1;
+      lastEditRuleNo = "PROD" + state1 + castnumber.toString().padStart(3,'0');
+    }
+  } else {
+    lastEditRuleNo = "PROD" + state1 + String('001');
+  }
+  setEditRuleNo(lastEditRuleNo);
+ // formRef2.current?.setFieldValue('ruleNo',lastEditRuleNo)
+}
 
   const getButtons = ()=>{
     const nodes: React.ReactNode[] = [];
@@ -532,7 +574,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
             setVisible(true);
             setEditType('create')
             setState("1")
-          setMockData([]);
+          //setMockData([]);
           }}
         >
           新增
@@ -554,7 +596,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         <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 == setEditType?[]:getButtons()]}
+    footer={[editType.toString== setEditType?[]:getButtons()]}
     formRef={formRef1} 
     onValuesChange={(changedValues,Values)=>{setState1(Values.productNo)}}
     >
@@ -565,14 +607,14 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     <SDFormText name="term"   label="年月"  />
     <SDFormText name="dataDate"   label="数据日期"  />
     </span>
-    <SDFormText name="productNo"   label="产品代码"  />
-    <SDFormText name="productName"   label="产品名称"  />
-    <SDFormText name="productType"   label="产品大类"  />
+    <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="产品序号"  />
-    <SDFormText name="productStageId"   label="所属阶段"  />
-    <SDFormText name="productFromSystem"   label="来源系统"  />
-    <SDFormText name="defaultOut"   label="默认输出数据源"  />
-    <SDFormText name="productBussinessCode"   label="所属业务"  />
+    <SDFormDict name="productStageId"   label="所属阶段"  />
+    <SDFormDict name="productFromSystem"   label="来源系统"  multiple={true} dictKey='PRODUCTFROMSYSTEM' required/>
+    <SDFormDict name="defaultOut"   label="默认输出数据源"  />
+    <SDFormDict name="productBussinessCode"   label="所属业务"  />
     <SDFormText name="defaultGetdatarule"   label="默认取数逻辑"  />
 
       <SDAreaTtile title='科目取数规则列表' />
@@ -583,13 +625,16 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
             actionRef={actionRef1}
             formRef={formRef3}  
             dataSource={mockData}
-            request={(async (formData1:rwaCalcConfProductrulesModel)=>{
+            request={(async ()=>{
               if(editType==='create'){
-                const sd1 = await product_querylist(formData1)
+                const sd1 = await product_querylist(null)
                   formDataList1 = [...sd1]
+                  if(editType1 == 'create'){
+                      setMockData([]);
+                  }
                   return {data:sd1}
               }else{
-                const sd1 = await product_querylist(mockData[0].productNo)
+                var sd1 = await product_querylist(mockData[0].productNo)
                 setMockData(sd1);
                 return {data:sd1}
                 }
@@ -605,8 +650,9 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
                     onClick={async() => {
                       setVisible1(true);
                       setEditType1('create');
-                      setCount1("PROD"+state1+counter(count) ) 
-                      formRef2.current?.setFieldValue("ruleCode",count1)
+                      // setCount1("PROD"+state1+counter(count) ) 
+                      // formRef2.current?.setFieldValue("ruleCode",count1)
+                      setRuleNoAdd()
                     }}
                     >
                       新增
@@ -623,7 +669,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
               <SDButton successMessage="" onClick={() => closeAndRefresh1()}>关闭</SDButton>]} onVisibleChange={()=>{setVisible1(false); }  } 
               >
         <SDLayout>
-<SDForm editType={editType1} formRef={formRef2}  initialValues={{ruleCode:count1}}  >
+<SDForm editType={editType1} formRef={formRef2}  initialValues={{ruleCode:editRuleNo}}  >
          <span style={{display:'none'}}>
           <SDFormText name="calcindex"   label="计算实例号"  />
           <SDFormText name="sdate"   label="起始数据日期"  />
@@ -634,7 +680,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
           </span>
           <SDFormText name="ruleCode"   label="规则编号"   readonlyCond ='update'/>
           <SDFormText name="ruleName"   label="规则说明"  />
-          <SDFormText name="dataType"   label="数据类型"  />
+          <SDFormDict name="dataType"   label="数据类型"  dictKey='DATA_TYPE' />
           <SDFormText name="ruleSubject"   label="对应科目"  />
           <SDFormText name="ruleIn"   label="输入"  />
           <SDFormText name="ruleOut"   label="输出"  />

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

@@ -9,6 +9,8 @@ import { WomanOutlined } from '@ant-design/icons';
 type aaa = {
     glCode ?:any;
     subjectNature ?:any;
+    onoroff :any;
+    positiveOffProjectType:any;
     onCancel:  () => void;
     onChangeVisible(visible: boolean, type: string): unknown;
     onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
@@ -28,7 +30,8 @@ const rulelist: React.FC<aaa>= (prop : aaa) => {
     const { fetchDict } = useModel('dict');
     const tableActionRef = useRef<ActionType>();
 
-    const [onoroff1,setOnoroff] =useState<Boolean>(false);
+    const [onoroff1,setOnoroff] =useState<boolean>(false);
+    var [positiveOffProjectType,setPositiveOffProjectType] =useState<boolean>(false);
 
     const closeAndRefresh = ()=>{
         setVisible(false);
@@ -298,7 +301,7 @@ width : 150
       //params={setDataSource}
       onVisibleChange={() => { setVisible(false);
       }}
-      initialValues={{glCode:prop.glCode,subjectNature:prop.subjectNature,editType:setEditType}}
+      initialValues={{glCode:prop.glCode,subjectNature:prop.subjectNature,editType:setEditType,onoroff:prop.onoroff}}
       footer={[<SDSubmitButton  editType={editType}   formRef={formRef} successMessage="" doSubmit={inst} >保存</SDSubmitButton>,
     <SDButton     successMessage="" onClick={()=>closeAndRefresh()} >关闭</SDButton>
   ]}
@@ -313,13 +316,18 @@ width : 150
           }else{
             setOnoroff(true);
           }
+          if(Values.onoroff=='OFF'){
+            setPositiveOffProjectType(true);
+          }else{
+            setPositiveOffProjectType(false);
+          }
 
         }
       }
        >
-<SDFormText name="ruleId"   label="规则编号"  max={20}/>
+<SDFormText name="ruleId"   label="规则编号"  max={20} readonlyCond='update'/>
 <SDFormText name="ruleName"   label="规则名称"  max={60}  width={250}/>
-<SDFormDict  name="glCode"   label="科目代码" dictKey='org' />
+<SDFormDict  name="glCode"   label="科目代码" dictKey='org' readonlyCond='update'/>
 <SDFormText name="subjectDesc"   label="科目名称"   readonlyCond='both' />
 <SDFormDict name="subjectNature"   label="科目性质"  dictKey='SUBJECT_DESC' />
 <SDFormDict name="onoroff"   label="表内外标识"  required={onoroff1} dictKey='ONOROFF'/>
@@ -327,8 +335,8 @@ width : 150
 <SDFormDict name="calcMethod"   label="计算方式"  dictKey='CALC_METHOD'/>
 <SDFormDict name="positiveRiskType"   label="正差异风险暴露分类"  />
 <SDFormDict name="negativeRiskType"   label="负差异风险暴露分类"  />
-<SDFormDict name="positiveOffProjectType"   label="正差异表外项目分类"  />
-<SDFormDict name="negativeOffProjectType"   label="负差异表外项目分类"  />
+<SDFormDict name="positiveOffProjectType"   label="正差异表外项目分类"  required={positiveOffProjectType} />
+<SDFormDict name="negativeOffProjectType"   label="负差异表外项目分类" required={positiveOffProjectType} key='@' />
 <SDFormDict name="stageinId"   label="所属阶段"  />
 <SDFormText name="subjectSql"   label="总账取数规则" type='textarea' />
 <SDFormText name="productSql"   label="勾稽明细取数规则"  type='textarea' />

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

@@ -8,7 +8,7 @@ export type SysFunButtonInfoModel = {
     buttonname?: string;
     buttonurl?: string;
     funccode?: string;
-    offobjectNo?: string;
+    offobjectNo : string;
   } & BaseModel;
 export type rwaCalcConfOffbalanceprotyperuleModel={
 //计算实例号
@@ -52,7 +52,7 @@ term : string;
 //数据日期
 dataDate : string;
 //表外项目编号
-offobjectNo : string;
+offobjectNo : any;
 //表外项目名称
 offobjectName : string;
 //所属阶段
@@ -73,9 +73,9 @@ yesorno :string;
 
 
 /** 获取菜单及按钮详情 POST /api/admin/funmanage/getDetail.do */
-export function getDetail1(body: rwaCalcConfOffbalanceprotypeModel) {
+export function getDetail1(offobjectNo: string) {
     return baseFun.request<rwaCalcConfOffbalanceprotypeModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/getDetail1', {
-      data: body,
+      params:{offobjectNo},
     });
   }
 
@@ -84,7 +84,7 @@ export function getFunTree1() {
     return baseFun.request<DictTree[]>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/getFunTree1', {});
   }
 
-  export function shunxu(offobjectNo:String){
+  export function shunxu(offobjectNo:string){
     return baseFun.request<any>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/shunxu',{
       params:{offobjectNo}
     })
@@ -128,7 +128,7 @@ export async function rules_modifyone(ruleNo:String){
 }
 
   //修改科目取数规则页面的查询
-  export async function rules_deleteone(ruleNo:String){
+  export async function rules_deleteone(ruleNo:string){
     return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/rules_deleteone',{
        params:{ruleNo}
     })
@@ -136,17 +136,27 @@ export async function rules_modifyone(ruleNo:String){
   }
   
  //修改科目取数规则页面的查询
- export async function info_deleteone(offobjectNo:String){
+ export async function info_deleteone(offobjectNo:string){
   return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/info_deleteone',{
      params:{offobjectNo}
   })
   ;
 }
   //修改科目取数规则页面的查询
- export async function jiaoyan(offobjectNo:String){
-  return baseFun.request<String>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/jiaoyan',{
+ export async function jiaoyan(offobjectNo:string){
+  return baseFun.request<string>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/jiaoyan',{
+     params:{offobjectNo}
+  })
+  ;
+}
+
+  
+ //修改科目取数规则页面的查询
+ export async function deleteFunc(offobjectNo:string[]){
+  return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/deleteFunc',{
      params:{offobjectNo}
   })
   ;
 }
 
+