diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutConstructionValueController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutConstructionValueController.java index fb7bf5be..4fb72a16 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutConstructionValueController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/controller/OutConstructionValueController.java @@ -8,7 +8,6 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; @@ -18,6 +17,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.out.domain.bo.OutConstructionValueBo; import org.dromara.out.domain.bo.OutConstructionValueFacilityReq; import org.dromara.out.domain.vo.OutConstructionAllValueVo; +import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueTotalVo; import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueVo; import org.dromara.out.service.IOutConstructionValueService; import org.springframework.validation.annotation.Validated; @@ -49,14 +49,13 @@ public class OutConstructionValueController extends BaseController { } /** - * 导出施工产值列表 + * 查询施工产值合计列表 */ - @SaCheckPermission("out:constructionValue:export") - @Log(title = "施工产值", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(OutConstructionValueBo bo, HttpServletResponse response) { - List list = outConstructionValueService.queryList(bo); - ExcelUtil.exportExcel(list, "施工产值", OutConstructionValueVo.class, response); + @SaCheckPermission("out:constructionValue:list") + @GetMapping("/totalList") + public R> totalList(OutConstructionValueBo bo) { + List list = outConstructionValueService.queryList(bo); + return R.ok(list); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java index adceed0f..a160cc15 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/bo/OutConstructionValueBo.java @@ -109,5 +109,9 @@ public class OutConstructionValueBo extends BaseEntity { */ private LocalDate endDate; + /** + * 项目类型 + */ + private String projectType; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueMatrixVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueMatrixVo.java index b4950efb..8f59e2cf 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueMatrixVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueMatrixVo.java @@ -57,6 +57,21 @@ public class OutConstructionValueMatrixVo { @ExcelProperty(value = "数量") private BigDecimal number; + /** + * 人工填报数量 + */ + private Integer artificialNum; + + /** + * 无人机识别数量 + */ + private Integer uavNum; + + /** + * 确认数量 + */ + private Integer confirmNum; + /** * 对甲产值 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueProjectVo.java index 28da0f08..23d726b4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueProjectVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueProjectVo.java @@ -45,6 +45,21 @@ public class OutConstructionValueProjectVo { @ExcelProperty(value = "数量") private BigDecimal number; + /** + * 人工填报数量 + */ + private Integer artificialNum; + + /** + * 无人机识别数量 + */ + private Integer uavNum; + + /** + * 确认数量 + */ + private Integer confirmNum; + /** * 对甲产值 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueSubProjectVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueSubProjectVo.java index 991ec8bf..a1280344 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueSubProjectVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueSubProjectVo.java @@ -51,6 +51,21 @@ public class OutConstructionValueSubProjectVo { @ExcelProperty(value = "数量") private BigDecimal number; + /** + * 人工填报数量 + */ + private Integer artificialNum; + + /** + * 无人机识别数量 + */ + private Integer uavNum; + + /** + * 确认数量 + */ + private Integer confirmNum; + /** * 对甲产值 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueTotalVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueTotalVo.java new file mode 100644 index 00000000..70b25d58 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvalue/OutConstructionValueTotalVo.java @@ -0,0 +1,73 @@ +package org.dromara.out.domain.vo.outconstructionvalue; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author lilemy + * @date 2025-12-03 11:24 + */ +@Data +public class OutConstructionValueTotalVo { + + /** + * 项目名 + */ + private String projectName; + + /** + * 子项目名 + */ + private String subProjectName; + + /** + * 方阵名称 + */ + private String matrixName; + + /** + * 分项工程名称 + */ + private String progressCategoryName; + + /** + * 计量方式(0无 1数量 2百分比) + */ + private String unitType; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private BigDecimal number; + + /** + * 人工填报数量 + */ + private Integer artificialNum; + + /** + * 无人机识别数量 + */ + private Integer uavNum; + + /** + * 确认数量 + */ + private Integer confirmNum; + + /** + * 对甲产值 + */ + private BigDecimal ownerValue; + + /** + * 产值 + */ + private BigDecimal outValue; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvaluerange/OutConstructionValueRangeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvaluerange/OutConstructionValueRangeVo.java index b9719c21..df3e3cd9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvaluerange/OutConstructionValueRangeVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/domain/vo/outconstructionvaluerange/OutConstructionValueRangeVo.java @@ -7,7 +7,7 @@ import lombok.Data; import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.out.domain.OutConstructionValueRange; -import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueVo; +import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueTotalVo; import java.io.Serial; import java.io.Serializable; @@ -82,6 +82,6 @@ public class OutConstructionValueRangeVo implements Serializable { /** * 子项列表 */ - private List constructionValueVoList; + private List constructionValueVoList; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutConstructionValueService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutConstructionValueService.java index 3f11aa5b..5d81da02 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutConstructionValueService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/IOutConstructionValueService.java @@ -9,6 +9,7 @@ import org.dromara.out.domain.bo.OutConstructionValueBo; import org.dromara.out.domain.bo.OutConstructionValueFacilityReq; import org.dromara.out.domain.vo.OutConstructionAllValueVo; import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueCategoryVo; +import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueTotalVo; import org.dromara.out.domain.vo.outconstructionvalue.OutConstructionValueVo; import org.dromara.progress.domain.PgsProgressCategory; @@ -47,7 +48,7 @@ public interface IOutConstructionValueService extends IService queryList(OutConstructionValueBo bo); + List queryList(OutConstructionValueBo bo); /** * 新增施工产值 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueRangeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueRangeServiceImpl.java index 3c43cdf3..b141e8ab 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueRangeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueRangeServiceImpl.java @@ -40,7 +40,6 @@ import org.dromara.out.service.IOutConstructionValueRangeService; import org.dromara.out.service.IOutConstructionValueService; import org.dromara.progress.domain.PgsProgressCategory; import org.dromara.progress.domain.PgsProgressPlanDetail; -import org.dromara.progress.service.IPgsProgressCategoryService; import org.dromara.progress.service.IPgsProgressPlanDetailService; import org.dromara.project.domain.BusProject; import org.dromara.project.service.IBusProjectService; @@ -472,12 +471,8 @@ public class OutConstructionValueRangeServiceImpl extends ServiceImpl list, - Summary summary) { + private OutConstructionValueRangeProjectVo buildProjectVo(BusProject project, String name, String childName, + List list, Summary summary) { OutConstructionValueRangeProjectVo vo = new OutConstructionValueRangeProjectVo(); vo.setProjectName(project.getProjectName()); vo.setProgressCategoryName(name + "/" + childName); @@ -499,13 +494,9 @@ public class OutConstructionValueRangeServiceImpl extends ServiceImpl> entry, - Map projectNameMap, - Summary summary) { + private OutConstructionValueRangeSubProjectVo buildSubProjectVo(BusProject project, String name, String childName, + Map.Entry> entry, + Map projectNameMap, Summary summary) { OutConstructionValueRangeSubProjectVo vo = new OutConstructionValueRangeSubProjectVo(); vo.setProjectName(project.getProjectName()); vo.setSubProjectName(projectNameMap.get(entry.getKey())); @@ -529,13 +520,9 @@ public class OutConstructionValueRangeServiceImpl extends ServiceImpl> entry, - Map projectNameMap, - Summary summary) { + private OutConstructionValueRangeMatrixVo buildMatrixVo(BusProject project, String name, String childName, + Map.Entry> entry, + Map projectNameMap, Summary summary) { List list = entry.getValue(); OutConstructionValueRangeMatrixVo vo = new OutConstructionValueRangeMatrixVo(); vo.setProjectName(project.getProjectName()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java index b5c8c5f8..888771c8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/out/service/impl/OutConstructionValueServiceImpl.java @@ -36,6 +36,7 @@ import org.dromara.progress.domain.PgsProgressPlanDetail; import org.dromara.progress.domain.dto.progressplandetail.PgsProgressPlanDetailCreateReq; import org.dromara.progress.domain.dto.progressplandetail.PgsProgressPlanDetailFinishedCreateReq; import org.dromara.progress.domain.dto.progressplandetail.PgsProgressPlanDetailRemoveReq; +import org.dromara.progress.domain.enums.PgsRelevancyStructureEnum; import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryVo; import org.dromara.progress.service.IPgsProgressCategoryService; import org.dromara.progress.service.IPgsProgressPlanDetailService; @@ -115,11 +116,179 @@ public class OutConstructionValueServiceImpl extends ServiceImpl queryList(OutConstructionValueBo bo) { + public List queryList(OutConstructionValueBo bo) { + Long projectId = bo.getProjectId(); + if (projectId == null) { + throw new ServiceException("请选择项目"); + } + BusProject project = projectService.getById(projectId); + if (project == null) { + throw new ServiceException("项目不存在"); + } + // 获取子项目 + List projectList = projectService.lambdaQuery() + .eq(BusProject::getPId, projectId) + .list(); + projectList.add(project); + Map projectNameMap = projectList.stream() + .collect(Collectors.toMap(BusProject::getId, BusProject::getProjectName)); LambdaQueryWrapper lqw = buildQueryWrapper(bo); - List outConstructionValueVos = baseMapper.selectVoList(lqw); - supplementaryData(outConstructionValueVos); - return outConstructionValueVos; + List valueList = this.list(lqw); + if (CollUtil.isEmpty(valueList)) { + return Collections.emptyList(); + } + if (StringUtils.isNotBlank(bo.getProjectType())) { + List valueCategoryList = new ArrayList<>(); + List topList = new ArrayList<>(); + this.buildExportData(valueList, valueCategoryList, topList); + // 汇总数据 + List projectVoList = new ArrayList<>(); + List subProjectVoList = new ArrayList<>(); + List matrixVoList = new ArrayList<>(); + // 合计 + BigDecimal totalNumber = BigDecimal.ZERO; + Integer totalArtificialNum = 0; + Integer totalUavNum = 0; + Integer totalConfirmNum = 0; + BigDecimal totalOwnerValue = BigDecimal.ZERO; + BigDecimal totalOutValue = BigDecimal.ZERO; + + BigDecimal subTotalNumber = BigDecimal.ZERO; + Integer subTotalArtificialNum = 0; + Integer subTotalUavNum = 0; + Integer subTotalConfirmNum = 0; + BigDecimal subTotalOwnerValue = BigDecimal.ZERO; + BigDecimal subTotalOutValue = BigDecimal.ZERO; + + BigDecimal matrixTotalNumber = BigDecimal.ZERO; + Integer matrixTotalArtificialNum = 0; + Integer matrixTotalUavNum = 0; + Integer matrixTotalConfirmNum = 0; + BigDecimal matrixTotalOwnerValue = BigDecimal.ZERO; + BigDecimal matrixTotalOutValue = BigDecimal.ZERO; + // 根据名称+结构分类 + Map> topNameMap = + topList.stream().collect(Collectors.groupingBy(item -> item.getName() + "_" + item.getRelevancyStructure())); + for (Map.Entry> entry : topNameMap.entrySet()) { + String[] keys = entry.getKey().split("_"); + String name = keys[0]; + String structure = keys[1]; + List topNodes = entry.getValue(); + List topIds = topNodes.stream().map(PgsProgressCategory::getId).toList(); + // 找出全部子孙节点 + List children = findChildren(valueCategoryList, topIds); + // 子类按名称分组 + Map> childrenMap = + children.stream().collect(Collectors.groupingBy(OutConstructionValueCategoryVo::getName)); + for (Map.Entry> childrenEntry : childrenMap.entrySet()) { + String childName = childrenEntry.getKey(); + List childrenEntryValue = childrenEntry.getValue(); + // ======= 构建项目级数据 ======= + Summary summary = calculateSummary(childrenEntryValue); + OutConstructionValueProjectVo projectVo = + buildProjectVo(project, name, childName, childrenEntryValue, summary); + projectVoList.add(projectVo); + totalNumber = totalNumber.add(BigDecimal.valueOf(summary.number)); + totalArtificialNum += summary.artificialNum; + totalUavNum += summary.uavNum; + totalConfirmNum += summary.confirmNum; + totalOwnerValue = totalOwnerValue.add(summary.ownerValue); + totalOutValue = totalOutValue.add(summary.outValue); + // ======= 构建子项目级数据 ======= + if ((structure.equals("1") || structure.equals("2")) && bo.getProjectType().equals("1")) { + Map> subMap = + childrenEntryValue.stream().collect(Collectors.groupingBy(OutConstructionValueCategoryVo::getProjectId)); + for (Map.Entry> subEntry : subMap.entrySet()) { + Summary subSummary = calculateSummary(subEntry.getValue()); + OutConstructionValueSubProjectVo subVo = + buildSubProjectVo(project, name, childName, subEntry, projectNameMap, subSummary); + subProjectVoList.add(subVo); + subTotalNumber = subTotalNumber.add(BigDecimal.valueOf(subSummary.number)); + subTotalArtificialNum += subSummary.artificialNum; + subTotalUavNum += subSummary.uavNum; + subTotalConfirmNum += subSummary.confirmNum; + subTotalOwnerValue = subTotalOwnerValue.add(subSummary.ownerValue); + subTotalOutValue = subTotalOutValue.add(subSummary.outValue); + } + } + // ======= 构建方阵级数据 ======= + if (structure.equals("2") && bo.getProjectType().equals("2")) { + Map> matrixMap = + childrenEntryValue.stream().collect(Collectors.groupingBy(OutConstructionValueCategoryVo::getMatrixName)); + for (Map.Entry> matrixEntry : matrixMap.entrySet()) { + Summary matrixSummary = calculateSummary(matrixEntry.getValue()); + OutConstructionValueMatrixVo matrixVo = + buildMatrixVo(project, name, childName, matrixEntry, projectNameMap, matrixSummary); + matrixVoList.add(matrixVo); + matrixTotalNumber = matrixTotalNumber.add(BigDecimal.valueOf(matrixSummary.number)); + matrixTotalArtificialNum += matrixSummary.artificialNum; + matrixTotalUavNum += matrixSummary.uavNum; + matrixTotalConfirmNum += matrixSummary.confirmNum; + matrixTotalOwnerValue = matrixTotalOwnerValue.add(matrixSummary.ownerValue); + matrixTotalOutValue = matrixTotalOutValue.add(matrixSummary.outValue); + } + } + } + } + // 排序 + projectVoList.sort(Comparator.comparing(OutConstructionValueProjectVo::getProgressCategoryName)); + subProjectVoList.sort(Comparator.comparing(OutConstructionValueSubProjectVo::getSubProjectName) + .thenComparing(OutConstructionValueSubProjectVo::getProgressCategoryName)); + matrixVoList.sort(Comparator.comparing(OutConstructionValueMatrixVo::getSubProjectName) + .thenComparing(OutConstructionValueMatrixVo::getMatrixName) + .thenComparing(OutConstructionValueMatrixVo::getProgressCategoryName)); + // 填充合计 + OutConstructionValueProjectVo rangeProjectVo = new OutConstructionValueProjectVo(); + rangeProjectVo.setProjectName("合计"); + rangeProjectVo.setNumber(totalNumber); + rangeProjectVo.setArtificialNum(totalArtificialNum); + rangeProjectVo.setUavNum(totalUavNum); + rangeProjectVo.setConfirmNum(totalConfirmNum); + rangeProjectVo.setOwnerValue(totalOwnerValue); + rangeProjectVo.setOutValue(totalOutValue); + projectVoList.add(rangeProjectVo); + OutConstructionValueSubProjectVo rangeSubProjectVo = new OutConstructionValueSubProjectVo(); + rangeSubProjectVo.setProjectName("合计"); + rangeSubProjectVo.setNumber(subTotalNumber); + rangeSubProjectVo.setArtificialNum(subTotalArtificialNum); + rangeSubProjectVo.setUavNum(subTotalUavNum); + rangeSubProjectVo.setConfirmNum(subTotalConfirmNum); + rangeSubProjectVo.setOwnerValue(subTotalOwnerValue); + rangeSubProjectVo.setOutValue(subTotalOutValue); + subProjectVoList.add(rangeSubProjectVo); + OutConstructionValueMatrixVo rangeMatrixVo = new OutConstructionValueMatrixVo(); + rangeMatrixVo.setProjectName("合计"); + rangeMatrixVo.setNumber(matrixTotalNumber); + rangeMatrixVo.setArtificialNum(matrixTotalArtificialNum); + rangeMatrixVo.setUavNum(matrixTotalUavNum); + rangeMatrixVo.setConfirmNum(matrixTotalConfirmNum); + rangeMatrixVo.setOwnerValue(matrixTotalOwnerValue); + rangeMatrixVo.setOutValue(matrixTotalOutValue); + matrixVoList.add(rangeMatrixVo); + return switch (bo.getProjectType()) { + case "3" -> projectVoList.stream().map(p -> { + OutConstructionValueTotalVo vo = new OutConstructionValueTotalVo(); + BeanUtils.copyProperties(p, vo); + return vo; + }).toList(); + case "1" -> subProjectVoList.stream().map(p -> { + OutConstructionValueTotalVo vo = new OutConstructionValueTotalVo(); + BeanUtils.copyProperties(p, vo); + return vo; + }).toList(); + case "2" -> matrixVoList.stream().map(p -> { + OutConstructionValueTotalVo vo = new OutConstructionValueTotalVo(); + BeanUtils.copyProperties(p, vo); + return vo; + }).toList(); + case null, default -> Collections.emptyList(); + }; + } + return valueList.stream().map(p -> { + OutConstructionValueTotalVo vo = new OutConstructionValueTotalVo(); + BeanUtils.copyProperties(p, vo); + return vo; + }).toList(); } private LambdaQueryWrapper buildQueryWrapper(OutConstructionValueBo bo) { @@ -155,9 +324,16 @@ public class OutConstructionValueServiceImpl extends ServiceImpl progressCategories = pgsProgressCategoryService.list(categoryLqw); if (CollUtil.isNotEmpty(progressCategories)) { List categoryIds = progressCategories.stream().map(PgsProgressCategory::getId).toList(); @@ -441,7 +617,7 @@ public class OutConstructionValueServiceImpl extends ServiceImpl list) { Summary s = new Summary(); - s.number = BigDecimal.ZERO; + s.number = 0; + s.artificialNum = 0; + s.uavNum = 0; + s.confirmNum = 0; s.ownerValue = BigDecimal.ZERO; s.outValue = BigDecimal.ZERO; for (OutConstructionValueCategoryVo c : list) { @@ -608,7 +790,10 @@ public class OutConstructionValueServiceImpl extends ServiceImpl