diff --git a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java index 7f1a28b5..a0d70b50 100644 --- a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java +++ b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/DemoTest.java @@ -5,7 +5,6 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.IdcardUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; -import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -129,7 +128,7 @@ public class DemoTest { log.info("执行定时任务:同步 {}至{} 计划详情到施工产值", lastMonday, lastSunday); Boolean synced = progressPlanDetailService.syncPlanDetail2ConstructionValue(lastMonday, lastSunday, null);*/ LocalDate start = LocalDate.of(2024, 1, 1); // 起始时间(2024-01-01) - LocalDate end = LocalDate.of(2025, 10, 13); // 截止时间(2025-09-15) + LocalDate end = LocalDate.of(2025, 10, 20); // 截止时间(2025-09-15) // 如果起始不是周一,调整到当周的周一 if (start.getDayOfWeek() != DayOfWeek.MONDAY) { @@ -149,7 +148,7 @@ public class DemoTest { .ge(PgsProgressPlanDetail::getDate, monday) .le(PgsProgressPlanDetail::getDate, sunday) .ne(PgsProgressPlanDetail::getFinishedNumber, BigDecimal.ZERO) - .eq(PgsProgressPlanDetail::getStatus, "1") +// .eq(PgsProgressPlanDetail::getStatus, "1") .list(); if (CollUtil.isEmpty(planDetailList)) { // 下一周 @@ -244,8 +243,8 @@ public class DemoTest { value.setOutValue(constructionValue); value.setOwnerValue(ownerValue); // 统计总产值 - allConstructionValue = allConstructionValue.add(constructionValue).setScale(4, RoundingMode.HALF_UP); - allOwnerValue = allOwnerValue.add(ownerValue).setScale(4, RoundingMode.HALF_UP); + allConstructionValue = allConstructionValue.add(constructionValue); + allOwnerValue = allOwnerValue.add(ownerValue); // 添加需要修改状态的计划详情 PgsProgressPlanDetail update = new PgsProgressPlanDetail(); update.setId(planDetail.getId()); @@ -253,8 +252,8 @@ public class DemoTest { updateList.add(update); saveList.add(value); } - range.setOutValue(allConstructionValue); - range.setOwnerValue(allOwnerValue); + range.setOutValue(allConstructionValue.setScale(4, RoundingMode.HALF_UP)); + range.setOwnerValue(allOwnerValue.setScale(4, RoundingMode.HALF_UP)); // 如果产值都为0,则不保存 if (allConstructionValue.compareTo(BigDecimal.ZERO) == 0 && allOwnerValue.compareTo(BigDecimal.ZERO) == 0) { return null; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java index f7b099aa..65e3ff79 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrContractProgressSettlementController.java @@ -6,7 +6,6 @@ import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -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; @@ -17,6 +16,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo; import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq; import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementTotalVo; import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; import org.dromara.ctr.service.ICtrContractProgressSettlementService; import org.springframework.validation.annotation.Validated; @@ -92,6 +92,15 @@ public class CtrContractProgressSettlementController extends BaseController { return toAjax(ctrContractProgressSettlementService.updateByBo(req)); } + /** + * 查询金额合计 + */ + @SaCheckPermission("ctr:contractProgressSettlement:query") + @GetMapping("/queryMoneyTotal") + public R queryMoneyTotal(CtrContractProgressSettlementBo bo) { + return R.ok(ctrContractProgressSettlementService.queryMoneyTotal(bo)); + } + /** * 删除承包合同进度结算 * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementTotalVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementTotalVo.java new file mode 100644 index 00000000..e42ee300 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementTotalVo.java @@ -0,0 +1,23 @@ +package org.dromara.ctr.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author lilemy + * @date 2025-10-21 11:01 + */ +@Data +public class CtrContractProgressSettlementTotalVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1537548228169684228L; + + /** + * 总金额 + */ + private BigDecimal moneyTotal; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java index 18e95e79..d8516d6a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/ICtrContractProgressSettlementService.java @@ -7,6 +7,7 @@ import org.dromara.ctr.domain.CtrContractProgressSettlement; import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo; import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq; import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementTotalVo; import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; import java.util.Collection; @@ -45,6 +46,14 @@ public interface ICtrContractProgressSettlementService extends IService queryList(CtrContractProgressSettlementBo bo); + /** + * 查询金额统计 + * + * @param bo 查询条件 + * @return 金额统计 + */ + CtrContractProgressSettlementTotalVo queryMoneyTotal(CtrContractProgressSettlementBo bo); + /** * 新增承包合同进度结算 * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java index 1564754e..81189523 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrContractProgressSettlementServiceImpl.java @@ -22,6 +22,7 @@ import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemCreateReq; import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemUpdateReq; import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq; import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo; +import org.dromara.ctr.domain.vo.CtrContractProgressSettlementTotalVo; import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; import org.dromara.ctr.mapper.CtrContractProgressSettlementMapper; import org.dromara.ctr.service.ICtrContractProgressSettlementItemService; @@ -32,6 +33,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -104,6 +106,47 @@ public class CtrContractProgressSettlementServiceImpl extends ServiceImpl lqw = Wrappers.lambdaQuery(); + Long deptId = bo.getDeptId(); + String type = bo.getType(); + if (ObjectUtils.isNotEmpty(deptId) && StringUtils.isNotBlank(type) && !LoginHelper.isSuperAdmin()) { + SysDeptVo sysDeptVo = deptService.selectDeptById(deptId); + List list = StringUtils.splitTo(sysDeptVo.getAncestors(), Convert::toLong); + if (list.size() == 2 && Objects.equals(type, "1")) { + lqw.eq(CtrContractProgressSettlement::getDeptId, deptId); + } else if (list.size() == 2 && Objects.equals(type, "2")) { + lqw.eq(CtrContractProgressSettlement::getSettlementUnit, deptId); + } else if (list.size() > 2 && Objects.equals(type, "1")) { + lqw.eq(CtrContractProgressSettlement::getDeptId, list.get(2)); + } else if (list.size() > 2 && Objects.equals(type, "2")) { + lqw.eq(CtrContractProgressSettlement::getSettlementUnit, list.get(2)); + } + } + List settlementList = this.list(lqw); + CtrContractProgressSettlementTotalVo vo = new CtrContractProgressSettlementTotalVo(); + if (CollUtil.isEmpty(settlementList)) { + return vo; + } + if (Objects.equals(type, "1")) { + vo.setMoneyTotal(settlementList.stream().map(CtrContractProgressSettlement::getSettlementMoney) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add)); + } else if (Objects.equals(type, "2")) { + vo.setMoneyTotal(settlementList.stream().map(CtrContractProgressSettlement::getDeductionMoney) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add)); + } + return vo; + } + private LambdaQueryWrapper buildQueryWrapper(CtrContractProgressSettlementBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java index 10d73328..e6bfbc70 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsConstructionSchedulePlanServiceImpl.java @@ -254,7 +254,7 @@ public class PgsConstructionSchedulePlanServiceImpl extends ServiceImpl list = qualityInspectionList.stream() - .filter(q -> "2".equals(q.getIsReply())) +// .filter(q -> "2".equals(q.getIsReply())) .toList().stream().map(q -> { QltQualityInspectionGis gis = new QltQualityInspectionGis(); BeanUtils.copyProperties(q, gis); @@ -153,7 +153,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl inspections = safetyInspectionList.stream() - .filter(q -> "2".equals(q.getIsReply())) +// .filter(q -> "2".equals(q.getIsReply())) .toList() .stream().map(p -> { HseSafetyInspectionGis gis = new HseSafetyInspectionGis();