From 80ec8ff86d6dc0c78f75e027953e5d0a83dfb9b2 Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Mon, 20 Oct 2025 14:19:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MoneyBigScreenController.java | 7 ++- .../ProjectBigScreenController.java | 7 ++- .../CtrSubcontractProgressSettlement.java | 5 ++ .../bo/CtrContractProgressSettlementBo.java | 5 ++ ...trContractProgressSettlementCreateReq.java | 6 --- ...ubcontractProgressSettlementCreateReq.java | 5 +- .../vo/CtrContractProgressSettlementVo.java | 12 +++++ .../CtrSubcontractProgressSettlementVo.java | 20 ++++++++ ...ContractProgressSettlementServiceImpl.java | 49 ++++++++++++++++--- ...contractProgressSettlementServiceImpl.java | 22 ++++++++- .../service/impl/BusProjectServiceImpl.java | 2 +- .../controller/system/SysDeptController.java | 20 ++++++++ 12 files changed, 133 insertions(+), 27 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java index 48d67ed8..e38a6dce 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java @@ -1,6 +1,5 @@ package org.dromara.bigscreen.controller; -import cn.dev33.satoken.annotation.SaCheckPermission; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; @@ -62,7 +61,7 @@ public class MoneyBigScreenController { /** * 查询项目位置列表 */ - @SaCheckPermission("money:bigScreen:projectGis") +// @SaCheckPermission("money:bigScreen:projectGis") @GetMapping("/project/gis") public R> getProjectGis() { return R.ok(moneyBigScreenService.getProjectGis()); @@ -545,7 +544,7 @@ public class MoneyBigScreenController { /** * 查询项目天气 */ - @SaCheckPermission("project:bigScreen:weather") +// @SaCheckPermission("project:bigScreen:weather") @GetMapping("/weather/{projectId}") public R> getProjectWeather(@NotNull(message = "主键不能为空") @PathVariable Long projectId) { @@ -555,7 +554,7 @@ public class MoneyBigScreenController { /** * 查询项目安全天数 */ - @SaCheckPermission("project:bigScreen:safetyDay") +// @SaCheckPermission("project:bigScreen:safetyDay") @GetMapping("/safetyDay/{projectId}") public R getProjectSafetyDay(@NotNull(message = "主键不能为空") @PathVariable Long projectId) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java index e31a2a30..1d4c1537 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java @@ -1,6 +1,5 @@ package org.dromara.bigscreen.controller; -import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -296,7 +295,7 @@ public class ProjectBigScreenController extends BaseController { /** * 查询GPS设备用户列表 */ - @SaCheckPermission("project:big:screen") +// @SaCheckPermission("project:big:screen") @GetMapping("/getList") public R> getList(Long projectId) { return R.ok(projectBigScreenService.getList(projectId)); @@ -316,7 +315,7 @@ public class ProjectBigScreenController extends BaseController { /** * 查询地图项目分类 */ - @SaCheckPermission("project:big:screen") +// @SaCheckPermission("project:big:screen") @GetMapping("/getProjectMapList") public R>>> getProjectMapList() { return R.ok(projectService.getProjectMapList()); @@ -325,7 +324,7 @@ public class ProjectBigScreenController extends BaseController { /** * 查询地图项目分类 */ - @SaCheckPermission("project:big:screen") +// @SaCheckPermission("project:big:screen") @PostMapping("/updatePosition") public R updatePosition(@RequestBody ProjectUpdateDto dto) { return toAjax(projectService.updatePosition(dto)); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java index a873a84d..67efddae 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrSubcontractProgressSettlement.java @@ -29,6 +29,11 @@ public class CtrSubcontractProgressSettlement extends BaseEntity { @TableId(value = "id") private Long id; + /** + * 所属部门 + */ + private Long deptId; + /** * 单据编码 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java index f49a6b67..d3e3b9e2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrContractProgressSettlementBo.java @@ -60,6 +60,11 @@ public class CtrContractProgressSettlementBo extends BaseEntity { @NotBlank(message = "合同编码不能为空", groups = {AddGroup.class, EditGroup.class}) private String contractCode; + /** + * 类型(1付款 2收款) + */ + private String type; + /** * 合同名称 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java index 7ced0af4..bd0728cd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrContractProgressSettlementCreateReq.java @@ -31,12 +31,6 @@ public class CtrContractProgressSettlementCreateReq implements Serializable { @NotNull(message = "所属部门不能为空") private Long deptId; - /** - * 单据编码 - */ - @NotBlank(message = "单据编码不能为空") - private String documentCode; - /** * 标题 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java index b8a0e392..148c0a97 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/dto/CtrSubcontractProgressSettlementCreateReq.java @@ -24,10 +24,9 @@ public class CtrSubcontractProgressSettlementCreateReq implements Serializable { private static final long serialVersionUID = 770553999547826460L; /** - * 单据编码 + * 所属部门 */ - @NotBlank(message = "单据编码不能为空") - private String documentCode; + private Long deptId; /** * 标题 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java index 81851e95..473595f7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrContractProgressSettlementVo.java @@ -41,6 +41,12 @@ public class CtrContractProgressSettlementVo implements Serializable { @ExcelProperty(value = "所属部门") private Long deptId; + /** + * 部门名称 + */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId") + private String deptName; + /** * 单据编码 */ @@ -114,6 +120,12 @@ public class CtrContractProgressSettlementVo implements Serializable { @ExcelProperty(value = "结算单位(客户)") private Long settlementUnit; + /** + * 结算单位名称 + */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "settlementUnit") + private String settlementUnitName; + /** * 本期结算金额 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java index 32ec34bb..599160b8 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrSubcontractProgressSettlementVo.java @@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; import java.io.Serial; @@ -45,6 +47,18 @@ public class CtrSubcontractProgressSettlementVo implements Serializable { @ExcelProperty(value = "标题") private String title; + /** + * 所属部门 + */ + @ExcelProperty(value = "所属部门") + private Long deptId; + + /** + * 部门名称 + */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId") + private String deptName; + /** * 单据日期 */ @@ -105,6 +119,12 @@ public class CtrSubcontractProgressSettlementVo implements Serializable { @ExcelProperty(value = "结算单位") private Long settlementUnit; + /** + * 结算单位名称 + */ + @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "settlementUnit") + private String settlementUnitName; + /** * 合同金额 */ 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 aebb80ec..6f5fc261 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 @@ -1,6 +1,7 @@ package org.dromara.ctr.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,9 +9,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.ObjectUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.ctr.domain.CtrContractProgressSettlement; import org.dromara.ctr.domain.CtrContractProgressSettlementItem; import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo; @@ -23,14 +26,16 @@ import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo; import org.dromara.ctr.mapper.CtrContractProgressSettlementMapper; import org.dromara.ctr.service.ICtrContractProgressSettlementItemService; import org.dromara.ctr.service.ICtrContractProgressSettlementService; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.service.ISysDeptService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; import java.util.stream.Collectors; /** @@ -46,6 +51,8 @@ public class CtrContractProgressSettlementServiceImpl extends ServiceImpl params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByDesc(CtrContractProgressSettlement::getId); - lqw.eq(bo.getDeptId() != null, CtrContractProgressSettlement::getDeptId, bo.getDeptId()); + 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)); + } + } lqw.like(StringUtils.isNotBlank(bo.getDocumentCode()), CtrContractProgressSettlement::getDocumentCode, bo.getDocumentCode()); lqw.eq(StringUtils.isNotBlank(bo.getTitle()), CtrContractProgressSettlement::getTitle, bo.getTitle()); lqw.eq(bo.getSettlementDate() != null, CtrContractProgressSettlement::getSettlementDate, bo.getSettlementDate()); @@ -134,8 +155,22 @@ public class CtrContractProgressSettlementServiceImpl extends ServiceImpl 0; + // 生成唯一编号 + LocalDate today = LocalDate.now(); + Long userId = LoginHelper.getUserId(); + boolean flag; + synchronized (userId.toString().intern()) { + LocalDateTime startOfDay = today.atStartOfDay(); + LocalDateTime endOfDay = today.plusDays(1).atStartOfDay().minusNanos(1); + // 获取当天的最大编号 + Long count = this.lambdaQuery() + .between(CtrContractProgressSettlement::getCreateTime, startOfDay, endOfDay) + .count(); + String result = String.format("%03d", count + 1); // 3表示长度,0表示补0 + add.setDocumentCode(today.format(DateTimeFormatter.BASIC_ISO_DATE) + "-" + result); + validEntityBeforeSave(add); + flag = baseMapper.insert(add) > 0; + } if (flag) { Long id = add.getId(); List inInventory = req.getInInventory(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java index e3e91cc3..7a870f6a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrSubcontractProgressSettlementServiceImpl.java @@ -11,6 +11,7 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.ctr.domain.CtrSubcontractProgressSettlement; import org.dromara.ctr.domain.CtrSubcontractProgressSettlementItem; import org.dromara.ctr.domain.bo.CtrSubcontractProgressSettlementBo; @@ -26,6 +27,9 @@ import org.dromara.ctr.service.ICtrSubcontractProgressSettlementService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -128,8 +132,22 @@ public class CtrSubcontractProgressSettlementServiceImpl extends ServiceImpl 0; + // 生成唯一编号 + LocalDate today = LocalDate.now(); + Long userId = LoginHelper.getUserId(); + boolean flag; + synchronized (userId.toString().intern()) { + LocalDateTime startOfDay = today.atStartOfDay(); + LocalDateTime endOfDay = today.plusDays(1).atStartOfDay().minusNanos(1); + // 获取当天的最大编号 + Long count = this.lambdaQuery() + .between(CtrSubcontractProgressSettlement::getCreateTime, startOfDay, endOfDay) + .count(); + String result = String.format("%03d", count + 1); // 3表示长度,0表示补0 + add.setDocumentCode(today.format(DateTimeFormatter.BASIC_ISO_DATE) + "-" + result); + validEntityBeforeSave(add); + flag = baseMapper.insert(add) > 0; + } if (flag) { Long id = add.getId(); List inInventory = req.getInInventory(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java index 095bd045..46f3c5bd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/service/impl/BusProjectServiceImpl.java @@ -780,7 +780,7 @@ public class BusProjectServiceImpl extends ServiceImpl list = StringUtils.splitTo(sysDeptVo.getAncestors(), Convert::toLong); List projectDepts = new ArrayList<>(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java index 8be47a4f..ad08f8c0 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java @@ -9,6 +9,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; import org.dromara.system.domain.bo.SysDeptBo; import org.dromara.system.domain.vo.SysDeptVo; @@ -157,4 +158,23 @@ public class SysDeptController extends BaseController { return R.ok(list); } + /** + * 获取当前登录用户顶级部门 + */ + @GetMapping("/getTopDept") + public R getTopDept() { + // 获取当前用户部门 + Long deptId = LoginHelper.getDeptId(); + SysDeptVo deptVo = deptService.selectDeptById(deptId); + if (LoginHelper.isSuperAdmin()) { + return R.ok(deptVo); + } + String ancestors = deptVo.getAncestors(); + List ids = StringUtils.splitTo(ancestors, Convert::toLong); + if (ids.size() == 2) { + return R.ok(deptVo); + } + return R.ok(deptService.selectDeptById(ids.get(2))); + } + }