标前立项

This commit is contained in:
lg
2025-10-12 00:25:23 +08:00
parent 866c53c6cc
commit 51686c212e
80 changed files with 7121 additions and 13 deletions

View File

@ -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<XzdBidPreProjectMap
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(BiddingManagementDto bo) {
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBidPreProject>().gt(XzdBidPreProject::getCreateTime, LocalDateTime.now()));
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBidPreProject>().gt(XzdBidPreProject::getCreateTime, LocalDate.now()));
String s = areaUtil.generateDateBasedNumber();
// 标前立项

View File

@ -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<XzdProjectR
private final AreaUtil areaUtil;
private final SysOssServiceImpl sysOssService;
/**
* 查询项目风险评估签审意见
*
@ -110,9 +115,16 @@ public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl<XzdProjectR
lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdProjectRiskAssessment::getDocumentNumber, bo.getDocumentNumber());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdProjectRiskAssessment::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotBlank(bo.getProjectBusinessOwner()), XzdProjectRiskAssessment::getProjectBusinessOwner, bo.getProjectBusinessOwner());
// lqw.eq(StringUtils.isNotBlank(bo.getCreateBy().toString()), XzdProjectRiskAssessment::getCreateBy, bo.getCreateBy());
// lqw.ge(StringUtils.isNotBlank(bo.getStartTime().toString()), XzdProjectRiskAssessment::getCreateTime, bo.getStartTime());
// lqw.le(StringUtils.isNotBlank(bo.getEndTime().toString()), XzdProjectRiskAssessment::getCreateTime, bo.getEndTime());
if (bo.getCreateBy() != null) {
lqw.eq(XzdProjectRiskAssessment::getCreateBy, bo.getCreateBy());
}
if (bo.getCreateBy() != null) {
lqw.ge( XzdProjectRiskAssessment::getCreateTime, bo.getStartTime());
}
if (bo.getEndTime() != null) {
lqw.le( XzdProjectRiskAssessment::getCreateTime, bo.getEndTime());
}
return lqw;
}
@ -129,7 +141,7 @@ public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl<XzdProjectR
validEntityBeforeSave(add);
if(add != null){
String s = areaUtil.generateDateBasedNumber();
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdProjectRiskAssessment>().gt(XzdProjectRiskAssessment::getCreateTime, LocalDateTime.now()));
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdProjectRiskAssessment>().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<XzdProjectR
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
for (Long id : ids) {
XzdProjectRiskAssessmentVo xzdProjectRiskAssessmentVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdProjectRiskAssessmentVo.getFileId())){
List<Long> collect = Arrays.stream(xzdProjectRiskAssessmentVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
};
}
}
return baseMapper.deleteByIds(ids) > 0;
}

View File

@ -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;
}

View File

@ -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<XzdBiddingFil
private final XzdBiddingFileEstimateMapper baseMapper;
private final SysOssServiceImpl sysOssService;
private final AreaUtil areaUtil;
/**
@ -110,7 +119,7 @@ public class XzdBiddingFileEstimateServiceImpl extends ServiceImpl<XzdBiddingFil
XzdBiddingFileEstimate add = MapstructUtils.convert(bo, XzdBiddingFileEstimate.class);
validEntityBeforeSave(add);
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBiddingFileEstimate>().gt(XzdBiddingFileEstimate::getCreateTime, LocalDateTime.now()));
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBiddingFileEstimate>().gt(XzdBiddingFileEstimate::getCreateTime, LocalDate.now()));
String s = areaUtil.generateDateBasedNumber();
@ -153,7 +162,18 @@ public class XzdBiddingFileEstimateServiceImpl extends ServiceImpl<XzdBiddingFil
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
for (Long id : ids) {
XzdBiddingFileEstimateVo xzdBiddingFileEstimateVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdBiddingFileEstimateVo.getFileId())){
List<Long> collect = Arrays.stream(xzdBiddingFileEstimateVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}

View File

@ -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<XzdBiddingDocumentVo> 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<XzdBiddingDocumentVo> list = xzdBiddingDocumentService.queryList(bo);
ExcelUtil.exportExcel(list, "投标文件", XzdBiddingDocumentVo.class, response);
}
/**
* 获取投标文件详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:biddingDocument:query")
@GetMapping("/{id}")
public R<XzdBiddingDocumentVoBylist> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdBiddingDocumentService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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<XzdTbwjBusinessBidVo> 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<XzdTbwjBusinessBidVo> list = xzdTbwjBusinessBidService.queryList(bo);
ExcelUtil.exportExcel(list, "投标文件-商务标", XzdTbwjBusinessBidVo.class, response);
}
/**
* 获取投标文件-商务标详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:tbwjBusinessBid:query")
@GetMapping("/{id}")
public R<XzdTbwjBusinessBidVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdTbwjBusinessBidService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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<XzdTbwjBusinessBidRequirementsVo> 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<XzdTbwjBusinessBidRequirementsVo> list = xzdTbwjBusinessBidRequirementsService.queryList(bo);
ExcelUtil.exportExcel(list, "投标文件-商务标要求", XzdTbwjBusinessBidRequirementsVo.class, response);
}
/**
* 获取投标文件-商务标要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:tbwjBusinessBidRequirements:query")
@GetMapping("/{id}")
public R<XzdTbwjBusinessBidRequirementsVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdTbwjBusinessBidRequirementsService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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<XzdTbwjQualificationRequirementsVo> 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<XzdTbwjQualificationRequirementsVo> list = xzdTbwjQualificationRequirementsService.queryList(bo);
ExcelUtil.exportExcel(list, "投标文件-资审要求", XzdTbwjQualificationRequirementsVo.class, response);
}
/**
* 获取投标文件-资审要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:tbwjQualificationRequirements:query")
@GetMapping("/{id}")
public R<XzdTbwjQualificationRequirementsVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdTbwjQualificationRequirementsService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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<XzdTbwjTechnicalBidVo> 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<XzdTbwjTechnicalBidVo> list = xzdTbwjTechnicalBidService.queryList(bo);
ExcelUtil.exportExcel(list, "投标文件-技术标", XzdTbwjTechnicalBidVo.class, response);
}
/**
* 获取投标文件-技术标详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:tbwjTechnicalBid:query")
@GetMapping("/{id}")
public R<XzdTbwjTechnicalBidVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdTbwjTechnicalBidService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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<XzdTbwjTechnicalBidRequirementsVo> 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<XzdTbwjTechnicalBidRequirementsVo> list = xzdTbwjTechnicalBidRequirementsService.queryList(bo);
ExcelUtil.exportExcel(list, "投标文件-技术标要求", XzdTbwjTechnicalBidRequirementsVo.class, response);
}
/**
* 获取投标文件-技术标要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:tbwjTechnicalBidRequirements:query")
@GetMapping("/{id}")
public R<XzdTbwjTechnicalBidRequirementsVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdTbwjTechnicalBidRequirementsService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
//
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<XzdBiddingDocument, XzdBiddingDocumentVo> {
}

View File

@ -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<XzdTbwjBusinessBid, XzdTbwjBusinessBidVo> {
}

View File

@ -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<XzdTbwjBusinessBidRequirements, XzdTbwjBusinessBidRequirementsVo> {
}

View File

@ -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<XzdTbwjQualificationRequirements, XzdTbwjQualificationRequirementsVo> {
}

View File

@ -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<XzdTbwjTechnicalBid, XzdTbwjTechnicalBidVo> {
}

View File

@ -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<XzdTbwjTechnicalBidRequirements, XzdTbwjTechnicalBidRequirementsVo>, BaseMapper<XzdTbwjTechnicalBidRequirements> {
}

View File

@ -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<XzdBiddingDocument>{
/**
* 查询投标文件
*
* @param id 主键
* @return 投标文件
*/
XzdBiddingDocumentVoBylist queryById(Long id);
/**
* 分页查询投标文件列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件分页列表
*/
TableDataInfo<XzdBiddingDocumentVo> queryPageList(XzdBiddingDocumentBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标文件列表
*
* @param bo 查询条件
* @return 投标文件列表
*/
List<XzdBiddingDocumentVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdTbwjBusinessBidRequirements>{
/**
* 查询投标文件-商务标要求
*
* @param id 主键
* @return 投标文件-商务标要求
*/
XzdTbwjBusinessBidRequirementsVo queryById(Long id);
/**
* 分页查询投标文件-商务标要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件-商务标要求分页列表
*/
TableDataInfo<XzdTbwjBusinessBidRequirementsVo> queryPageList(XzdTbwjBusinessBidRequirementsBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标文件-商务标要求列表
*
* @param bo 查询条件
* @return 投标文件-商务标要求列表
*/
List<XzdTbwjBusinessBidRequirementsVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdTbwjBusinessBid>{
/**
* 查询投标文件-商务标
*
* @param id 主键
* @return 投标文件-商务标
*/
XzdTbwjBusinessBidVo queryById(Long id);
/**
* 分页查询投标文件-商务标列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件-商务标分页列表
*/
TableDataInfo<XzdTbwjBusinessBidVo> queryPageList(XzdTbwjBusinessBidBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标文件-商务标列表
*
* @param bo 查询条件
* @return 投标文件-商务标列表
*/
List<XzdTbwjBusinessBidVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdTbwjQualificationRequirements>{
/**
* 查询投标文件-资审要求
*
* @param id 主键
* @return 投标文件-资审要求
*/
XzdTbwjQualificationRequirementsVo queryById(Long id);
/**
* 分页查询投标文件-资审要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件-资审要求分页列表
*/
TableDataInfo<XzdTbwjQualificationRequirementsVo> queryPageList(XzdTbwjQualificationRequirementsBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标文件-资审要求列表
*
* @param bo 查询条件
* @return 投标文件-资审要求列表
*/
List<XzdTbwjQualificationRequirementsVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdTbwjTechnicalBidRequirements>{
/**
* 查询投标文件-技术标要求
*
* @param id 主键
* @return 投标文件-技术标要求
*/
XzdTbwjTechnicalBidRequirementsVo queryById(Long id);
/**
* 分页查询投标文件-技术标要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件-技术标要求分页列表
*/
TableDataInfo<XzdTbwjTechnicalBidRequirementsVo> queryPageList(XzdTbwjTechnicalBidRequirementsBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标文件-技术标要求列表
*
* @param bo 查询条件
* @return 投标文件-技术标要求列表
*/
List<XzdTbwjTechnicalBidRequirementsVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdTbwjTechnicalBid>{
/**
* 查询投标文件-技术标
*
* @param id 主键
* @return 投标文件-技术标
*/
XzdTbwjTechnicalBidVo queryById(Long id);
/**
* 分页查询投标文件-技术标列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件-技术标分页列表
*/
TableDataInfo<XzdTbwjTechnicalBidVo> queryPageList(XzdTbwjTechnicalBidBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标文件-技术标列表
*
* @param bo 查询条件
* @return 投标文件-技术标列表
*/
List<XzdTbwjTechnicalBidVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdBiddingDocumentMapper, XzdBiddingDocument> 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<XzdTbwjTechnicalBid>().eq(XzdTbwjTechnicalBid::getBiddingDocumentId, id));
XzdTbwjBusinessBid xzdTbwjBusinessBid = xzdTbwjBusinessBidService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdTbwjBusinessBid>().eq(XzdTbwjBusinessBid::getBiddingDocumentId, id));
bylist.setXzdBiddingDocument(xzdBiddingDocumentVo);
bylist.setXzdTbwjTechnicalBidVo(xzdTbwjTechnicalBid);
bylist.setXzdTbwjBusinessBidVo(xzdTbwjBusinessBid);
return bylist;
}
/**
* 分页查询投标文件列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标文件分页列表
*/
@Override
public TableDataInfo<XzdBiddingDocumentVo> queryPageList(XzdBiddingDocumentBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdBiddingDocument> lqw = buildQueryWrapper(bo);
Page<XzdBiddingDocumentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标文件列表
*
* @param bo 查询条件
* @return 投标文件列表
*/
@Override
public List<XzdBiddingDocumentVo> queryList(XzdBiddingDocumentBo bo) {
LambdaQueryWrapper<XzdBiddingDocument> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdBiddingDocument> buildQueryWrapper(XzdBiddingDocumentBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdBiddingDocument> 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<XzdBiddingDocument>().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<Long> ids, Boolean isValid) {
if(isValid){
ids.forEach(id->{
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("bidding_document_id", id);
// 删除技术标
xzdTbwjTechnicalBidService.removeByMap(hashMap);
// 删除商务标
xzdTbwjBusinessBidService.removeByMap(hashMap);
});
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdTbwjBusinessBidRequirementsMapper, XzdTbwjBusinessBidRequirements> 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<XzdTbwjBusinessBidRequirementsVo> queryPageList(XzdTbwjBusinessBidRequirementsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdTbwjBusinessBidRequirements> lqw = buildQueryWrapper(bo);
Page<XzdTbwjBusinessBidRequirementsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标文件-商务标要求列表
*
* @param bo 查询条件
* @return 投标文件-商务标要求列表
*/
@Override
public List<XzdTbwjBusinessBidRequirementsVo> queryList(XzdTbwjBusinessBidRequirementsBo bo) {
LambdaQueryWrapper<XzdTbwjBusinessBidRequirements> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdTbwjBusinessBidRequirements> buildQueryWrapper(XzdTbwjBusinessBidRequirementsBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdTbwjBusinessBidRequirements> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdTbwjBusinessBidMapper, XzdTbwjBusinessBid> 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<XzdTbwjBusinessBidVo> queryPageList(XzdTbwjBusinessBidBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdTbwjBusinessBid> lqw = buildQueryWrapper(bo);
Page<XzdTbwjBusinessBidVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标文件-商务标列表
*
* @param bo 查询条件
* @return 投标文件-商务标列表
*/
@Override
public List<XzdTbwjBusinessBidVo> queryList(XzdTbwjBusinessBidBo bo) {
LambdaQueryWrapper<XzdTbwjBusinessBid> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdTbwjBusinessBid> buildQueryWrapper(XzdTbwjBusinessBidBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdTbwjBusinessBid> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdTbwjQualificationRequirementsMapper, XzdTbwjQualificationRequirements> 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<XzdTbwjQualificationRequirementsVo> queryPageList(XzdTbwjQualificationRequirementsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdTbwjQualificationRequirements> lqw = buildQueryWrapper(bo);
Page<XzdTbwjQualificationRequirementsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标文件-资审要求列表
*
* @param bo 查询条件
* @return 投标文件-资审要求列表
*/
@Override
public List<XzdTbwjQualificationRequirementsVo> queryList(XzdTbwjQualificationRequirementsBo bo) {
LambdaQueryWrapper<XzdTbwjQualificationRequirements> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdTbwjQualificationRequirements> buildQueryWrapper(XzdTbwjQualificationRequirementsBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdTbwjQualificationRequirements> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdTbwjTechnicalBidRequirementsMapper, XzdTbwjTechnicalBidRequirements> 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<XzdTbwjTechnicalBidRequirementsVo> queryPageList(XzdTbwjTechnicalBidRequirementsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdTbwjTechnicalBidRequirements> lqw = buildQueryWrapper(bo);
Page<XzdTbwjTechnicalBidRequirementsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标文件-技术标要求列表
*
* @param bo 查询条件
* @return 投标文件-技术标要求列表
*/
@Override
public List<XzdTbwjTechnicalBidRequirementsVo> queryList(XzdTbwjTechnicalBidRequirementsBo bo) {
LambdaQueryWrapper<XzdTbwjTechnicalBidRequirements> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdTbwjTechnicalBidRequirements> buildQueryWrapper(XzdTbwjTechnicalBidRequirementsBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdTbwjTechnicalBidRequirements> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdTbwjTechnicalBidMapper, XzdTbwjTechnicalBid> 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<XzdTbwjTechnicalBidVo> queryPageList(XzdTbwjTechnicalBidBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdTbwjTechnicalBid> lqw = buildQueryWrapper(bo);
Page<XzdTbwjTechnicalBidVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标文件-技术标列表
*
* @param bo 查询条件
* @return 投标文件-技术标列表
*/
@Override
public List<XzdTbwjTechnicalBidVo> queryList(XzdTbwjTechnicalBidBo bo) {
LambdaQueryWrapper<XzdTbwjTechnicalBid> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdTbwjTechnicalBid> buildQueryWrapper(XzdTbwjTechnicalBidBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdTbwjTechnicalBid> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdBidDepositPaymentVo> 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<XzdBidDepositPaymentVo> list = xzdBidDepositPaymentService.queryList(bo);
ExcelUtil.exportExcel(list, "投标保证金缴纳", XzdBidDepositPaymentVo.class, response);
}
/**
* 获取投标保证金缴纳详细信息
*
* @param id 主键
*/
@SaCheckPermission("earnestMoney:bidDepositPayment:query")
@GetMapping("/{id}")
public R<XzdBidDepositPaymentByBqlx> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdBidDepositPaymentService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<XzdBidDepositPayment, XzdBidDepositPaymentVo> {
}

View File

@ -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<XzdBidDepositPayment>{
/**
* 查询投标保证金缴纳
*
* @param id 主键
* @return 投标保证金缴纳
*/
XzdBidDepositPaymentByBqlx queryById(Long id);
/**
* 分页查询投标保证金缴纳列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标保证金缴纳分页列表
*/
TableDataInfo<XzdBidDepositPaymentVo> queryPageList(XzdBidDepositPaymentBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标保证金缴纳列表
*
* @param bo 查询条件
* @return 投标保证金缴纳列表
*/
List<XzdBidDepositPaymentVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdBidDepositPaymentMapper, XzdBidDepositPayment> 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<XzdBidDepositPaymentVo> queryPageList(XzdBidDepositPaymentBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdBidDepositPayment> lqw = buildQueryWrapper(bo);
Page<XzdBidDepositPaymentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标保证金缴纳列表
*
* @param bo 查询条件
* @return 投标保证金缴纳列表
*/
@Override
public List<XzdBidDepositPaymentVo> queryList(XzdBidDepositPaymentBo bo) {
LambdaQueryWrapper<XzdBidDepositPayment> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdBidDepositPayment> buildQueryWrapper(XzdBidDepositPaymentBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdBidDepositPayment> 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<XzdBidDepositPayment>().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<Long> ids, Boolean isValid) {
if(isValid){
for (Long id : ids) {
XzdBidDepositPaymentVo xzdBidDepositPaymentVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdBidDepositPaymentVo.getFileId())){
List<Long> collect = Arrays.stream(xzdBidDepositPaymentVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdBidDepositRecoveryVo> 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<XzdBidDepositRecoveryVo> list = xzdBidDepositRecoveryService.queryList(bo);
ExcelUtil.exportExcel(list, "投标保证金收回", XzdBidDepositRecoveryVo.class, response);
}
/**
* 获取投标保证金收回详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingManagement:bidDepositRecovery:query")
@GetMapping("/{id}")
public R<XzdBidDepositRecoveryXqVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdBidDepositRecoveryService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<XzdBidDepositRecovery, XzdBidDepositRecoveryVo>, BaseMapper<XzdBidDepositRecovery> {
}

View File

@ -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<XzdBidDepositRecovery>{
/**
* 查询投标保证金收回
*
* @param id 主键
* @return 投标保证金收回
*/
XzdBidDepositRecoveryXqVo queryById(Long id);
/**
* 分页查询投标保证金收回列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 投标保证金收回分页列表
*/
TableDataInfo<XzdBidDepositRecoveryVo> queryPageList(XzdBidDepositRecoveryBo bo, PageQuery pageQuery);
/**
* 查询符合条件的投标保证金收回列表
*
* @param bo 查询条件
* @return 投标保证金收回列表
*/
List<XzdBidDepositRecoveryVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdBidDepositRecoveryMapper, XzdBidDepositRecovery> 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<XzdBidDepositRecoveryVo> queryPageList(XzdBidDepositRecoveryBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdBidDepositRecovery> lqw = buildQueryWrapper(bo);
Page<XzdBidDepositRecoveryVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的投标保证金收回列表
*
* @param bo 查询条件
* @return 投标保证金收回列表
*/
@Override
public List<XzdBidDepositRecoveryVo> queryList(XzdBidDepositRecoveryBo bo) {
LambdaQueryWrapper<XzdBidDepositRecovery> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdBidDepositRecovery> buildQueryWrapper(XzdBidDepositRecoveryBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdBidDepositRecovery> 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<XzdBidDepositRecovery>().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<Long> ids, Boolean isValid) {
if(isValid){
for (Long id : ids) {
XzdBidDepositRecoveryVo xzdBidDepositRecoveryVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdBidDepositRecoveryVo.getFileId())){
List<Long> collect = Arrays.stream(xzdBidDepositRecoveryVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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;
}

View File

@ -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<XzdBiddin
private final XzdBiddingAgencyFeePaymentMapper baseMapper;
private final SysOssServiceImpl sysOssService;
private final AreaUtil areaUtil;
@ -108,7 +116,7 @@ public class XzdBiddingAgencyFeePaymentServiceImpl extends ServiceImpl<XzdBiddin
XzdBiddingAgencyFeePayment add = MapstructUtils.convert(bo, XzdBiddingAgencyFeePayment.class);
validEntityBeforeSave(add);
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBiddingAgencyFeePayment>().gt(XzdBiddingAgencyFeePayment::getCreateTime, LocalDateTime.now()));
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBiddingAgencyFeePayment>().gt(XzdBiddingAgencyFeePayment::getCreateTime, LocalDate .now()));
String s = areaUtil.generateDateBasedNumber();
@ -151,7 +159,16 @@ public class XzdBiddingAgencyFeePaymentServiceImpl extends ServiceImpl<XzdBiddin
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
for (Long id : ids) {
XzdBiddingAgencyFeePaymentVo xzdBiddingAgencyFeePaymentVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdBiddingAgencyFeePaymentVo.getFileId())){
List<Long> collect = Arrays.stream(xzdBiddingAgencyFeePaymentVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}

View File

@ -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<XzdPostBidAnalysisVo> 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<XzdPostBidAnalysisVo> list = xzdPostBidAnalysisService.queryList(bo);
ExcelUtil.exportExcel(list, "标后分析", XzdPostBidAnalysisVo.class, response);
}
/**
* 获取标后分析详细信息
*
* @param id 主键
*/
@SaCheckPermission("postAnalysis:postBidAnalysis:query")
@GetMapping("/{id}")
public R<XzdPostBidAnalysisVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdPostBidAnalysisService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<XzdPostBidAnalysis, XzdPostBidAnalysisVo>, BaseMapper<XzdPostBidAnalysis> {
}

View File

@ -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<XzdPostBidAnalysis>{
/**
* 查询标后分析
*
* @param id 主键
* @return 标后分析
*/
XzdPostBidAnalysisVo queryById(Long id);
/**
* 分页查询标后分析列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 标后分析分页列表
*/
TableDataInfo<XzdPostBidAnalysisVo> queryPageList(XzdPostBidAnalysisBo bo, PageQuery pageQuery);
/**
* 查询符合条件的标后分析列表
*
* @param bo 查询条件
* @return 标后分析列表
*/
List<XzdPostBidAnalysisVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdPostBidAnalysisMapper, XzdPostBidAnalysis> 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<XzdPostBidAnalysisVo> queryPageList(XzdPostBidAnalysisBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdPostBidAnalysis> lqw = buildQueryWrapper(bo);
Page<XzdPostBidAnalysisVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的标后分析列表
*
* @param bo 查询条件
* @return 标后分析列表
*/
@Override
public List<XzdPostBidAnalysisVo> queryList(XzdPostBidAnalysisBo bo) {
LambdaQueryWrapper<XzdPostBidAnalysis> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdPostBidAnalysis> buildQueryWrapper(XzdPostBidAnalysisBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdPostBidAnalysis> 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<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -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<XzdDepositApplicationVo> 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<XzdDepositApplicationVo> list = xzdDepositApplicationService.queryList(bo);
ExcelUtil.exportExcel(list, "保证金缴纳审批", XzdDepositApplicationVo.class, response);
}
/**
* 获取保证金缴纳审批详细信息
*
* @param id 主键
*/
@SaCheckPermission("earnestMoney:depositApplication:query")
@GetMapping("/{id}")
public R<XzdDepositApplicationVo> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdDepositApplicationService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<XzdDepositApplication, XzdDepositApplicationVo> {
}

View File

@ -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<XzdDepositApplication>{
/**
* 查询保证金缴纳审批
*
* @param id 主键
* @return 保证金缴纳审批
*/
XzdDepositApplicationVo queryById(Long id);
/**
* 分页查询保证金缴纳审批列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 保证金缴纳审批分页列表
*/
TableDataInfo<XzdDepositApplicationVo> queryPageList(XzdDepositApplicationBo bo, PageQuery pageQuery);
/**
* 查询符合条件的保证金缴纳审批列表
*
* @param bo 查询条件
* @return 保证金缴纳审批列表
*/
List<XzdDepositApplicationVo> 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<Long> ids, Boolean isValid);
}

View File

@ -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<XzdDepositApplicationMapper, XzdDepositApplication> 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<XzdDepositApplicationVo> queryPageList(XzdDepositApplicationBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdDepositApplication> lqw = buildQueryWrapper(bo);
Page<XzdDepositApplicationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的保证金缴纳审批列表
*
* @param bo 查询条件
* @return 保证金缴纳审批列表
*/
@Override
public List<XzdDepositApplicationVo> queryList(XzdDepositApplicationBo bo) {
LambdaQueryWrapper<XzdDepositApplication> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdDepositApplication> buildQueryWrapper(XzdDepositApplicationBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdDepositApplication> 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<XzdDepositApplication>().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<Long> ids, Boolean isValid) {
if(isValid){
for (Long id : ids) {
XzdDepositApplicationVo xzdDepositApplicationVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdDepositApplicationVo.getFileId())){
List<Long> collect = Arrays.stream(xzdDepositApplicationVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
}
}
}
return baseMapper.deleteByIds(ids) > 0;
}
}