From 2a327719e28d12b6744bc4d910c97d8a228dac3e Mon Sep 17 00:00:00 2001 From: zt Date: Wed, 20 Aug 2025 17:02:36 +0800 Subject: [PATCH 1/2] bug --- .../src/main/resources/application.yml | 2 ++ .../controller/CtrExpensesContractController.java | 14 ++++++++++++++ .../controller/CtrIncomeContractController.java | 15 +++++++++++++++ .../java/org/dromara/ctr/domain/bo/CtrFileBo.java | 1 - .../ctr/domain/vo/CtrExpensesContractVo.java | 9 +++++++++ .../ctr/domain/vo/CtrIncomeContractVo.java | 10 ++++++++++ .../impl/CtrExpensesContractServiceImpl.java | 12 ++++++++++++ .../ctr/service/impl/CtrFileServiceImpl.java | 2 ++ .../impl/CtrIncomeContractServiceImpl.java | 9 +++++++++ .../service/impl/DesVolumeCatalogServiceImpl.java | 4 ++++ 10 files changed, 77 insertions(+), 1 deletion(-) diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index 4886316f..0487c7aa 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -261,6 +261,8 @@ springdoc: packages-to-scan: org.dromara.out - group: 19.消息模块 packages-to-scan: org.dromara.message + - group: 20.合同模块 + packages-to-scan: org.dromara.ctr # knife4j的增强配置,不需要增强可以不配 knife4j: enable: true diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrExpensesContractController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrExpensesContractController.java index 0fe53f58..93be0b4d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrExpensesContractController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrExpensesContractController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.ctr.domain.bo.CtrFileBo; +import org.dromara.ctr.domain.vo.CtrFileVo; +import org.dromara.ctr.service.ICtrFileService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -36,6 +39,8 @@ public class CtrExpensesContractController extends BaseController { private final ICtrExpensesContractService ctrExpensesContractService; + private final ICtrFileService fileService; + /** * 查询支出合同列表 */ @@ -102,4 +107,13 @@ public class CtrExpensesContractController extends BaseController { @PathVariable Long[] ids) { return toAjax(ctrExpensesContractService.deleteWithValidByIds(List.of(ids), true)); } + + /** + * 查询附件列表 + */ + @SaCheckPermission("ctr:expensesContract:query") + @GetMapping("/file/list") + public TableDataInfo list(CtrFileBo bo, PageQuery pageQuery) { + return fileService.queryPageList(bo, pageQuery); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrIncomeContractController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrIncomeContractController.java index ec67fbbe..266984e6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrIncomeContractController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/controller/CtrIncomeContractController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.ctr.domain.bo.CtrFileBo; +import org.dromara.ctr.domain.vo.CtrFileVo; +import org.dromara.ctr.service.ICtrFileService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -36,6 +39,8 @@ public class CtrIncomeContractController extends BaseController { private final ICtrIncomeContractService ctrIncomeContractService; + private final ICtrFileService fileService; + /** * 查询收入合同列表 */ @@ -102,4 +107,14 @@ public class CtrIncomeContractController extends BaseController { @PathVariable Long[] ids) { return toAjax(ctrIncomeContractService.deleteWithValidByIds(List.of(ids), true)); } + + + /** + * 查询附件列表 + */ + @SaCheckPermission("ctr:incomeContract:query") + @GetMapping("/file/list") + public TableDataInfo list(CtrFileBo bo, PageQuery pageQuery) { + return fileService.queryPageList(bo, pageQuery); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrFileBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrFileBo.java index 75a562a6..80054acb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrFileBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrFileBo.java @@ -29,7 +29,6 @@ public class CtrFileBo extends BaseEntity { /** * 合同ID */ - @NotNull(message = "合同ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long contractId; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrExpensesContractVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrExpensesContractVo.java index 413cc9c0..1cf04cae 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrExpensesContractVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrExpensesContractVo.java @@ -1,6 +1,9 @@ package org.dromara.ctr.domain.vo; import java.math.BigDecimal; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.ctr.domain.CtrExpensesContract; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -53,6 +56,12 @@ public class CtrExpensesContractVo implements Serializable { @ExcelProperty(value = "合同类型") private String contractType; + /** + * 合同类型名称 + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "contractType",other = "expenses_contract_type") + private String contractTypeName; + /** * 供应商 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java index 394a22a2..32e66721 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java @@ -1,6 +1,9 @@ package org.dromara.ctr.domain.vo; import java.math.BigDecimal; + +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.ctr.domain.CtrIncomeContract; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -53,6 +56,13 @@ public class CtrIncomeContractVo implements Serializable { @ExcelProperty(value = "合同类型") private String contractType; + + /** + * 合同类型名称 + */ + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "contractType",other = "income_contract_type") + private String contractTypeName; + /** * 业主单位 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java index 2aa9c55e..bb508b2b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.ctr.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -9,6 +10,8 @@ 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.ctr.domain.CtrFile; +import org.dromara.ctr.service.ICtrFileService; import org.springframework.stereotype.Service; import org.dromara.ctr.domain.bo.CtrExpensesContractBo; import org.dromara.ctr.domain.vo.CtrExpensesContractVo; @@ -32,6 +35,8 @@ public class CtrExpensesContractServiceImpl extends ServiceImpl 0; + + if(!bo.getFileList().isEmpty()){ + List convert = MapstructUtils.convert(bo.getFileList(), CtrFile.class); + convert.forEach(item -> item.setContractId(add.getId())); + fileService.saveBatch(convert); + } + if (flag) { bo.setId(add.getId()); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrFileServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrFileServiceImpl.java index 5d829664..1524bf3b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrFileServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrFileServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.ctr.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; @@ -131,4 +132,5 @@ public class CtrFileServiceImpl extends ServiceImpl impl } return baseMapper.deleteByIds(ids) > 0; } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java index 5dd7e85d..467365eb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java @@ -9,6 +9,8 @@ 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.ctr.domain.CtrFile; +import org.dromara.ctr.service.ICtrFileService; import org.springframework.stereotype.Service; import org.dromara.ctr.domain.bo.CtrIncomeContractBo; import org.dromara.ctr.domain.vo.CtrIncomeContractVo; @@ -32,6 +34,8 @@ public class CtrIncomeContractServiceImpl extends ServiceImpl 0; + if(!bo.getFileList().isEmpty()){ + List convert = MapstructUtils.convert(bo.getFileList(), CtrFile.class); + convert.forEach(item -> item.setContractId(add.getId())); + fileService.saveBatch(convert); + } if (flag) { bo.setId(add.getId()); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeCatalogServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeCatalogServiceImpl.java index 8fa041ac..d4cb20e2 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeCatalogServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeCatalogServiceImpl.java @@ -9,6 +9,7 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici; import org.dromara.common.core.constant.HttpStatus; +import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.event.ProcessDeleteEvent; import org.dromara.common.core.domain.event.ProcessEvent; import org.dromara.common.core.domain.event.ProcessTaskEvent; @@ -340,6 +341,9 @@ public class DesVolumeCatalogServiceImpl extends ServiceImpl list1 = list.stream().map(DesVolumeFile::getVolumeCatalogId).distinct().toList(); return baseMapper.selectList(Wrappers.lambdaQuery(DesVolumeCatalog.class) From 560cfc66583ca94351ffae6cf03db72f62de3600 Mon Sep 17 00:00:00 2001 From: dfdg <2710245601@qq.com> Date: Wed, 20 Aug 2025 17:31:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8A=95=E6=A0=87=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusBiddingLimitListController.java | 105 ++++++++++++ .../controller/BusBiddingUserController.java | 105 ++++++++++++ .../BusListOfWinningBidsController.java | 105 ++++++++++++ .../bidding/domain/BusBiddingLimitList.java | 91 +++++++++++ .../bidding/domain/BusBiddingUser.java | 46 ++++++ .../bidding/domain/BusListOfWinningBids.java | 123 ++++++++++++++ .../domain/bo/BusBiddingLimitListBo.java | 92 +++++++++++ .../bidding/domain/bo/BusBiddingUserBo.java | 48 ++++++ .../domain/bo/BusListOfWinningBidsBo.java | 123 ++++++++++++++ .../domain/vo/BusBiddingLimitListVo.java | 110 +++++++++++++ .../bidding/domain/vo/BusBiddingUserVo.java | 56 +++++++ .../domain/vo/BusListOfWinningBidsVo.java | 150 ++++++++++++++++++ .../mapper/BusBiddingLimitListMapper.java | 15 ++ .../bidding/mapper/BusBiddingUserMapper.java | 15 ++ .../mapper/BusListOfWinningBidsMapper.java | 15 ++ .../service/IBusBiddingLimitListService.java | 70 ++++++++ .../service/IBusBiddingUserService.java | 70 ++++++++ .../service/IBusListOfWinningBidsService.java | 70 ++++++++ .../impl/BusBiddingLimitListServiceImpl.java | 141 ++++++++++++++++ .../impl/BusBiddingUserServiceImpl.java | 133 ++++++++++++++++ .../impl/BusListOfWinningBidsServiceImpl.java | 148 +++++++++++++++++ ...usBillofquantitiesLimitListController.java | 13 ++ ...sSegmentedIndicatorPlanningController.java | 4 +- .../domain/BusSegmentedIndicatorPlanning.java | 4 - .../bo/BusSegmentedIndicatorPlanningBo.java | 7 +- .../vo/BusSegmentedIndicatorPlanningVo.java | 5 - .../IBusBillofquantitiesLimitListService.java | 10 ++ ...sBillofquantitiesLimitListServiceImpl.java | 47 ++++++ ...SegmentedIndicatorPlanningServiceImpl.java | 2 +- .../bidding/BusBiddingLimitListMapper.xml | 7 + .../mapper/bidding/BusBiddingUserMapper.xml | 7 + .../bidding/BusListOfWinningBidsMapper.xml | 7 + 32 files changed, 1927 insertions(+), 17 deletions(-) create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingLimitListController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingUserController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusListOfWinningBidsController.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingLimitList.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingUser.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusListOfWinningBids.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingLimitListBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingUserBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusListOfWinningBidsBo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingLimitListVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingUserVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusListOfWinningBidsVo.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingLimitListMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingUserMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusListOfWinningBidsMapper.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingLimitListService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingUserService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusListOfWinningBidsService.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingLimitListServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingUserServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusListOfWinningBidsServiceImpl.java create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingLimitListMapper.xml create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingUserMapper.xml create mode 100644 xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusListOfWinningBidsMapper.xml diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingLimitListController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingLimitListController.java new file mode 100644 index 00000000..4c77db22 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingLimitListController.java @@ -0,0 +1,105 @@ +package org.dromara.bidding.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +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.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.bidding.domain.vo.BusBiddingLimitListVo; +import org.dromara.bidding.domain.bo.BusBiddingLimitListBo; +import org.dromara.bidding.service.IBusBiddingLimitListService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成本-投标 + * + * @author Lion Li + * @date 2025-08-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/bidding/biddingLimitList") +public class BusBiddingLimitListController extends BaseController { + + private final IBusBiddingLimitListService busBiddingLimitListService; + + /** + * 查询成本-投标列表 + */ + @SaCheckPermission("bidding:biddingLimitList:list") + @GetMapping("/list") + public TableDataInfo list(BusBiddingLimitListBo bo, PageQuery pageQuery) { + return busBiddingLimitListService.queryPageList(bo, pageQuery); + } + + /** + * 导出成本-投标列表 + */ + @SaCheckPermission("bidding:biddingLimitList:export") + @Log(title = "成本-投标", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusBiddingLimitListBo bo, HttpServletResponse response) { + List list = busBiddingLimitListService.queryList(bo); + ExcelUtil.exportExcel(list, "成本-投标", BusBiddingLimitListVo.class, response); + } + + /** + * 获取成本-投标详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("bidding:biddingLimitList:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busBiddingLimitListService.queryById(id)); + } + + /** + * 新增成本-投标 + */ + @SaCheckPermission("bidding:biddingLimitList:add") + @Log(title = "成本-投标", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusBiddingLimitListBo bo) { + return toAjax(busBiddingLimitListService.insertByBo(bo)); + } + + /** + * 修改成本-投标 + */ + @SaCheckPermission("bidding:biddingLimitList:edit") + @Log(title = "成本-投标", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusBiddingLimitListBo bo) { + return toAjax(busBiddingLimitListService.updateByBo(bo)); + } + + /** + * 删除成本-投标 + * + * @param ids 主键串 + */ + @SaCheckPermission("bidding:biddingLimitList:remove") + @Log(title = "成本-投标", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busBiddingLimitListService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingUserController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingUserController.java new file mode 100644 index 00000000..7046d290 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusBiddingUserController.java @@ -0,0 +1,105 @@ +package org.dromara.bidding.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +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.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.bidding.domain.vo.BusBiddingUserVo; +import org.dromara.bidding.domain.bo.BusBiddingUserBo; +import org.dromara.bidding.service.IBusBiddingUserService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 招投标人员 + * + * @author Lion Li + * @date 2025-08-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/bidding/biddingUser") +public class BusBiddingUserController extends BaseController { + + private final IBusBiddingUserService busBiddingUserService; + + /** + * 查询招投标人员列表 + */ + @SaCheckPermission("bidding:biddingUser:list") + @GetMapping("/list") + public TableDataInfo list(BusBiddingUserBo bo, PageQuery pageQuery) { + return busBiddingUserService.queryPageList(bo, pageQuery); + } + + /** + * 导出招投标人员列表 + */ + @SaCheckPermission("bidding:biddingUser:export") + @Log(title = "招投标人员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusBiddingUserBo bo, HttpServletResponse response) { + List list = busBiddingUserService.queryList(bo); + ExcelUtil.exportExcel(list, "招投标人员", BusBiddingUserVo.class, response); + } + + /** + * 获取招投标人员详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("bidding:biddingUser:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busBiddingUserService.queryById(id)); + } + + /** + * 新增招投标人员 + */ + @SaCheckPermission("bidding:biddingUser:add") + @Log(title = "招投标人员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusBiddingUserBo bo) { + return toAjax(busBiddingUserService.insertByBo(bo)); + } + + /** + * 修改招投标人员 + */ + @SaCheckPermission("bidding:biddingUser:edit") + @Log(title = "招投标人员", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusBiddingUserBo bo) { + return toAjax(busBiddingUserService.updateByBo(bo)); + } + + /** + * 删除招投标人员 + * + * @param ids 主键串 + */ + @SaCheckPermission("bidding:biddingUser:remove") + @Log(title = "招投标人员", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busBiddingUserService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusListOfWinningBidsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusListOfWinningBidsController.java new file mode 100644 index 00000000..f6d3876e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/controller/BusListOfWinningBidsController.java @@ -0,0 +1,105 @@ +package org.dromara.bidding.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +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.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo; +import org.dromara.bidding.domain.bo.BusListOfWinningBidsBo; +import org.dromara.bidding.service.IBusListOfWinningBidsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 中标项目一览 + * + * @author Lion Li + * @date 2025-08-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/bidding/listOfWinningBids") +public class BusListOfWinningBidsController extends BaseController { + + private final IBusListOfWinningBidsService busListOfWinningBidsService; + + /** + * 查询中标项目一览列表 + */ + @SaCheckPermission("bidding:listOfWinningBids:list") + @GetMapping("/list") + public TableDataInfo list(BusListOfWinningBidsBo bo, PageQuery pageQuery) { + return busListOfWinningBidsService.queryPageList(bo, pageQuery); + } + + /** + * 导出中标项目一览列表 + */ + @SaCheckPermission("bidding:listOfWinningBids:export") + @Log(title = "中标项目一览", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BusListOfWinningBidsBo bo, HttpServletResponse response) { + List list = busListOfWinningBidsService.queryList(bo); + ExcelUtil.exportExcel(list, "中标项目一览", BusListOfWinningBidsVo.class, response); + } + + /** + * 获取中标项目一览详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("bidding:listOfWinningBids:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(busListOfWinningBidsService.queryById(id)); + } + + /** + * 新增中标项目一览 + */ + @SaCheckPermission("bidding:listOfWinningBids:add") + @Log(title = "中标项目一览", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BusListOfWinningBidsBo bo) { + return toAjax(busListOfWinningBidsService.insertByBo(bo)); + } + + /** + * 修改中标项目一览 + */ + @SaCheckPermission("bidding:listOfWinningBids:edit") + @Log(title = "中标项目一览", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BusListOfWinningBidsBo bo) { + return toAjax(busListOfWinningBidsService.updateByBo(bo)); + } + + /** + * 删除中标项目一览 + * + * @param ids 主键串 + */ + @SaCheckPermission("bidding:listOfWinningBids:remove") + @Log(title = "中标项目一览", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(busListOfWinningBidsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingLimitList.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingLimitList.java new file mode 100644 index 00000000..05db6bf6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingLimitList.java @@ -0,0 +1,91 @@ +package org.dromara.bidding.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 成本-投标对象 bus_bidding_limit_list + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_bidding_limit_list") +public class BusBiddingLimitList extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目Id + */ + private Long projectId; + + /** + * 版本号 + */ + private String versions; + + /** + * 表名 + */ + private String sheet; + + /** + * 子ID + */ + private String sid; + + /** + * 父ID + */ + private String pid; + + /** + * 编号 + */ + private String num; + + /** + * 名称 + */ + private String name; + + /** + * 规格 + */ + private String specification; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private Long quantity; + + /** + * 单价 + */ + private Long unitPrice; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingUser.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingUser.java new file mode 100644 index 00000000..b29a25f6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusBiddingUser.java @@ -0,0 +1,46 @@ +package org.dromara.bidding.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 招投标人员对象 bus_bidding_user + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_bidding_user") +public class BusBiddingUser extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 招投标人员id + */ + private Long userId; + + /** + * 招投标人员姓名 + */ + private String userName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusListOfWinningBids.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusListOfWinningBids.java new file mode 100644 index 00000000..23d50f42 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/BusListOfWinningBids.java @@ -0,0 +1,123 @@ +package org.dromara.bidding.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 中标项目一览对象 bus_list_of_winning_bids + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("bus_list_of_winning_bids") +public class BusListOfWinningBids extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 项目id + */ + private Long projectId; + + /** + * 项目状态 + */ + private String projectStatus; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 中标价(原币) + */ + private Long winningBidOriginal; + + /** + * 汇率 + */ + private Long exchangeRate; + + /** + * 币种 + */ + private String currency; + + /** + * 所属主体 + */ + private String subject; + + /** + * 中标价 + */ + private Long winningBid; + + /** + * 中标日期 + */ + private Date bidWinningDate; + + /** + * 投标保证金 + */ + private Long bidDeposit; + + /** + * 是否退还 + */ + private String whetherSendBack; + + /** + * 建设单位(客户) + */ + private String construction; + + /** + * 总造价 + */ + private Long totalCost; + + /** + * 立项申请人 + */ + private String projectApplicant; + + /** + * 立项部门 + */ + private String projectApplicantDept; + + /** + * 立项申请日期 + */ + private Date projectApplicantTime; + + /** + * 流程状态 + */ + private String processStatus; + + /** + * 项目编号 + */ + private String projectNumbering; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingLimitListBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingLimitListBo.java new file mode 100644 index 00000000..d47c9535 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingLimitListBo.java @@ -0,0 +1,92 @@ +package org.dromara.bidding.domain.bo; + +import org.dromara.bidding.domain.BusBiddingLimitList; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 成本-投标业务对象 bus_bidding_limit_list + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusBiddingLimitList.class, reverseConvertGenerate = false) +public class BusBiddingLimitListBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目Id + */ + @NotNull(message = "项目Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 版本号 + */ + @NotBlank(message = "版本号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String versions; + + /** + * 表名 + */ + private String sheet; + + /** + * 子ID + */ + private String sid; + + /** + * 父ID + */ + private String pid; + + /** + * 编号 + */ + private String num; + + /** + * 名称 + */ + private String name; + + /** + * 规格 + */ + private String specification; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private Long quantity; + + /** + * 单价 + */ + private Long unitPrice; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingUserBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingUserBo.java new file mode 100644 index 00000000..82e2c962 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusBiddingUserBo.java @@ -0,0 +1,48 @@ +package org.dromara.bidding.domain.bo; + +import org.dromara.bidding.domain.BusBiddingUser; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 招投标人员业务对象 bus_bidding_user + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusBiddingUser.class, reverseConvertGenerate = false) +public class BusBiddingUserBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目id + */ + @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 招投标人员id + */ + @NotNull(message = "招投标人员id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 招投标人员姓名 + */ + @NotBlank(message = "招投标人员姓名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String userName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusListOfWinningBidsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusListOfWinningBidsBo.java new file mode 100644 index 00000000..05b0340b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/bo/BusListOfWinningBidsBo.java @@ -0,0 +1,123 @@ +package org.dromara.bidding.domain.bo; + +import org.dromara.bidding.domain.BusListOfWinningBids; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 中标项目一览业务对象 bus_list_of_winning_bids + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BusListOfWinningBids.class, reverseConvertGenerate = false) +public class BusListOfWinningBidsBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 项目id + */ + @NotNull(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long projectId; + + /** + * 项目状态 + */ + private String projectStatus; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 中标价(原币) + */ + private Long winningBidOriginal; + + /** + * 汇率 + */ + private Long exchangeRate; + + /** + * 币种 + */ + private String currency; + + /** + * 所属主体 + */ + private String subject; + + /** + * 中标价 + */ + private Long winningBid; + + /** + * 中标日期 + */ + private Date bidWinningDate; + + /** + * 投标保证金 + */ + private Long bidDeposit; + + /** + * 是否退还 + */ + private String whetherSendBack; + + /** + * 建设单位(客户) + */ + private String construction; + + /** + * 总造价 + */ + private Long totalCost; + + /** + * 立项申请人 + */ + private String projectApplicant; + + /** + * 立项部门 + */ + private String projectApplicantDept; + + /** + * 立项申请日期 + */ + private Date projectApplicantTime; + + /** + * 流程状态 + */ + private String processStatus; + + /** + * 项目编号 + */ + private String projectNumbering; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingLimitListVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingLimitListVo.java new file mode 100644 index 00000000..207c4726 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingLimitListVo.java @@ -0,0 +1,110 @@ +package org.dromara.bidding.domain.vo; + +import org.dromara.bidding.domain.BusBiddingLimitList; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成本-投标视图对象 bus_bidding_limit_list + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusBiddingLimitList.class) +public class BusBiddingLimitListVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目Id + */ + @ExcelProperty(value = "项目Id") + private Long projectId; + + /** + * 版本号 + */ + @ExcelProperty(value = "版本号") + private String versions; + + /** + * 表名 + */ + @ExcelProperty(value = "表名") + private String sheet; + + /** + * 子ID + */ + @ExcelProperty(value = "子ID") + private String sid; + + /** + * 父ID + */ + @ExcelProperty(value = "父ID") + private String pid; + + /** + * 编号 + */ + @ExcelProperty(value = "编号") + private String num; + + /** + * 名称 + */ + @ExcelProperty(value = "名称") + private String name; + + /** + * 规格 + */ + @ExcelProperty(value = "规格") + private String specification; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 数量 + */ + @ExcelProperty(value = "数量") + private Long quantity; + + /** + * 单价 + */ + @ExcelProperty(value = "单价") + private Long unitPrice; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingUserVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingUserVo.java new file mode 100644 index 00000000..48c75639 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusBiddingUserVo.java @@ -0,0 +1,56 @@ +package org.dromara.bidding.domain.vo; + +import org.dromara.bidding.domain.BusBiddingUser; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 招投标人员视图对象 bus_bidding_user + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusBiddingUser.class) +public class BusBiddingUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 招投标人员id + */ + @ExcelProperty(value = "招投标人员id") + private Long userId; + + /** + * 招投标人员姓名 + */ + @ExcelProperty(value = "招投标人员姓名") + private String userName; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusListOfWinningBidsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusListOfWinningBidsVo.java new file mode 100644 index 00000000..e8a805c0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/domain/vo/BusListOfWinningBidsVo.java @@ -0,0 +1,150 @@ +package org.dromara.bidding.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.bidding.domain.BusListOfWinningBids; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 中标项目一览视图对象 bus_list_of_winning_bids + * + * @author Lion Li + * @date 2025-08-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BusListOfWinningBids.class) +public class BusListOfWinningBidsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 项目id + */ + @ExcelProperty(value = "项目id") + private Long projectId; + + /** + * 项目状态 + */ + @ExcelProperty(value = "项目状态") + private String projectStatus; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 中标价(原币) + */ + @ExcelProperty(value = "中标价", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "原=币") + private Long winningBidOriginal; + + /** + * 汇率 + */ + @ExcelProperty(value = "汇率") + private Long exchangeRate; + + /** + * 币种 + */ + @ExcelProperty(value = "币种") + private String currency; + + /** + * 所属主体 + */ + @ExcelProperty(value = "所属主体") + private String subject; + + /** + * 中标价 + */ + @ExcelProperty(value = "中标价") + private Long winningBid; + + /** + * 中标日期 + */ + @ExcelProperty(value = "中标日期") + private Date bidWinningDate; + + /** + * 投标保证金 + */ + @ExcelProperty(value = "投标保证金") + private Long bidDeposit; + + /** + * 是否退还 + */ + @ExcelProperty(value = "是否退还") + private String whetherSendBack; + + /** + * 建设单位(客户) + */ + @ExcelProperty(value = "建设单位", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "客=户") + private String construction; + + /** + * 总造价 + */ + @ExcelProperty(value = "总造价") + private Long totalCost; + + /** + * 立项申请人 + */ + @ExcelProperty(value = "立项申请人") + private String projectApplicant; + + /** + * 立项部门 + */ + @ExcelProperty(value = "立项部门") + private String projectApplicantDept; + + /** + * 立项申请日期 + */ + @ExcelProperty(value = "立项申请日期") + private Date projectApplicantTime; + + /** + * 流程状态 + */ + @ExcelProperty(value = "流程状态") + private String processStatus; + + /** + * 项目编号 + */ + @ExcelProperty(value = "项目编号") + private String projectNumbering; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingLimitListMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingLimitListMapper.java new file mode 100644 index 00000000..9bd6e45e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingLimitListMapper.java @@ -0,0 +1,15 @@ +package org.dromara.bidding.mapper; + +import org.dromara.bidding.domain.BusBiddingLimitList; +import org.dromara.bidding.domain.vo.BusBiddingLimitListVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 成本-投标Mapper接口 + * + * @author Lion Li + * @date 2025-08-20 + */ +public interface BusBiddingLimitListMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingUserMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingUserMapper.java new file mode 100644 index 00000000..265cadbe --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusBiddingUserMapper.java @@ -0,0 +1,15 @@ +package org.dromara.bidding.mapper; + +import org.dromara.bidding.domain.BusBiddingUser; +import org.dromara.bidding.domain.vo.BusBiddingUserVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 招投标人员Mapper接口 + * + * @author Lion Li + * @date 2025-08-20 + */ +public interface BusBiddingUserMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusListOfWinningBidsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusListOfWinningBidsMapper.java new file mode 100644 index 00000000..4b549d3d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/mapper/BusListOfWinningBidsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.bidding.mapper; + +import org.dromara.bidding.domain.BusListOfWinningBids; +import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 中标项目一览Mapper接口 + * + * @author Lion Li + * @date 2025-08-20 + */ +public interface BusListOfWinningBidsMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingLimitListService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingLimitListService.java new file mode 100644 index 00000000..3346d5d2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingLimitListService.java @@ -0,0 +1,70 @@ +package org.dromara.bidding.service; + +import org.dromara.bidding.domain.vo.BusBiddingLimitListVo; +import org.dromara.bidding.domain.bo.BusBiddingLimitListBo; +import org.dromara.bidding.domain.BusBiddingLimitList; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 成本-投标Service接口 + * + * @author Lion Li + * @date 2025-08-20 + */ +public interface IBusBiddingLimitListService extends IService{ + + /** + * 查询成本-投标 + * + * @param id 主键 + * @return 成本-投标 + */ + BusBiddingLimitListVo queryById(Long id); + + /** + * 分页查询成本-投标列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成本-投标分页列表 + */ + TableDataInfo queryPageList(BusBiddingLimitListBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成本-投标列表 + * + * @param bo 查询条件 + * @return 成本-投标列表 + */ + List queryList(BusBiddingLimitListBo bo); + + /** + * 新增成本-投标 + * + * @param bo 成本-投标 + * @return 是否新增成功 + */ + Boolean insertByBo(BusBiddingLimitListBo bo); + + /** + * 修改成本-投标 + * + * @param bo 成本-投标 + * @return 是否修改成功 + */ + Boolean updateByBo(BusBiddingLimitListBo bo); + + /** + * 校验并批量删除成本-投标信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingUserService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingUserService.java new file mode 100644 index 00000000..b4264e75 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusBiddingUserService.java @@ -0,0 +1,70 @@ +package org.dromara.bidding.service; + +import org.dromara.bidding.domain.vo.BusBiddingUserVo; +import org.dromara.bidding.domain.bo.BusBiddingUserBo; +import org.dromara.bidding.domain.BusBiddingUser; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 招投标人员Service接口 + * + * @author Lion Li + * @date 2025-08-20 + */ +public interface IBusBiddingUserService extends IService{ + + /** + * 查询招投标人员 + * + * @param id 主键 + * @return 招投标人员 + */ + BusBiddingUserVo queryById(Long id); + + /** + * 分页查询招投标人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 招投标人员分页列表 + */ + TableDataInfo queryPageList(BusBiddingUserBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的招投标人员列表 + * + * @param bo 查询条件 + * @return 招投标人员列表 + */ + List queryList(BusBiddingUserBo bo); + + /** + * 新增招投标人员 + * + * @param bo 招投标人员 + * @return 是否新增成功 + */ + Boolean insertByBo(BusBiddingUserBo bo); + + /** + * 修改招投标人员 + * + * @param bo 招投标人员 + * @return 是否修改成功 + */ + Boolean updateByBo(BusBiddingUserBo bo); + + /** + * 校验并批量删除招投标人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusListOfWinningBidsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusListOfWinningBidsService.java new file mode 100644 index 00000000..981abcde --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/IBusListOfWinningBidsService.java @@ -0,0 +1,70 @@ +package org.dromara.bidding.service; + +import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo; +import org.dromara.bidding.domain.bo.BusListOfWinningBidsBo; +import org.dromara.bidding.domain.BusListOfWinningBids; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Collection; +import java.util.List; + +/** + * 中标项目一览Service接口 + * + * @author Lion Li + * @date 2025-08-20 + */ +public interface IBusListOfWinningBidsService extends IService{ + + /** + * 查询中标项目一览 + * + * @param id 主键 + * @return 中标项目一览 + */ + BusListOfWinningBidsVo queryById(Long id); + + /** + * 分页查询中标项目一览列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 中标项目一览分页列表 + */ + TableDataInfo queryPageList(BusListOfWinningBidsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的中标项目一览列表 + * + * @param bo 查询条件 + * @return 中标项目一览列表 + */ + List queryList(BusListOfWinningBidsBo bo); + + /** + * 新增中标项目一览 + * + * @param bo 中标项目一览 + * @return 是否新增成功 + */ + Boolean insertByBo(BusListOfWinningBidsBo bo); + + /** + * 修改中标项目一览 + * + * @param bo 中标项目一览 + * @return 是否修改成功 + */ + Boolean updateByBo(BusListOfWinningBidsBo bo); + + /** + * 校验并批量删除中标项目一览信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingLimitListServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingLimitListServiceImpl.java new file mode 100644 index 00000000..2019ff04 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingLimitListServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.bidding.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +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.springframework.stereotype.Service; +import org.dromara.bidding.domain.bo.BusBiddingLimitListBo; +import org.dromara.bidding.domain.vo.BusBiddingLimitListVo; +import org.dromara.bidding.domain.BusBiddingLimitList; +import org.dromara.bidding.mapper.BusBiddingLimitListMapper; +import org.dromara.bidding.service.IBusBiddingLimitListService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成本-投标Service业务层处理 + * + * @author Lion Li + * @date 2025-08-20 + */ +@RequiredArgsConstructor +@Service +public class BusBiddingLimitListServiceImpl extends ServiceImpl implements IBusBiddingLimitListService { + + private final BusBiddingLimitListMapper baseMapper; + + /** + * 查询成本-投标 + * + * @param id 主键 + * @return 成本-投标 + */ + @Override + public BusBiddingLimitListVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询成本-投标列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成本-投标分页列表 + */ + @Override + public TableDataInfo queryPageList(BusBiddingLimitListBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成本-投标列表 + * + * @param bo 查询条件 + * @return 成本-投标列表 + */ + @Override + public List queryList(BusBiddingLimitListBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusBiddingLimitListBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusBiddingLimitList::getId); + lqw.eq(bo.getProjectId() != null, BusBiddingLimitList::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getVersions()), BusBiddingLimitList::getVersions, bo.getVersions()); + lqw.eq(StringUtils.isNotBlank(bo.getSheet()), BusBiddingLimitList::getSheet, bo.getSheet()); + lqw.eq(StringUtils.isNotBlank(bo.getSid()), BusBiddingLimitList::getSid, bo.getSid()); + lqw.eq(StringUtils.isNotBlank(bo.getPid()), BusBiddingLimitList::getPid, bo.getPid()); + lqw.eq(StringUtils.isNotBlank(bo.getNum()), BusBiddingLimitList::getNum, bo.getNum()); + lqw.like(StringUtils.isNotBlank(bo.getName()), BusBiddingLimitList::getName, bo.getName()); + lqw.eq(StringUtils.isNotBlank(bo.getSpecification()), BusBiddingLimitList::getSpecification, bo.getSpecification()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), BusBiddingLimitList::getUnit, bo.getUnit()); + lqw.eq(bo.getQuantity() != null, BusBiddingLimitList::getQuantity, bo.getQuantity()); + lqw.eq(bo.getUnitPrice() != null, BusBiddingLimitList::getUnitPrice, bo.getUnitPrice()); + return lqw; + } + + /** + * 新增成本-投标 + * + * @param bo 成本-投标 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusBiddingLimitListBo bo) { + BusBiddingLimitList add = MapstructUtils.convert(bo, BusBiddingLimitList.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改成本-投标 + * + * @param bo 成本-投标 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusBiddingLimitListBo bo) { + BusBiddingLimitList update = MapstructUtils.convert(bo, BusBiddingLimitList.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusBiddingLimitList entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成本-投标信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingUserServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingUserServiceImpl.java new file mode 100644 index 00000000..1079c284 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusBiddingUserServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.bidding.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +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.springframework.stereotype.Service; +import org.dromara.bidding.domain.bo.BusBiddingUserBo; +import org.dromara.bidding.domain.vo.BusBiddingUserVo; +import org.dromara.bidding.domain.BusBiddingUser; +import org.dromara.bidding.mapper.BusBiddingUserMapper; +import org.dromara.bidding.service.IBusBiddingUserService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 招投标人员Service业务层处理 + * + * @author Lion Li + * @date 2025-08-20 + */ +@RequiredArgsConstructor +@Service +public class BusBiddingUserServiceImpl extends ServiceImpl implements IBusBiddingUserService { + + private final BusBiddingUserMapper baseMapper; + + /** + * 查询招投标人员 + * + * @param id 主键 + * @return 招投标人员 + */ + @Override + public BusBiddingUserVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询招投标人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 招投标人员分页列表 + */ + @Override + public TableDataInfo queryPageList(BusBiddingUserBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的招投标人员列表 + * + * @param bo 查询条件 + * @return 招投标人员列表 + */ + @Override + public List queryList(BusBiddingUserBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusBiddingUserBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusBiddingUser::getId); + lqw.eq(bo.getProjectId() != null, BusBiddingUser::getProjectId, bo.getProjectId()); + lqw.eq(bo.getUserId() != null, BusBiddingUser::getUserId, bo.getUserId()); + lqw.like(StringUtils.isNotBlank(bo.getUserName()), BusBiddingUser::getUserName, bo.getUserName()); + return lqw; + } + + /** + * 新增招投标人员 + * + * @param bo 招投标人员 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusBiddingUserBo bo) { + BusBiddingUser add = MapstructUtils.convert(bo, BusBiddingUser.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改招投标人员 + * + * @param bo 招投标人员 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusBiddingUserBo bo) { + BusBiddingUser update = MapstructUtils.convert(bo, BusBiddingUser.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusBiddingUser entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除招投标人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusListOfWinningBidsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusListOfWinningBidsServiceImpl.java new file mode 100644 index 00000000..793f2601 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bidding/service/impl/BusListOfWinningBidsServiceImpl.java @@ -0,0 +1,148 @@ +package org.dromara.bidding.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +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.springframework.stereotype.Service; +import org.dromara.bidding.domain.bo.BusListOfWinningBidsBo; +import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo; +import org.dromara.bidding.domain.BusListOfWinningBids; +import org.dromara.bidding.mapper.BusListOfWinningBidsMapper; +import org.dromara.bidding.service.IBusListOfWinningBidsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 中标项目一览Service业务层处理 + * + * @author Lion Li + * @date 2025-08-20 + */ +@RequiredArgsConstructor +@Service +public class BusListOfWinningBidsServiceImpl extends ServiceImpl implements IBusListOfWinningBidsService { + + private final BusListOfWinningBidsMapper baseMapper; + + /** + * 查询中标项目一览 + * + * @param id 主键 + * @return 中标项目一览 + */ + @Override + public BusListOfWinningBidsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询中标项目一览列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 中标项目一览分页列表 + */ + @Override + public TableDataInfo queryPageList(BusListOfWinningBidsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的中标项目一览列表 + * + * @param bo 查询条件 + * @return 中标项目一览列表 + */ + @Override + public List queryList(BusListOfWinningBidsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BusListOfWinningBidsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(BusListOfWinningBids::getId); + lqw.eq(bo.getProjectId() != null, BusListOfWinningBids::getProjectId, bo.getProjectId()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), BusListOfWinningBids::getProjectStatus, bo.getProjectStatus()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), BusListOfWinningBids::getProjectName, bo.getProjectName()); + lqw.eq(bo.getWinningBidOriginal() != null, BusListOfWinningBids::getWinningBidOriginal, bo.getWinningBidOriginal()); + lqw.eq(bo.getExchangeRate() != null, BusListOfWinningBids::getExchangeRate, bo.getExchangeRate()); + lqw.eq(StringUtils.isNotBlank(bo.getCurrency()), BusListOfWinningBids::getCurrency, bo.getCurrency()); + lqw.eq(StringUtils.isNotBlank(bo.getSubject()), BusListOfWinningBids::getSubject, bo.getSubject()); + lqw.eq(bo.getWinningBid() != null, BusListOfWinningBids::getWinningBid, bo.getWinningBid()); + lqw.eq(bo.getBidWinningDate() != null, BusListOfWinningBids::getBidWinningDate, bo.getBidWinningDate()); + lqw.eq(bo.getBidDeposit() != null, BusListOfWinningBids::getBidDeposit, bo.getBidDeposit()); + lqw.eq(StringUtils.isNotBlank(bo.getWhetherSendBack()), BusListOfWinningBids::getWhetherSendBack, bo.getWhetherSendBack()); + lqw.eq(StringUtils.isNotBlank(bo.getConstruction()), BusListOfWinningBids::getConstruction, bo.getConstruction()); + lqw.eq(bo.getTotalCost() != null, BusListOfWinningBids::getTotalCost, bo.getTotalCost()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectApplicant()), BusListOfWinningBids::getProjectApplicant, bo.getProjectApplicant()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectApplicantDept()), BusListOfWinningBids::getProjectApplicantDept, bo.getProjectApplicantDept()); + lqw.eq(bo.getProjectApplicantTime() != null, BusListOfWinningBids::getProjectApplicantTime, bo.getProjectApplicantTime()); + lqw.eq(StringUtils.isNotBlank(bo.getProcessStatus()), BusListOfWinningBids::getProcessStatus, bo.getProcessStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectNumbering()), BusListOfWinningBids::getProjectNumbering, bo.getProjectNumbering()); + return lqw; + } + + /** + * 新增中标项目一览 + * + * @param bo 中标项目一览 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BusListOfWinningBidsBo bo) { + BusListOfWinningBids add = MapstructUtils.convert(bo, BusListOfWinningBids.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改中标项目一览 + * + * @param bo 中标项目一览 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BusListOfWinningBidsBo bo) { + BusListOfWinningBids update = MapstructUtils.convert(bo, BusListOfWinningBids.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BusListOfWinningBids entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除中标项目一览信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBillofquantitiesLimitListController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBillofquantitiesLimitListController.java index fbf63628..65d3ed62 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBillofquantitiesLimitListController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusBillofquantitiesLimitListController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.design.domain.bo.ImportExcelFileReq; import org.dromara.design.domain.bo.ObtainAllVersionNumbersReq; import org.dromara.design.domain.bo.SheetListReq; import org.dromara.design.domain.vo.BusBillofquantitiesVersionsVo; @@ -24,6 +25,7 @@ import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; import org.dromara.tender.service.IBusBillofquantitiesLimitListService; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 限价一览 @@ -85,6 +87,17 @@ public class BusBillofquantitiesLimitListController extends BaseController { ExcelUtil.exportExcel(list, "限价一览", BusBillofquantitiesLimitListVo.class, response); } + /** + * 导入excel + */ + @SaCheckPermission("design:billofquantitiesLimitList:importExcelFile") + @Log(title = "导入excel", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/importExcelFile") + public R importExcelFile(Long projectId, @RequestParam("file") MultipartFile file) throws Exception { + return toAjax(busBillofquantitiesLimitListService.importExcelFile(projectId, file)); + } + /** * 获取限价一览详细信息 * diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusSegmentedIndicatorPlanningController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusSegmentedIndicatorPlanningController.java index 882d5dd5..72967563 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusSegmentedIndicatorPlanningController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/controller/BusSegmentedIndicatorPlanningController.java @@ -46,8 +46,8 @@ public class BusSegmentedIndicatorPlanningController extends BaseController { if (bo.getProjectId() == null) { throw new ServiceException("项目id不能为空"); } - if (bo.getDictId() == null) { - throw new ServiceException("分包类型id不能为空"); + if (bo.getDictName() == null) { + throw new ServiceException("分包类型不能为空"); } return busSegmentedIndicatorPlanningService.queryPageList(bo, pageQuery); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusSegmentedIndicatorPlanning.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusSegmentedIndicatorPlanning.java index 73ecd081..e03a2a43 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusSegmentedIndicatorPlanning.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/BusSegmentedIndicatorPlanning.java @@ -36,10 +36,6 @@ public class BusSegmentedIndicatorPlanning extends BaseEntity { */ private Long projectId; - /** - * 分包类型id - */ - private Long dictId; /** * 分包类型名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusSegmentedIndicatorPlanningBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusSegmentedIndicatorPlanningBo.java index 6c4b9fb1..3f3ed996 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusSegmentedIndicatorPlanningBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/bo/BusSegmentedIndicatorPlanningBo.java @@ -39,15 +39,12 @@ public class BusSegmentedIndicatorPlanningBo extends BaseEntity { @NotNull(message = "项目Id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long projectId; - /** - * 分包类型id - */ - @NotNull(message = "分包类型id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dictId; + /** * 分包类型名称 */ + @NotBlank(message = "分包类型不能为空", groups = { AddGroup.class, EditGroup.class }) private String dictName; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusSegmentedIndicatorPlanningVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusSegmentedIndicatorPlanningVo.java index d5df7103..02975282 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusSegmentedIndicatorPlanningVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/domain/vo/BusSegmentedIndicatorPlanningVo.java @@ -44,11 +44,6 @@ public class BusSegmentedIndicatorPlanningVo implements Serializable { @ExcelProperty(value = "项目Id") private Long projectId; - /** - * 分包类型id - */ - @ExcelProperty(value = "分包类型id") - private Long dictId; /** * 分包类型名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java index e7aef6a7..f6e857cb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/IBusBillofquantitiesLimitListService.java @@ -8,6 +8,8 @@ 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.multipart.MultipartFile; + import java.util.Collection; import java.util.List; @@ -84,4 +86,12 @@ public interface IBusBillofquantitiesLimitListService extends IService sheetList(BusBillofquantitiesLimitListBo bo); + + /** + * 导入excel + * @param id + * @param file + * @return + */ + Boolean importExcelFile(Long id, MultipartFile file) throws Exception; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java index e17a435b..3db3069c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBillofquantitiesLimitListServiceImpl.java @@ -1,21 +1,26 @@ package org.dromara.tender.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.excel.coryUtils.ExcelReader; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; 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.excel.ExcelDynamicReader; import org.dromara.design.domain.BusBillofquantities; +import org.dromara.design.domain.dto.MaterialsAndEquipmentExcelDto; import org.springframework.stereotype.Service; import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo; import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo; import org.dromara.tender.domain.BusBillofquantitiesLimitList; import org.dromara.tender.mapper.BusBillofquantitiesLimitListMapper; import org.dromara.tender.service.IBusBillofquantitiesLimitListService; +import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.math.RoundingMode; @@ -150,6 +155,7 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl listVoList = queryList(bo); listVoList.stream().filter(vo -> vo.getUnitPrice() !=null && vo.getUnitPrice().compareTo(BigDecimal.ZERO) != 0) + .filter(vo ->vo.getQuantity() !=null && vo.getQuantity().compareTo(BigDecimal.ZERO) != 0) .forEach(item -> { item.setPrice(item.getUnitPrice().multiply(item.getQuantity()).setScale(2, RoundingMode.HALF_UP)); }); @@ -190,6 +196,47 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl dataList = ExcelDynamicReader.readExcel( + file, // 上传的文件 + 1, // 跳过1行(表头) + 0, // 从第0列开始 + 12, // 到第5列结束 + BusBillofquantitiesLimitListBo.class // 目标实体类 + ); + List busBillofquantities = new ArrayList(); + dataList.stream() + .filter(Objects::nonNull) // 过滤掉 null 对象 + .filter(data-> data.getUnitPrice() !=null && data.getUnitPrice().compareTo(BigDecimal.ZERO) != 0) + .filter(data ->data.getQuantity() !=null && data.getQuantity().compareTo(BigDecimal.ZERO) != 0) + .forEach(item -> { + BusBillofquantitiesLimitList limitList = new BusBillofquantitiesLimitList(); + limitList.setId(item.getId()); + limitList.setProjectId(item.getProjectId()); + limitList.setUnitPrice(item.getUnitPrice()); + busBillofquantities.add(limitList); + }); + + +// //1、获取到解析数据 +// ExcelReader.ExcelData excelData = ExcelReader.readExcelFromMultipartFile(file); +// // 2. 解析所有工作表,转换为带父子关系的ExcelMaterial列表 解析所有Sheet数据,按规则生成sid和pid +// List allMaterials = new ArrayList<>(); +// for (ExcelReader.SheetData sheetData : excelData.getSheetDataList()) { +//// String sheetName = sheetData.getSheetName(); +// List> rowDataList = sheetData.getData(); +// +// //获取字段为id和单价 +// List limitListArrayList = new ArrayList<>(); +// +// } + return baseMapper.updateBatchById(busBillofquantities); + } + /** * 递归构建树形结构 * @param parentId 父节点ID(顶级节点为0) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusSegmentedIndicatorPlanningServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusSegmentedIndicatorPlanningServiceImpl.java index 24ad5741..a68ed16f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusSegmentedIndicatorPlanningServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusSegmentedIndicatorPlanningServiceImpl.java @@ -90,7 +90,7 @@ public class BusSegmentedIndicatorPlanningServiceImpl extends ServiceImpl lqw = Wrappers.lambdaQuery(); lqw.orderByDesc(BusSegmentedIndicatorPlanning::getPlannedBiddingTime); lqw.eq(bo.getProjectId() != null, BusSegmentedIndicatorPlanning::getProjectId, bo.getProjectId()); - lqw.eq(bo.getDictId() != null, BusSegmentedIndicatorPlanning::getDictId, bo.getDictId()); + lqw.eq(StringUtils.isNotBlank(bo.getDictName()), BusSegmentedIndicatorPlanning::getDictName, bo.getDictName()); lqw.like(StringUtils.isNotBlank(bo.getName()), BusSegmentedIndicatorPlanning::getName, bo.getName()); lqw.like(StringUtils.isNotBlank(bo.getContent()), BusSegmentedIndicatorPlanning::getContent, bo.getContent()); lqw.eq(bo.getPlannedBiddingTime() != null, BusSegmentedIndicatorPlanning::getPlannedBiddingTime, bo.getPlannedBiddingTime()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingLimitListMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingLimitListMapper.xml new file mode 100644 index 00000000..e34ccee1 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingLimitListMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingUserMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingUserMapper.xml new file mode 100644 index 00000000..181fe687 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusBiddingUserMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusListOfWinningBidsMapper.xml b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusListOfWinningBidsMapper.xml new file mode 100644 index 00000000..b5dd97ce --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/resources/mapper/bidding/BusListOfWinningBidsMapper.xml @@ -0,0 +1,7 @@ + + + + +