From 541d6740726ddf7ffbb0bad073566a0054fccf40 Mon Sep 17 00:00:00 2001 From: dfdg <2710245601@qq.com> Date: Fri, 19 Dec 2025 15:54:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=B7=A5=E7=A8=8B=E9=87=8F?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=A2=9E=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=88=A0=E9=99=A4=EF=BC=8C=E8=AE=BE=E8=AE=A1=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E6=96=B9=E6=A1=88=E5=A2=9E=E5=8A=A0=E9=99=84?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E6=97=B6=E5=80=99=E9=9C=80=E8=A6=81=E7=BB=99?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...BusBillofquantitiesVersionsController.java | 22 +++--- .../controller/DesSchemeController.java | 11 +-- .../org/dromara/design/domain/DesScheme.java | 4 + .../domain/bo/BusBillofquantitiesBo.java | 5 ++ .../dromara/design/domain/bo/DesSchemeBo.java | 5 ++ .../dromara/design/domain/vo/DesSchemeVo.java | 5 ++ .../design/service/IDesSchemeService.java | 5 +- .../impl/BusBillofquantitiesServiceImpl.java | 75 ++++++++++++++++++- .../service/impl/DesSchemeServiceImpl.java | 10 +-- 9 files changed, 114 insertions(+), 28 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusBillofquantitiesVersionsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusBillofquantitiesVersionsController.java index 5d15dcd7..13b1e3a3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusBillofquantitiesVersionsController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusBillofquantitiesVersionsController.java @@ -12,8 +12,7 @@ import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.apache.poi.ss.usermodel.IndexedColors; 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.core.validate.*; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; @@ -23,6 +22,7 @@ import org.dromara.common.web.core.BaseController; import org.dromara.design.domain.bo.*; import org.dromara.design.domain.vo.*; import org.dromara.design.exportUtil.bill.*; +import org.dromara.design.service.IBusBillofquantitiesService; import org.dromara.design.service.IBusBillofquantitiesVersionsService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -45,6 +45,7 @@ import java.util.*; public class BusBillofquantitiesVersionsController extends BaseController { private final IBusBillofquantitiesVersionsService busBillofquantitiesVersionsService; + private final IBusBillofquantitiesService busBillofquantitiesService; /** * 导入excel @@ -60,7 +61,7 @@ public class BusBillofquantitiesVersionsController extends BaseController { /** * 获取所有版本号 */ - @SaCheckPermission("design:billofquantitiesVersions:obtainAllVersionNumbers") + @SaCheckPermission("design:billofquantitiesVersions:list") @GetMapping("/obtainAllVersionNumbers") public TableDataInfo obtainAllVersionNumbers(ObtainAllVersionNumbersReq bo, PageQuery pageQuery) { return busBillofquantitiesVersionsService.obtainAllVersionNumbers(bo, pageQuery); @@ -79,7 +80,7 @@ public class BusBillofquantitiesVersionsController extends BaseController { /** * 获取指定版本的sheet */ - @SaCheckPermission("design:billofquantitiesVersions:sheetList") + @SaCheckPermission("design:billofquantitiesVersions:list") @GetMapping("/sheetList") public R> sheetList(SheetListReq bo) { return R.ok(busBillofquantitiesVersionsService.sheetList(bo)); @@ -88,7 +89,7 @@ public class BusBillofquantitiesVersionsController extends BaseController { /** * 获取工程量清单列表 */ - @SaCheckPermission("design:billofquantitiesVersions:obtainTheList") + @SaCheckPermission("design:billofquantitiesVersions:list") @GetMapping("/obtainTheList") public R> obtainTheList(CoryObtainTheListReq bo, PageQuery pageQuery) { return R.ok(busBillofquantitiesVersionsService.obtainTheList(bo)); @@ -117,6 +118,7 @@ public class BusBillofquantitiesVersionsController extends BaseController { * 导出工程量清单版本列表 */ @Log(title = "工程量清单版本", businessType = BusinessType.EXPORT) + @SaCheckPermission("design:billofquantitiesVersions:export") @PostMapping("/export") public void export(String versions,Long projectId, HttpServletResponse response) throws IOException { Map> sheetDataMap = busBillofquantitiesVersionsService.export(versions,projectId); @@ -233,8 +235,8 @@ public class BusBillofquantitiesVersionsController extends BaseController { @Log(title = "工程量清单版本", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody BusBillofquantitiesVersionsBo bo) { - return toAjax(busBillofquantitiesVersionsService.insertByBo(bo)); + public R add(@Validated(AddGroup.class) @RequestBody BusBillofquantitiesBo bo) { + return toAjax(busBillofquantitiesService.insertByBo(bo)); } /** @@ -244,8 +246,8 @@ public class BusBillofquantitiesVersionsController extends BaseController { @Log(title = "工程量清单版本", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody BusBillofquantitiesVersionsBo bo) { - return toAjax(busBillofquantitiesVersionsService.updateByBo(bo)); + public R edit(@Validated(EditGroup.class) @RequestBody BusBillofquantitiesBo bo) { + return toAjax(busBillofquantitiesService.updateByBo(bo)); } /** @@ -258,6 +260,6 @@ public class BusBillofquantitiesVersionsController extends BaseController { @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { - return toAjax(busBillofquantitiesVersionsService.deleteWithValidByIds(List.of(ids), true)); + return toAjax(busBillofquantitiesService.deleteWithValidByIds(List.of(ids), true)); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesSchemeController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesSchemeController.java index 56108ec9..68a91124 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesSchemeController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/DesSchemeController.java @@ -63,7 +63,7 @@ public class DesSchemeController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("design:scheme:query") +// @SaCheckPermission("design:scheme:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { @@ -109,18 +109,18 @@ public class DesSchemeController extends BaseController { /** * 新增设计方案文件 */ - @SaCheckPermission("design:scheme:upload") + @SaCheckPermission("design:scheme:add") @Log(title = "设计方案", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/upload") - public R addFile(MultipartFile file, Long projectId) { - return R.ok(desSchemeService.addFile(file, projectId)); + public R addFile(MultipartFile file, Long projectId,String type) { + return R.ok(desSchemeService.addFile(file, projectId, type)); } /** * 修改设计方案文件 */ - @SaCheckPermission("design:scheme:update") + @SaCheckPermission("design:scheme:edit") @Log(title = "设计方案", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping("/update/{id}") @@ -129,6 +129,7 @@ public class DesSchemeController extends BaseController { } + @SaCheckPermission("design:scheme:export") @PostMapping("/exportZipWithStatus") public void exportZipWithStatus(ExportDto dto, HttpServletResponse response) throws Exception { desSchemeService.exportAsZipWithStatusPrefix(dto, response); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesScheme.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesScheme.java index e71abbe1..bc40bb69 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesScheme.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/DesScheme.java @@ -51,6 +51,10 @@ public class DesScheme extends BaseEntity { * 审核状态 */ private String status; + /** + * 设计方案类型(1、可研,2、施工,3、初设) + */ + private String schemeType; /** * 排序字段 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusBillofquantitiesBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusBillofquantitiesBo.java index a10da649..43305188 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusBillofquantitiesBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusBillofquantitiesBo.java @@ -79,5 +79,10 @@ public class BusBillofquantitiesBo extends BaseEntity { */ private String remark; + /** + * 项目ID + */ + private Long projectId; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesSchemeBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesSchemeBo.java index cb6a008e..5601fcca 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesSchemeBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/DesSchemeBo.java @@ -52,5 +52,10 @@ public class DesSchemeBo extends BaseEntity { */ private String status; + /** + * 设计方案类型(1、可研,2、施工,3、初设) + */ + private String schemeType; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesSchemeVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesSchemeVo.java index 32064f76..0dd5cdb4 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesSchemeVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/vo/DesSchemeVo.java @@ -64,5 +64,10 @@ public class DesSchemeVo implements Serializable { @ExcelProperty(value = "审核状态") private String status; + /** + * 设计方案类型(1、可研,2、施工,3、初设) + */ + private String schemeType; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesSchemeService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesSchemeService.java index c0d332b5..ddfd2298 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesSchemeService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/IDesSchemeService.java @@ -1,8 +1,6 @@ package org.dromara.design.service; import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.NotNull; -import org.dromara.common.core.domain.R; import org.dromara.design.domain.dto.ExportDto; import org.dromara.design.domain.vo.DesSchemeVo; import org.dromara.design.domain.bo.DesSchemeBo; @@ -11,7 +9,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.multipart.MultipartFile; import java.util.Collection; @@ -78,7 +75,7 @@ public interface IDesSchemeService extends IService{ /** * 添加文件 */ - Long addFile(MultipartFile file, Long projectId); + Long addFile(MultipartFile file, Long projectId, String type); /** * 修改文件 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesServiceImpl.java index c1f43f17..81d48698 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/BusBillofquantitiesServiceImpl.java @@ -1,6 +1,11 @@ package org.dromara.design.service.impl; +import cn.hutool.core.convert.NumberChineseFormatter; +import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,12 +14,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.utils.BatchNumberGenerator; +import org.dromara.design.domain.BusBillofquantitiesVersions; +import org.dromara.design.service.IBusBillofquantitiesVersionsService; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.dromara.design.domain.bo.BusBillofquantitiesBo; import org.dromara.design.domain.vo.BusBillofquantitiesVo; import org.dromara.design.domain.BusBillofquantities; import org.dromara.design.mapper.BusBillofquantitiesMapper; import org.dromara.design.service.IBusBillofquantitiesService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -31,6 +41,9 @@ import java.util.Collection; public class BusBillofquantitiesServiceImpl extends ServiceImpl implements IBusBillofquantitiesService { private final BusBillofquantitiesMapper baseMapper; + @Lazy + @Resource + private IBusBillofquantitiesVersionsService busBillofquantitiesVersionsService; /** * 查询工程量清单 @@ -94,6 +107,31 @@ public class BusBillofquantitiesServiceImpl extends ServiceImpl().eq(BusBillofquantities::getPid, bo.getPid())) +1; + if ("0".equals(bo.getPid())){ + //当父节点为0时,生成中文编号作为顶层 + String s = NumberChineseFormatter.numberCharToChinese((char) count.longValue(), false); + add.setNum(s); + }else { + //当父节点不为0时,生成数字编号作为子节点编号 + BusBillofquantities busBillofquantities = baseMapper.selectOne(new LambdaQueryWrapper().eq(BusBillofquantities::getSid, bo.getPid())); + if (busBillofquantities == null){ + throw new ServiceException("父节点不存在"); + } + if ("0".equals(busBillofquantities.getPid())){ + add.setNum(count.toString()); + }else { + if (busBillofquantities.getNum() != null){ + //当父节点有编号时,生成数字编号作为子节点编号 无编号时,不生成编号 + String s = busBillofquantities.getNum() + "." + count; + add.setNum(s); + } + } + } boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); @@ -117,8 +155,24 @@ public class BusBillofquantitiesServiceImpl extends ServiceImpl() + .eq(BusBillofquantitiesVersions::getVersions, entity.getVersions())); + if (versions == null) { + throw new ServiceException("版本不存在"); + } + if (!BusinessStatusEnum.DRAFT.getStatus().equals(versions.getStatus()) + && !BusinessStatusEnum.BACK.getStatus().equals(versions.getStatus()) + && !BusinessStatusEnum.CANCEL.getStatus().equals(versions.getStatus())){ + if (entity.getId() != null){ + throw new ServiceException("版本处于审核中,不能修改"); + }else { + throw new ServiceException("版本处于审核中,不能新增"); + } + } } /** @@ -132,6 +186,25 @@ public class BusBillofquantitiesServiceImpl extends ServiceImpl ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + BusBillofquantities busBillofquantities = baseMapper.selectById(id); + if (busBillofquantities == null) { + throw new ServiceException("数据不存在"); + } + BusBillofquantitiesVersions versions = busBillofquantitiesVersionsService + .getBaseMapper() + .selectOne(new LambdaQueryWrapper() + .eq(BusBillofquantitiesVersions::getVersions, busBillofquantities.getVersions())); + if (versions == null) { + throw new ServiceException("版本不存在"); + } + if (!BusinessStatusEnum.DRAFT.getStatus().equals(versions.getStatus()) + && !BusinessStatusEnum.BACK.getStatus().equals(versions.getStatus()) + && !BusinessStatusEnum.CANCEL.getStatus().equals(versions.getStatus())){ + throw new ServiceException("版本处于审核中,不能删除"); + } + } + } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesSchemeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesSchemeServiceImpl.java index c0cb1edf..984429a3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesSchemeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesSchemeServiceImpl.java @@ -18,12 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.dromara.common.oss.core.OssClient; -import org.dromara.common.oss.factory.OssFactory; -import org.dromara.design.domain.DesCollectFile; -import org.dromara.design.domain.DesPrelimScheme; import org.dromara.design.domain.dto.ExportDto; -import org.dromara.system.domain.vo.SysOssUploadVo; import org.dromara.system.domain.vo.SysOssVo; import org.dromara.system.service.ISysOssService; import org.springframework.context.event.EventListener; @@ -46,7 +41,6 @@ import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.time.Duration; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Collection; @@ -173,7 +167,7 @@ public class DesSchemeServiceImpl extends ServiceImpl