فهرست منبع

报表定义改进

ZhangYanJie 1 ماه پیش
والد
کامیت
4c39abfa48

+ 6 - 65
Procedure/backend/project/src/main/java/com/sundata/product/rwa/reportformconfigreportcreater/action/ReportFillingConfigAction.java

@@ -24,7 +24,7 @@ public class ReportFillingConfigAction extends BaseAction {
     /**
      * @author: 张艳杰
      * @methodsName: getDataList
-     * @description: 获取当前数据列表
+     * @description: 初始化
      * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
      * @return: List<ReportDefinitionModel>
      * @throws:
@@ -38,7 +38,7 @@ public class ReportFillingConfigAction extends BaseAction {
     /**
      * @author 张艳杰
      * @methodsName createReportData
-     * @description 获取当前树节点数据
+     * @description 创建数据
      * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
      * @return
      * @throws
@@ -51,7 +51,7 @@ public class ReportFillingConfigAction extends BaseAction {
 
     /**
      * @author: 张艳杰
-     * @methodsName: updateReportData
+     * @methodsName: 更新数据
      * @description: 获取当前树节点数据
      * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
      * @return:
@@ -67,7 +67,7 @@ public class ReportFillingConfigAction extends BaseAction {
     /**
      * @author: 张艳杰
      * @methodsName: deleteReportData
-     * @description: 获取当前树节点数据
+     * @description: 删除数据
      * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
      * @return:
      * @throws:
@@ -81,7 +81,7 @@ public class ReportFillingConfigAction extends BaseAction {
     /**
      * @author: 张艳杰
      * @methodsName: selectReportData
-     * @description: 获取当前树节点数据
+     * @description: 查询当前数据
      * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
      * @return:
      * @throws:
@@ -108,65 +108,6 @@ public class ReportFillingConfigAction extends BaseAction {
     }
 
 
-    /**
-     * @author: 张艳杰
-     * @methodsName: updateCalcReportData
-     * @description: 获取当前树节点数据
-     * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody List<ReportCalculationModel> modelList
-     * @return:
-     * @throws:
-     */
-    @RequestMapping({"updateCalcReportData"})
-    public void updateCalcReportData(HttpServletRequest request, HttpServletResponse response,
-                                     @RequestBody List<ReportCalculationModel> modelList,@RequestParam String keys) {
-        reportFillingConfigService.updateCalcReportData(modelList,keys);
-    }
-
-
-    /**
-     * @author: 张艳杰
-     * @methodsName: createCalcReportData
-     * @description: 获取当前树节点数据
-     * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody List<ReportCalculationModel> modelList
-     * @return:
-     * @throws:
-     */
-    @RequestMapping({"createCalcReportData"})
-    public void createCalcReportData(HttpServletRequest request, HttpServletResponse response,
-                                 @RequestBody List<ReportCalculationModel> modelList,@RequestParam String reportNo) {
-        reportFillingConfigService.createCalcReportData(modelList,reportNo);
-    }
-
-
-    /**
-     * @author: 张艳杰
-     * @methodsName: deleteReportData
-     * @description: 获取当前树节点数据
-     * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
-     * @return:
-     * @throws:
-     */
-    @RequestMapping({"deleteCalcReportData"})
-    public void deleteCalcReportData(HttpServletRequest request, HttpServletResponse response,
-                                 @RequestBody ReportCalculationModel model) {
-        reportFillingConfigService.deleteCalcReportData(model);
-    }
-
-
-    /**
-     * @author: 张艳杰
-     * @methodsName: selectCalcReportData
-     * @description: 获取当前树节点数据
-     * @param: HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model
-     * @return:
-     * @throws:
-     */
-    @RequestMapping({"selectCalcReportData"})
-    public void selectCalcReportData(HttpServletRequest request, HttpServletResponse response,
-                                     @RequestParam String reportNo) {
-        sendData(response,reportFillingConfigService.selectCalcReportData(reportNo));
-    }
-
 
     /**
      * @author: 张艳杰
@@ -179,7 +120,7 @@ public class ReportFillingConfigAction extends BaseAction {
     @RequestMapping({"isNotExist"})
     public void isNotExist(HttpServletRequest request, HttpServletResponse response, @RequestBody ReportDefinitionModel model) {
         if (null != model && model.getReportNo() != null && !model.getReportNo().isEmpty()){
-            ReportDefinitionModel checkModel = reportFillingConfigService.selectReportData(model);
+            ReportDefinitionModel checkModel = reportFillingConfigService.checkReportDataisNotExist(model);
             if (null != checkModel) {
                 sendData(response,"该代码已存在");
             } else {

+ 22 - 0
Procedure/backend/project/src/main/java/com/sundata/product/rwa/reportformconfigreportcreater/model/ReportDefinitionModel.java

@@ -1,5 +1,7 @@
 package com.sundata.product.rwa.reportformconfigreportcreater.model;
 
+import java.util.List;
+
 public class ReportDefinitionModel {
     // 计算实例号
     private String calcindex;
@@ -23,6 +25,10 @@ public class ReportDefinitionModel {
     private String reportType;
     // 模板文件
     private String reportFile;
+    // 需填报单元格
+    private List<ReportCalculationModel> fillInFormDataList;
+    // 需计算单元格
+    private List<ReportCalculationModel> calculateFormDataList;
 
     public String getCalcindex() {
         return calcindex;
@@ -111,4 +117,20 @@ public class ReportDefinitionModel {
     public void setReportFile(String reportFile) {
         this.reportFile = reportFile;
     }
+
+    public List<ReportCalculationModel> getFillInFormDataList() {
+        return fillInFormDataList;
+    }
+
+    public void setFillInFormDataList(List<ReportCalculationModel> fillInFormDataList) {
+        this.fillInFormDataList = fillInFormDataList;
+    }
+
+    public List<ReportCalculationModel> getCalculateFormDataList() {
+        return calculateFormDataList;
+    }
+
+    public void setCalculateFormDataList(List<ReportCalculationModel> calculateFormDataList) {
+        this.calculateFormDataList = calculateFormDataList;
+    }
 }

+ 134 - 104
Procedure/backend/project/src/main/java/com/sundata/product/rwa/reportformconfigreportcreater/service/ReportFillingConfigService.java

@@ -31,19 +31,92 @@ public class ReportFillingConfigService {
     @Autowired
     ReportFillingConfigMapper reportFillingConfigMapper;
 
+    /**
+     * @author: 张艳杰
+     * @methodsName: getDataList
+     * @description: 初始化
+     * @param : ReportDefinitionModel model,
+     * @return:
+     * @throws:
+     */
     public List<ReportDefinitionModel> getDataList(ReportDefinitionModel model) {
         return reportFillingConfigMapper.getDataList(model);
     }
 
+    /**
+     * @author: 张艳杰
+     * @methodsName: createReportData
+     * @description: 创建报表定义数据
+     * @param : ReportDefinitionModel model,
+     * @return:
+     * @throws:
+     */
     public void createReportData(ReportDefinitionModel model) {
-        reportFillingConfigMapper.createReportData(model);
+        if (null != model) {
+            reportFillingConfigMapper.createReportData(model);
+            // 需填报单元格创建
+            if (null != model.getFillInFormDataList() && model.getFillInFormDataList().size()>0){
+                for ( ReportCalculationModel m : model.getFillInFormDataList()) {
+                    m.setReportno(model.getReportNo());
+                    m.setReportUnitNo(String.valueOf(m.getReportno())+"_"+String.valueOf(m.getReportUnitSheet())+"_"
+                            + String.valueOf(m.getReportUnitRow())+"_"+String.valueOf(m.getReportUnitCell()));
+                    m.setExcelFormula(ReportFinalParam.EXECUTE_REPORT);
+                    reportFillingConfigMapper.createCalcReportData(m);
+                }
+            }
+            // 需计算单元格创建
+            if (null != model.getCalculateFormDataList() && model.getCalculateFormDataList().size()>0){
+                for ( ReportCalculationModel m : model.getCalculateFormDataList()) {
+                    reportFillingConfigMapper.createCalcReportData(m);
+                }
+            }
+        }
+
     }
 
+    /**
+     * @author: 张艳杰
+     * @methodsName: updateReportData
+     * @description: 更新报表定义
+     * @param : ReportDefinitionModel model,
+     * @return:
+     * @throws:
+     */
     public void updateReportData(ReportDefinitionModel model) {
-        double version = (Double)DataUtil.getDataDefault(model.getReportVersion(),Double.class);
-        model.setReportVersion(String.valueOf(new DecimalFormat("#.##").format(version + 0.1)));
-        reportFillingConfigMapper.updateReportData(model);
+        if (null != model) {
+            double version = (Double)DataUtil.getDataDefault(model.getReportVersion(),Double.class);
+            model.setReportVersion(String.valueOf(new DecimalFormat("#.##").format(version + 0.1)));
+            reportFillingConfigMapper.updateReportData(model);
+            ReportCalculationModel calcModel = new ReportCalculationModel();
+            calcModel.setReportno(model.getReportNo());
+            reportFillingConfigMapper.deleteCalcReportData(calcModel);
+            // 需填报单元格创建
+            if (null != model.getFillInFormDataList() && model.getFillInFormDataList().size()>0){
+                for ( ReportCalculationModel m : model.getFillInFormDataList()) {
+                    m.setReportno(model.getReportNo());
+                    m.setReportUnitNo(String.valueOf(m.getReportno())+"_"+String.valueOf(m.getReportUnitSheet())+"_"
+                            + String.valueOf(m.getReportUnitRow())+"_"+String.valueOf(m.getReportUnitCell()));
+                    m.setExcelFormula(ReportFinalParam.EXECUTE_REPORT);
+                    reportFillingConfigMapper.createCalcReportData(m);
+                }
+            }
+            // 需计算单元格创建
+            if (null != model.getCalculateFormDataList() && model.getCalculateFormDataList().size()>0){
+                for ( ReportCalculationModel m : model.getCalculateFormDataList()) {
+                    reportFillingConfigMapper.createCalcReportData(m);
+                }
+            }
+        }
     }
+
+    /**
+     * @author: 张艳杰
+     * @methodsName: deleteReportData
+     * @description: 删除报表定义
+     * @param : ReportDefinitionModel model,String key
+     * @return:
+     * @throws:
+     */
     public void deleteReportData(ReportDefinitionModel model) {
         boolean flag = reportFillingConfigMapper.deleteReportData(model);
         if (flag){
@@ -53,12 +126,61 @@ public class ReportFillingConfigService {
         }
     }
 
+    /**
+     * @author: 张艳杰
+     * @methodsName: checkReportDataisNotExist
+     * @description: 验证报表是否已存在
+     * @param : ReportDefinitionModel model,String key
+     * @return: ReportDefinitionModel
+     * @throws:
+     */
+    public ReportDefinitionModel checkReportDataisNotExist(ReportDefinitionModel model) {
+        ReportDefinitionModel selectModel = reportFillingConfigMapper.selectReportData(model);
+        return selectModel;
+    }
+
+
+    /**
+     * @author: 张艳杰
+     * @methodsName: selectReportData
+     * @description: 查询报表定义
+     * @param : ReportDefinitionModel model,String key
+     * @return: ReportDefinitionModel
+     * @throws:
+     */
     public ReportDefinitionModel selectReportData(ReportDefinitionModel model) {
-        return reportFillingConfigMapper.selectReportData(model);
+        ReportDefinitionModel selectModel = reportFillingConfigMapper.selectReportData(model);
+        List<ReportCalculationModel> modelFillInList = new ArrayList<ReportCalculationModel>();
+        List<ReportCalculationModel> modelCalcList = new ArrayList<ReportCalculationModel>();
+        // 查询该报表所有单元格
+        List<ReportCalculationModel> listModel = reportFillingConfigMapper.selectCalcReportData(model.getReportNo());
+        if (null != listModel && listModel.size()>0) {
+            for(ReportCalculationModel m :listModel) {
+                if (null != m.getExcelFormula() && m.getExcelFormula().equals(ReportFinalParam.EXECUTE_REPORT)) {
+                    modelFillInList.add(m);
+                } else {
+                    modelCalcList.add(m);
+                }
+
+            }
+        }
+        // 需填报单元格记录
+        selectModel.setFillInFormDataList(modelFillInList);
+        // 需计算单元格记录
+        selectModel.setCalculateFormDataList(modelCalcList);
+        return selectModel;
     }
 
+    /**
+     * @author: 张艳杰
+     * @methodsName: selectCalcProcessType
+     * @description: 解析报表
+     * @param : ReportDefinitionModel model,String key
+     * @return:
+     * @throws:
+     */
+    public ReportDefinitionModel analyseReportFile(ReportDefinitionModel model,String key) {
 
-    public Map<String,List<ReportCalculationModel>> analyseReportFile(ReportDefinitionModel model,String key) {
 
         List<ReportCalculationModel> modelFillInList = new ArrayList<ReportCalculationModel>();
         List<ReportCalculationModel> modelCalcList = new ArrayList<ReportCalculationModel>();
@@ -96,114 +218,22 @@ public class ReportFillingConfigService {
             // 解析报表文件
 
             FilesValueCheckUtils.analyseReportFile(book,model,modelFillInList,modelCalcList);
-
-            resMap.put("FillIn",modelFillInList);
-            resMap.put("Calc",modelCalcList);
+            model.setFillInFormDataList(modelFillInList);
+            model.setCalculateFormDataList(modelCalcList);
+//            resMap.put("FillIn",modelFillInList);
+//            resMap.put("Calc",modelCalcList);
 
         }
 
         // AdminUtil.queryParamValue("ATTACHPATH") + File.separator + entity.getFunctype() + File.separator + entity.getBusiid() + File.separator + entity.getBusiType();
-        return resMap;
-    }
-
-    public void createCalcReportData(List<ReportCalculationModel> modelList,String reportNo) {
-        if (null != modelList && modelList.size() > 0) {
-            for(ReportCalculationModel model:modelList) {
-                if (null == model.getExcelFormula()) {
-                    model.setExcelFormula(ReportFinalParam.EXECUTE_REPORT);
-                    model.setReportno(reportNo);
-                    model.setReportUnitNo(reportNo+model.getReportUnitSheet()
-                            +model.getReportUnitRow()+model.getReportUnitCell());
-                }
-                reportFillingConfigMapper.createCalcReportData(model);
-            }
-        }
-    }
-
-    public void deleteCalcReportData(ReportCalculationModel model) {
-        reportFillingConfigMapper.deleteCalcReportData(model);
-    }
-
-    public Map<String,List<ReportCalculationModel>> selectCalcReportData(String reportNo) {
-        Map<String,List<ReportCalculationModel>> resMap = new HashMap<>();
-        List<ReportCalculationModel> modelFillInList = new ArrayList<ReportCalculationModel>();
-        List<ReportCalculationModel> modelCalcList = new ArrayList<ReportCalculationModel>();
-        List<ReportCalculationModel> listModel = reportFillingConfigMapper.selectCalcReportData(reportNo);
-        for(ReportCalculationModel model :listModel) {
-            if (model.getExcelFormula().equals(ReportFinalParam.EXECUTE_REPORT)) {
-                modelFillInList.add(model);
-            } else {
-                modelCalcList.add(model);
-            }
-
-        }
-        resMap.put("FillIn",modelFillInList);
-        resMap.put("Calc",modelCalcList);
-         return resMap;
-    }
-
-    public void updateCalcReportData(List<ReportCalculationModel> modelList, String keys) {
-        // 记载老数据列表的序号
-        String[] values = keys.split(",");
-        // 存放老列表
-        List<ReportCalculationModel> oldList = new ArrayList<ReportCalculationModel>();
-        // 存放新列表
-        List<ReportCalculationModel> newList = new ArrayList<ReportCalculationModel>();
-        // 循环整个列表,根据values分别老列表和新加列表
-        for(ReportCalculationModel model:modelList) {
-            if (Arrays.asList(values).contains(model.getReportUnitNo())) {
-                oldList.add(model);
-            } else {
-                newList.add(model);
-            }
-        }
-
-        // 判断是否有新加列表
-        if (newList.isEmpty()) {
-            // 老列表数据变少,将少的数据清除
-            if (values.length > oldList.size()) {
-                // 提前将数据库内老数据删除
-                reportFillingConfigMapper.deleteCalcReportData(oldList.get(0));
-                // 没有新加列表(但是老数据列表进行了删除),将老列表需要更新的数据更新,
-                for (ReportCalculationModel model:oldList){
-                    // 更新
-                    reportFillingConfigMapper.createCalcReportData(model);
-                }
-            } else {
-                // 没有新加列表(老数据列表没变,或者老数据列表进行了编辑更改),将老列表需要更新的数据更新,
-                for (ReportCalculationModel model:oldList){
-                    // 更新
-                    reportFillingConfigMapper.updateCalcReportData(model);
-                }
-            }
-        } else {
-            // 提前将需填报列表在数据库内的数据删除
-            reportFillingConfigMapper.deleteCalcReportData(oldList.get(0));
-            // 有新列表加入,将新列表中与老列表重复的数据按新列表为准存进数据库
-            for(ReportCalculationModel model:newList){
-                model.setReportno(modelList.get(0).getReportno());
-                model.setExcelFormula(ReportFinalParam.EXECUTE_REPORT);
-                for (ReportCalculationModel oldModel:oldList){
-                    if (!oldModel.getReportUnitSheet().equals(model.getReportUnitSheet())
-                            || !oldModel.getReportUnitRow().equals(model.getReportUnitRow())
-                            || !oldModel.getReportUnitCell().equals(model.getReportUnitCell())) {
-                        // 老数据插入
-                        reportFillingConfigMapper.createCalcReportData(oldModel);
-                    }
-                }
-                // 新数据插入
-                model.setReportUnitNo(model.getReportno()+model.getReportUnitSheet()
-                        +model.getReportUnitRow()+model.getReportUnitCell());
-                reportFillingConfigMapper.createCalcReportData(model);
-            }
-        }
+        return model;
     }
 
     /**
      * @author: 张艳杰
      * @methodsName: selectCalcProcessType
      * @description: 获取计算过程类型列表
-     * @param: HttpServletRequest request, HttpServletResponse response,
+     * @param:
      * @return:
      * @throws:
      */

+ 33 - 21
Procedure/frontend/projectb/src/pages/product/report_form_config_reportcreater/reportfillingconfig.tsx

@@ -88,14 +88,21 @@ const reportfillingconfig : React.FC<widowRush> = (prop:widowRush) => {
     const selectData = async (formdata : ReportDefinitionModel) => {
       const data = await selectReportData(formdata);
       formRef.current?.setFieldsValue(data);
-      if (formdata && formdata.reportNo) {
-        const listData = await selectCalcReportData(formdata.reportNo);
-        if (listData) {
-          setFillInFormData(listData.FillIn);
-          setFillInFormDataBk(listData.FillIn);
-          setCalculateFormData(listData.Calc);
-         }
+      if (data.fillInFormDataList) {
+        setFillInFormData(data?.fillInFormDataList);
+        setFillInFormDataBk(data?.fillInFormDataList);
       }
+      if (data.calculateFormDataList) {
+        setCalculateFormData(data.calculateFormDataList);
+      }
+      // if (formdata && formdata.reportNo) {
+      //   const listData = await selectCalcReportData(formdata.reportNo);
+      //   if (listData) {
+      //     setFillInFormData(listData.FillIn);
+      //     setFillInFormDataBk(listData.FillIn);
+      //     setCalculateFormData(listData.Calc);
+      //    }
+      // }
 
      }
 
@@ -121,21 +128,22 @@ const reportfillingconfig : React.FC<widowRush> = (prop:widowRush) => {
        baseFun.error('没有解析文件');
        return;
     }
-
+    data.fillInFormDataList = fillInFormData;
+    data.calculateFormDataList = calculateFormData;
     if (editType == 'update' ) {
-      let keys ='';
+      // let keys ='';
        await updateReportData(data);
-       fillInFormDataBk.forEach((items)=>{
-        keys = keys+items.reportUnitNo+","
-       });
-       await updateCalcReportData(fillInFormData,keys);
+      //  fillInFormDataBk.forEach((items)=>{
+      //   keys = keys+items.reportUnitNo+","
+      //  });
+      //  await updateCalcReportData(fillInFormData,keys);
        closeAndRefresh();
     } else if (editType == 'create' ) {
-      fillInFormData.push(...calculateFormData);
+      // fillInFormData.push(...calculateFormData);
       await createReportData(data);
-      if (data?.reportNo) {
-        await createCalcReportData(fillInFormData,data?.reportNo);
-      }
+      // if (data?.reportNo) {
+      //   await createCalcReportData(fillInFormData,data?.reportNo);
+      // }
       closeAndRefresh();
     }
     setDetailVisible(false);
@@ -560,10 +568,14 @@ const analyseFile = async (data: ReportDefinitionModel) => {
   const handanalyseReportFile = async (record:any,) => {
 
     const data = await analyseReportFile(record,"reportuploadconfig");
-    setFillInFormData(data.FillIn);
-    setCalculateFormData(data.Calc);
-    setFillInFormDataBk(data.FillIn);
-    setCalculateFormDataBk(data.Calc);
+    if (data.fillInFormDataList) {
+      setFillInFormData(data.fillInFormDataList);
+      setFillInFormDataBk(data.fillInFormDataList);
+    }
+    if (data.calculateFormDataList) {
+      setCalculateFormData(data.calculateFormDataList);
+      setCalculateFormDataBk(data.calculateFormDataList);
+    }
     //setIntoRestId();
     setAnalysis(true);
     editId = fillInFormData.length;

+ 5 - 1
Procedure/frontend/projectb/src/services/rwa/product/report_form_config_reportcreater/reportfillingconfig.ts

@@ -25,6 +25,10 @@ export type ReportDefinitionModel = {
     reportType?: string;
     // 模板文件
     reportFile?: File;
+    // 需填报单元格列表
+    fillInFormDataList?:ReportCalculationModel[];
+    // 需计算单元格列表
+    calculateFormDataList?:ReportCalculationModel[];
   } & BasePageModel;
 
 
@@ -107,7 +111,7 @@ export async function selectReportData(body: any) {
 
     /** 查询当前行详细数据 POST*/
 export async function analyseReportFile(body: ReportDefinitionModel,key:string) {
-  return baseFun.request<resMapModel>('/api/product/rwa/reportformconfigreportcreater/ReportFillingConfigAction/analyseReportFile.do',{data: body,
+  return baseFun.request<ReportDefinitionModel>('/api/product/rwa/reportformconfigreportcreater/ReportFillingConfigAction/analyseReportFile.do',{data: body,
     params:{key}
   });
 }