소스 검색

添加损益报表的数据格式控制

JammeyJiang 3 달 전
부모
커밋
2ec0b3c624

+ 22 - 0
src/main/java/com/kcim/dao/model/ReportForm.java

@@ -103,4 +103,26 @@ public class ReportForm implements Serializable {
      */
     private Integer hide;
 
+    /**
+     * 数据类型:0未知 1数值 2百分比
+     */
+    private Integer dataType;
+
+
+    /**
+     * 数据类型名称
+     */
+    @TableField(exist = false)
+    private String dataTypeName;
+
+    /**
+     * 小数位
+     */
+    private Integer decimalPlace;
+
+    /**
+     * 是否有千分号
+     */
+    private Integer permil;
+
 }

+ 18 - 0
src/main/java/com/kcim/dao/model/dto/ReportFormEditDTO.java

@@ -52,5 +52,23 @@ public class ReportFormEditDTO {
      */
     private Integer hide;
 
+    /**
+     * 数据类型:0未知 1数值 2百分比
+     */
+    private Integer dataType;
+
+    /**
+     * 数据类型名称
+     */
+    private String dataTypeName;
 
+    /**
+     * 小数位
+     */
+    private Integer decimalPlace;
+
+    /**
+     * 是否有千分号
+     */
+    private Integer permil;
 }

+ 18 - 0
src/main/java/com/kcim/dao/model/dto/ReportFormSaveDTO.java

@@ -48,5 +48,23 @@ public class ReportFormSaveDTO {
      */
     private Integer hide;
 
+    /**
+     * 数据类型:0未知 1数值 2百分比
+     */
+    private Integer dataType;
+
+    /**
+     * 数据类型名称
+     */
+    private String dataTypeName;
 
+    /**
+     * 小数位
+     */
+    private Integer decimalPlace;
+
+    /**
+     * 是否有千分号
+     */
+    private Integer permil;
 }

+ 11 - 0
src/main/java/com/kcim/service/impl/ComputeMedicalDepartmentProfitServiceImpl.java

@@ -103,6 +103,7 @@ public class ComputeMedicalDepartmentProfitServiceImpl implements ComputeMedical
         if(CollectionUtils.isEmpty(byReportType)){
             throw new CostException("未找到【"+reportType+"】对应的报表项目");
         }
+        Map<Long, List<ReportForm>> reportIdMap = byReportType.stream().collect(Collectors.groupingBy(ReportForm::getId));
         Map<Long,Integer> sortMap = new HashMap<>();
         Map<Long,Integer> hideMap = new HashMap<>();
         for (ReportForm reportForm : byReportType) {
@@ -167,6 +168,16 @@ public class ComputeMedicalDepartmentProfitServiceImpl implements ComputeMedical
             vo.setNum(profit.getReportNum());
             vo.setReportType(Integer.valueOf(reportType));
             vo.setSort(profit.getSort());
+            List<ReportForm> profitReportFormList = reportIdMap.get(profit.getReportId());
+            if(!CollectionUtils.isEmpty(profitReportFormList)) {
+                vo.setDataType(profitReportFormList.get(NumberConstant.ZERO).getDataType());
+                vo.setDecimalPlace(profitReportFormList.get(NumberConstant.ZERO).getDecimalPlace());
+                vo.setPermil(profitReportFormList.get(NumberConstant.ZERO).getPermil());
+            }else {
+                vo.setDataType(NumberConstant.ONE);
+                vo.setDecimalPlace(NumberConstant.TWO);
+                vo.setPermil(NumberConstant.ONE);
+            }
             reportFormProfitVos.add(vo);
         }
 

+ 41 - 2
src/main/java/com/kcim/service/impl/CostDepartmentProfitServiceImpl.java

@@ -1246,8 +1246,14 @@ public class CostDepartmentProfitServiceImpl extends ServiceImpl<CostDepartmentP
         if (CollUtil.isEmpty(reportFormList)) {
             throw new CostException(500, "损益表未找到");
         }
-        List<CommonTitleReportVo> commonTitleReportVos = reportFormList.stream().map(reportForm -> new CommonTitleReportVo(reportForm.getId(), reportForm.getParentId(), reportForm.getReportName(), reportForm.getSort())).collect(Collectors.toList());
-
+        List<CommonTitleReportVo> commonTitleReportVos = reportFormList.stream().map(reportForm -> {
+            CommonTitleReportVo commonTitleReportVo = new CommonTitleReportVo(reportForm.getId(), reportForm.getParentId(), reportForm.getReportName(), reportForm.getSort());
+            commonTitleReportVo.setDataType(reportForm.getDataType());
+            commonTitleReportVo.setDecimalPlace(reportForm.getDecimalPlace());
+            commonTitleReportVo.setPermil(reportForm.getPermil());
+            return  commonTitleReportVo;
+        }).collect(Collectors.toList());
+//        List<CommonTitleReportVo> commonTitleReportVos = BeanUtil.convertList(reportFormList,CommonTitleReportVo.class);
         Map<Long, List<CommonTitleReportVo>> collect = commonTitleReportVos.stream().collect(Collectors.groupingBy(CommonTitleReportVo::getParentReportId));
         List<CommonTitleReportVo> titleReportVoList = collect.get(NumberConstant.ZERO_L);
         for (CommonTitleReportVo reportVo : titleReportVoList) {
@@ -1715,11 +1721,22 @@ public class CostDepartmentProfitServiceImpl extends ServiceImpl<CostDepartmentP
 
         Map<Long, Integer> sortMap = reportFormList.stream().collect(Collectors.toMap(ReportForm::getId, ReportForm::getSort, (a, b) -> b));
         Map<Long, String> descriptionMap = reportFormList.stream().collect(Collectors.toMap(ReportForm::getId, reportForm -> !StringUtils.isEmpty(reportForm.getDescription()) ? reportForm.getDescription() : "", (a, b) -> b));
+        Map<Long, List<ReportForm>> reportIdMap = reportFormList.stream().collect(Collectors.groupingBy(ReportForm::getId));
 
         List<CostProfitVo> costProfitVos = BeanUtil.convertList(filterProfit, CostProfitVo.class);
         costProfitVos.forEach(profitVo -> {
             profitVo.setDescription(descriptionMap.get(profitVo.getReportId()));
             profitVo.setSort(sortMap.get(profitVo.getReportId()));
+            List<ReportForm> profitReportFormList = reportIdMap.get(profitVo.getReportId());
+            if(!CollectionUtils.isEmpty(profitReportFormList)) {
+                profitVo.setDataType(profitReportFormList.get(NumberConstant.ZERO).getDataType());
+                profitVo.setDecimalPlace(profitReportFormList.get(NumberConstant.ZERO).getDecimalPlace());
+                profitVo.setPermil(profitReportFormList.get(NumberConstant.ZERO).getPermil());
+            }else {
+                profitVo.setDataType(NumberConstant.ONE);
+                profitVo.setDecimalPlace(NumberConstant.TWO);
+                profitVo.setPermil(NumberConstant.ONE);
+            }
         });
         Map<Long, List<CostProfitVo>> collect = costProfitVos.stream().collect(Collectors.groupingBy(CostProfitVo::getReportParentId));
         List<CostProfitVo> costProfitParentVos = collect.get(NumberConstant.ZERO_L);
@@ -1773,6 +1790,7 @@ public class CostDepartmentProfitServiceImpl extends ServiceImpl<CostDepartmentP
             if (CollUtil.isEmpty(reportFormList)) {
                 throw new CostException(500, "损益表未找到");
             }
+            Map<Long, List<ReportForm>> reportIdMap = reportFormList.stream().collect(Collectors.groupingBy(ReportForm::getId));
             List<CostDepartmentProfit> filterProfit = new ArrayList<>();
 
             Map<Long, List<CostDepartmentProfit>> collect1 = departmentProfits.stream().collect(Collectors.groupingBy(CostDepartmentProfit::getReportId));
@@ -1794,6 +1812,16 @@ public class CostDepartmentProfitServiceImpl extends ServiceImpl<CostDepartmentP
             costProfitVos.forEach(profitVo -> {
                 profitVo.setDescription(descriptionMap.get(profitVo.getReportId()));
                 profitVo.setSort(sortMap.get(profitVo.getReportId()));
+                List<ReportForm> profitReportFormList = reportIdMap.get(profitVo.getReportId());
+                if(!CollectionUtils.isEmpty(profitReportFormList)) {
+                    profitVo.setDataType(profitReportFormList.get(NumberConstant.ZERO).getDataType());
+                    profitVo.setDecimalPlace(profitReportFormList.get(NumberConstant.ZERO).getDecimalPlace());
+                    profitVo.setPermil(profitReportFormList.get(NumberConstant.ZERO).getPermil());
+                }else {
+                    profitVo.setDataType(NumberConstant.ONE);
+                    profitVo.setDecimalPlace(NumberConstant.TWO);
+                    profitVo.setPermil(NumberConstant.ONE);
+                }
             });
             Map<Long, List<CostProfitVo>> collect = costProfitVos.stream().collect(Collectors.groupingBy(CostProfitVo::getReportParentId));
             List<CostProfitVo> costProfitParentVos = collect.get(NumberConstant.ZERO_L);
@@ -1835,6 +1863,7 @@ public class CostDepartmentProfitServiceImpl extends ServiceImpl<CostDepartmentP
                     if (CollUtil.isEmpty(reportFormList)) {
                         throw new CostException(500, "损益表未找到");
                     }
+                    Map<Long, List<ReportForm>> reportIdMap = reportFormList.stream().collect(Collectors.groupingBy(ReportForm::getId));
                     List<CostDepartmentProfit> filterProfit = new ArrayList<>();
 
                     Map<Long, List<CostDepartmentProfit>> collect1 = departmentProfits.stream().collect(Collectors.groupingBy(CostDepartmentProfit::getReportId));
@@ -1855,6 +1884,16 @@ public class CostDepartmentProfitServiceImpl extends ServiceImpl<CostDepartmentP
                     costProfitVos.forEach(profitVo -> {
                         profitVo.setDescription(descriptionMap.get(profitVo.getReportId()));
                         profitVo.setSort(sortMap.get(profitVo.getReportId()));
+                        List<ReportForm> profitReportFormList = reportIdMap.get(profitVo.getReportId());
+                        if(!CollectionUtils.isEmpty(profitReportFormList)) {
+                            profitVo.setDataType(profitReportFormList.get(NumberConstant.ZERO).getDataType());
+                            profitVo.setDecimalPlace(profitReportFormList.get(NumberConstant.ZERO).getDecimalPlace());
+                            profitVo.setPermil(profitReportFormList.get(NumberConstant.ZERO).getPermil());
+                        }else {
+                            profitVo.setDataType(NumberConstant.ONE);
+                            profitVo.setDecimalPlace(NumberConstant.TWO);
+                            profitVo.setPermil(NumberConstant.ONE);
+                        }
                     });
                     Map<Long, List<CostProfitVo>> collect = costProfitVos.stream().collect(Collectors.groupingBy(CostProfitVo::getReportParentId));
                     List<CostProfitVo> costProfitParentVos = collect.get(NumberConstant.ZERO_L);

+ 7 - 0
src/main/java/com/kcim/service/impl/ReportFormServiceImpl.java

@@ -69,6 +69,13 @@ public class ReportFormServiceImpl extends ServiceImpl<ReportFormMapper, ReportF
             } else if (i.getCalcType() == 5) {
                 reportFormVO.setShowAddRelation(3);
             }
+            if (i.getDataType() == 1) {
+                reportFormVO.setDataTypeName("数值");
+            } else if (i.getDataType() == 2) {
+                reportFormVO.setDataTypeName("百分比");
+            } else {
+                reportFormVO.setDataTypeName("未知");
+            }
             return reportFormVO;
         }).collect(Collectors.toList());
 

+ 14 - 0
src/main/java/com/kcim/vo/CommonTitleReportVo.java

@@ -20,6 +20,20 @@ public class CommonTitleReportVo {
     private String reportName;
 
     private Integer sort;
+    /**
+     * 数据类型:0未知 1数值 2百分比
+     */
+    private Integer dataType;
+
+    /**
+     * 小数位
+     */
+    private Integer decimalPlace;
+
+    /**
+     * 是否有千分号
+     */
+    private Integer permil;
 
     private List<CommonTitleReportVo> childTitle;
 

+ 15 - 0
src/main/java/com/kcim/vo/CostProfitVo.java

@@ -104,4 +104,19 @@ public class CostProfitVo implements Serializable {
 
 	private List<ReportVo> data;
 
+	/**
+	 * 数据类型:0未知 1数值 2百分比
+	 */
+	private Integer dataType;
+
+	/**
+	 * 小数位
+	 */
+	private Integer decimalPlace;
+
+	/**
+	 * 是否有千分号
+	 */
+	private Integer permil;
+
 }

+ 15 - 0
src/main/java/com/kcim/vo/HospProfitVO.java

@@ -91,4 +91,19 @@ public class HospProfitVO {
     private String description;
 
     private List<HospProfitVO> child;
+
+    /**
+     * 数据类型:0未知 1数值 2百分比
+     */
+    private Integer dataType;
+
+    /**
+     * 小数位
+     */
+    private Integer decimalPlace;
+
+    /**
+     * 是否有千分号
+     */
+    private Integer permil;
 }

+ 20 - 0
src/main/java/com/kcim/vo/ReportFormVO.java

@@ -55,6 +55,26 @@ public class ReportFormVO {
 
     private Integer hide;
 
+    /**
+     * 数据类型:0未知 1数值 2百分比
+     */
+    private Integer dataType;
+
+    /**
+     * 数据类型名称
+     */
+    private String dataTypeName;
+
+    /**
+     * 小数位
+     */
+    private Integer decimalPlace;
+
+    /**
+     * 是否有千分号
+     */
+    private Integer permil;
+
     /**
      * 报表与诊次床日关联的状态
      */

+ 4 - 1
src/main/resources/mapper/CostReportFormMapper.xml

@@ -66,7 +66,10 @@
                create_time,
                delete_time,
                description,
-               hide
+               hide,
+               data_type,
+               decimal_place,
+               permil
         from cost_report_form
         where hosp_id = #{hospId}
           and report_type = #{reportType}