From 321d507a5670cb36c1550445c4795a76c9d7d226 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 03 四月 2024 18:06:49 +0800 Subject: [PATCH] 部门端历史数据模块、字段查看模块返回数据层级关系处理 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 45 insertions(+), 13 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataServiceImpl.java index 77e4182..301ee1b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBasicDataServiceImpl.java @@ -22,8 +22,9 @@ import com.ruoyi.system.mapper.TbDeptMapper; import com.ruoyi.system.query.ScoreQuery; import com.ruoyi.system.service.*; +import com.ruoyi.system.utils.FieldBuildUtil; import com.ruoyi.system.vo.BasicDataReportingVO; -import com.ruoyi.system.vo.FieldReportingVO; +import com.ruoyi.system.vo.FieldsTreeVO; import com.ruoyi.system.vo.ScoreVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -62,7 +63,9 @@ private final TbScoreService tbScoreService; @Override - public R<BasicDataReportingVO> getBasicFields(String deptAreaCode) throws Exception { + public R<BasicDataReportingVO> getBasicFields() throws Exception { + SysUser user = SecurityUtils.getLoginUser().getUser(); + String deptAreaCode = user.getAreaCode(); BasicDataReportingVO vo = new BasicDataReportingVO(); //校验区划代码 TbDept dept = tbDeptMapper.selectOne(Wrappers.<TbDept>lambdaQuery().eq(TbDept::getAreaCode, deptAreaCode)); @@ -95,9 +98,20 @@ .between(TbBasicData::getCreateTime, quarterStart,quarterEnd)); //查询需要填写的字段 List<TbField> list = tbFieldService.lambdaQuery().eq(TbField::getStatus, ShowStatusEnum.SHOW).list(); + List<FieldsTreeVO> roots = new ArrayList<>(); + FieldsTreeVO fieldsTreeVO = new FieldsTreeVO(); + fieldsTreeVO.setId(-1L); + fieldsTreeVO.setName("转移支付规模"); + fieldsTreeVO.setCategory(Boolean.FALSE); + FieldsTreeVO fieldsTreeVO2 = new FieldsTreeVO(); + fieldsTreeVO2.setId(-2L); + fieldsTreeVO2.setName("当期GDP"); + fieldsTreeVO2.setCategory(Boolean.FALSE); + roots.add(fieldsTreeVO); + roots.add(fieldsTreeVO2); if (CollUtils.isNotEmpty(list)) { - List<FieldReportingVO> fieldReportingVOS = BeanUtils.copyList(list, FieldReportingVO.class); - vo.setFields(fieldReportingVOS); + FieldBuildUtil.buildTreeFromTbFieldList(list,roots); + vo.setFields(roots); } if (Objects.isNull(basicData)) { vo.setQuarter(String.format("%s年%s季度",now.getYear(),quarterOfYearStr)); @@ -108,19 +122,26 @@ //查询已填报数据 包含数据缺失和已填报 List<TbBasicDataField> basicDataFields = tbBasicDataFieldService.lambdaQuery() .eq(TbBasicDataField::getBasicDataId, basicData.getId()).list(); + if (CollUtils.isNotEmpty(basicDataFields)) { Map<Long, TbBasicDataField> fieldMap = basicDataFields.stream() .collect(Collectors.toMap(TbBasicDataField::getFieldId, Function.identity())); - vo.getFields().forEach(item -> { - TbBasicDataField tbBasicDataField = fieldMap.get(item.getId()); - if (Objects.nonNull(tbBasicDataField)) { - item.setValue(tbBasicDataField.getFieldValue()); - } - }); + setFieldValues(vo.getFields(), fieldMap); return R.ok(vo); } } return R.ok(vo); + } + public static void setFieldValues(List<FieldsTreeVO> fields, Map<Long, TbBasicDataField> fieldMap) { + for (FieldsTreeVO field : fields) { + TbBasicDataField tbBasicDataField = fieldMap.get(field.getId()); + if (tbBasicDataField != null) { + field.setValue(tbBasicDataField.getFieldValue()); + } + if (field.getChildren() != null && !field.getChildren().isEmpty()) { + setFieldValues(field.getChildren(), fieldMap); + } + } } @Override @@ -138,9 +159,16 @@ this.saveOrUpdate(tbBasicData); //保存基础数据动态字段数据 List<TbBasicDataField> tbBasicDataFields = BeanUtils.copyList(dto.getFields(), TbBasicDataField.class); - tbBasicDataFields.forEach(item -> item.setBasicDataId(tbBasicData.getId())); //查询需要填写的动态字段 List<TbField> fieldList = tbFieldService.lambdaQuery().eq(TbField::getStatus, ShowStatusEnum.SHOW).list(); + Map<Long, TbField> fieldMap = fieldList.stream().collect(Collectors.toMap(TbField::getId, e -> e)); + tbBasicDataFields.forEach(item -> { + item.setBasicDataId(tbBasicData.getId()); + TbField tbField = fieldMap.get(item.getFieldId()); + if (Objects.nonNull(tbField)) { + item.setFieldName(tbField.getFieldName()); + } + }); //添加固定字段 转移支付规模、当期GDP TbBasicDataField transferPaymentScale = new TbBasicDataField(); transferPaymentScale.setBasicDataId(tbBasicData.getId()); @@ -215,6 +243,7 @@ } return -1; // 返回-1表示未找到 } + private List<List<Object>> dataList(List<TbField> list) throws Exception { LoginUser loginUser = SecurityUtils.getLoginUser(); String areaName = loginUser.getUser().getAreaName(); @@ -250,6 +279,7 @@ headTitles.add(Lists.newArrayList("备注")); return headTitles; } + @Override @Transactional(rollbackFor = Exception.class) public void importBasicData(MultipartFile file) throws Exception { @@ -261,6 +291,7 @@ tbFieldService,areaCode,tbBasicDataFieldService,tbBasicDataConfigService, tbBasicDataConfigDetailService,tbScoreService)).sheet().doRead(); } + private void calculateScore(TbBasicData tbBasicData) { //计算得分 List<TbBasicDataConfig> list = tbBasicDataConfigService.lambdaQuery().eq(TbBasicDataConfig::getStatus, ShowStatusEnum.SHOW).list(); @@ -333,6 +364,7 @@ } } } + @Override public PageDTO<ScoreVO> pageScore(ScoreQuery query) { Page<ScoreVO> page = new Page<>(query.getPageNum(), query.getPageSize()); @@ -352,7 +384,7 @@ } query.setBasicDataId(basicData.getId()); //查询对应的基础数据配置 - List<ScoreVO> vos = tbScoreService.pageScore(query,page); - return PageDTO.of(page, vos); + Page<ScoreVO> pageVO = tbScoreService.pageScore(query,page); + return PageDTO.of(pageVO); } } -- Gitblit v1.7.1