瀏覽代碼

补录模板定义(可编辑表格与页面展示)代码修改

ZhangYanJie 6 月之前
父節點
當前提交
7a4e81c368

+ 6 - 2
Procedure/backend/project/src/main/java/com/sundata/product/rwa/datasupplementary/action/SupplementTemplateDefineAction.java

@@ -2,14 +2,18 @@ package com.sundata.product.rwa.datasupplementary.action;
 
 import com.sundata.common.base.BaseAction;
 import com.sundata.product.rwa.datasupplementary.model.TemplateBasicInfoDefineModel;
+import com.sundata.product.rwa.datasupplementary.model.TemplateFieldDetailDefineModel;
 import com.sundata.product.rwa.datasupplementary.service.SupplementTemplateDefineService;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 
 @RestController
 @RequestMapping("/product/rwa/datasupplementary/SupplementTemplateDefineAction")
@@ -129,8 +133,8 @@ public class SupplementTemplateDefineAction extends BaseAction {
      */
     @RequestMapping({"createFieldRowData"})
     public void createFieldRowData(HttpServletRequest request, HttpServletResponse response,
-                              @RequestBody TemplateBasicInfoDefineModel model) {
-        supplementTemplateDefineService.createFieldRowData(model);
+                                   @RequestBody List<TemplateFieldDetailDefineModel> modelList, @RequestParam String tmpCode) {
+        supplementTemplateDefineService.createFieldRowData(modelList,tmpCode);
     }
 
 

+ 3 - 1
Procedure/backend/project/src/main/java/com/sundata/product/rwa/datasupplementary/mapper/SupplementTemplateDefineMapper.java

@@ -15,11 +15,13 @@ public interface SupplementTemplateDefineMapper {
 
     void deleteInfoData(@Param("model") TemplateBasicInfoDefineModel model);
 
+    void deleteFieldDetailData(@Param("model") TemplateFieldDetailDefineModel model);
+
     void updateRowData(@Param("model") TemplateBasicInfoDefineModel model);
 
     void updateFieldRowData(@Param("model") TemplateBasicInfoDefineModel model);
 
     void createRowData(@Param("model") TemplateBasicInfoDefineModel model);
 
-    void createFieldRowData(@Param("model") TemplateBasicInfoDefineModel model);
+    void createFieldRowData(@Param("model") TemplateFieldDetailDefineModel model);
 }

+ 17 - 9
Procedure/backend/project/src/main/java/com/sundata/product/rwa/datasupplementary/mybatis/SupplementTemplateDefineMapper.xml

@@ -75,7 +75,7 @@
         TMPFILECODE
         )
         values(
-        #{model.calcindex},
+        #{model.calcIndex},
         #{model.startDate},
         #{model.endDate},
         #{model.term},
@@ -107,7 +107,7 @@
         REMARK
         )
         values(
-        #{model.calcindex},
+        #{model.calcIndex},
         #{model.startDate},
         #{model.endDate},
         #{model.term},
@@ -129,9 +129,6 @@
         update RWA_IMPUT_TMPCONF_BASEINFO
         <trim suffixOverrides=",">
             <set>
-                <if test="model.tmpCode != null and model.tmpCode != ''">
-                    TMPCODE = #{model.tmpCode},
-                </if>
                 <if test="model.tmpName != null and model.tmpName != ''">
                     TMPNAME = #{model.tmpName},
                 </if>
@@ -150,7 +147,9 @@
             </set>
         </trim>
         <where>
-            TMPCODE = #{model.tmpCode}
+            <if test="model.tmpCode != null and model.tmpCode != ''">
+                TMPCODE = #{model.tmpCode}
+            </if>
         </where>
     </update>
 
@@ -191,7 +190,7 @@
 
 
 
-    <!-- 报表的删除 -->
+    <!-- 数据模板的删除 -->
     <delete id="deleteInfoData">
         delete from RWA_IMPUT_TMPCONF_BASEINFO
         <where>
@@ -201,11 +200,20 @@
         </where>
     </delete>
 
+    <!-- 该模板编号下数据模板详情的删除 -->
+    <delete id="deleteFieldDetailData">
+        delete from RWA_IMPUT_TMPCONF_FIELDDETAILS
+        <where>
+            <if test="model.tmpCode != null and model.tmpCode !=''">
+                TMPCODE = #{model.tmpCode}
+            </if>
+        </where>
+    </delete>
+
 
 
     <!-- 报表的初始化 -->
-    <select id="selectDetailData" resultType="com.sunda
-    ta.product.rwa.datasupplementary.model.TemplateBasicInfoDefineModel">
+    <select id="selectDetailData" resultType="com.sundata.product.rwa.datasupplementary.model.TemplateBasicInfoDefineModel">
         SELECT
         CALCINDEX             AS   calcIndex,
         SDATE                 AS   startDate,

+ 13 - 10
Procedure/backend/project/src/main/java/com/sundata/product/rwa/datasupplementary/service/SupplementTemplateDefineService.java

@@ -3,12 +3,10 @@ package com.sundata.product.rwa.datasupplementary.service;
 import com.sundata.product.rwa.datasupplementary.mapper.SupplementTemplateDefineMapper;
 import com.sundata.product.rwa.datasupplementary.model.TemplateBasicInfoDefineModel;
 import com.sundata.product.rwa.datasupplementary.model.TemplateFieldDetailDefineModel;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
+
+
 
 import java.util.List;
 
@@ -67,6 +65,9 @@ public class SupplementTemplateDefineService {
      */
     public void deleteInfoData(TemplateBasicInfoDefineModel model) {
         supplementTemplateDefineMapper.deleteInfoData(model);
+        TemplateFieldDetailDefineModel delModel = new TemplateFieldDetailDefineModel();
+        delModel.setTmpCode(model.getTmpCode());
+        supplementTemplateDefineMapper.deleteFieldDetailData(delModel);
     }
 
     /**
@@ -77,7 +78,6 @@ public class SupplementTemplateDefineService {
      * @return:
      * @throws:
      */
-    @RequestMapping({"updateRowData"})
     public void updateRowData(TemplateBasicInfoDefineModel model) {
         supplementTemplateDefineMapper.updateRowData(model);
     }
@@ -90,7 +90,6 @@ public class SupplementTemplateDefineService {
      * @return:
      * @throws:
      */
-    @RequestMapping({"updateFieldRowData"})
     public void updateFieldRowData(TemplateBasicInfoDefineModel model) {
         supplementTemplateDefineMapper.updateFieldRowData(model);
     }
@@ -103,7 +102,6 @@ public class SupplementTemplateDefineService {
      * @return:
      * @throws:
      */
-    @RequestMapping({"createRowData"})
     public void createRowData(TemplateBasicInfoDefineModel model) {
         supplementTemplateDefineMapper.createRowData(model);
     }
@@ -117,8 +115,13 @@ public class SupplementTemplateDefineService {
      * @return:
      * @throws:
      */
-    @RequestMapping({"createFieldRowData"})
-    public void createFieldRowData(TemplateBasicInfoDefineModel model) {
-        supplementTemplateDefineMapper.createFieldRowData(model);
+    public void createFieldRowData(List<TemplateFieldDetailDefineModel> modelList, String tmpCode) {
+        TemplateFieldDetailDefineModel delModel = new TemplateFieldDetailDefineModel();
+        delModel.setTmpCode(tmpCode);
+        supplementTemplateDefineMapper.deleteFieldDetailData(delModel);
+        for(TemplateFieldDetailDefineModel model : modelList) {
+            model.setTmpCode(tmpCode);
+            supplementTemplateDefineMapper.createFieldRowData(model);
+        }
     }
 }

+ 42 - 52
Procedure/frontend/projectb/src/pages/product/datasupplementary/supplementtemplatedefine.tsx

@@ -72,33 +72,34 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
   const handleSave = async(data: TemplateBasicInfoDefineModel) => {
     
     if (editType == 'update' ) {
-       await updateRowData(data);
+       await updateRowData(data).then(()=>{
+        if (formDetailData) {
+          createFieldRowData(formDetailData,data.tmpCode);
+        }
+       });
        closeAndRefresh();
     } else if (editType == 'create' ) {
-      await createRowData(data);
+      await createRowData(data).then(()=>{
+        if (formDetailData) {
+          createFieldRowData(formDetailData,data.tmpCode);
+        }
+      });
       closeAndRefresh();
     }
     setDetailVisible(false);
   }
 
-    // 插入或者更新数据
-    const handleFieldSave = async(data: TemplateBasicInfoDefineModel,) => {
-      await createFieldRowData(data);
-      closeAndRefresh();
-    }
-
     //关闭窗口刷新父页面
     const closeAndRefresh = ()=>{
     actionRef.current?.reloadAndRest?.();
     }
-
-
+    
      
     // 数据补录模板定义
     const columns: ProColumns<TemplateBasicInfoDefineModel>[] = [
         {
           title: '序号',
-          dataIndex: 'index',
+          dataIndex: 'id',
           search: false,
           render: (text, record, index) => { index  = index + 1;dataInfoIndex = index; return index},
           width:100,
@@ -167,6 +168,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
               onClick={
                 ()=>{ 
                 selectData(record);
+                setCurrentRow(record);
                 setDetailVisible(true);
                 setEditType('update');
                 setBusiPk(String(dataInfoIndex));
@@ -181,8 +183,6 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
             onClick={
               ()=>{ 
               deleteData(record);
-              setDetailVisible(true);
-              setEditType('update');
              } }
           >
             删除
@@ -195,7 +195,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
               ()=>{ 
               selectData(record);
               setDetailVisible(true);
-              setEditType('update');
+              setEditType('display');
              } }
           >
             查看
@@ -209,7 +209,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
        const detailColumns: ProColumns<TemplateFieldDetailDefineModel>[] = [
         {
           title: '序号',
-          dataIndex: 'id',
+          dataIndex: 'tmpFieldCode',
           search: false,
           render: (text, record, index) => { index  = index + 1;dataDetailIndex = index; return index},
           width:100,
@@ -265,7 +265,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
                     if (formRange) {
                       let formRowStart = String(formRange).split('-')[0];
                       let formRowEnd = String(formRange).split('-')[1];
-                      if (toNumber(rowStart) > toNumber(formRowStart) || toNumber(rowEnd) > toNumber(formRowEnd)){
+                      if (toNumber(rowStart) < toNumber(formRowStart) || toNumber(rowEnd) > toNumber(formRowEnd)){
                         callback('输入范围超出上方规定范围');
                       }
                     } else {
@@ -286,13 +286,13 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
                 {pattern: RegExp(`[0-9]+\\-[0-9]+|[n|N]`),message:'请输入正确范围'},
                 {validator:(rules,value,callback)=>{
                   if (String(value).split('-').length == 2) {
-                    let rowStart = String(value).split('-')[0];
-                    let rowEnd = String(value).split('-')[1];
-                    let formRange = templateRef.current?.getFieldValue('rowRange');
+                    let colStart = String(value).split('-')[0];
+                    let colEnd = String(value).split('-')[1];
+                    let formRange = templateRef.current?.getFieldValue('columnRange');
                     if (formRange) {
-                      let formRowStart = String(formRange).split('-')[0];
-                      let formRowEnd = String(formRange).split('-')[1];
-                      if (toNumber(rowStart) > toNumber(formRowStart) || toNumber(rowEnd) > toNumber(formRowEnd)){
+                      let formColStart = String(formRange).split('-')[0];
+                      let formColEnd = String(formRange).split('-')[1];
+                      if (toNumber(colStart) < toNumber(formColStart) || toNumber(colEnd) > toNumber(formColEnd)){
                         callback('输入范围超出上方规定范围');
                       }
                     } else {
@@ -314,7 +314,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
             dataIndex: 'remark',
             hideInTable: false,
           },
-          {
+          editType == 'create' || editType == 'update' ? {
             title: '操作',
             dataIndex: 'operate',
             valueType: 'option',
@@ -323,27 +323,13 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
                 key="roleCfg"
                 icon={<WomanOutlined />}
                 successMessage=""
-                onClick={
-                  ()=>{ 
-                  fillInActionRef.current?.startEditable(dataDetailIndex);
-                 } }
+                onClick={()=>{
+                  fillInActionRef.current?.startEditable(record.tmpFieldCode);}}
               >
-                修改
+                编辑
               </SDOperate>,
-              <SDOperate
-              key="roleCfg"
-              icon={<WomanOutlined />}
-              successMessage=""
-              onClick={
-                ()=>{ 
-                  setFormDetailData(...[formDetailData?.filter((item)=>{return item.id != record.id})]);
-                  fillInActionRef.current?.cancelEditable(dataDetailIndex);
-               } }
-            >
-              删除
-            </SDOperate>,
             ],
-          },
+          }:{},
         ];
     
     return (
@@ -366,6 +352,8 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
             onClick={() => {
                 setEditType('create');
                 setDetailVisible(true);
+                setFormDetailData([]);
+                setBusiPk('');
             }}
           >
             新增
@@ -386,7 +374,7 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
           visible={detailVisible}
           onVisibleChange={() => {setDetailVisible(false)}}
           footer={[
-            <SDSubmitButton  editType={editType}   formRef={formRef} doSubmit={handleSave} >保存</SDSubmitButton>,
+            <SDSubmitButton  editType={editType}   formRef={templateRef} doSubmit={handleSave} >保存</SDSubmitButton>,
             <SDButton
               key="closeUpdate"
               successMessage=''
@@ -408,47 +396,49 @@ const supplementtemplatedefine : React.FC<widowRush> = (prop:widowRush) => {
             } else {
               setReadRowType(false);
               setReadColType(false);
+              templateRef.current?.setFieldValue("rowRange",currentRow?.rowRange);
+              templateRef.current?.setFieldValue("columnRange",currentRow?.columnRange);
             }
           }}
         >
             <SDAreaTtile title='补录模板新增页面'/>
             <SDFormText name="tmpCode" readonlyCond="update" required={true} label="模板编号"/>
-            <SDFormText name="tmpName" label="模板名称"/>
-            <SDFormDict dictKey="TEMPLATE_TYPE" name="tmpType"  label="模板类型"/>
-            <SDFormText name="rowRange" disabled={readRowType}
+            <SDFormText name="tmpName" required={true} label="模板名称"/>
+            <SDFormDict dictKey="TEMPLATE_TYPE" name="tmpType" required={true}  label="模板类型"/>
+            <SDFormText name="rowRange" disabled={readRowType} required={!readRowType}
              rules={[{pattern: RegExp(`[0-9]+\\-[0-9]+|[n|N]`),message:'请输入正确范围'}]}
             label="行范围" placeholder={'例:1-3'}/>
-            <SDFormText name="columnRange" disabled={readColType}
+            <SDFormText name="columnRange" disabled={readColType} required={!readColType}
              rules={[{pattern: RegExp(`[0-9]+\\-[0-9]+|[n|N]`),message:'请输入正确范围'}]}
             label="列范围" placeholder={'例:1-3'}/>
-            <SDFormAttach name={"tmpFileCode"}   label="模板文件上传"  funcType={"supplementtemplatedefine"} filetype="" maxFileNum={1} busiPkId={busiPk}/>
+            <SDFormAttach name="tmpFileCode" required={true}  label="模板文件上传"  funcType={"templatedefine"} filetype="" maxFileNum={1} busiPkId={busiPk}/>
             <SDLayout>
         <SDAreaTtile title='模板范围配置'/>
         <EditableProTable
-              rowKey="id"
+              rowKey="tmpFieldCode"
               columns={detailColumns}
               recordCreatorProps={false}
               actionRef={fillInActionRef}
               value={formDetailData}
               editable={{
                 actionRender: (row,config,defaultDoms)=>{
-                  return [defaultDoms.save,defaultDoms.cancel]
+                  return [defaultDoms.save,defaultDoms.delete,defaultDoms.cancel]
                 }
               }}
-              toolBarRender={(_, { selectedRowKeys }) =>  [
+              toolBarRender={(_, { selectedRowKeys }) => editType == 'create' || editType == 'update' ? [
                 <SDButton
                   key="export"
                   successMessage=''
                   onClick={() => {
                     fillInActionRef.current?.addEditRecord?.({
-                      id: dataDetailIndex+1,
+                      tmpFieldCode: dataDetailIndex+1,
                       title: 'NEWROW',
                     });
                   }}
                 >
                   新增
                 </SDButton>,
-              ]}
+              ]:[]}
               onChange={ (value: readonly TemplateFieldDetailDefineModel[]) => {
                 setFormDetailData([...value]);
               } }

+ 6 - 6
Procedure/frontend/projectb/src/services/rwa/product/datasupplementary/supplementtemplatedefine.ts

@@ -30,8 +30,6 @@ export type TemplateBasicInfoDefineModel = {
 
   // 模板字段详情定义表
   export type TemplateFieldDetailDefineModel = {
-    // 序号
-    id: string;
     // 计算实例号
     calcIndex: string;
     // 起始数据日期
@@ -44,7 +42,7 @@ export type TemplateBasicInfoDefineModel = {
     dataDate: string;
     // 模板编号
     tmpCode: string;
-    // 字段编号
+    // 字段编号(序号)
     tmpFieldCode: string;
     // 行列类型
     rowColType: string;
@@ -81,7 +79,7 @@ export async function selectDetailData(body:TemplateBasicInfoDefineModel) {
 
 /** 获取页面初始化及条件查询 POST*/
 export async function deleteInfoData(body:TemplateBasicInfoDefineModel) {
-  return baseFun.request<void>('/api/product/rwa/datasupplementary/SupplementTemplateDefineAction/selectDetailData.do',{data: body});
+  return baseFun.request<void>('/api/product/rwa/datasupplementary/SupplementTemplateDefineAction/deleteInfoData.do',{data: body});
 }
 
 
@@ -103,8 +101,10 @@ export async function createRowData(body:TemplateBasicInfoDefineModel) {
 
 
 /** 获取页面初始化及条件查询 POST*/
-export async function createFieldRowData(body:TemplateBasicInfoDefineModel) {
-  return baseFun.request<void>('/api/product/rwa/datasupplementary/SupplementTemplateDefineAction/createFieldRowData.do',{data: body});
+export async function createFieldRowData(body:TemplateFieldDetailDefineModel[],tmpCode:string) {
+  return baseFun.request<void>('/api/product/rwa/datasupplementary/SupplementTemplateDefineAction/createFieldRowData.do',{data: body,
+    params:{tmpCode}
+  });
 }