diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java index 670dd091..4a443e17 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdBidPreProjectServiceImpl.java @@ -26,6 +26,7 @@ import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBidPreProject import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProjectService; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -145,7 +146,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl().gt(XzdBidPreProject::getCreateTime, LocalDateTime.now())); + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBidPreProject::getCreateTime, LocalDate.now())); String s = areaUtil.generateDateBasedNumber(); // 标前立项 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java index 18c33350..a5084dea 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biaoqianlixiang/service/impl/XzdProjectRiskAssessmentServiceImpl.java @@ -9,8 +9,10 @@ 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.system.service.impl.SysOssServiceImpl; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdProjectRiskAssessment; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdProjectRiskAssessmentBo; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectByVo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectRiskAssessmentVo; import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdProjectRiskAssessmentMapper; @@ -19,10 +21,10 @@ import org.dromara.xzd.utilS.AreaUtil; import org.springframework.stereotype.Service; +import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 项目风险评估签审意见Service业务层处理 @@ -38,6 +40,9 @@ public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl().gt(XzdProjectRiskAssessment::getCreateTime, LocalDateTime.now())); + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdProjectRiskAssessment::getCreateTime, LocalDate.now())); add.setDocumentNumber(s+"-"+(l+1)); } boolean flag = baseMapper.insert(add) > 0; @@ -169,7 +181,17 @@ public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + XzdProjectRiskAssessmentVo xzdProjectRiskAssessmentVo = baseMapper.selectVoById(id); + + // 删除附件 + if (!StringUtils.isEmpty(xzdProjectRiskAssessmentVo.getFileId())){ + List collect = Arrays.stream(xzdProjectRiskAssessmentVo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + }; + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/domain/vo/XzdBiddingFileEstimateVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/domain/vo/XzdBiddingFileEstimateVo.java index 3990c67e..c2356d20 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/domain/vo/XzdBiddingFileEstimateVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/domain/vo/XzdBiddingFileEstimateVo.java @@ -2,6 +2,10 @@ package org.dromara.xzd.biddingManagement.biddingDocument.domain.vo; import java.util.Date; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -152,4 +156,18 @@ public class XzdBiddingFileEstimateVo implements Serializable { private String auditStatus; + + private Long createBy; + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createName; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java index 7b7e7dcf..02aa021b 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocument/service/impl/XzdBiddingFileEstimateServiceImpl.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.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; import org.dromara.xzd.utilS.AreaUtil; import org.springframework.stereotype.Service; import org.dromara.xzd.biddingManagement.biddingDocument.domain.bo.XzdBiddingFileEstimateBo; @@ -17,10 +19,13 @@ import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEs import org.dromara.xzd.biddingManagement.biddingDocument.mapper.XzdBiddingFileEstimateMapper; import org.dromara.xzd.biddingManagement.biddingDocument.service.IXzdBiddingFileEstimateService; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 招标文件审估Service业务层处理 @@ -35,6 +40,10 @@ public class XzdBiddingFileEstimateServiceImpl extends ServiceImpl().gt(XzdBiddingFileEstimate::getCreateTime, LocalDateTime.now())); + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBiddingFileEstimate::getCreateTime, LocalDate.now())); String s = areaUtil.generateDateBasedNumber(); @@ -153,7 +162,18 @@ public class XzdBiddingFileEstimateServiceImpl extends ServiceImpl ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + XzdBiddingFileEstimateVo xzdBiddingFileEstimateVo = baseMapper.selectVoById(id); + + // 删除附件 + if (!StringUtils.isEmpty(xzdBiddingFileEstimateVo.getFileId())){ + List collect = Arrays.stream(xzdBiddingFileEstimateVo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + } + } + } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdBiddingDocumentController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdBiddingDocumentController.java new file mode 100644 index 00000000..ecd40c8c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdBiddingDocumentController.java @@ -0,0 +1,108 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdBiddingDocumentBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdBiddingDocumentBoBylist; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVoBylist; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdBiddingDocumentService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标文件 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingDocument/biddingDocument") +public class XzdBiddingDocumentController extends BaseController { + + private final IXzdBiddingDocumentService xzdBiddingDocumentService; + + /** + * 查询投标文件列表 + */ + @SaCheckPermission("biddingDocument:biddingDocument:list") + @GetMapping("/list") + public TableDataInfo list(XzdBiddingDocumentBo bo, PageQuery pageQuery) { + return xzdBiddingDocumentService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标文件列表 + */ + @SaCheckPermission("biddingDocument:biddingDocument:export") + @Log(title = "投标文件", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdBiddingDocumentBo bo, HttpServletResponse response) { + List list = xzdBiddingDocumentService.queryList(bo); + ExcelUtil.exportExcel(list, "投标文件", XzdBiddingDocumentVo.class, response); + } + + /** + * 获取投标文件详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingDocument:biddingDocument:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdBiddingDocumentService.queryById(id)); + } + + /** + * 新增投标文件 + */ + @SaCheckPermission("biddingDocument:biddingDocument:add") + @Log(title = "投标文件", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdBiddingDocumentBoBylist bo) { + return toAjax(xzdBiddingDocumentService.insertByBo(bo)); + } + + /** + * 修改投标文件 + */ + @SaCheckPermission("biddingDocument:biddingDocument:edit") + @Log(title = "投标文件", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdBiddingDocumentBoBylist bo) { + return toAjax(xzdBiddingDocumentService.updateByBo(bo)); + } + + /** + * 删除投标文件 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingDocument:biddingDocument:remove") + @Log(title = "投标文件", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdBiddingDocumentService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjBusinessBidController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjBusinessBidController.java new file mode 100644 index 00000000..3f7e47dd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjBusinessBidController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjBusinessBidService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标文件-商务标 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingDocument/tbwjBusinessBid") +public class XzdTbwjBusinessBidController extends BaseController { + + private final IXzdTbwjBusinessBidService xzdTbwjBusinessBidService; + + /** + * 查询投标文件-商务标列表 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBid:list") + @GetMapping("/list") + public TableDataInfo list(XzdTbwjBusinessBidBo bo, PageQuery pageQuery) { + return xzdTbwjBusinessBidService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标文件-商务标列表 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBid:export") + @Log(title = "投标文件-商务标", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdTbwjBusinessBidBo bo, HttpServletResponse response) { + List list = xzdTbwjBusinessBidService.queryList(bo); + ExcelUtil.exportExcel(list, "投标文件-商务标", XzdTbwjBusinessBidVo.class, response); + } + + /** + * 获取投标文件-商务标详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBid:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdTbwjBusinessBidService.queryById(id)); + } + + /** + * 新增投标文件-商务标 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBid:add") + @Log(title = "投标文件-商务标", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdTbwjBusinessBidBo bo) { + return toAjax(xzdTbwjBusinessBidService.insertByBo(bo)); + } + + /** + * 修改投标文件-商务标 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBid:edit") + @Log(title = "投标文件-商务标", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdTbwjBusinessBidBo bo) { + return toAjax(xzdTbwjBusinessBidService.updateByBo(bo)); + } + + /** + * 删除投标文件-商务标 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBid:remove") + @Log(title = "投标文件-商务标", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdTbwjBusinessBidService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjBusinessBidRequirementsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjBusinessBidRequirementsController.java new file mode 100644 index 00000000..15027ad9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjBusinessBidRequirementsController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidRequirementsVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjBusinessBidRequirementsService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标文件-商务标要求 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingDocument/tbwjBusinessBidRequirements") +public class XzdTbwjBusinessBidRequirementsController extends BaseController { + + private final IXzdTbwjBusinessBidRequirementsService xzdTbwjBusinessBidRequirementsService; + + /** + * 查询投标文件-商务标要求列表 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:list") + @GetMapping("/list") + public TableDataInfo list(XzdTbwjBusinessBidRequirementsBo bo, PageQuery pageQuery) { + return xzdTbwjBusinessBidRequirementsService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标文件-商务标要求列表 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:export") + @Log(title = "投标文件-商务标要求", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdTbwjBusinessBidRequirementsBo bo, HttpServletResponse response) { + List list = xzdTbwjBusinessBidRequirementsService.queryList(bo); + ExcelUtil.exportExcel(list, "投标文件-商务标要求", XzdTbwjBusinessBidRequirementsVo.class, response); + } + + /** + * 获取投标文件-商务标要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdTbwjBusinessBidRequirementsService.queryById(id)); + } + + /** + * 新增投标文件-商务标要求 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:add") + @Log(title = "投标文件-商务标要求", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdTbwjBusinessBidRequirementsBo bo) { + return toAjax(xzdTbwjBusinessBidRequirementsService.insertByBo(bo)); + } + + /** + * 修改投标文件-商务标要求 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:edit") + @Log(title = "投标文件-商务标要求", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdTbwjBusinessBidRequirementsBo bo) { + return toAjax(xzdTbwjBusinessBidRequirementsService.updateByBo(bo)); + } + + /** + * 删除投标文件-商务标要求 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:remove") + @Log(title = "投标文件-商务标要求", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdTbwjBusinessBidRequirementsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjQualificationRequirementsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjQualificationRequirementsController.java new file mode 100644 index 00000000..c04ae34a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjQualificationRequirementsController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjQualificationRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjQualificationRequirementsVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjQualificationRequirementsService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标文件-资审要求 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingDocument/tbwjQualificationRequirements") +public class XzdTbwjQualificationRequirementsController extends BaseController { + + private final IXzdTbwjQualificationRequirementsService xzdTbwjQualificationRequirementsService; + + /** + * 查询投标文件-资审要求列表 + */ + @SaCheckPermission("biddingDocument:tbwjQualificationRequirements:list") + @GetMapping("/list") + public TableDataInfo list(XzdTbwjQualificationRequirementsBo bo, PageQuery pageQuery) { + return xzdTbwjQualificationRequirementsService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标文件-资审要求列表 + */ + @SaCheckPermission("biddingDocument:tbwjQualificationRequirements:export") + @Log(title = "投标文件-资审要求", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdTbwjQualificationRequirementsBo bo, HttpServletResponse response) { + List list = xzdTbwjQualificationRequirementsService.queryList(bo); + ExcelUtil.exportExcel(list, "投标文件-资审要求", XzdTbwjQualificationRequirementsVo.class, response); + } + + /** + * 获取投标文件-资审要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingDocument:tbwjQualificationRequirements:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdTbwjQualificationRequirementsService.queryById(id)); + } + + /** + * 新增投标文件-资审要求 + */ + @SaCheckPermission("biddingDocument:tbwjQualificationRequirements:add") + @Log(title = "投标文件-资审要求", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdTbwjQualificationRequirementsBo bo) { + return toAjax(xzdTbwjQualificationRequirementsService.insertByBo(bo)); + } + + /** + * 修改投标文件-资审要求 + */ + @SaCheckPermission("biddingDocument:tbwjQualificationRequirements:edit") + @Log(title = "投标文件-资审要求", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdTbwjQualificationRequirementsBo bo) { + return toAjax(xzdTbwjQualificationRequirementsService.updateByBo(bo)); + } + + /** + * 删除投标文件-资审要求 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingDocument:tbwjQualificationRequirements:remove") + @Log(title = "投标文件-资审要求", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdTbwjQualificationRequirementsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjTechnicalBidController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjTechnicalBidController.java new file mode 100644 index 00000000..e43cd85c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjTechnicalBidController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjTechnicalBidService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标文件-技术标 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingDocument/tbwjTechnicalBid") +public class XzdTbwjTechnicalBidController extends BaseController { + + private final IXzdTbwjTechnicalBidService xzdTbwjTechnicalBidService; + + /** + * 查询投标文件-技术标列表 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBid:list") + @GetMapping("/list") + public TableDataInfo list(XzdTbwjTechnicalBidBo bo, PageQuery pageQuery) { + return xzdTbwjTechnicalBidService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标文件-技术标列表 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBid:export") + @Log(title = "投标文件-技术标", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdTbwjTechnicalBidBo bo, HttpServletResponse response) { + List list = xzdTbwjTechnicalBidService.queryList(bo); + ExcelUtil.exportExcel(list, "投标文件-技术标", XzdTbwjTechnicalBidVo.class, response); + } + + /** + * 获取投标文件-技术标详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBid:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdTbwjTechnicalBidService.queryById(id)); + } + + /** + * 新增投标文件-技术标 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBid:add") + @Log(title = "投标文件-技术标", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdTbwjTechnicalBidBo bo) { + return toAjax(xzdTbwjTechnicalBidService.insertByBo(bo)); + } + + /** + * 修改投标文件-技术标 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBid:edit") + @Log(title = "投标文件-技术标", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdTbwjTechnicalBidBo bo) { + return toAjax(xzdTbwjTechnicalBidService.updateByBo(bo)); + } + + /** + * 删除投标文件-技术标 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBid:remove") + @Log(title = "投标文件-技术标", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdTbwjTechnicalBidService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjTechnicalBidRequirementsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjTechnicalBidRequirementsController.java new file mode 100644 index 00000000..2481e1d0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/controller/XzdTbwjTechnicalBidRequirementsController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidRequirementsVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjTechnicalBidRequirementsService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标文件-技术标要求 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingDocument/tbwjTechnicalBidRequirements") +public class XzdTbwjTechnicalBidRequirementsController extends BaseController { + + private final IXzdTbwjTechnicalBidRequirementsService xzdTbwjTechnicalBidRequirementsService; + + /** + * 查询投标文件-技术标要求列表 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:list") + @GetMapping("/list") + public TableDataInfo list(XzdTbwjTechnicalBidRequirementsBo bo, PageQuery pageQuery) { + return xzdTbwjTechnicalBidRequirementsService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标文件-技术标要求列表 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:export") + @Log(title = "投标文件-技术标要求", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdTbwjTechnicalBidRequirementsBo bo, HttpServletResponse response) { + List list = xzdTbwjTechnicalBidRequirementsService.queryList(bo); + ExcelUtil.exportExcel(list, "投标文件-技术标要求", XzdTbwjTechnicalBidRequirementsVo.class, response); + } + + /** + * 获取投标文件-技术标要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdTbwjTechnicalBidRequirementsService.queryById(id)); + } + + /** + * 新增投标文件-技术标要求 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:add") + @Log(title = "投标文件-技术标要求", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdTbwjTechnicalBidRequirementsBo bo) { + return toAjax(xzdTbwjTechnicalBidRequirementsService.insertByBo(bo)); + } + + /** + * 修改投标文件-技术标要求 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:edit") + @Log(title = "投标文件-技术标要求", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdTbwjTechnicalBidRequirementsBo bo) { + return toAjax(xzdTbwjTechnicalBidRequirementsService.updateByBo(bo)); + } + + /** + * 删除投标文件-技术标要求 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:remove") + @Log(title = "投标文件-技术标要求", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdTbwjTechnicalBidRequirementsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdBiddingDocument.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdBiddingDocument.java new file mode 100644 index 00000000..2d0fb694 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdBiddingDocument.java @@ -0,0 +1,98 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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; + +/** + * 投标文件对象 xzd_bidding_document + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_bidding_document") +public class XzdBiddingDocument extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编号 + */ + private String documentNumber; + + /** + * 标题 + */ + private String title; + + /** + * 投标时间 + */ + private Date biddingTime; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 项目类型ID + */ + private Long projectType; + + /** + * 投标单位 + */ + private String bidUnit; + + /** + * 单据日期 + */ + private Date documentDate; + + /** + * 项目经理 + */ + private String projectManager; + + /** + * 工程概况 + */ + private String projectOverview; + + /** + * 组织 + */ + private String organization; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjBusinessBid.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjBusinessBid.java new file mode 100644 index 00000000..34458796 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjBusinessBid.java @@ -0,0 +1,85 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 投标文件-商务标对象 xzd_tbwj_business_bid + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@TableName("xzd_tbwj_business_bid") +public class XzdTbwjBusinessBid { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 标底价 + */ + private Long bidPrice; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + /** + * 折扣率 + */ + private Long discountRate; + + /** + * 最高限价 + */ + private Long ceilingPrice; + + /** + * 成本价 + */ + private Long costPrice; + + /** + * 投标报价 + */ + private Long totalBidPrice; + + /** + * 毛利率 + */ + private Long feeRate; + + /** + * 投标税率 + */ + private Long bidTaxRate; + + /** + * 备用金 + */ + private Long pettyCash; + + /** + * 编制部门 + */ + private String compilationDept; + + /** + * 报价说明 + */ + private String estimatedProfit; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjBusinessBidRequirements.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjBusinessBidRequirements.java new file mode 100644 index 00000000..c0f28bde --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjBusinessBidRequirements.java @@ -0,0 +1,58 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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; + +/** + * 投标文件-商务标要求对象 xzd_tbwj_business_bid_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_tbwj_business_bid_requirements") +public class XzdTbwjBusinessBidRequirements extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 商务标要求 + */ + private String businessBidRequirement; + + /** + * 编制要点 + */ + private String compilationPoints; + + /** + * 提供时间 + */ + private Date provideTime; + + /** + * 备注 + */ + private String remark; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjQualificationRequirements.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjQualificationRequirements.java new file mode 100644 index 00000000..7df65c62 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjQualificationRequirements.java @@ -0,0 +1,58 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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; + +/** + * 投标文件-资审要求对象 xzd_tbwj_qualification_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_tbwj_qualification_requirements") +public class XzdTbwjQualificationRequirements extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 资审要求 + */ + private String qualificationRequirement; + + /** + * 编制要点 + */ + private String compilationPoints; + + /** + * 提供时间 + */ + private Date provideTime; + + /** + * 备注 + */ + private String remark; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjTechnicalBid.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjTechnicalBid.java new file mode 100644 index 00000000..89815a45 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjTechnicalBid.java @@ -0,0 +1,55 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 投标文件-技术标对象 xzd_tbwj_technical_bid + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@TableName("xzd_tbwj_technical_bid") +public class XzdTbwjTechnicalBid { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 质量要求 + */ + private String qualityRequirements; + + /** + * 技术要求 + */ + private String technicalRequirements; + + /** + * 编制部门 + */ + private String compilationDept; + + /** + * 编制说明 + */ + private String compilationExplain; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjTechnicalBidRequirements.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjTechnicalBidRequirements.java new file mode 100644 index 00000000..cc66e471 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/XzdTbwjTechnicalBidRequirements.java @@ -0,0 +1,58 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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; + +/** + * 投标文件-技术标要求对象 xzd_tbwj_technical_bid_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_tbwj_technical_bid_requirements") +public class XzdTbwjTechnicalBidRequirements extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 技术标要求 + */ + private String technicalBidRequirement; + + /** + * 编制要点 + */ + private String compilationPoints; + + /** + * 提供时间 + */ + private Date provideTime; + + /** + * 备注 + */ + private String remark; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdBiddingDocumentBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdBiddingDocumentBo.java new file mode 100644 index 00000000..d78fe840 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdBiddingDocumentBo.java @@ -0,0 +1,99 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; + +/** + * 投标文件业务对象 xzd_bidding_document + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdBiddingDocument.class, reverseConvertGenerate = false) +public class XzdBiddingDocumentBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 单据编号 + */ + private String documentNumber; + + /** + * 标题 + */ + private String title; + + /** + * 投标时间 + */ + @NotNull(message = "投标时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date biddingTime; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 项目类型ID + */ + private Long projectType; + + /** + * 投标单位 + */ + private String bidUnit; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date documentDate; + + /** + * 项目经理 + */ + private String projectManager; + + /** + * 工程概况 + */ + private String projectOverview; + + /** + * 组织 + */ + private String organization; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdBiddingDocumentBoBylist.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdBiddingDocumentBoBylist.java new file mode 100644 index 00000000..185f4019 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdBiddingDocumentBoBylist.java @@ -0,0 +1,42 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + + +import lombok.Data; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.*; + +@Data +public class XzdBiddingDocumentBoBylist { + + +// 投标文件 + private XzdBiddingDocumentBo xzdBiddingDocument; + + // 投标文件-技术标 + private XzdTbwjTechnicalBidBo xzdTbwjTechnicalBidVo; + + // 投标文件-商务标 + private XzdTbwjBusinessBidBo xzdTbwjBusinessBidVo; + + + + + +// // 投标文件-商务标要求 +// private XzdTbwjBusinessBidRequirementsBo xzdTbwjBusinessBidRequirementsVo; +// +// +// +// +//// 投标文件-资审要求 +// private XzdTbwjQualificationRequirementsBo xzdTbwjQualificationRequirementsVo; +// +//// 投标文件-技术标要求 +// private XzdTbwjTechnicalBidRequirementsBo xzdTbwjTechnicalBidRequirementsVo; +// + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjBusinessBidBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjBusinessBidBo.java new file mode 100644 index 00000000..2a4ff978 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjBusinessBidBo.java @@ -0,0 +1,87 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; + +import java.math.BigDecimal; + +/** + * 投标文件-商务标业务对象 xzd_tbwj_business_bid + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdTbwjBusinessBid.class, reverseConvertGenerate = false) +public class XzdTbwjBusinessBidBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 标底价 + */ + private Long bidPrice; + + /** + * 折扣率 + */ + private BigDecimal discountRate; + + /** + * 最高限价 + */ + private Long ceilingPrice; + + /** + * 成本价 + */ + private Long costPrice; + + /** + * 投标报价 + */ + @NotNull(message = "投标报价不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalBidPrice; + + /** + * 毛利率 + */ + private BigDecimal feeRate; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + /** + * 投标税率 + */ + private BigDecimal bidTaxRate; + + /** + * 备用金 + */ + private Long pettyCash; + + /** + * 编制部门 + */ + private String compilationDept; + + /** + * 报价说明 + */ + private String estimatedProfit; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjBusinessBidRequirementsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjBusinessBidRequirementsBo.java new file mode 100644 index 00000000..90e0640e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjBusinessBidRequirementsBo.java @@ -0,0 +1,59 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements; + +/** + * 投标文件-商务标要求业务对象 xzd_tbwj_business_bid_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdTbwjBusinessBidRequirements.class, reverseConvertGenerate = false) +public class XzdTbwjBusinessBidRequirementsBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 商务标要求 + */ + @NotBlank(message = "商务标要求不能为空", groups = { AddGroup.class, EditGroup.class }) + private String businessBidRequirement; + + /** + * 编制要点 + */ + private String compilationPoints; + + /** + * 提供时间 + */ + @NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date provideTime; + + /** + * 备注 + */ + private String remark; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjQualificationRequirementsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjQualificationRequirementsBo.java new file mode 100644 index 00000000..16314d2c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjQualificationRequirementsBo.java @@ -0,0 +1,59 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements; + +/** + * 投标文件-资审要求业务对象 xzd_tbwj_qualification_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdTbwjQualificationRequirements.class, reverseConvertGenerate = false) +public class XzdTbwjQualificationRequirementsBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 资审要求 + */ + @NotBlank(message = "资审要求不能为空", groups = { AddGroup.class, EditGroup.class }) + private String qualificationRequirement; + + /** + * 编制要点 + */ + private String compilationPoints; + + /** + * 提供时间 + */ + @NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date provideTime; + + /** + * 备注 + */ + private String remark; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjTechnicalBidBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjTechnicalBidBo.java new file mode 100644 index 00000000..a433a24e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjTechnicalBidBo.java @@ -0,0 +1,54 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; + +/** + * 投标文件-技术标业务对象 xzd_tbwj_technical_bid + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdTbwjTechnicalBid.class, reverseConvertGenerate = false) +public class XzdTbwjTechnicalBidBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 质量要求 + */ + private String qualityRequirements; + + /** + * 技术要求 + */ + private String technicalRequirements; + + /** + * 编制部门 + */ + private String compilationDept; + + /** + * 编制说明 + */ + private String compilationExplain; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjTechnicalBidRequirementsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjTechnicalBidRequirementsBo.java new file mode 100644 index 00000000..1de00e7e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/bo/XzdTbwjTechnicalBidRequirementsBo.java @@ -0,0 +1,59 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements; + +/** + * 投标文件-技术标要求业务对象 xzd_tbwj_technical_bid_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdTbwjTechnicalBidRequirements.class, reverseConvertGenerate = false) +public class XzdTbwjTechnicalBidRequirementsBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 技术标要求 + */ + @NotBlank(message = "技术标要求不能为空", groups = { AddGroup.class, EditGroup.class }) + private String technicalBidRequirement; + + /** + * 编制要点 + */ + private String compilationPoints; + + /** + * 提供时间 + */ + @NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date provideTime; + + /** + * 备注 + */ + private String remark; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdBiddingDocumentVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdBiddingDocumentVo.java new file mode 100644 index 00000000..3db08469 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdBiddingDocumentVo.java @@ -0,0 +1,132 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标文件视图对象 xzd_bidding_document + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdBiddingDocument.class) +public class XzdBiddingDocumentVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编号 + */ + @ExcelProperty(value = "单据编号") + private String documentNumber; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + /** + * 投标时间 + */ + @ExcelProperty(value = "投标时间") + private Date biddingTime; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 项目类型ID + */ + @ExcelProperty(value = "项目类型ID") + private Long projectType; + + /** + * 投标单位 + */ + @ExcelProperty(value = "投标单位") + private String bidUnit; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private Date documentDate; + + /** + * 项目经理 + */ + @ExcelProperty(value = "项目经理") + private String projectManager; + + + /** + * 项目经理名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "projectManager") + private String projectManagerName; + + /** + * 工程概况 + */ + @ExcelProperty(value = "工程概况") + private String projectOverview; + + /** + * 组织 + */ + @ExcelProperty(value = "组织") + private String organization; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdBiddingDocumentVoBylist.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdBiddingDocumentVoBylist.java new file mode 100644 index 00000000..73c08ced --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdBiddingDocumentVoBylist.java @@ -0,0 +1,39 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + + +import lombok.Data; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; + +@Data +public class XzdBiddingDocumentVoBylist { + + +// 投标文件 + private XzdBiddingDocumentVo xzdBiddingDocument; + + + // 投标文件-技术标 + private XzdTbwjTechnicalBid xzdTbwjTechnicalBidVo; + + // 投标文件-商务标 + private XzdTbwjBusinessBid xzdTbwjBusinessBidVo; + +//// 投标文件-商务标要求 +// private XzdTbwjBusinessBidRequirementsVo xzdTbwjBusinessBidRequirementsVo; +// +// +//// 投标文件-资审要求 +// private XzdTbwjQualificationRequirementsVo xzdTbwjQualificationRequirementsVo; +// +//// 投标文件-技术标要求 +// private XzdTbwjTechnicalBidRequirementsVo xzdTbwjTechnicalBidRequirementsVo; + + + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjBusinessBidRequirementsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjBusinessBidRequirementsVo.java new file mode 100644 index 00000000..55dfcfba --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjBusinessBidRequirementsVo.java @@ -0,0 +1,69 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标文件-商务标要求视图对象 xzd_tbwj_business_bid_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdTbwjBusinessBidRequirements.class) +public class XzdTbwjBusinessBidRequirementsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 商务标要求 + */ + @ExcelProperty(value = "商务标要求") + private String businessBidRequirement; + + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + /** + * 编制要点 + */ + @ExcelProperty(value = "编制要点") + private String compilationPoints; + + /** + * 提供时间 + */ + @ExcelProperty(value = "提供时间") + private Date provideTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjBusinessBidVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjBusinessBidVo.java new file mode 100644 index 00000000..be2276be --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjBusinessBidVo.java @@ -0,0 +1,103 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标文件-商务标视图对象 xzd_tbwj_business_bid + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdTbwjBusinessBid.class) +public class XzdTbwjBusinessBidVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + /** + * 标底价 + */ + @ExcelProperty(value = "标底价") + private Long bidPrice; + + /** + * 折扣率 + */ + @ExcelProperty(value = "折扣率") + private Long discountRate; + + /** + * 最高限价 + */ + @ExcelProperty(value = "最高限价") + private Long ceilingPrice; + + /** + * 成本价 + */ + @ExcelProperty(value = "成本价") + private Long costPrice; + + /** + * 投标报价 + */ + @ExcelProperty(value = "投标报价") + private Long totalBidPrice; + + /** + * 毛利率 + */ + @ExcelProperty(value = "毛利率") + private Long feeRate; + + /** + * 投标税率 + */ + @ExcelProperty(value = "投标税率") + private Long bidTaxRate; + + /** + * 备用金 + */ + @ExcelProperty(value = "备用金") + private Long pettyCash; + + /** + * 编制部门 + */ + @ExcelProperty(value = "编制部门") + private String compilationDept; + + /** + * 报价说明 + */ + @ExcelProperty(value = "报价说明") + private String estimatedProfit; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjQualificationRequirementsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjQualificationRequirementsVo.java new file mode 100644 index 00000000..6e5801ec --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjQualificationRequirementsVo.java @@ -0,0 +1,69 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标文件-资审要求视图对象 xzd_tbwj_qualification_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdTbwjQualificationRequirements.class) +public class XzdTbwjQualificationRequirementsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + /** + * 资审要求 + */ + @ExcelProperty(value = "资审要求") + private String qualificationRequirement; + + /** + * 编制要点 + */ + @ExcelProperty(value = "编制要点") + private String compilationPoints; + + /** + * 提供时间 + */ + @ExcelProperty(value = "提供时间") + private Date provideTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjTechnicalBidRequirementsVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjTechnicalBidRequirementsVo.java new file mode 100644 index 00000000..1e2ae143 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjTechnicalBidRequirementsVo.java @@ -0,0 +1,69 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标文件-技术标要求视图对象 xzd_tbwj_technical_bid_requirements + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdTbwjTechnicalBidRequirements.class) +public class XzdTbwjTechnicalBidRequirementsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + /** + * 技术标要求 + */ + @ExcelProperty(value = "技术标要求") + private String technicalBidRequirement; + + /** + * 编制要点 + */ + @ExcelProperty(value = "编制要点") + private String compilationPoints; + + /** + * 提供时间 + */ + @ExcelProperty(value = "提供时间") + private Date provideTime; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjTechnicalBidVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjTechnicalBidVo.java new file mode 100644 index 00000000..43969fdb --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/domain/vo/XzdTbwjTechnicalBidVo.java @@ -0,0 +1,67 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo; + +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 org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标文件-技术标视图对象 xzd_tbwj_technical_bid + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdTbwjTechnicalBid.class) +public class XzdTbwjTechnicalBidVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 质量要求 + */ + @ExcelProperty(value = "质量要求") + private String qualityRequirements; + + /** + * 技术要求 + */ + @ExcelProperty(value = "技术要求") + private String technicalRequirements; + + /** + * 编制部门 + */ + @ExcelProperty(value = "编制部门") + private String compilationDept; + + /** + * 投标文件ID + */ + private Long biddingDocumentId; + + /** + * 编制说明 + */ + @ExcelProperty(value = "编制说明") + private String compilationExplain; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdBiddingDocumentMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdBiddingDocumentMapper.java new file mode 100644 index 00000000..823bd9f5 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdBiddingDocumentMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVo; + +/** + * 投标文件Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdBiddingDocumentMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjBusinessBidMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjBusinessBidMapper.java new file mode 100644 index 00000000..625ec57b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjBusinessBidMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidVo; + +/** + * 投标文件-商务标Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdTbwjBusinessBidMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjBusinessBidRequirementsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjBusinessBidRequirementsMapper.java new file mode 100644 index 00000000..ede188fc --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjBusinessBidRequirementsMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidRequirementsVo; + +/** + * 投标文件-商务标要求Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdTbwjBusinessBidRequirementsMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjQualificationRequirementsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjQualificationRequirementsMapper.java new file mode 100644 index 00000000..aa866702 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjQualificationRequirementsMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjQualificationRequirementsVo; + +/** + * 投标文件-资审要求Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdTbwjQualificationRequirementsMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjTechnicalBidMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjTechnicalBidMapper.java new file mode 100644 index 00000000..32f82660 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjTechnicalBidMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidVo; + +/** + * 投标文件-技术标Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdTbwjTechnicalBidMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjTechnicalBidRequirementsMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjTechnicalBidRequirementsMapper.java new file mode 100644 index 00000000..61d4a5fa --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/mapper/XzdTbwjTechnicalBidRequirementsMapper.java @@ -0,0 +1,17 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidRequirementsVo; + +/** + * 投标文件-技术标要求Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdTbwjTechnicalBidRequirementsMapper extends BaseMapperPlus, BaseMapper { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdBiddingDocumentService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdBiddingDocumentService.java new file mode 100644 index 00000000..42485ac0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdBiddingDocumentService.java @@ -0,0 +1,74 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.service; + + +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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdBiddingDocumentBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdBiddingDocumentBoBylist; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVoBylist; + +import java.util.Collection; +import java.util.List; + +/** + * 投标文件Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdBiddingDocumentService extends IService{ + + /** + * 查询投标文件 + * + * @param id 主键 + * @return 投标文件 + */ + XzdBiddingDocumentVoBylist queryById(Long id); + + /** + * 分页查询投标文件列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件分页列表 + */ + TableDataInfo queryPageList(XzdBiddingDocumentBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标文件列表 + * + * @param bo 查询条件 + * @return 投标文件列表 + */ + List queryList(XzdBiddingDocumentBo bo); + + /** + * 新增投标文件 + * + * @param bo 投标文件 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdBiddingDocumentBoBylist bo); + + /** + * 修改投标文件 + * + * @param bo 投标文件 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdBiddingDocumentBoBylist 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/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjBusinessBidRequirementsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjBusinessBidRequirementsService.java new file mode 100644 index 00000000..09f9445e --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjBusinessBidRequirementsService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.service; + + +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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidRequirementsVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标文件-商务标要求Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdTbwjBusinessBidRequirementsService extends IService{ + + /** + * 查询投标文件-商务标要求 + * + * @param id 主键 + * @return 投标文件-商务标要求 + */ + XzdTbwjBusinessBidRequirementsVo queryById(Long id); + + /** + * 分页查询投标文件-商务标要求列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-商务标要求分页列表 + */ + TableDataInfo queryPageList(XzdTbwjBusinessBidRequirementsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标文件-商务标要求列表 + * + * @param bo 查询条件 + * @return 投标文件-商务标要求列表 + */ + List queryList(XzdTbwjBusinessBidRequirementsBo bo); + + /** + * 新增投标文件-商务标要求 + * + * @param bo 投标文件-商务标要求 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdTbwjBusinessBidRequirementsBo bo); + + /** + * 修改投标文件-商务标要求 + * + * @param bo 投标文件-商务标要求 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdTbwjBusinessBidRequirementsBo 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/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjBusinessBidService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjBusinessBidService.java new file mode 100644 index 00000000..90427b90 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjBusinessBidService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.service; + + +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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标文件-商务标Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdTbwjBusinessBidService extends IService{ + + /** + * 查询投标文件-商务标 + * + * @param id 主键 + * @return 投标文件-商务标 + */ + XzdTbwjBusinessBidVo queryById(Long id); + + /** + * 分页查询投标文件-商务标列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-商务标分页列表 + */ + TableDataInfo queryPageList(XzdTbwjBusinessBidBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标文件-商务标列表 + * + * @param bo 查询条件 + * @return 投标文件-商务标列表 + */ + List queryList(XzdTbwjBusinessBidBo bo); + + /** + * 新增投标文件-商务标 + * + * @param bo 投标文件-商务标 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdTbwjBusinessBidBo bo); + + /** + * 修改投标文件-商务标 + * + * @param bo 投标文件-商务标 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdTbwjBusinessBidBo 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/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjQualificationRequirementsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjQualificationRequirementsService.java new file mode 100644 index 00000000..6ce01912 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjQualificationRequirementsService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.service; + + +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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjQualificationRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjQualificationRequirementsVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标文件-资审要求Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdTbwjQualificationRequirementsService extends IService{ + + /** + * 查询投标文件-资审要求 + * + * @param id 主键 + * @return 投标文件-资审要求 + */ + XzdTbwjQualificationRequirementsVo queryById(Long id); + + /** + * 分页查询投标文件-资审要求列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-资审要求分页列表 + */ + TableDataInfo queryPageList(XzdTbwjQualificationRequirementsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标文件-资审要求列表 + * + * @param bo 查询条件 + * @return 投标文件-资审要求列表 + */ + List queryList(XzdTbwjQualificationRequirementsBo bo); + + /** + * 新增投标文件-资审要求 + * + * @param bo 投标文件-资审要求 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdTbwjQualificationRequirementsBo bo); + + /** + * 修改投标文件-资审要求 + * + * @param bo 投标文件-资审要求 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdTbwjQualificationRequirementsBo 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/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjTechnicalBidRequirementsService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjTechnicalBidRequirementsService.java new file mode 100644 index 00000000..aec3fbba --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjTechnicalBidRequirementsService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.service; + + +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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidRequirementsVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标文件-技术标要求Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdTbwjTechnicalBidRequirementsService extends IService{ + + /** + * 查询投标文件-技术标要求 + * + * @param id 主键 + * @return 投标文件-技术标要求 + */ + XzdTbwjTechnicalBidRequirementsVo queryById(Long id); + + /** + * 分页查询投标文件-技术标要求列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-技术标要求分页列表 + */ + TableDataInfo queryPageList(XzdTbwjTechnicalBidRequirementsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标文件-技术标要求列表 + * + * @param bo 查询条件 + * @return 投标文件-技术标要求列表 + */ + List queryList(XzdTbwjTechnicalBidRequirementsBo bo); + + /** + * 新增投标文件-技术标要求 + * + * @param bo 投标文件-技术标要求 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdTbwjTechnicalBidRequirementsBo bo); + + /** + * 修改投标文件-技术标要求 + * + * @param bo 投标文件-技术标要求 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdTbwjTechnicalBidRequirementsBo 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/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjTechnicalBidService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjTechnicalBidService.java new file mode 100644 index 00000000..36f81a23 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/IXzdTbwjTechnicalBidService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.service; + + +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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标文件-技术标Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdTbwjTechnicalBidService extends IService{ + + /** + * 查询投标文件-技术标 + * + * @param id 主键 + * @return 投标文件-技术标 + */ + XzdTbwjTechnicalBidVo queryById(Long id); + + /** + * 分页查询投标文件-技术标列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-技术标分页列表 + */ + TableDataInfo queryPageList(XzdTbwjTechnicalBidBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标文件-技术标列表 + * + * @param bo 查询条件 + * @return 投标文件-技术标列表 + */ + List queryList(XzdTbwjTechnicalBidBo bo); + + /** + * 新增投标文件-技术标 + * + * @param bo 投标文件-技术标 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdTbwjTechnicalBidBo bo); + + /** + * 修改投标文件-技术标 + * + * @param bo 投标文件-技术标 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdTbwjTechnicalBidBo 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/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java new file mode 100644 index 00000000..7dc50217 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdBiddingDocumentServiceImpl.java @@ -0,0 +1,218 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdBiddingDocumentBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdBiddingDocumentBoBylist; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdBiddingDocumentVoBylist; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.mapper.XzdBiddingDocumentMapper; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdBiddingDocumentService; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjBusinessBidService; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjTechnicalBidService; +import org.dromara.xzd.utilS.AreaUtil; +import org.locationtech.jts.edgegraph.HalfEdge; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + + +import java.time.LocalDate; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投标文件Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdBiddingDocumentServiceImpl extends ServiceImpl implements IXzdBiddingDocumentService { + + private final XzdBiddingDocumentMapper baseMapper; + + private final AreaUtil areaUtil; + + // 投标文件-技术标 + private final IXzdTbwjTechnicalBidService xzdTbwjTechnicalBidService; + + // 投标文件-商务标 + private final IXzdTbwjBusinessBidService xzdTbwjBusinessBidService; + + /** + * 查询投标文件 + * + * @param id 主键 + * @return 投标文件 + */ + @Override + public XzdBiddingDocumentVoBylist queryById(Long id){ + XzdBiddingDocumentVoBylist bylist = new XzdBiddingDocumentVoBylist(); + + XzdBiddingDocumentVo xzdBiddingDocumentVo = baseMapper.selectVoById(id); + XzdTbwjTechnicalBid xzdTbwjTechnicalBid = xzdTbwjTechnicalBidService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(XzdTbwjTechnicalBid::getBiddingDocumentId, id)); + XzdTbwjBusinessBid xzdTbwjBusinessBid = xzdTbwjBusinessBidService.getBaseMapper().selectOne(new LambdaQueryWrapper().eq(XzdTbwjBusinessBid::getBiddingDocumentId, id)); + + bylist.setXzdBiddingDocument(xzdBiddingDocumentVo); + bylist.setXzdTbwjTechnicalBidVo(xzdTbwjTechnicalBid); + bylist.setXzdTbwjBusinessBidVo(xzdTbwjBusinessBid); + + return bylist; + } + + /** + * 分页查询投标文件列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdBiddingDocumentBo 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(XzdBiddingDocumentBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdBiddingDocumentBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdBiddingDocument::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdBiddingDocument::getDocumentNumber, bo.getDocumentNumber()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdBiddingDocument::getTitle, bo.getTitle()); + lqw.eq(bo.getBiddingTime() != null, XzdBiddingDocument::getBiddingTime, bo.getBiddingTime()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBiddingDocument::getProjectName, bo.getProjectName()); + lqw.eq(bo.getProjectType() != null, XzdBiddingDocument::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getBidUnit()), XzdBiddingDocument::getBidUnit, bo.getBidUnit()); + lqw.eq(bo.getDocumentDate() != null, XzdBiddingDocument::getDocumentDate, bo.getDocumentDate()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectManager()), XzdBiddingDocument::getProjectManager, bo.getProjectManager()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectOverview()), XzdBiddingDocument::getProjectOverview, bo.getProjectOverview()); + lqw.eq(StringUtils.isNotBlank(bo.getOrganization()), XzdBiddingDocument::getOrganization, bo.getOrganization()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBiddingDocument::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBiddingDocument::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增投标文件 + * + * @param bo 投标文件 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdBiddingDocumentBoBylist bo) { + // 投标文件 + XzdBiddingDocumentBo xzdBiddingDocumentbo = bo.getXzdBiddingDocument(); + if (xzdBiddingDocumentbo == null) { + return false; + } + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBiddingDocument::getCreateTime, LocalDate.now())); + String s = areaUtil.generateDateBasedNumber(); + + XzdBiddingDocument xzdBiddingDocument = new XzdBiddingDocument(); + BeanUtils.copyProperties(xzdBiddingDocumentbo, xzdBiddingDocument); + +// 单据编号 + xzdBiddingDocument.setDocumentNumber(s+"-"+(l+1)); + this.save(xzdBiddingDocument); + + // 投标文件-技术标 + XzdTbwjTechnicalBidBo xzdTbwjTechnicalBidVo = bo.getXzdTbwjTechnicalBidVo(); + XzdTbwjTechnicalBid xzdTbwjTechnicalBid = new XzdTbwjTechnicalBid(); + if (xzdTbwjTechnicalBidVo != null){ + BeanUtils.copyProperties(xzdTbwjTechnicalBidVo, xzdTbwjTechnicalBid); + + } + xzdTbwjTechnicalBid.setBiddingDocumentId(xzdBiddingDocument.getId()); + xzdTbwjTechnicalBidService.save(xzdTbwjTechnicalBid); + + // 投标文件-商务标 + XzdTbwjBusinessBidBo xzdTbwjBusinessBidVo = bo.getXzdTbwjBusinessBidVo(); + XzdTbwjBusinessBid xzdTbwjBusinessBid = new XzdTbwjBusinessBid(); + BeanUtils.copyProperties(xzdTbwjBusinessBidVo, xzdTbwjBusinessBid); + xzdTbwjBusinessBid.setBiddingDocumentId(xzdBiddingDocument.getId()); + xzdTbwjBusinessBidService.save(xzdTbwjBusinessBid); + + + return true; + } + + /** + * 修改投标文件 + * + * @param bo 投标文件 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdBiddingDocumentBoBylist bo) { + XzdBiddingDocument update = MapstructUtils.convert(bo.getXzdBiddingDocument(), XzdBiddingDocument.class); + // 投标文件-技术标 + XzdTbwjTechnicalBid xzdTbwjTechnicalBid = MapstructUtils.convert(bo.getXzdTbwjTechnicalBidVo(), XzdTbwjTechnicalBid.class); + xzdTbwjTechnicalBidService.updateById(xzdTbwjTechnicalBid); + + // 投标文件-商务标 + XzdTbwjBusinessBid xzdTbwjBusinessBid = MapstructUtils.convert(bo.getXzdTbwjBusinessBidVo(), XzdTbwjBusinessBid.class); + xzdTbwjBusinessBidService.updateById(xzdTbwjBusinessBid); + + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdBiddingDocument entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除投标文件信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + + if(isValid){ + ids.forEach(id->{ + HashMap hashMap = new HashMap<>(); + hashMap.put("bidding_document_id", id); +// 删除技术标 + xzdTbwjTechnicalBidService.removeByMap(hashMap); +// 删除商务标 + xzdTbwjBusinessBidService.removeByMap(hashMap); + }); + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjBusinessBidRequirementsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjBusinessBidRequirementsServiceImpl.java new file mode 100644 index 00000000..59c172db --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjBusinessBidRequirementsServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidRequirementsVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.mapper.XzdTbwjBusinessBidRequirementsMapper; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjBusinessBidRequirementsService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投标文件-商务标要求Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdTbwjBusinessBidRequirementsServiceImpl extends ServiceImpl implements IXzdTbwjBusinessBidRequirementsService { + + private final XzdTbwjBusinessBidRequirementsMapper baseMapper; + + /** + * 查询投标文件-商务标要求 + * + * @param id 主键 + * @return 投标文件-商务标要求 + */ + @Override + public XzdTbwjBusinessBidRequirementsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询投标文件-商务标要求列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-商务标要求分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdTbwjBusinessBidRequirementsBo 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(XzdTbwjBusinessBidRequirementsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdTbwjBusinessBidRequirementsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdTbwjBusinessBidRequirements::getId); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessBidRequirement()), XzdTbwjBusinessBidRequirements::getBusinessBidRequirement, bo.getBusinessBidRequirement()); + lqw.eq(StringUtils.isNotBlank(bo.getCompilationPoints()), XzdTbwjBusinessBidRequirements::getCompilationPoints, bo.getCompilationPoints()); + lqw.eq(bo.getProvideTime() != null, XzdTbwjBusinessBidRequirements::getProvideTime, bo.getProvideTime()); + return lqw; + } + + /** + * 新增投标文件-商务标要求 + * + * @param bo 投标文件-商务标要求 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdTbwjBusinessBidRequirementsBo bo) { + XzdTbwjBusinessBidRequirements add = MapstructUtils.convert(bo, XzdTbwjBusinessBidRequirements.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标文件-商务标要求 + * + * @param bo 投标文件-商务标要求 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdTbwjBusinessBidRequirementsBo bo) { + XzdTbwjBusinessBidRequirements update = MapstructUtils.convert(bo, XzdTbwjBusinessBidRequirements.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdTbwjBusinessBidRequirements 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/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjBusinessBidServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjBusinessBidServiceImpl.java new file mode 100644 index 00000000..b3c8fef6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjBusinessBidServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjBusinessBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjBusinessBidVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.mapper.XzdTbwjBusinessBidMapper; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjBusinessBidService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投标文件-商务标Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdTbwjBusinessBidServiceImpl extends ServiceImpl implements IXzdTbwjBusinessBidService { + + private final XzdTbwjBusinessBidMapper baseMapper; + + /** + * 查询投标文件-商务标 + * + * @param id 主键 + * @return 投标文件-商务标 + */ + @Override + public XzdTbwjBusinessBidVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询投标文件-商务标列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-商务标分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdTbwjBusinessBidBo 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(XzdTbwjBusinessBidBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdTbwjBusinessBidBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdTbwjBusinessBid::getId); + lqw.eq(bo.getBidPrice() != null, XzdTbwjBusinessBid::getBidPrice, bo.getBidPrice()); + lqw.eq(bo.getDiscountRate() != null, XzdTbwjBusinessBid::getDiscountRate, bo.getDiscountRate()); + lqw.eq(bo.getCeilingPrice() != null, XzdTbwjBusinessBid::getCeilingPrice, bo.getCeilingPrice()); + lqw.eq(bo.getCostPrice() != null, XzdTbwjBusinessBid::getCostPrice, bo.getCostPrice()); + lqw.eq(bo.getTotalBidPrice() != null, XzdTbwjBusinessBid::getTotalBidPrice, bo.getTotalBidPrice()); + lqw.eq(bo.getFeeRate() != null, XzdTbwjBusinessBid::getFeeRate, bo.getFeeRate()); + lqw.eq(bo.getBidTaxRate() != null, XzdTbwjBusinessBid::getBidTaxRate, bo.getBidTaxRate()); + lqw.eq(bo.getPettyCash() != null, XzdTbwjBusinessBid::getPettyCash, bo.getPettyCash()); + lqw.eq(StringUtils.isNotBlank(bo.getCompilationDept()), XzdTbwjBusinessBid::getCompilationDept, bo.getCompilationDept()); + lqw.eq(StringUtils.isNotBlank(bo.getEstimatedProfit()), XzdTbwjBusinessBid::getEstimatedProfit, bo.getEstimatedProfit()); + return lqw; + } + + /** + * 新增投标文件-商务标 + * + * @param bo 投标文件-商务标 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdTbwjBusinessBidBo bo) { + XzdTbwjBusinessBid add = MapstructUtils.convert(bo, XzdTbwjBusinessBid.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标文件-商务标 + * + * @param bo 投标文件-商务标 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdTbwjBusinessBidBo bo) { + XzdTbwjBusinessBid update = MapstructUtils.convert(bo, XzdTbwjBusinessBid.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdTbwjBusinessBid 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/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjQualificationRequirementsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjQualificationRequirementsServiceImpl.java new file mode 100644 index 00000000..98ecc25b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjQualificationRequirementsServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjQualificationRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjQualificationRequirementsVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.mapper.XzdTbwjQualificationRequirementsMapper; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjQualificationRequirementsService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投标文件-资审要求Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdTbwjQualificationRequirementsServiceImpl extends ServiceImpl implements IXzdTbwjQualificationRequirementsService { + + private final XzdTbwjQualificationRequirementsMapper baseMapper; + + /** + * 查询投标文件-资审要求 + * + * @param id 主键 + * @return 投标文件-资审要求 + */ + @Override + public XzdTbwjQualificationRequirementsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询投标文件-资审要求列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-资审要求分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdTbwjQualificationRequirementsBo 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(XzdTbwjQualificationRequirementsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdTbwjQualificationRequirementsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdTbwjQualificationRequirements::getId); + lqw.eq(StringUtils.isNotBlank(bo.getQualificationRequirement()), XzdTbwjQualificationRequirements::getQualificationRequirement, bo.getQualificationRequirement()); + lqw.eq(StringUtils.isNotBlank(bo.getCompilationPoints()), XzdTbwjQualificationRequirements::getCompilationPoints, bo.getCompilationPoints()); + lqw.eq(bo.getProvideTime() != null, XzdTbwjQualificationRequirements::getProvideTime, bo.getProvideTime()); + return lqw; + } + + /** + * 新增投标文件-资审要求 + * + * @param bo 投标文件-资审要求 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdTbwjQualificationRequirementsBo bo) { + XzdTbwjQualificationRequirements add = MapstructUtils.convert(bo, XzdTbwjQualificationRequirements.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标文件-资审要求 + * + * @param bo 投标文件-资审要求 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdTbwjQualificationRequirementsBo bo) { + XzdTbwjQualificationRequirements update = MapstructUtils.convert(bo, XzdTbwjQualificationRequirements.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdTbwjQualificationRequirements 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/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjTechnicalBidRequirementsServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjTechnicalBidRequirementsServiceImpl.java new file mode 100644 index 00000000..fb57d305 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjTechnicalBidRequirementsServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidRequirementsBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidRequirementsVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.mapper.XzdTbwjTechnicalBidRequirementsMapper; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjTechnicalBidRequirementsService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投标文件-技术标要求Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdTbwjTechnicalBidRequirementsServiceImpl extends ServiceImpl implements IXzdTbwjTechnicalBidRequirementsService { + + private final XzdTbwjTechnicalBidRequirementsMapper baseMapper; + + /** + * 查询投标文件-技术标要求 + * + * @param id 主键 + * @return 投标文件-技术标要求 + */ + @Override + public XzdTbwjTechnicalBidRequirementsVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询投标文件-技术标要求列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-技术标要求分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdTbwjTechnicalBidRequirementsBo 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(XzdTbwjTechnicalBidRequirementsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdTbwjTechnicalBidRequirementsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdTbwjTechnicalBidRequirements::getId); + lqw.eq(StringUtils.isNotBlank(bo.getTechnicalBidRequirement()), XzdTbwjTechnicalBidRequirements::getTechnicalBidRequirement, bo.getTechnicalBidRequirement()); + lqw.eq(StringUtils.isNotBlank(bo.getCompilationPoints()), XzdTbwjTechnicalBidRequirements::getCompilationPoints, bo.getCompilationPoints()); + lqw.eq(bo.getProvideTime() != null, XzdTbwjTechnicalBidRequirements::getProvideTime, bo.getProvideTime()); + return lqw; + } + + /** + * 新增投标文件-技术标要求 + * + * @param bo 投标文件-技术标要求 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdTbwjTechnicalBidRequirementsBo bo) { + XzdTbwjTechnicalBidRequirements add = MapstructUtils.convert(bo, XzdTbwjTechnicalBidRequirements.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标文件-技术标要求 + * + * @param bo 投标文件-技术标要求 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdTbwjTechnicalBidRequirementsBo bo) { + XzdTbwjTechnicalBidRequirements update = MapstructUtils.convert(bo, XzdTbwjTechnicalBidRequirements.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdTbwjTechnicalBidRequirements 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/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjTechnicalBidServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjTechnicalBidServiceImpl.java new file mode 100644 index 00000000..b237c747 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/biddingDocumentList/service/impl/XzdTbwjTechnicalBidServiceImpl.java @@ -0,0 +1,135 @@ +package org.dromara.xzd.biddingManagement.biddingDocumentList.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.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBid; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.bo.XzdTbwjTechnicalBidBo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo.XzdTbwjTechnicalBidVo; +import org.dromara.xzd.biddingManagement.biddingDocumentList.mapper.XzdTbwjTechnicalBidMapper; +import org.dromara.xzd.biddingManagement.biddingDocumentList.service.IXzdTbwjTechnicalBidService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 投标文件-技术标Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdTbwjTechnicalBidServiceImpl extends ServiceImpl implements IXzdTbwjTechnicalBidService { + + private final XzdTbwjTechnicalBidMapper baseMapper; + + /** + * 查询投标文件-技术标 + * + * @param id 主键 + * @return 投标文件-技术标 + */ + @Override + public XzdTbwjTechnicalBidVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询投标文件-技术标列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标文件-技术标分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdTbwjTechnicalBidBo 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(XzdTbwjTechnicalBidBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdTbwjTechnicalBidBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdTbwjTechnicalBid::getId); + lqw.eq(StringUtils.isNotBlank(bo.getQualityRequirements()), XzdTbwjTechnicalBid::getQualityRequirements, bo.getQualityRequirements()); + lqw.eq(StringUtils.isNotBlank(bo.getTechnicalRequirements()), XzdTbwjTechnicalBid::getTechnicalRequirements, bo.getTechnicalRequirements()); + lqw.eq(StringUtils.isNotBlank(bo.getCompilationDept()), XzdTbwjTechnicalBid::getCompilationDept, bo.getCompilationDept()); + lqw.eq(StringUtils.isNotBlank(bo.getCompilationExplain()), XzdTbwjTechnicalBid::getCompilationExplain, bo.getCompilationExplain()); + return lqw; + } + + /** + * 新增投标文件-技术标 + * + * @param bo 投标文件-技术标 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdTbwjTechnicalBidBo bo) { + XzdTbwjTechnicalBid add = MapstructUtils.convert(bo, XzdTbwjTechnicalBid.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标文件-技术标 + * + * @param bo 投标文件-技术标 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdTbwjTechnicalBidBo bo) { + XzdTbwjTechnicalBid update = MapstructUtils.convert(bo, XzdTbwjTechnicalBid.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdTbwjTechnicalBid 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/xzd/biddingManagement/earnestMoney/controller/XzdBidDepositPaymentController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/controller/XzdBidDepositPaymentController.java new file mode 100644 index 00000000..6c652157 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/controller/XzdBidDepositPaymentController.java @@ -0,0 +1,107 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.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.dromara.xzd.biddingManagement.earnestMoney.domain.bo.XzdBidDepositPaymentBo; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentByBqlx; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentVo; +import org.dromara.xzd.biddingManagement.earnestMoney.service.IXzdBidDepositPaymentService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标保证金缴纳 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/earnestMoney/bidDepositPayment") +public class XzdBidDepositPaymentController extends BaseController { + + private final IXzdBidDepositPaymentService xzdBidDepositPaymentService; + + /** + * 查询投标保证金缴纳列表 + */ + @SaCheckPermission("earnestMoney:bidDepositPayment:list") + @GetMapping("/list") + public TableDataInfo list(XzdBidDepositPaymentBo bo, PageQuery pageQuery) { + return xzdBidDepositPaymentService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标保证金缴纳列表 + */ + @SaCheckPermission("earnestMoney:bidDepositPayment:export") + @Log(title = "投标保证金缴纳", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdBidDepositPaymentBo bo, HttpServletResponse response) { + List list = xzdBidDepositPaymentService.queryList(bo); + ExcelUtil.exportExcel(list, "投标保证金缴纳", XzdBidDepositPaymentVo.class, response); + } + + /** + * 获取投标保证金缴纳详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("earnestMoney:bidDepositPayment:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdBidDepositPaymentService.queryById(id)); + } + + /** + * 新增投标保证金缴纳 + */ + @SaCheckPermission("earnestMoney:bidDepositPayment:add") + @Log(title = "投标保证金缴纳", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdBidDepositPaymentBo bo) { + return toAjax(xzdBidDepositPaymentService.insertByBo(bo)); + } + + /** + * 修改投标保证金缴纳 + */ + @SaCheckPermission("earnestMoney:bidDepositPayment:edit") + @Log(title = "投标保证金缴纳", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdBidDepositPaymentBo bo) { + return toAjax(xzdBidDepositPaymentService.updateByBo(bo)); + } + + /** + * 删除投标保证金缴纳 + * + * @param ids 主键串 + */ + @SaCheckPermission("earnestMoney:bidDepositPayment:remove") + @Log(title = "投标保证金缴纳", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdBidDepositPaymentService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/XzdBidDepositPayment.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/XzdBidDepositPayment.java new file mode 100644 index 00000000..fa639651 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/XzdBidDepositPayment.java @@ -0,0 +1,154 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.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; + +/** + * 投标保证金缴纳对象 xzd_bid_deposit_payment + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_bid_deposit_payment") +public class XzdBidDepositPayment extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码 + */ + private String documentCode; + + /** + * 单据日期 + */ + private Date documentDate; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 工程造价(万元) + */ + private Long projectCost; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 保证金金额 + */ + private Long depositAmount; + + /** + * 保证金金额大写 + */ + private String depositAmountCapital; + + /** + * 汇款方式 + */ + private String remittanceMethod; + + /** + * 支付截止时间 + */ + private Date paymentDeadline; + + /** + * 收款单位 + */ + private String receivingUnit; + /** + * 收款单位ID + */ + private Long receivingUnitId; + + /** + * 收款账户名称 + */ + private String receivingAccountName; + + /** + * 收款账户银行 + */ + private String receivingBank; + + /** + * 收款银行账号 + */ + private String receivingBankAccount; + + /** + * 招标结束后要求工作日收回 + */ + private Long requestRecoveryDays; + + /** + * 保证金类型 + */ + private String depositType; + + /** + * 回单要求 + */ + private String receiptRequirement; + + /** + * 是否邮寄(0否 1是) + */ + private Long isMail; + + /** + * 保证金比例 + */ + private Long depositRatio; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + + /** + * 申请事项 + */ + private String itemsOfApplication; + + + /** + * 标前立项ID + */ + private Long bqlxId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/bo/XzdBidDepositPaymentBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/bo/XzdBidDepositPaymentBo.java new file mode 100644 index 00000000..d926ea7a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/bo/XzdBidDepositPaymentBo.java @@ -0,0 +1,159 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.XzdBidDepositPayment; + +/** + * 投标保证金缴纳业务对象 xzd_bid_deposit_payment + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdBidDepositPayment.class, reverseConvertGenerate = false) +public class XzdBidDepositPaymentBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 单据编码 + */ + private String documentCode; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date documentDate; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 工程造价(万元) + */ + private Long projectCost; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 保证金金额 + */ + @NotNull(message = "保证金金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long depositAmount; + + /** + * 保证金金额大写 + */ + @NotBlank(message = "保证金金额大写不能为空", groups = { AddGroup.class, EditGroup.class }) + private String depositAmountCapital; + + /** + * 汇款方式 + */ + private String remittanceMethod; + + /** + * 支付截止时间 + */ + private Date paymentDeadline; + + /** + * 收款单位 + */ + private String receivingUnit; + + /** + * 收款单位ID + */ + private Long receivingUnitId; + + /** + * 收款账户名称 + */ + private String receivingAccountName; + + /** + * 收款账户银行 + */ + private String receivingBank; + + /** + * 收款银行账号 + */ + private String receivingBankAccount; + + /** + * 招标结束后要求工作日收回 + */ + private Long requestRecoveryDays; + + /** + * 保证金类型 + */ + @NotBlank(message = "保证金类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String depositType; + + /** + * 回单要求 + */ + private String receiptRequirement; + + /** + * 是否邮寄(0否 1是) + */ + private Long isMail; + + /** + * 保证金比例 + */ + private Long depositRatio; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + + + /** + * 申请事项 + */ + private String itemsOfApplication; + + + /** + * 标前立项ID + */ + private Long bqlxId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/vo/XzdBidDepositPaymentByBqlx.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/vo/XzdBidDepositPaymentByBqlx.java new file mode 100644 index 00000000..5e77a895 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/vo/XzdBidDepositPaymentByBqlx.java @@ -0,0 +1,17 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.domain.vo; + + +import lombok.Data; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QueryListXzdVo; + +@Data +public class XzdBidDepositPaymentByBqlx { + + + + + private XzdBidDepositPaymentVo xzdBidDepositPaymentVo; + + private QuerListXzdBidPreVo queryListXzdVo; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/vo/XzdBidDepositPaymentVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/vo/XzdBidDepositPaymentVo.java new file mode 100644 index 00000000..06bd6914 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/domain/vo/XzdBidDepositPaymentVo.java @@ -0,0 +1,203 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.XzdBidDepositPayment; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标保证金缴纳视图对象 xzd_bid_deposit_payment + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdBidDepositPayment.class) +public class XzdBidDepositPaymentVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String documentCode; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private Date documentDate; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 工程造价(万元) + */ + @ExcelProperty(value = "工程造价(万元)") + private Long projectCost; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessMode; + + /** + * 保证金金额 + */ + @ExcelProperty(value = "保证金金额") + private Long depositAmount; + + /** + * 保证金金额大写 + */ + @ExcelProperty(value = "保证金金额大写") + private String depositAmountCapital; + + /** + * 汇款方式 + */ + @ExcelProperty(value = "汇款方式") + private String remittanceMethod; + + /** + * 支付截止时间 + */ + @ExcelProperty(value = "支付截止时间") + private Date paymentDeadline; + + /** + * 收款单位 + */ + @ExcelProperty(value = "收款单位") + private String receivingUnit; + + /** + * 收款单位ID + */ + private Long receivingUnitId; + + /** + * 收款账户名称 + */ + @ExcelProperty(value = "收款账户名称") + private String receivingAccountName; + + /** + * 收款账户银行 + */ + @ExcelProperty(value = "收款账户银行") + private String receivingBank; + + /** + * 收款银行账号 + */ + @ExcelProperty(value = "收款银行账号") + private String receivingBankAccount; + + /** + * 招标结束后要求工作日收回 + */ + @ExcelProperty(value = "招标结束后要求工作日收回") + private Long requestRecoveryDays; + + /** + * 保证金类型 + */ + @ExcelProperty(value = "保证金类型") + private String depositType; + + /** + * 回单要求 + */ + @ExcelProperty(value = "回单要求") + private String receiptRequirement; + + /** + * 是否邮寄(0否 1是) + */ + @ExcelProperty(value = "是否邮寄(0否 1是)") + private Long isMail; + + /** + * 保证金比例 + */ + @ExcelProperty(value = "保证金比例") + private Long depositRatio; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + + /** + * 申请事项 + */ + @ExcelProperty(value = "申请事项") + private String itemsOfApplication; + + + + + private Long createBy; + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createName; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 标前立项ID + */ + private Long bqlxId; + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/mapper/XzdBidDepositPaymentMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/mapper/XzdBidDepositPaymentMapper.java new file mode 100644 index 00000000..75ff800a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/mapper/XzdBidDepositPaymentMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.XzdBidDepositPayment; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentVo; + +/** + * 投标保证金缴纳Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdBidDepositPaymentMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/IXzdBidDepositPaymentService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/IXzdBidDepositPaymentService.java new file mode 100644 index 00000000..02d263df --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/IXzdBidDepositPaymentService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.service; + +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.dromara.xzd.biddingManagement.earnestMoney.domain.XzdBidDepositPayment; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.bo.XzdBidDepositPaymentBo; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentByBqlx; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标保证金缴纳Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdBidDepositPaymentService extends IService{ + + /** + * 查询投标保证金缴纳 + * + * @param id 主键 + * @return 投标保证金缴纳 + */ + XzdBidDepositPaymentByBqlx queryById(Long id); + + /** + * 分页查询投标保证金缴纳列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标保证金缴纳分页列表 + */ + TableDataInfo queryPageList(XzdBidDepositPaymentBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标保证金缴纳列表 + * + * @param bo 查询条件 + * @return 投标保证金缴纳列表 + */ + List queryList(XzdBidDepositPaymentBo bo); + + /** + * 新增投标保证金缴纳 + * + * @param bo 投标保证金缴纳 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdBidDepositPaymentBo bo); + + /** + * 修改投标保证金缴纳 + * + * @param bo 投标保证金缴纳 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdBidDepositPaymentBo 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/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java new file mode 100644 index 00000000..f440dbf2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoney/service/impl/XzdBidDepositPaymentServiceImpl.java @@ -0,0 +1,192 @@ +package org.dromara.xzd.biddingManagement.earnestMoney.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.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProjectService; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.XzdBidDepositPayment; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.bo.XzdBidDepositPaymentBo; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentByBqlx; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentVo; +import org.dromara.xzd.biddingManagement.earnestMoney.mapper.XzdBidDepositPaymentMapper; +import org.dromara.xzd.biddingManagement.earnestMoney.service.IXzdBidDepositPaymentService; +import org.dromara.xzd.utilS.AreaUtil; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * 投标保证金缴纳Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdBidDepositPaymentServiceImpl extends ServiceImpl implements IXzdBidDepositPaymentService { + + private final XzdBidDepositPaymentMapper baseMapper; + + private final AreaUtil areaUtil; + private final SysOssServiceImpl sysOssService; + + private final IXzdBidPreProjectService xzdBidPreProjectService; + + /** + * 查询投标保证金缴纳 + * + * @param id 主键 + * @return 投标保证金缴纳 + */ + @Override + public XzdBidDepositPaymentByBqlx queryById(Long id){ + XzdBidDepositPaymentByBqlx res = new XzdBidDepositPaymentByBqlx(); + + XzdBidDepositPaymentVo xzdBidDepositPaymentVo = baseMapper.selectVoById(id); + res.setXzdBidDepositPaymentVo(xzdBidDepositPaymentVo); + + + if (xzdBidDepositPaymentVo.getBqlxId() != null){ + QuerListXzdBidPreVo vo = xzdBidPreProjectService.queryById(xzdBidDepositPaymentVo.getBqlxId()); + res.setQueryListXzdVo(vo); + + } + + return res; + } + + /** + * 分页查询投标保证金缴纳列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标保证金缴纳分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdBidDepositPaymentBo 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(XzdBidDepositPaymentBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdBidDepositPaymentBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdBidDepositPayment::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdBidDepositPayment::getDocumentCode, bo.getDocumentCode()); + lqw.eq(bo.getDocumentDate() != null, XzdBidDepositPayment::getDocumentDate, bo.getDocumentDate()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBidDepositPayment::getProjectName, bo.getProjectName()); + lqw.eq(bo.getProjectCost() != null, XzdBidDepositPayment::getProjectCost, bo.getProjectCost()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessMode()), XzdBidDepositPayment::getBusinessMode, bo.getBusinessMode()); + lqw.eq(bo.getDepositAmount() != null, XzdBidDepositPayment::getDepositAmount, bo.getDepositAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositAmountCapital()), XzdBidDepositPayment::getDepositAmountCapital, bo.getDepositAmountCapital()); + lqw.eq(StringUtils.isNotBlank(bo.getRemittanceMethod()), XzdBidDepositPayment::getRemittanceMethod, bo.getRemittanceMethod()); + lqw.eq(bo.getPaymentDeadline() != null, XzdBidDepositPayment::getPaymentDeadline, bo.getPaymentDeadline()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingUnit()), XzdBidDepositPayment::getReceivingUnit, bo.getReceivingUnit()); + lqw.like(StringUtils.isNotBlank(bo.getReceivingAccountName()), XzdBidDepositPayment::getReceivingAccountName, bo.getReceivingAccountName()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingBank()), XzdBidDepositPayment::getReceivingBank, bo.getReceivingBank()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingBankAccount()), XzdBidDepositPayment::getReceivingBankAccount, bo.getReceivingBankAccount()); + lqw.eq(bo.getRequestRecoveryDays() != null, XzdBidDepositPayment::getRequestRecoveryDays, bo.getRequestRecoveryDays()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositType()), XzdBidDepositPayment::getDepositType, bo.getDepositType()); + lqw.eq(StringUtils.isNotBlank(bo.getReceiptRequirement()), XzdBidDepositPayment::getReceiptRequirement, bo.getReceiptRequirement()); + lqw.eq(bo.getIsMail() != null, XzdBidDepositPayment::getIsMail, bo.getIsMail()); + lqw.eq(bo.getDepositRatio() != null, XzdBidDepositPayment::getDepositRatio, bo.getDepositRatio()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBidDepositPayment::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBidDepositPayment::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getItemsOfApplication()), XzdBidDepositPayment::getItemsOfApplication, bo.getItemsOfApplication()); + return lqw; + } + + /** + * 新增投标保证金缴纳 + * + * @param bo 投标保证金缴纳 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdBidDepositPaymentBo bo) { + XzdBidDepositPayment add = MapstructUtils.convert(bo, XzdBidDepositPayment.class); + validEntityBeforeSave(add); + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBidDepositPayment::getCreateTime, LocalDate.now())); + String s = areaUtil.generateDateBasedNumber(); + add.setDocumentCode(s+"-"+(l+1)); + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标保证金缴纳 + * + * @param bo 投标保证金缴纳 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdBidDepositPaymentBo bo) { + XzdBidDepositPayment update = MapstructUtils.convert(bo, XzdBidDepositPayment.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdBidDepositPayment entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除投标保证金缴纳信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + for (Long id : ids) { + XzdBidDepositPaymentVo xzdBidDepositPaymentVo = baseMapper.selectVoById(id); + + // 删除附件 + if (!StringUtils.isEmpty(xzdBidDepositPaymentVo.getFileId())){ + List collect = Arrays.stream(xzdBidDepositPaymentVo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + } + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/controller/XzdBidDepositRecoveryController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/controller/XzdBidDepositRecoveryController.java new file mode 100644 index 00000000..8fa4c8a8 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/controller/XzdBidDepositRecoveryController.java @@ -0,0 +1,107 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.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.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.bo.XzdBidDepositRecoveryBo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryVo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryXqVo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.service.IXzdBidDepositRecoveryService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 投标保证金收回 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/biddingManagement/bidDepositRecovery") +public class XzdBidDepositRecoveryController extends BaseController { + + private final IXzdBidDepositRecoveryService xzdBidDepositRecoveryService; + + /** + * 查询投标保证金收回列表 + */ + @SaCheckPermission("biddingManagement:bidDepositRecovery:list") + @GetMapping("/list") + public TableDataInfo list(XzdBidDepositRecoveryBo bo, PageQuery pageQuery) { + return xzdBidDepositRecoveryService.queryPageList(bo, pageQuery); + } + + /** + * 导出投标保证金收回列表 + */ + @SaCheckPermission("biddingManagement:bidDepositRecovery:export") + @Log(title = "投标保证金收回", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdBidDepositRecoveryBo bo, HttpServletResponse response) { + List list = xzdBidDepositRecoveryService.queryList(bo); + ExcelUtil.exportExcel(list, "投标保证金收回", XzdBidDepositRecoveryVo.class, response); + } + + /** + * 获取投标保证金收回详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("biddingManagement:bidDepositRecovery:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdBidDepositRecoveryService.queryById(id)); + } + + /** + * 新增投标保证金收回 + */ + @SaCheckPermission("biddingManagement:bidDepositRecovery:add") + @Log(title = "投标保证金收回", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdBidDepositRecoveryBo bo) { + return toAjax(xzdBidDepositRecoveryService.insertByBo(bo)); + } + + /** + * 修改投标保证金收回 + */ + @SaCheckPermission("biddingManagement:bidDepositRecovery:edit") + @Log(title = "投标保证金收回", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdBidDepositRecoveryBo bo) { + return toAjax(xzdBidDepositRecoveryService.updateByBo(bo)); + } + + /** + * 删除投标保证金收回 + * + * @param ids 主键串 + */ + @SaCheckPermission("biddingManagement:bidDepositRecovery:remove") + @Log(title = "投标保证金收回", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdBidDepositRecoveryService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/XzdBidDepositRecovery.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/XzdBidDepositRecovery.java new file mode 100644 index 00000000..b6a351b6 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/XzdBidDepositRecovery.java @@ -0,0 +1,196 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.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; + +/** + * 投标保证金收回对象 xzd_bid_deposit_recovery + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_bid_deposit_recovery") +public class XzdBidDepositRecovery extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 单据编码 + */ + private String documentCode; + + /** + * 单据日期 + */ + private Date documentDate; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 项目类型 + */ + private Long projectType; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 工程造价 + */ + private Long projectCost; + + /** + * 收回金额 + */ + private Long recoveryAmount; + + /** + * 收回金额大写 + */ + private String recoveryAmountCapital; + + /** + * 资料费 + */ + private Long dataFee; + + /** + * 资料费大写 + */ + private String dataFeeCapital; + + /** + * 退款金额 + */ + private Long refundAmount; + + /** + * 收回日期 + */ + private Date recoveryDate; + + /** + * 保证金状态 + */ + private String depositStatus; + + /** + * 保证金金额 + */ + private Long depositAmount; + + /** + * 保证金金额大写 + */ + private String depositAmountCapital; + + /** + * 保证金汇款方式 + */ + private String depositRemittanceMethod; + + /** + * 支付截止时间 + */ + private Date paymentDeadline; + + /** + * 收款单位 + */ + private String receivingUnit; + + /** + * 保证金收款账户名称 + */ + private String depositReceivingAccountName; + + /** + * 收款账户银行 + */ + private String receivingBank; + + /** + * 收款账户账号 + */ + private String receivingBankAccount; + + /** + * 申请人 + */ + private String applicant; + + /** + * 申请单位 + */ + private String applicationUnit; + + /** + * 申请日期 + */ + private Date applicationDate; + + /** + * 标题 + */ + private String title; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + + /** + * 收款账户银行 + */ + private Long payeeBank; + /** + * 收款账户名称 + */ + private Long payeeName; + /** + * 收款单位(供应商信息) + */ + private Long payeeId; + /** + * 缴纳id + */ + private Long paymentId; + + /** + * 汇款方式 + */ + private String methodOfRemittance; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/bo/XzdBidDepositRecoveryBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/bo/XzdBidDepositRecoveryBo.java new file mode 100644 index 00000000..1c4f993d --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/bo/XzdBidDepositRecoveryBo.java @@ -0,0 +1,207 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.XzdBidDepositRecovery; + +/** + * 投标保证金收回业务对象 xzd_bid_deposit_recovery + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdBidDepositRecovery.class, reverseConvertGenerate = false) +public class XzdBidDepositRecoveryBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 单据编码 + */ + @NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String documentCode; + + /** + * 单据日期 + */ + @NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date documentDate; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 项目类型 + */ + private Long projectType; + + /** + * 经营模式 + */ + private String businessMode; + + /** + * 工程造价 + */ + private Long projectCost; + + /** + * 收回金额 + */ + @NotNull(message = "收回金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long recoveryAmount; + + /** + * 收回金额大写 + */ + @NotBlank(message = "收回金额大写不能为空", groups = { AddGroup.class, EditGroup.class }) + private String recoveryAmountCapital; + + /** + * 资料费 + */ + private Long dataFee; + + /** + * 资料费大写 + */ + private String dataFeeCapital; + + /** + * 退款金额 + */ + private Long refundAmount; + + /** + * 收回日期 + */ + private Date recoveryDate; + + /** + * 保证金状态 + */ + private String depositStatus; + + /** + * 保证金金额 + */ + private Long depositAmount; + + /** + * 保证金金额大写 + */ + private String depositAmountCapital; + + /** + * 保证金汇款方式 + */ + private String depositRemittanceMethod; + + /** + * 支付截止时间 + */ + private Date paymentDeadline; + + /** + * 收款单位 + */ + private String receivingUnit; + + /** + * 保证金收款账户名称 + */ + private String depositReceivingAccountName; + + /** + * 收款账户银行 + */ + private String receivingBank; + + /** + * 收款账户账号 + */ + private String receivingBankAccount; + + /** + * 申请人 + */ + private String applicant; + + /** + * 申请单位 + */ + private String applicationUnit; + + /** + * 申请日期 + */ + private Date applicationDate; + + /** + * 标题 + */ + private String title; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + /** + * 收款账户 + */ + private Integer gatheringNumber; + + /** + * 收款账户银行 + */ + private Long payeeBank; + /** + * 收款账户名称 + */ + private Long payeeName; + /** + * 收款单位(供应商信息) + */ + private Long payeeId; + /** + * 缴纳id + */ + private Long paymentId; + + /** + * 汇款方式 + */ + private String methodOfRemittance; + + + + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/vo/XzdBidDepositRecoveryVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/vo/XzdBidDepositRecoveryVo.java new file mode 100644 index 00000000..f64a7eb0 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/vo/XzdBidDepositRecoveryVo.java @@ -0,0 +1,248 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.XzdBidDepositRecovery; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 投标保证金收回视图对象 xzd_bid_deposit_recovery + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdBidDepositRecovery.class) +public class XzdBidDepositRecoveryVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 单据编码 + */ + @ExcelProperty(value = "单据编码") + private String documentCode; + + /** + * 单据日期 + */ + @ExcelProperty(value = "单据日期") + private Date documentDate; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private Long projectType; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessMode; + + /** + * 工程造价 + */ + @ExcelProperty(value = "工程造价") + private Long projectCost; + + /** + * 收回金额 + */ + @ExcelProperty(value = "收回金额") + private Long recoveryAmount; + + /** + * 收回金额大写 + */ + @ExcelProperty(value = "收回金额大写") + private String recoveryAmountCapital; + + /** + * 资料费 + */ + @ExcelProperty(value = "资料费") + private Long dataFee; + + /** + * 资料费大写 + */ + @ExcelProperty(value = "资料费大写") + private String dataFeeCapital; + + /** + * 退款金额 + */ + @ExcelProperty(value = "退款金额") + private Long refundAmount; + + /** + * 收回日期 + */ + @ExcelProperty(value = "收回日期") + private Date recoveryDate; + + /** + * 保证金状态 + */ + @ExcelProperty(value = "保证金状态") + private String depositStatus; + + /** + * 保证金金额 + */ + @ExcelProperty(value = "保证金金额") + private Long depositAmount; + + /** + * 保证金金额大写 + */ + @ExcelProperty(value = "保证金金额大写") + private String depositAmountCapital; + + /** + * 保证金汇款方式 + */ + @ExcelProperty(value = "保证金汇款方式") + private String depositRemittanceMethod; + + /** + * 支付截止时间 + */ + @ExcelProperty(value = "支付截止时间") + private Date paymentDeadline; + + /** + * 收款单位 + */ + @ExcelProperty(value = "收款单位") + private String receivingUnit; + + /** + * 保证金收款账户名称 + */ + @ExcelProperty(value = "保证金收款账户名称") + private String depositReceivingAccountName; + + /** + * 收款账户银行 + */ + @ExcelProperty(value = "收款账户银行") + private String receivingBank; + + /** + * 收款账户账号 + */ + @ExcelProperty(value = "收款账户账号") + private String receivingBankAccount; + + /** + * 申请人 + */ + @ExcelProperty(value = "申请人") + private String applicant; + + /** + * 申请单位 + */ + @ExcelProperty(value = "申请单位") + private String applicationUnit; + + /** + * 申请日期 + */ + @ExcelProperty(value = "申请日期") + private Date applicationDate; + + /** + * 标题 + */ + @ExcelProperty(value = "标题") + private String title; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + private Long createBy; + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createName; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 收款账户银行 + */ + private Long payeeBank; + /** + * 收款账户名称 + */ + private Long payeeName; + /** + * 收款单位(供应商信息) + */ + private Long payeeId; + /** + * 缴纳id + */ + private Long paymentId; + + + + /** + * 汇款方式 + */ + private String methodOfRemittance; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/vo/XzdBidDepositRecoveryXqVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/vo/XzdBidDepositRecoveryXqVo.java new file mode 100644 index 00000000..18417047 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/domain/vo/XzdBidDepositRecoveryXqVo.java @@ -0,0 +1,21 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo; + + +import lombok.Data; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentByBqlx; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; + +@Data +public class XzdBidDepositRecoveryXqVo { + +// 保证金收回信息 + private XzdBidDepositRecoveryVo xzdBidDepositRecoveryVo; + +// 保证金缴纳信息 + private XzdBidDepositPaymentByBqlx xzdBidDepositPaymentByBqlx; + +// 供应商信息 + private XzdSupplierInfoVo xzdSupplierInfoVo; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/mapper/XzdBidDepositRecoveryMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/mapper/XzdBidDepositRecoveryMapper.java new file mode 100644 index 00000000..95e2b900 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/mapper/XzdBidDepositRecoveryMapper.java @@ -0,0 +1,17 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.XzdBidDepositRecovery; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryVo; + +/** + * 投标保证金收回Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdBidDepositRecoveryMapper extends BaseMapperPlus, BaseMapper { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/IXzdBidDepositRecoveryService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/IXzdBidDepositRecoveryService.java new file mode 100644 index 00000000..dcd3f827 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/IXzdBidDepositRecoveryService.java @@ -0,0 +1,73 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.service; + + +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.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.XzdBidDepositRecovery; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.bo.XzdBidDepositRecoveryBo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryVo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryXqVo; + +import java.util.Collection; +import java.util.List; + +/** + * 投标保证金收回Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdBidDepositRecoveryService extends IService{ + + /** + * 查询投标保证金收回 + * + * @param id 主键 + * @return 投标保证金收回 + */ + XzdBidDepositRecoveryXqVo queryById(Long id); + + /** + * 分页查询投标保证金收回列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标保证金收回分页列表 + */ + TableDataInfo queryPageList(XzdBidDepositRecoveryBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的投标保证金收回列表 + * + * @param bo 查询条件 + * @return 投标保证金收回列表 + */ + List queryList(XzdBidDepositRecoveryBo bo); + + /** + * 新增投标保证金收回 + * + * @param bo 投标保证金收回 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdBidDepositRecoveryBo bo); + + /** + * 修改投标保证金收回 + * + * @param bo 投标保证金收回 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdBidDepositRecoveryBo 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/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java new file mode 100644 index 00000000..6efc8766 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/earnestMoneyWithdraw/service/impl/XzdBidDepositRecoveryServiceImpl.java @@ -0,0 +1,201 @@ +package org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.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.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.biddingManagement.earnestMoney.domain.vo.XzdBidDepositPaymentByBqlx; +import org.dromara.xzd.biddingManagement.earnestMoney.service.IXzdBidDepositPaymentService; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.XzdBidDepositRecovery; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.bo.XzdBidDepositRecoveryBo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryVo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.domain.vo.XzdBidDepositRecoveryXqVo; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.mapper.XzdBidDepositRecoveryMapper; +import org.dromara.xzd.biddingManagement.earnestMoneyWithdraw.service.IXzdBidDepositRecoveryService; +import org.dromara.xzd.domain.vo.XzdSupplierInfoVo; +import org.dromara.xzd.service.IXzdSupplierInfoService; +import org.dromara.xzd.utilS.AreaUtil; +import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * 投标保证金收回Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdBidDepositRecoveryServiceImpl extends ServiceImpl implements IXzdBidDepositRecoveryService { + + private final XzdBidDepositRecoveryMapper baseMapper; + private final AreaUtil areaUtil; + + private final SysOssServiceImpl sysOssService; + private final IXzdBidDepositPaymentService xzdBidDepositRecoveryXqVo; + private final IXzdSupplierInfoService xzdSupplierInfoService; + + + /** + * 查询投标保证金收回 + * + * @param id 主键 + * @return 投标保证金收回 + */ + @Override + public XzdBidDepositRecoveryXqVo queryById(Long id){ + + if (id == null){ + return null; + } + XzdBidDepositRecoveryXqVo vo = new XzdBidDepositRecoveryXqVo(); + XzdBidDepositRecoveryVo xzdBidDepositRecoveryVo = baseMapper.selectVoById(id); + XzdBidDepositPaymentByBqlx xzdBidDepositPaymentByBqlx = xzdBidDepositRecoveryXqVo.queryById(xzdBidDepositRecoveryVo.getPaymentId()); + XzdSupplierInfoVo xzdSupplierInfoVo = xzdSupplierInfoService.queryById(xzdBidDepositRecoveryVo.getPayeeId()); + + vo.setXzdBidDepositRecoveryVo(xzdBidDepositRecoveryVo); + vo.setXzdBidDepositPaymentByBqlx(xzdBidDepositPaymentByBqlx); + vo.setXzdSupplierInfoVo(xzdSupplierInfoVo); + + + return vo; + } + + /** + * 分页查询投标保证金收回列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 投标保证金收回分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdBidDepositRecoveryBo 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(XzdBidDepositRecoveryBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdBidDepositRecoveryBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdBidDepositRecovery::getId); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdBidDepositRecovery::getDocumentCode, bo.getDocumentCode()); + lqw.eq(bo.getDocumentDate() != null, XzdBidDepositRecovery::getDocumentDate, bo.getDocumentDate()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBidDepositRecovery::getProjectName, bo.getProjectName()); + lqw.eq(bo.getProjectType() != null, XzdBidDepositRecovery::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessMode()), XzdBidDepositRecovery::getBusinessMode, bo.getBusinessMode()); + lqw.eq(bo.getProjectCost() != null, XzdBidDepositRecovery::getProjectCost, bo.getProjectCost()); + lqw.eq(bo.getRecoveryAmount() != null, XzdBidDepositRecovery::getRecoveryAmount, bo.getRecoveryAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getRecoveryAmountCapital()), XzdBidDepositRecovery::getRecoveryAmountCapital, bo.getRecoveryAmountCapital()); + lqw.eq(bo.getDataFee() != null, XzdBidDepositRecovery::getDataFee, bo.getDataFee()); + lqw.eq(StringUtils.isNotBlank(bo.getDataFeeCapital()), XzdBidDepositRecovery::getDataFeeCapital, bo.getDataFeeCapital()); + lqw.eq(bo.getRefundAmount() != null, XzdBidDepositRecovery::getRefundAmount, bo.getRefundAmount()); + lqw.eq(bo.getRecoveryDate() != null, XzdBidDepositRecovery::getRecoveryDate, bo.getRecoveryDate()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositStatus()), XzdBidDepositRecovery::getDepositStatus, bo.getDepositStatus()); + lqw.eq(bo.getDepositAmount() != null, XzdBidDepositRecovery::getDepositAmount, bo.getDepositAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositAmountCapital()), XzdBidDepositRecovery::getDepositAmountCapital, bo.getDepositAmountCapital()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositRemittanceMethod()), XzdBidDepositRecovery::getDepositRemittanceMethod, bo.getDepositRemittanceMethod()); + lqw.eq(bo.getPaymentDeadline() != null, XzdBidDepositRecovery::getPaymentDeadline, bo.getPaymentDeadline()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingUnit()), XzdBidDepositRecovery::getReceivingUnit, bo.getReceivingUnit()); + lqw.like(StringUtils.isNotBlank(bo.getDepositReceivingAccountName()), XzdBidDepositRecovery::getDepositReceivingAccountName, bo.getDepositReceivingAccountName()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingBank()), XzdBidDepositRecovery::getReceivingBank, bo.getReceivingBank()); + lqw.eq(StringUtils.isNotBlank(bo.getReceivingBankAccount()), XzdBidDepositRecovery::getReceivingBankAccount, bo.getReceivingBankAccount()); + lqw.eq(StringUtils.isNotBlank(bo.getApplicant()), XzdBidDepositRecovery::getApplicant, bo.getApplicant()); + lqw.eq(StringUtils.isNotBlank(bo.getApplicationUnit()), XzdBidDepositRecovery::getApplicationUnit, bo.getApplicationUnit()); + lqw.eq(bo.getApplicationDate() != null, XzdBidDepositRecovery::getApplicationDate, bo.getApplicationDate()); + lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdBidDepositRecovery::getTitle, bo.getTitle()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBidDepositRecovery::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBidDepositRecovery::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增投标保证金收回 + * + * @param bo 投标保证金收回 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdBidDepositRecoveryBo bo) { + XzdBidDepositRecovery add = MapstructUtils.convert(bo, XzdBidDepositRecovery.class); + validEntityBeforeSave(add); + + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBidDepositRecovery::getCreateTime, LocalDate.now())); + String s = areaUtil.generateDateBasedNumber(); + add.setDocumentCode(s+"-"+(l+1)); + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改投标保证金收回 + * + * @param bo 投标保证金收回 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdBidDepositRecoveryBo bo) { + XzdBidDepositRecovery update = MapstructUtils.convert(bo, XzdBidDepositRecovery.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdBidDepositRecovery entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除投标保证金收回信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + for (Long id : ids) { + XzdBidDepositRecoveryVo xzdBidDepositRecoveryVo = baseMapper.selectVoById(id); + + // 删除附件 + if (!StringUtils.isEmpty(xzdBidDepositRecoveryVo.getFileId())){ + List collect = Arrays.stream(xzdBidDepositRecoveryVo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + } + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/domain/vo/XzdBiddingAgencyFeePaymentVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/domain/vo/XzdBiddingAgencyFeePaymentVo.java index 0f7d55ad..8072b9b9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/domain/vo/XzdBiddingAgencyFeePaymentVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/domain/vo/XzdBiddingAgencyFeePaymentVo.java @@ -2,6 +2,10 @@ package org.dromara.xzd.biddingManagement.paymentapplication.domain.vo; import java.util.Date; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAgencyFeePayment; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -138,4 +142,16 @@ public class XzdBiddingAgencyFeePaymentVo implements Serializable { private String auditStatus; + + private Long createBy; + + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy") + private String createName; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java index 055816b3..20f58caf 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/paymentapplication/service/impl/XzdBiddingAgencyFeePaymentServiceImpl.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.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; import org.dromara.xzd.utilS.AreaUtil; import org.springframework.stereotype.Service; import org.dromara.xzd.biddingManagement.paymentapplication.domain.bo.XzdBiddingAgencyFeePaymentBo; @@ -17,10 +19,13 @@ import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAge import org.dromara.xzd.biddingManagement.paymentapplication.mapper.XzdBiddingAgencyFeePaymentMapper; import org.dromara.xzd.biddingManagement.paymentapplication.service.IXzdBiddingAgencyFeePaymentService; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; /** * 招标代理服务费支付申请Service业务层处理 @@ -34,6 +39,9 @@ public class XzdBiddingAgencyFeePaymentServiceImpl extends ServiceImpl().gt(XzdBiddingAgencyFeePayment::getCreateTime, LocalDateTime.now())); + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdBiddingAgencyFeePayment::getCreateTime, LocalDate .now())); String s = areaUtil.generateDateBasedNumber(); @@ -151,7 +159,16 @@ public class XzdBiddingAgencyFeePaymentServiceImpl extends ServiceImpl ids, Boolean isValid) { if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + XzdBiddingAgencyFeePaymentVo xzdBiddingAgencyFeePaymentVo = baseMapper.selectVoById(id); + // 删除附件 + if (!StringUtils.isEmpty(xzdBiddingAgencyFeePaymentVo.getFileId())){ + List collect = Arrays.stream(xzdBiddingAgencyFeePaymentVo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + } + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/controller/XzdPostBidAnalysisController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/controller/XzdPostBidAnalysisController.java new file mode 100644 index 00000000..6f0a8e22 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/controller/XzdPostBidAnalysisController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.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.dromara.xzd.biddingManagement.postAnalysis.domain.bo.XzdPostBidAnalysisBo; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.vo.XzdPostBidAnalysisVo; +import org.dromara.xzd.biddingManagement.postAnalysis.service.IXzdPostBidAnalysisService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 标后分析 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/postAnalysis/postBidAnalysis") +public class XzdPostBidAnalysisController extends BaseController { + + private final IXzdPostBidAnalysisService xzdPostBidAnalysisService; + + /** + * 查询标后分析列表 + */ + @SaCheckPermission("postAnalysis:postBidAnalysis:list") + @GetMapping("/list") + public TableDataInfo list(XzdPostBidAnalysisBo bo, PageQuery pageQuery) { + return xzdPostBidAnalysisService.queryPageList(bo, pageQuery); + } + + /** + * 导出标后分析列表 + */ + @SaCheckPermission("postAnalysis:postBidAnalysis:export") + @Log(title = "标后分析", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdPostBidAnalysisBo bo, HttpServletResponse response) { + List list = xzdPostBidAnalysisService.queryList(bo); + ExcelUtil.exportExcel(list, "标后分析", XzdPostBidAnalysisVo.class, response); + } + + /** + * 获取标后分析详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("postAnalysis:postBidAnalysis:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdPostBidAnalysisService.queryById(id)); + } + + /** + * 新增标后分析 + */ + @SaCheckPermission("postAnalysis:postBidAnalysis:add") + @Log(title = "标后分析", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdPostBidAnalysisBo bo) { + return toAjax(xzdPostBidAnalysisService.insertByBo(bo)); + } + + /** + * 修改标后分析 + */ + @SaCheckPermission("postAnalysis:postBidAnalysis:edit") + @Log(title = "标后分析", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdPostBidAnalysisBo bo) { + return toAjax(xzdPostBidAnalysisService.updateByBo(bo)); + } + + /** + * 删除标后分析 + * + * @param ids 主键串 + */ + @SaCheckPermission("postAnalysis:postBidAnalysis:remove") + @Log(title = "标后分析", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdPostBidAnalysisService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/XzdPostBidAnalysis.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/XzdPostBidAnalysis.java new file mode 100644 index 00000000..98d1118a --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/XzdPostBidAnalysis.java @@ -0,0 +1,128 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.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; + +/** + * 标后分析对象 xzd_post_bid_analysis + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_post_bid_analysis") +public class XzdPostBidAnalysis extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 项目编码 + */ + private String projectCode; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 工程造价(万元) + */ + private Long projectCost; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目地址 + */ + private String projectAddress; + + /** + * 工程概况 + */ + private String projectOverview; + + /** + * 建设单位 + */ + private String constructionUnit; + + /** + * 开标日期 + */ + private Date bidOpeningDate; + + /** + * 经营模式 + */ + private String businessModel; + + /** + * 招标控制价(万元) + */ + private Long controlPrice; + + /** + * 最终报价(万元) + */ + private Long finalQuote; + + /** + * 投标结果 + */ + private String biddingResult; + + /** + * 开标记录链接 + */ + private String bidRecordLink; + + /** + * 投标分析与总结 + */ + private String analysisSummary; + + /** + * 最终报价(元) + */ + private Long finalQuoteYuan; + + /** + * 最终报价(大写) + */ + private String finalQuoteChinese; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/bo/XzdPostBidAnalysisBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/bo/XzdPostBidAnalysisBo.java new file mode 100644 index 00000000..ced69ac9 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/bo/XzdPostBidAnalysisBo.java @@ -0,0 +1,128 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.domain.bo; + +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; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis; + +/** + * 标后分析业务对象 xzd_post_bid_analysis + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdPostBidAnalysis.class, reverseConvertGenerate = false) +public class XzdPostBidAnalysisBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 项目编码 + */ + private String projectCode; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 工程造价(万元) + */ + private Long projectCost; + + /** + * 项目类型 + */ + private String projectType; + + /** + * 项目地址 + */ + private String projectAddress; + + /** + * 工程概况 + */ + private String projectOverview; + + /** + * 建设单位 + */ + private String constructionUnit; + + /** + * 开标日期 + */ + private Date bidOpeningDate; + + /** + * 经营模式 + */ + private String businessModel; + + /** + * 招标控制价(万元) + */ + private Long controlPrice; + + /** + * 最终报价(万元) + */ + private Long finalQuote; + + /** + * 投标结果 + */ + @NotBlank(message = "投标结果不能为空", groups = { AddGroup.class, EditGroup.class }) + private String biddingResult; + + /** + * 开标记录链接 + */ + private String bidRecordLink; + + /** + * 投标分析与总结 + */ + private String analysisSummary; + + /** + * 最终报价(元) + */ + private Long finalQuoteYuan; + + /** + * 最终报价(大写) + */ + private String finalQuoteChinese; + + /** + * 文件ID + */ + private String fileId; + + /** + * 备注 + */ + private String remark; + + /** + * 审核状态 + */ + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/vo/XzdPostBidAnalysisVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/vo/XzdPostBidAnalysisVo.java new file mode 100644 index 00000000..d8b6ab9b --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/domain/vo/XzdPostBidAnalysisVo.java @@ -0,0 +1,155 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 标后分析视图对象 xzd_post_bid_analysis + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdPostBidAnalysis.class) +public class XzdPostBidAnalysisVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 项目编码 + */ + @ExcelProperty(value = "项目编码") + private String projectCode; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 工程造价(万元) + */ + @ExcelProperty(value = "工程造价(万元)") + private Long projectCost; + + /** + * 项目类型 + */ + @ExcelProperty(value = "项目类型") + private String projectType; + + /** + * 项目地址 + */ + @ExcelProperty(value = "项目地址") + private String projectAddress; + + /** + * 工程概况 + */ + @ExcelProperty(value = "工程概况") + private String projectOverview; + + /** + * 建设单位 + */ + @ExcelProperty(value = "建设单位") + private String constructionUnit; + + /** + * 开标日期 + */ + @ExcelProperty(value = "开标日期") + private Date bidOpeningDate; + + /** + * 经营模式 + */ + @ExcelProperty(value = "经营模式") + private String businessModel; + + /** + * 招标控制价(万元) + */ + @ExcelProperty(value = "招标控制价(万元)") + private Long controlPrice; + + /** + * 最终报价(万元) + */ + @ExcelProperty(value = "最终报价(万元)") + private Long finalQuote; + + /** + * 投标结果 + */ + @ExcelProperty(value = "投标结果", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_bidding_result") + private String biddingResult; + + /** + * 开标记录链接 + */ + @ExcelProperty(value = "开标记录链接") + private String bidRecordLink; + + /** + * 投标分析与总结 + */ + @ExcelProperty(value = "投标分析与总结") + private String analysisSummary; + + /** + * 最终报价(元) + */ + @ExcelProperty(value = "最终报价(元)") + private Long finalQuoteYuan; + + /** + * 最终报价(大写) + */ + @ExcelProperty(value = "最终报价(大写)") + private String finalQuoteChinese; + + /** + * 文件ID + */ + @ExcelProperty(value = "文件ID") + private String fileId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 审核状态 + */ + @ExcelProperty(value = "审核状态") + private String auditStatus; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/mapper/XzdPostBidAnalysisMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/mapper/XzdPostBidAnalysisMapper.java new file mode 100644 index 00000000..5ff6d206 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/mapper/XzdPostBidAnalysisMapper.java @@ -0,0 +1,17 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.vo.XzdPostBidAnalysisVo; + +/** + * 标后分析Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdPostBidAnalysisMapper extends BaseMapperPlus, BaseMapper { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/service/IXzdPostBidAnalysisService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/service/IXzdPostBidAnalysisService.java new file mode 100644 index 00000000..04de06b2 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/service/IXzdPostBidAnalysisService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.service; + + +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.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.bo.XzdPostBidAnalysisBo; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.vo.XzdPostBidAnalysisVo; + +import java.util.Collection; +import java.util.List; + +/** + * 标后分析Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdPostBidAnalysisService extends IService{ + + /** + * 查询标后分析 + * + * @param id 主键 + * @return 标后分析 + */ + XzdPostBidAnalysisVo queryById(Long id); + + /** + * 分页查询标后分析列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 标后分析分页列表 + */ + TableDataInfo queryPageList(XzdPostBidAnalysisBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的标后分析列表 + * + * @param bo 查询条件 + * @return 标后分析列表 + */ + List queryList(XzdPostBidAnalysisBo bo); + + /** + * 新增标后分析 + * + * @param bo 标后分析 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdPostBidAnalysisBo bo); + + /** + * 修改标后分析 + * + * @param bo 标后分析 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdPostBidAnalysisBo 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/xzd/biddingManagement/postAnalysis/service/impl/XzdPostBidAnalysisServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/service/impl/XzdPostBidAnalysisServiceImpl.java new file mode 100644 index 00000000..327d7a38 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/biddingManagement/postAnalysis/service/impl/XzdPostBidAnalysisServiceImpl.java @@ -0,0 +1,149 @@ +package org.dromara.xzd.biddingManagement.postAnalysis.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.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.bo.XzdPostBidAnalysisBo; +import org.dromara.xzd.biddingManagement.postAnalysis.domain.vo.XzdPostBidAnalysisVo; +import org.dromara.xzd.biddingManagement.postAnalysis.mapper.XzdPostBidAnalysisMapper; +import org.dromara.xzd.biddingManagement.postAnalysis.service.IXzdPostBidAnalysisService; +import org.springframework.stereotype.Service; + + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 标后分析Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdPostBidAnalysisServiceImpl extends ServiceImpl implements IXzdPostBidAnalysisService { + + private final XzdPostBidAnalysisMapper baseMapper; + + /** + * 查询标后分析 + * + * @param id 主键 + * @return 标后分析 + */ + @Override + public XzdPostBidAnalysisVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询标后分析列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 标后分析分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdPostBidAnalysisBo 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(XzdPostBidAnalysisBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdPostBidAnalysisBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdPostBidAnalysis::getId); + lqw.eq(StringUtils.isNotBlank(bo.getProjectCode()), XzdPostBidAnalysis::getProjectCode, bo.getProjectCode()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdPostBidAnalysis::getProjectName, bo.getProjectName()); + lqw.eq(bo.getProjectCost() != null, XzdPostBidAnalysis::getProjectCost, bo.getProjectCost()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectType()), XzdPostBidAnalysis::getProjectType, bo.getProjectType()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectAddress()), XzdPostBidAnalysis::getProjectAddress, bo.getProjectAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getProjectOverview()), XzdPostBidAnalysis::getProjectOverview, bo.getProjectOverview()); + lqw.eq(StringUtils.isNotBlank(bo.getConstructionUnit()), XzdPostBidAnalysis::getConstructionUnit, bo.getConstructionUnit()); + lqw.eq(bo.getBidOpeningDate() != null, XzdPostBidAnalysis::getBidOpeningDate, bo.getBidOpeningDate()); + lqw.eq(StringUtils.isNotBlank(bo.getBusinessModel()), XzdPostBidAnalysis::getBusinessModel, bo.getBusinessModel()); + lqw.eq(bo.getControlPrice() != null, XzdPostBidAnalysis::getControlPrice, bo.getControlPrice()); + lqw.eq(bo.getFinalQuote() != null, XzdPostBidAnalysis::getFinalQuote, bo.getFinalQuote()); + lqw.eq(StringUtils.isNotBlank(bo.getBiddingResult()), XzdPostBidAnalysis::getBiddingResult, bo.getBiddingResult()); + lqw.eq(StringUtils.isNotBlank(bo.getBidRecordLink()), XzdPostBidAnalysis::getBidRecordLink, bo.getBidRecordLink()); + lqw.eq(StringUtils.isNotBlank(bo.getAnalysisSummary()), XzdPostBidAnalysis::getAnalysisSummary, bo.getAnalysisSummary()); + lqw.eq(bo.getFinalQuoteYuan() != null, XzdPostBidAnalysis::getFinalQuoteYuan, bo.getFinalQuoteYuan()); + lqw.eq(StringUtils.isNotBlank(bo.getFinalQuoteChinese()), XzdPostBidAnalysis::getFinalQuoteChinese, bo.getFinalQuoteChinese()); + lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdPostBidAnalysis::getFileId, bo.getFileId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdPostBidAnalysis::getAuditStatus, bo.getAuditStatus()); + return lqw; + } + + /** + * 新增标后分析 + * + * @param bo 标后分析 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdPostBidAnalysisBo bo) { + XzdPostBidAnalysis add = MapstructUtils.convert(bo, XzdPostBidAnalysis.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改标后分析 + * + * @param bo 标后分析 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdPostBidAnalysisBo bo) { + XzdPostBidAnalysis update = MapstructUtils.convert(bo, XzdPostBidAnalysis.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdPostBidAnalysis 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/xzd/deposit/earnestMoney/controller/XzdDepositApplicationController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/controller/XzdDepositApplicationController.java new file mode 100644 index 00000000..4f233be7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/controller/XzdDepositApplicationController.java @@ -0,0 +1,106 @@ +package org.dromara.xzd.deposit.earnestMoney.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.dromara.xzd.deposit.earnestMoney.domain.bo.XzdDepositApplicationBo; +import org.dromara.xzd.deposit.earnestMoney.domain.vo.XzdDepositApplicationVo; +import org.dromara.xzd.deposit.earnestMoney.service.IXzdDepositApplicationService; +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.common.mybatis.core.page.TableDataInfo; + +/** + * 保证金缴纳审批 + * + * @author Lion Li + * @date 2025-10-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/earnestMoney/depositApplication") +public class XzdDepositApplicationController extends BaseController { + + private final IXzdDepositApplicationService xzdDepositApplicationService; + + /** + * 查询保证金缴纳审批列表 + */ + @SaCheckPermission("earnestMoney:depositApplication:list") + @GetMapping("/list") + public TableDataInfo list(XzdDepositApplicationBo bo, PageQuery pageQuery) { + return xzdDepositApplicationService.queryPageList(bo, pageQuery); + } + + /** + * 导出保证金缴纳审批列表 + */ + @SaCheckPermission("earnestMoney:depositApplication:export") + @Log(title = "保证金缴纳审批", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XzdDepositApplicationBo bo, HttpServletResponse response) { + List list = xzdDepositApplicationService.queryList(bo); + ExcelUtil.exportExcel(list, "保证金缴纳审批", XzdDepositApplicationVo.class, response); + } + + /** + * 获取保证金缴纳审批详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("earnestMoney:depositApplication:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xzdDepositApplicationService.queryById(id)); + } + + /** + * 新增保证金缴纳审批 + */ + @SaCheckPermission("earnestMoney:depositApplication:add") + @Log(title = "保证金缴纳审批", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XzdDepositApplicationBo bo) { + return toAjax(xzdDepositApplicationService.insertByBo(bo)); + } + + /** + * 修改保证金缴纳审批 + */ + @SaCheckPermission("earnestMoney:depositApplication:edit") + @Log(title = "保证金缴纳审批", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XzdDepositApplicationBo bo) { + return toAjax(xzdDepositApplicationService.updateByBo(bo)); + } + + /** + * 删除保证金缴纳审批 + * + * @param ids 主键串 + */ + @SaCheckPermission("earnestMoney:depositApplication:remove") + @Log(title = "保证金缴纳审批", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xzdDepositApplicationService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/XzdDepositApplication.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/XzdDepositApplication.java new file mode 100644 index 00000000..c09500e7 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/XzdDepositApplication.java @@ -0,0 +1,131 @@ +package org.dromara.xzd.deposit.earnestMoney.domain; + +import com.alibaba.excel.annotation.ExcelProperty; +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; + +/** + * 保证金缴纳审批对象 xzd_deposit_application + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xzd_deposit_application") +public class XzdDepositApplication extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 申请时间 + */ + private Date applicationTime; + + /** + * 单据流水号 + */ + private String documentSerialNumber; + + /** + * 申请人所属组织 + */ + private Long applicantOrganization; + + /** + * 申请人所属部门 + */ + private Long applicantDepartment; + + /** + * 备案部门 + */ + private Long recordDepartment; + + /** + * 部门下属 + */ + private String departmentSubordinate; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 缴纳方式(0:现金,1:转账) + */ + private Long paymentMethod; + + /** + * 保证金类型(字典) + */ + private String depositType; + + /** + * 开户银行 + */ + private String bankName; + + /** + * 收取保证金单位 + */ + private String depositReceivingUnit; + + /** + * 账号 + */ + private String accountNumber; + + /** + * 金额小写(元) + */ + private Long amountLower; + + /** + * 占合同比例(%) + */ + private Long contractProportion; + + /** + * 金额大写 + */ + private String amountUpper; + + /** + * 保证金到期日 + */ + private Date depositDueDate; + + /** + * 要求到账日期 + */ + private Date requiredArrivalDate; + + /** + * 备注 + */ + private String remarks; + + + /** + * 文件 + */ + @ExcelProperty(value = "文件") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/bo/XzdDepositApplicationBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/bo/XzdDepositApplicationBo.java new file mode 100644 index 00000000..f07f5185 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/bo/XzdDepositApplicationBo.java @@ -0,0 +1,130 @@ +package org.dromara.xzd.deposit.earnestMoney.domain.bo; + +import com.alibaba.excel.annotation.ExcelProperty; +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; +import org.dromara.xzd.deposit.earnestMoney.domain.XzdDepositApplication; + +/** + * 保证金缴纳审批业务对象 xzd_deposit_application + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XzdDepositApplication.class, reverseConvertGenerate = false) +public class XzdDepositApplicationBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 申请时间 + */ + @NotNull(message = "申请时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date applicationTime; + + /** + * 单据流水号 + */ + private String documentSerialNumber; + + /** + * 申请人所属组织 + */ + private Long applicantOrganization; + + /** + * 申请人所属部门 + */ + private Long applicantDepartment; + + /** + * 备案部门 + */ + private Long recordDepartment; + + /** + * 部门下属 + */ + private String departmentSubordinate; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 缴纳方式(0:现金,1:转账) + */ + private Long paymentMethod; + + /** + * 保证金类型(字典) + */ + private String depositType; + + /** + * 开户银行 + */ + private String bankName; + + /** + * 收取保证金单位 + */ + private String depositReceivingUnit; + + /** + * 账号 + */ + private String accountNumber; + + /** + * 金额小写(元) + */ + private Long amountLower; + + /** + * 占合同比例(%) + */ + private Long contractProportion; + + /** + * 金额大写 + */ + private String amountUpper; + + /** + * 保证金到期日 + */ + private Date depositDueDate; + + /** + * 要求到账日期 + */ + private Date requiredArrivalDate; + + /** + * 备注 + */ + private String remarks; + + /** + * 文件 + */ + @ExcelProperty(value = "文件") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/vo/XzdDepositApplicationVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/vo/XzdDepositApplicationVo.java new file mode 100644 index 00000000..07ee3080 --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/domain/vo/XzdDepositApplicationVo.java @@ -0,0 +1,155 @@ +package org.dromara.xzd.deposit.earnestMoney.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +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 org.dromara.xzd.deposit.earnestMoney.domain.XzdDepositApplication; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 保证金缴纳审批视图对象 xzd_deposit_application + * + * @author Lion Li + * @date 2025-10-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XzdDepositApplication.class) +public class XzdDepositApplicationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 申请时间 + */ + @ExcelProperty(value = "申请时间") + private Date applicationTime; + + /** + * 单据流水号 + */ + @ExcelProperty(value = "单据流水号") + private String documentSerialNumber; + + /** + * 申请人所属组织 + */ + @ExcelProperty(value = "申请人所属组织") + private Long applicantOrganization; + + /** + * 申请人所属部门 + */ + @ExcelProperty(value = "申请人所属部门") + private Long applicantDepartment; + + /** + * 备案部门 + */ + @ExcelProperty(value = "备案部门") + private Long recordDepartment; + + /** + * 部门下属 + */ + @ExcelProperty(value = "部门下属") + private String departmentSubordinate; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 缴纳方式(0:现金,1:转账) + */ + @ExcelProperty(value = "缴纳方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=:现金,1:转账") + private Long paymentMethod; + + /** + * 保证金类型(字典) + */ + @ExcelProperty(value = "保证金类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "xzd_deposit_type") + private String depositType; + + /** + * 开户银行 + */ + @ExcelProperty(value = "开户银行") + private String bankName; + + /** + * 收取保证金单位 + */ + @ExcelProperty(value = "收取保证金单位") + private String depositReceivingUnit; + + /** + * 账号 + */ + @ExcelProperty(value = "账号") + private String accountNumber; + + /** + * 金额小写(元) + */ + @ExcelProperty(value = "金额小写(元)") + private Long amountLower; + + /** + * 占合同比例(%) + */ + @ExcelProperty(value = "占合同比例(%)") + private Long contractProportion; + + /** + * 金额大写 + */ + @ExcelProperty(value = "金额大写") + private String amountUpper; + + /** + * 保证金到期日 + */ + @ExcelProperty(value = "保证金到期日") + private Date depositDueDate; + + /** + * 要求到账日期 + */ + @ExcelProperty(value = "要求到账日期") + private Date requiredArrivalDate; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + /** + * 文件 + */ + @ExcelProperty(value = "文件") + private String fileId; + + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/mapper/XzdDepositApplicationMapper.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/mapper/XzdDepositApplicationMapper.java new file mode 100644 index 00000000..61a9e8bd --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/mapper/XzdDepositApplicationMapper.java @@ -0,0 +1,16 @@ +package org.dromara.xzd.deposit.earnestMoney.mapper; + + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xzd.deposit.earnestMoney.domain.XzdDepositApplication; +import org.dromara.xzd.deposit.earnestMoney.domain.vo.XzdDepositApplicationVo; + +/** + * 保证金缴纳审批Mapper接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface XzdDepositApplicationMapper extends BaseMapperPlus { + +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/IXzdDepositApplicationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/IXzdDepositApplicationService.java new file mode 100644 index 00000000..dc2ec56f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/IXzdDepositApplicationService.java @@ -0,0 +1,72 @@ +package org.dromara.xzd.deposit.earnestMoney.service; + + +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.dromara.xzd.deposit.earnestMoney.domain.XzdDepositApplication; +import org.dromara.xzd.deposit.earnestMoney.domain.bo.XzdDepositApplicationBo; +import org.dromara.xzd.deposit.earnestMoney.domain.vo.XzdDepositApplicationVo; + +import java.util.Collection; +import java.util.List; + +/** + * 保证金缴纳审批Service接口 + * + * @author Lion Li + * @date 2025-10-11 + */ +public interface IXzdDepositApplicationService extends IService{ + + /** + * 查询保证金缴纳审批 + * + * @param id 主键 + * @return 保证金缴纳审批 + */ + XzdDepositApplicationVo queryById(Long id); + + /** + * 分页查询保证金缴纳审批列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 保证金缴纳审批分页列表 + */ + TableDataInfo queryPageList(XzdDepositApplicationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的保证金缴纳审批列表 + * + * @param bo 查询条件 + * @return 保证金缴纳审批列表 + */ + List queryList(XzdDepositApplicationBo bo); + + /** + * 新增保证金缴纳审批 + * + * @param bo 保证金缴纳审批 + * @return 是否新增成功 + */ + Boolean insertByBo(XzdDepositApplicationBo bo); + + /** + * 修改保证金缴纳审批 + * + * @param bo 保证金缴纳审批 + * @return 是否修改成功 + */ + Boolean updateByBo(XzdDepositApplicationBo 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/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java new file mode 100644 index 00000000..a2dc895f --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/deposit/earnestMoney/service/impl/XzdDepositApplicationServiceImpl.java @@ -0,0 +1,175 @@ +package org.dromara.xzd.deposit.earnestMoney.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.dromara.system.service.impl.SysOssServiceImpl; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject; +import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo; +import org.dromara.xzd.deposit.earnestMoney.domain.XzdDepositApplication; +import org.dromara.xzd.deposit.earnestMoney.domain.bo.XzdDepositApplicationBo; +import org.dromara.xzd.deposit.earnestMoney.domain.vo.XzdDepositApplicationVo; +import org.dromara.xzd.deposit.earnestMoney.mapper.XzdDepositApplicationMapper; +import org.dromara.xzd.deposit.earnestMoney.service.IXzdDepositApplicationService; +import org.dromara.xzd.utilS.AreaUtil; +import org.springframework.stereotype.Service; + + +import java.time.LocalDate; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.stream.Collectors; + +/** + * 保证金缴纳审批Service业务层处理 + * + * @author Lion Li + * @date 2025-10-11 + */ +@RequiredArgsConstructor +@Service +public class XzdDepositApplicationServiceImpl extends ServiceImpl implements IXzdDepositApplicationService { + + private final XzdDepositApplicationMapper baseMapper; + private final AreaUtil areaUtil; + private final SysOssServiceImpl sysOssService; + + + /** + * 查询保证金缴纳审批 + * + * @param id 主键 + * @return 保证金缴纳审批 + */ + @Override + public XzdDepositApplicationVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询保证金缴纳审批列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 保证金缴纳审批分页列表 + */ + @Override + public TableDataInfo queryPageList(XzdDepositApplicationBo 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(XzdDepositApplicationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XzdDepositApplicationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByDesc(XzdDepositApplication::getId); + lqw.eq(bo.getApplicationTime() != null, XzdDepositApplication::getApplicationTime, bo.getApplicationTime()); + lqw.eq(StringUtils.isNotBlank(bo.getDocumentSerialNumber()), XzdDepositApplication::getDocumentSerialNumber, bo.getDocumentSerialNumber()); + lqw.eq(bo.getApplicantOrganization() != null, XzdDepositApplication::getApplicantOrganization, bo.getApplicantOrganization()); + lqw.eq(bo.getApplicantDepartment() != null, XzdDepositApplication::getApplicantDepartment, bo.getApplicantDepartment()); + lqw.eq(bo.getRecordDepartment() != null, XzdDepositApplication::getRecordDepartment, bo.getRecordDepartment()); + lqw.eq(StringUtils.isNotBlank(bo.getDepartmentSubordinate()), XzdDepositApplication::getDepartmentSubordinate, bo.getDepartmentSubordinate()); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdDepositApplication::getProjectName, bo.getProjectName()); + lqw.eq(bo.getPaymentMethod() != null, XzdDepositApplication::getPaymentMethod, bo.getPaymentMethod()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositType()), XzdDepositApplication::getDepositType, bo.getDepositType()); + lqw.like(StringUtils.isNotBlank(bo.getBankName()), XzdDepositApplication::getBankName, bo.getBankName()); + lqw.eq(StringUtils.isNotBlank(bo.getDepositReceivingUnit()), XzdDepositApplication::getDepositReceivingUnit, bo.getDepositReceivingUnit()); + lqw.eq(StringUtils.isNotBlank(bo.getAccountNumber()), XzdDepositApplication::getAccountNumber, bo.getAccountNumber()); + lqw.eq(bo.getAmountLower() != null, XzdDepositApplication::getAmountLower, bo.getAmountLower()); + lqw.eq(bo.getContractProportion() != null, XzdDepositApplication::getContractProportion, bo.getContractProportion()); + lqw.eq(StringUtils.isNotBlank(bo.getAmountUpper()), XzdDepositApplication::getAmountUpper, bo.getAmountUpper()); + lqw.eq(bo.getDepositDueDate() != null, XzdDepositApplication::getDepositDueDate, bo.getDepositDueDate()); + lqw.eq(bo.getRequiredArrivalDate() != null, XzdDepositApplication::getRequiredArrivalDate, bo.getRequiredArrivalDate()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), XzdDepositApplication::getRemarks, bo.getRemarks()); + return lqw; + } + + /** + * 新增保证金缴纳审批 + * + * @param bo 保证金缴纳审批 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XzdDepositApplicationBo bo) { + XzdDepositApplication add = MapstructUtils.convert(bo, XzdDepositApplication.class); + validEntityBeforeSave(add); + + Long l = baseMapper.selectCount(new LambdaQueryWrapper().gt(XzdDepositApplication::getCreateTime, LocalDate.now())); + String s = areaUtil.generateDateBasedNumber(); + add.setDocumentSerialNumber(s+"-"+(l+1)); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改保证金缴纳审批 + * + * @param bo 保证金缴纳审批 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XzdDepositApplicationBo bo) { + XzdDepositApplication update = MapstructUtils.convert(bo, XzdDepositApplication.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XzdDepositApplication entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除保证金缴纳审批信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + + for (Long id : ids) { + XzdDepositApplicationVo xzdDepositApplicationVo = baseMapper.selectVoById(id); + + // 删除附件 + if (!StringUtils.isEmpty(xzdDepositApplicationVo.getFileId())){ + List collect = Arrays.stream(xzdDepositApplicationVo.getFileId().split(",")).map(item -> { + return Long.parseLong(item); + }).collect(Collectors.toList()); + sysOssService.deleteWithValidByIds(collect, false); + } + } + + } + return baseMapper.deleteByIds(ids) > 0; + } +}