标前立项

This commit is contained in:
lg
2025-10-11 10:56:07 +08:00
parent 22a7500048
commit f820edebb5
44 changed files with 1913 additions and 250 deletions

View File

@ -164,5 +164,5 @@ public interface ISysDeptService {
*/
int deleteDeptById(Long deptId);
List<SysDept> querListDept();
List<SysDeptVo> querListDept();
}

View File

@ -530,12 +530,12 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
}
@Override
public List<SysDept> querListDept() {
public List<SysDeptVo> querListDept() {
// baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>().)
List<SysDeptVo> sysDeptVos = baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>().eq(SysDept::getParentId, "100").eq(SysDept::getStatus, "0").eq(SysDept::getDelFlag, "0"));
return List.of();
return sysDeptVos;
}
/**

View File

@ -1,21 +1,17 @@
package org.dromara.xzd.biddingManagement.controller;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.controller;
import java.util.List;
import cn.hutool.core.lang.tree.Tree;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.service.ISysDeptService;
import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo;
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
import org.dromara.xzd.service.IXzdProjectTypeService;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QueryListXzdVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -24,13 +20,11 @@ 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.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.service.IXzdBidPreProjectService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProjectService;
/**
* 标前立项
@ -55,8 +49,8 @@ public class XzdBidPreProjectController extends BaseController {
* 查询部门
*/
@GetMapping("/listDept")
public R<List<SysDept>> list() {
List<SysDept> list = iSysDeptService.querListDept();
public R<List<SysDeptVo>> list() {
List<SysDeptVo> list = iSysDeptService.querListDept();
return R.ok(list);
}

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.controller;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.controller;
import java.util.List;
@ -6,10 +6,10 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectByVo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
import org.dromara.xzd.biddingManagement.service.IXzdProjectRiskAssessmentService;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdProjectRiskAssessmentBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectByVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectRiskAssessmentVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdProjectRiskAssessmentService;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.domain;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.time.LocalDateTime;
/**
* 标前立项对象 xzd_bid_pre_project
@ -97,6 +98,22 @@ public class XzdBidPreProject extends BaseEntity {
*/
private String investmentUnit;
/**
* 单据日期
*/
private LocalDateTime billDate;
/**
* 联投单位
*/
private String jointInvestmentEntity;
/**
* 联系方式
*/
private String contactInformation;
/**
* 工程造价万元
*/

View File

@ -1,5 +1,6 @@
package org.dromara.xzd.biddingManagement.domain;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@ -49,6 +50,13 @@ public class XzdBqlxProjectInfo extends BaseEntity {
*/
private Date bidStartDate;
/**
* 填报组织
*/
@ExcelProperty(value = "填报组织")
private String reportingOrganization;
/**
* 报名截止时间
*/

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.domain;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;

View File

@ -1,6 +1,6 @@
package org.dromara.xzd.biddingManagement.domain.bo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo;
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@ -9,6 +9,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.time.LocalDateTime;
/**
* 标前立项业务对象 xzd_bid_pre_project
*
@ -56,6 +58,22 @@ public class XzdBidPreProjectBo extends BaseEntity {
@NotBlank(message = "城市不能为空", groups = { AddGroup.class, EditGroup.class })
private String city;
/**
* 单据日期
*/
private LocalDateTime billDate;
/**
* 联投单位
*/
private String jointInvestmentEntity;
/**
* 联系方式
*/
private String contactInformation;
/**
* 区县
*/

View File

@ -1,6 +1,7 @@
package org.dromara.xzd.biddingManagement.domain.bo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo;
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
@ -8,8 +9,8 @@ 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 java.time.LocalDateTime;
/**
* 标前立项业务对象 xzd_bqlx_project_info
@ -37,7 +38,7 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
/**
* 预计开工日期
*/
private Date expectedStartDate;
private LocalDateTime expectedStartDate;
/**
* 资质要求
@ -47,18 +48,18 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
/**
* 报名开始时间
*/
private Date bidStartDate;
private LocalDateTime bidStartDate;
/**
* 报名截止时间
*/
@NotNull(message = "报名截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date bidEndDate;
private LocalDateTime bidEndDate;
/**
* 投标截止时间
*/
private Date submissionDeadline;
private LocalDateTime submissionDeadline;
/**
* 设计情况
@ -70,6 +71,13 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
*/
private String projectStatus;
/**
* 填报组织
*/
@ExcelProperty(value = "填报组织")
private String reportingOrganization;
/**
* 招标公告地址
*/
@ -103,7 +111,7 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
/**
* 开标时间
*/
private Date startDate;
private LocalDateTime startDate;
/**
* 评标方式

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.domain.bo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@ -7,7 +7,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdProjectRiskAssessment;
/**
* 项目风险评估签审意见业务对象 xzd_project_risk_assessment

View File

@ -0,0 +1,17 @@
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto;
import lombok.Data;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo;
@Data
public class BiddingManagementDto {
// 标前立项
private XzdBidPreProjectBo xzdBidPreProjectBo;
// 标前立项-项目信息
private XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo;
}

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.domain.dto;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto;
import jakarta.validation.constraints.NotBlank;

View File

@ -1,6 +1,5 @@
package org.dromara.xzd.biddingManagement.domain.vo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
import lombok.Builder;
import lombok.Data;
import java.util.List;

View File

@ -1,8 +1,8 @@
package org.dromara.xzd.biddingManagement.domain.vo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
@ -12,8 +12,7 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.time.LocalDateTime;
/**
@ -130,6 +129,22 @@ public class XzdBidPreProjectVo implements Serializable {
@ExcelDictFormat(readConverterExp = "万=元")
private Long projectCost;
/**
* 单据日期
*/
private LocalDateTime billDate;
/**
* 联投单位
*/
private String jointInvestmentEntity;
/**
* 联系方式
*/
private String contactInformation;
/**
* 资料费
*/
@ -161,4 +176,11 @@ public class XzdBidPreProjectVo implements Serializable {
private String createByUserName;
private Long createDept;
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "createDept")
private String createDeptName;
}

View File

@ -1,8 +1,8 @@
package org.dromara.xzd.biddingManagement.domain.vo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
@ -12,8 +12,6 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
@ -72,6 +70,13 @@ public class XzdBqlxProjectInfoVo implements Serializable {
@ExcelProperty(value = "投标截止时间")
private Date submissionDeadline;
/**
* 填报组织
*/
@ExcelProperty(value = "填报组织")
private String reportingOrganization;
/**
* 设计情况
*/

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.domain.vo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.domain.vo;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@ -8,13 +8,11 @@ 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.domain.XzdProjectRiskAssessment;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdProjectRiskAssessment;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**

View File

@ -1,10 +1,10 @@
package org.dromara.xzd.biddingManagement.mapper;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;

View File

@ -1,7 +1,7 @@
package org.dromara.xzd.biddingManagement.mapper;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper;
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**

View File

@ -1,9 +1,9 @@
package org.dromara.xzd.biddingManagement.mapper;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdProjectRiskAssessment;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectRiskAssessmentVo;
/**
* 项目风险评估签审意见Mapper接口

View File

@ -1,13 +1,12 @@
package org.dromara.xzd.biddingManagement.service;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.service;
import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QueryListXzdVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;

View File

@ -1,8 +1,8 @@
package org.dromara.xzd.biddingManagement.service;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.service;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;

View File

@ -1,14 +1,14 @@
package org.dromara.xzd.biddingManagement.service;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.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.domain.XzdProjectRiskAssessment;
import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectByVo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
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.XzdProjectByVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectRiskAssessmentVo;
import java.util.Collection;
import java.util.List;

View File

@ -1,38 +1,34 @@
package org.dromara.xzd.biddingManagement.service.impl;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.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.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.mapper.XzdBqlxProjectInfoMapper;
import org.dromara.xzd.biddingManagement.service.IXzdBqlxProjectInfoService;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.BiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.dto.QuerBiddingManagementDto;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QuerListXzdBidPreVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.QueryListXzdVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBqlxProjectInfoService;
import org.dromara.xzd.utilS.AreaUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.mapper.XzdBidPreProjectMapper;
import org.dromara.xzd.biddingManagement.service.IXzdBidPreProjectService;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBidPreProjectMapper;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProjectService;
import org.springframework.transaction.annotation.Transactional;
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业务层处理
@ -52,6 +48,8 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
private final AreaUtil areaUtil;
private final SysOssServiceImpl sysOssService;
/**
* 查询标前立项
@ -64,9 +62,11 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
QuerListXzdBidPreVo querListXzdBidPreVo = new QuerListXzdBidPreVo();
XzdBidPreProjectVo xzdBidPreProjectVo = baseMapper.selectVoById(id);
XzdBqlxProjectInfo xzdBqlxProjectInfo = iXzdBqlxProjectInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<>(XzdBqlxProjectInfo.class).eq(XzdBqlxProjectInfo::getBidPreProjectId, id));
XzdBqlxProjectInfoVo res = new XzdBqlxProjectInfoVo();
BeanUtils.copyProperties(xzdBqlxProjectInfo, res);
XzdBqlxProjectInfoVo res = new XzdBqlxProjectInfoVo();
if (xzdBqlxProjectInfo != null){
BeanUtils.copyProperties(xzdBqlxProjectInfo, res);
}
querListXzdBidPreVo.setXzdBqlxProjectInfoVo(res);
querListXzdBidPreVo.setXzdBidPreProjectVo(xzdBidPreProjectVo);
@ -145,9 +145,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(BiddingManagementDto bo) {
try {
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBidPreProject>().gt(XzdBidPreProject::getCreateTime, LocalDateTime.now().minusDays(1)));
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBidPreProject>().gt(XzdBidPreProject::getCreateTime, LocalDateTime.now()));
String s = areaUtil.generateDateBasedNumber();
// 标前立项
@ -164,10 +162,7 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
xzdBqlxProjectInfoBo.setBidPreProjectId(xzdBidPreProject.getId());
iXzdBqlxProjectInfoService.insertByBo(xzdBqlxProjectInfoBo);
}catch (Exception e) {
log.error("新增标前立项失败", e);
return false;
}
return true;
}
@ -179,18 +174,31 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
* @return 是否修改成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(BiddingManagementDto bo) {
// XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo();
//
// baseMapper.updateById(xzdBidPreProjectBo);
//
// XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo();
//
//
// validEntityBeforeSave(update);
return false;
XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo();
XzdBidPreProject xzdBidPreProject = new XzdBidPreProject();
BeanUtil.copyProperties(xzdBidPreProjectBo, xzdBidPreProject);
this.saveOrUpdate(xzdBidPreProject);
XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo();
XzdBqlxProjectInfo xzdBqlxProjectInfo = new XzdBqlxProjectInfo();
BeanUtils.copyProperties(xzdBqlxProjectInfoBo, xzdBqlxProjectInfo);
iXzdBqlxProjectInfoService.saveOrUpdate(xzdBqlxProjectInfo);
return true;
}
/**
@ -208,10 +216,32 @@ public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMap
* @return 是否删除成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
for (Long id : ids) {
XzdBidPreProjectVo xzdBidPreProjectVo = baseMapper.selectVoById(id);
// 删除附件
if (!StringUtils.isEmpty(xzdBidPreProjectVo.getFileId())){
List<Long> collect = Arrays.stream(xzdBidPreProjectVo.getFileId().split(",")).map(item -> {
return Long.parseLong(item);
}).collect(Collectors.toList());
sysOssService.deleteWithValidByIds(collect, false);
}
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
objectObjectHashMap.put("bid_pre_project_id",id);
iXzdBqlxProjectInfoService.removeByMap(objectObjectHashMap);
}
return baseMapper.deleteByIds(ids) > 0;
}
}

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.service.impl;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
@ -10,11 +10,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.mapper.XzdBqlxProjectInfoMapper;
import org.dromara.xzd.biddingManagement.service.IXzdBqlxProjectInfoService;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.bo.XzdBqlxProjectInfoBo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBqlxProjectInfoVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBqlxProjectInfoMapper;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBqlxProjectInfoService;
import java.util.List;
import java.util.Map;

View File

@ -1,4 +1,4 @@
package org.dromara.xzd.biddingManagement.service.impl;
package org.dromara.xzd.biddingManagement.biaoqianlixiang.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
@ -9,12 +9,12 @@ 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.domain.XzdProjectRiskAssessment;
import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectByVo;
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
import org.dromara.xzd.biddingManagement.mapper.XzdProjectRiskAssessmentMapper;
import org.dromara.xzd.biddingManagement.service.IXzdProjectRiskAssessmentService;
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.XzdProjectByVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdProjectRiskAssessmentVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdProjectRiskAssessmentMapper;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdProjectRiskAssessmentService;
import org.dromara.xzd.utilS.AreaUtil;
import org.springframework.stereotype.Service;
@ -110,9 +110,9 @@ 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());
// 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());
return lqw;
}
@ -129,7 +129,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().minusDays(1)));
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdProjectRiskAssessment>().gt(XzdProjectRiskAssessment::getCreateTime, LocalDateTime.now()));
add.setDocumentNumber(s+"-"+(l+1));
}
boolean flag = baseMapper.insert(add) > 0;

View File

@ -0,0 +1,105 @@
package org.dromara.xzd.biddingManagement.biddingDocument.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.vo.XzdBiddingFileEstimateVo;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.bo.XzdBiddingFileEstimateBo;
import org.dromara.xzd.biddingManagement.biddingDocument.service.IXzdBiddingFileEstimateService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 招标文件审估
*
* @author Lion Li
* @date 2025-10-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/biddingDocument/biddingFileEstimate")
public class XzdBiddingFileEstimateController extends BaseController {
private final IXzdBiddingFileEstimateService xzdBiddingFileEstimateService;
/**
* 查询招标文件审估列表
*/
@SaCheckPermission("biddingDocument:biddingFileEstimate:list")
@GetMapping("/list")
public TableDataInfo<XzdBiddingFileEstimateVo> list(XzdBiddingFileEstimateBo bo, PageQuery pageQuery) {
return xzdBiddingFileEstimateService.queryPageList(bo, pageQuery);
}
/**
* 导出招标文件审估列表
*/
@SaCheckPermission("biddingDocument:biddingFileEstimate:export")
@Log(title = "招标文件审估", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(XzdBiddingFileEstimateBo bo, HttpServletResponse response) {
List<XzdBiddingFileEstimateVo> list = xzdBiddingFileEstimateService.queryList(bo);
ExcelUtil.exportExcel(list, "招标文件审估", XzdBiddingFileEstimateVo.class, response);
}
/**
* 获取招标文件审估详细信息
*
* @param id 主键
*/
@SaCheckPermission("biddingDocument:biddingFileEstimate:query")
@GetMapping("/{id}")
public R<XzdBiddingFileEstimateVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(xzdBiddingFileEstimateService.queryById(id));
}
/**
* 新增招标文件审估
*/
@SaCheckPermission("biddingDocument:biddingFileEstimate:add")
@Log(title = "招标文件审估", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdBiddingFileEstimateBo bo) {
return toAjax(xzdBiddingFileEstimateService.insertByBo(bo));
}
/**
* 修改招标文件审估
*/
@SaCheckPermission("biddingDocument:biddingFileEstimate:edit")
@Log(title = "招标文件审估", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdBiddingFileEstimateBo bo) {
return toAjax(xzdBiddingFileEstimateService.updateByBo(bo));
}
/**
* 删除招标文件审估
*
* @param ids 主键串
*/
@SaCheckPermission("biddingDocument:biddingFileEstimate:remove")
@Log(title = "招标文件审估", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdBiddingFileEstimateService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,128 @@
package org.dromara.xzd.biddingManagement.biddingDocument.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_file_estimate
*
* @author Lion Li
* @date 2025-10-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("xzd_bidding_file_estimate")
public class XzdBiddingFileEstimate 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 String title;
/**
* 工程地点
*/
private String projectLocation;
/**
* 招标单位
*/
private String biddingUnit;
/**
* 招标方式
*/
private String biddingMethod;
/**
* 承包方式
*/
private String contractingMethod;
/**
* 开标时间
*/
private Date startDate;
/**
* 工程概况
*/
private String projectOverview;
/**
* 投标时间
*/
private Date biddingDate;
/**
* 投标地址
*/
private String biddingAddress;
/**
* 招标控制价
*/
private Long biddingControlPrice;
/**
* 评标方法
*/
private String evaluationMethod;
/**
* 招标范围
*/
private String biddingScope;
/**
* 项目经理要求
*/
private String projectManagerRequirement;
/**
* 文件ID
*/
private String fileId;
/**
* 备注
*/
private String remark;
/**
* 审核状态
*/
private String auditStatus;
}

View File

@ -0,0 +1,127 @@
package org.dromara.xzd.biddingManagement.biddingDocument.domain.bo;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
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;
/**
* 招标文件审估业务对象 xzd_bidding_file_estimate
*
* @author Lion Li
* @date 2025-10-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XzdBiddingFileEstimate.class, reverseConvertGenerate = false)
public class XzdBiddingFileEstimateBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 单据编码
*/
@NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String documentCode;
/**
* 单据日期
*/
private Date documentDate;
/**
* 项目名称
*/
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 标题
*/
private String title;
/**
* 工程地点
*/
private String projectLocation;
/**
* 招标单位
*/
private String biddingUnit;
/**
* 招标方式
*/
private String biddingMethod;
/**
* 承包方式
*/
private String contractingMethod;
/**
* 开标时间
*/
private Date startDate;
/**
* 工程概况
*/
private String projectOverview;
/**
* 投标时间
*/
private Date biddingDate;
/**
* 投标地址
*/
private String biddingAddress;
/**
* 招标控制价
*/
private Long biddingControlPrice;
/**
* 评标方法
*/
private String evaluationMethod;
/**
* 招标范围
*/
private String biddingScope;
/**
* 项目经理要求
*/
private String projectManagerRequirement;
/**
* 文件ID
*/
private String fileId;
/**
* 备注
*/
private String remark;
/**
* 审核状态
*/
private String auditStatus;
}

View File

@ -0,0 +1,155 @@
package org.dromara.xzd.biddingManagement.biddingDocument.domain.vo;
import java.util.Date;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 招标文件审估视图对象 xzd_bidding_file_estimate
*
* @author Lion Li
* @date 2025-10-10
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XzdBiddingFileEstimate.class)
public class XzdBiddingFileEstimateVo 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 String title;
/**
* 工程地点
*/
@ExcelProperty(value = "工程地点")
private String projectLocation;
/**
* 招标单位
*/
@ExcelProperty(value = "招标单位")
private String biddingUnit;
/**
* 招标方式
*/
@ExcelProperty(value = "招标方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "xzd_bidding_method")
private String biddingMethod;
/**
* 承包方式
*/
@ExcelProperty(value = "承包方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "xzd_contracting_method")
private String contractingMethod;
/**
* 开标时间
*/
@ExcelProperty(value = "开标时间")
private Date startDate;
/**
* 工程概况
*/
@ExcelProperty(value = "工程概况")
private String projectOverview;
/**
* 投标时间
*/
@ExcelProperty(value = "投标时间")
private Date biddingDate;
/**
* 投标地址
*/
@ExcelProperty(value = "投标地址")
private String biddingAddress;
/**
* 招标控制价
*/
@ExcelProperty(value = "招标控制价")
private Long biddingControlPrice;
/**
* 评标方法
*/
@ExcelProperty(value = "评标方法", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "xzd_evaluation_method")
private String evaluationMethod;
/**
* 招标范围
*/
@ExcelProperty(value = "招标范围")
private String biddingScope;
/**
* 项目经理要求
*/
@ExcelProperty(value = "项目经理要求")
private String projectManagerRequirement;
/**
* 文件ID
*/
@ExcelProperty(value = "文件ID")
private String fileId;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 审核状态
*/
@ExcelProperty(value = "审核状态")
private String auditStatus;
}

View File

@ -0,0 +1,15 @@
package org.dromara.xzd.biddingManagement.biddingDocument.mapper;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.vo.XzdBiddingFileEstimateVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 招标文件审估Mapper接口
*
* @author Lion Li
* @date 2025-10-10
*/
public interface XzdBiddingFileEstimateMapper extends BaseMapperPlus<XzdBiddingFileEstimate, XzdBiddingFileEstimateVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.xzd.biddingManagement.biddingDocument.service;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.vo.XzdBiddingFileEstimateVo;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.bo.XzdBiddingFileEstimateBo;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 招标文件审估Service接口
*
* @author Lion Li
* @date 2025-10-10
*/
public interface IXzdBiddingFileEstimateService extends IService<XzdBiddingFileEstimate>{
/**
* 查询招标文件审估
*
* @param id 主键
* @return 招标文件审估
*/
XzdBiddingFileEstimateVo queryById(Long id);
/**
* 分页查询招标文件审估列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 招标文件审估分页列表
*/
TableDataInfo<XzdBiddingFileEstimateVo> queryPageList(XzdBiddingFileEstimateBo bo, PageQuery pageQuery);
/**
* 查询符合条件的招标文件审估列表
*
* @param bo 查询条件
* @return 招标文件审估列表
*/
List<XzdBiddingFileEstimateVo> queryList(XzdBiddingFileEstimateBo bo);
/**
* 新增招标文件审估
*
* @param bo 招标文件审估
* @return 是否新增成功
*/
Boolean insertByBo(XzdBiddingFileEstimateBo bo);
/**
* 修改招标文件审估
*
* @param bo 招标文件审估
* @return 是否修改成功
*/
Boolean updateByBo(XzdBiddingFileEstimateBo bo);
/**
* 校验并批量删除招标文件审估信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,160 @@
package org.dromara.xzd.biddingManagement.biddingDocument.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.utilS.AreaUtil;
import org.springframework.stereotype.Service;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.bo.XzdBiddingFileEstimateBo;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.vo.XzdBiddingFileEstimateVo;
import org.dromara.xzd.biddingManagement.biddingDocument.domain.XzdBiddingFileEstimate;
import org.dromara.xzd.biddingManagement.biddingDocument.mapper.XzdBiddingFileEstimateMapper;
import org.dromara.xzd.biddingManagement.biddingDocument.service.IXzdBiddingFileEstimateService;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 招标文件审估Service业务层处理
*
* @author Lion Li
* @date 2025-10-10
*/
@RequiredArgsConstructor
@Service
public class XzdBiddingFileEstimateServiceImpl extends ServiceImpl<XzdBiddingFileEstimateMapper, XzdBiddingFileEstimate> implements IXzdBiddingFileEstimateService {
private final XzdBiddingFileEstimateMapper baseMapper;
private final AreaUtil areaUtil;
/**
* 查询招标文件审估
*
* @param id 主键
* @return 招标文件审估
*/
@Override
public XzdBiddingFileEstimateVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询招标文件审估列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 招标文件审估分页列表
*/
@Override
public TableDataInfo<XzdBiddingFileEstimateVo> queryPageList(XzdBiddingFileEstimateBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdBiddingFileEstimate> lqw = buildQueryWrapper(bo);
Page<XzdBiddingFileEstimateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的招标文件审估列表
*
* @param bo 查询条件
* @return 招标文件审估列表
*/
@Override
public List<XzdBiddingFileEstimateVo> queryList(XzdBiddingFileEstimateBo bo) {
LambdaQueryWrapper<XzdBiddingFileEstimate> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdBiddingFileEstimate> buildQueryWrapper(XzdBiddingFileEstimateBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdBiddingFileEstimate> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(XzdBiddingFileEstimate::getId);
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdBiddingFileEstimate::getDocumentCode, bo.getDocumentCode());
lqw.eq(bo.getDocumentDate() != null, XzdBiddingFileEstimate::getDocumentDate, bo.getDocumentDate());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBiddingFileEstimate::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdBiddingFileEstimate::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getProjectLocation()), XzdBiddingFileEstimate::getProjectLocation, bo.getProjectLocation());
lqw.eq(StringUtils.isNotBlank(bo.getBiddingUnit()), XzdBiddingFileEstimate::getBiddingUnit, bo.getBiddingUnit());
lqw.eq(StringUtils.isNotBlank(bo.getBiddingMethod()), XzdBiddingFileEstimate::getBiddingMethod, bo.getBiddingMethod());
lqw.eq(StringUtils.isNotBlank(bo.getContractingMethod()), XzdBiddingFileEstimate::getContractingMethod, bo.getContractingMethod());
lqw.eq(bo.getStartDate() != null, XzdBiddingFileEstimate::getStartDate, bo.getStartDate());
lqw.eq(StringUtils.isNotBlank(bo.getProjectOverview()), XzdBiddingFileEstimate::getProjectOverview, bo.getProjectOverview());
lqw.eq(bo.getBiddingDate() != null, XzdBiddingFileEstimate::getBiddingDate, bo.getBiddingDate());
lqw.eq(StringUtils.isNotBlank(bo.getBiddingAddress()), XzdBiddingFileEstimate::getBiddingAddress, bo.getBiddingAddress());
lqw.eq(bo.getBiddingControlPrice() != null, XzdBiddingFileEstimate::getBiddingControlPrice, bo.getBiddingControlPrice());
lqw.eq(StringUtils.isNotBlank(bo.getEvaluationMethod()), XzdBiddingFileEstimate::getEvaluationMethod, bo.getEvaluationMethod());
lqw.eq(StringUtils.isNotBlank(bo.getBiddingScope()), XzdBiddingFileEstimate::getBiddingScope, bo.getBiddingScope());
lqw.eq(StringUtils.isNotBlank(bo.getProjectManagerRequirement()), XzdBiddingFileEstimate::getProjectManagerRequirement, bo.getProjectManagerRequirement());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBiddingFileEstimate::getFileId, bo.getFileId());
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBiddingFileEstimate::getAuditStatus, bo.getAuditStatus());
return lqw;
}
/**
* 新增招标文件审估
*
* @param bo 招标文件审估
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(XzdBiddingFileEstimateBo bo) {
XzdBiddingFileEstimate add = MapstructUtils.convert(bo, XzdBiddingFileEstimate.class);
validEntityBeforeSave(add);
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBiddingFileEstimate>().gt(XzdBiddingFileEstimate::getCreateTime, LocalDateTime.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(XzdBiddingFileEstimateBo bo) {
XzdBiddingFileEstimate update = MapstructUtils.convert(bo, XzdBiddingFileEstimate.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(XzdBiddingFileEstimate 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

@ -1,17 +0,0 @@
package org.dromara.xzd.biddingManagement.domain.dto;
import lombok.Data;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
@Data
public class BiddingManagementDto {
// 标前立项
private XzdBidPreProjectBo xzdBidPreProjectBo;
// 标前立项-项目信息
private XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo;
}

View File

@ -0,0 +1,106 @@
package org.dromara.xzd.biddingManagement.paymentapplication.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.vo.XzdBiddingAgencyFeePaymentVo;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.bo.XzdBiddingAgencyFeePaymentBo;
import org.dromara.xzd.biddingManagement.paymentapplication.service.IXzdBiddingAgencyFeePaymentService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 招标代理服务费支付申请
*
* @author Lion Li
* @date 2025-10-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/paymentapplication/biddingAgencyFeePayment")
public class XzdBiddingAgencyFeePaymentController extends BaseController {
private final IXzdBiddingAgencyFeePaymentService xzdBiddingAgencyFeePaymentService;
/**
* 查询招标代理服务费支付申请列表
*/
@SaCheckPermission("paymentapplication:biddingAgencyFeePayment:list")
@GetMapping("/list")
public TableDataInfo<XzdBiddingAgencyFeePaymentVo> list(XzdBiddingAgencyFeePaymentBo bo, PageQuery pageQuery) {
return xzdBiddingAgencyFeePaymentService.queryPageList(bo, pageQuery);
}
/**
* 导出招标代理服务费支付申请列表
*/
@SaCheckPermission("paymentapplication:biddingAgencyFeePayment:export")
@Log(title = "招标代理服务费支付申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(XzdBiddingAgencyFeePaymentBo bo, HttpServletResponse response) {
List<XzdBiddingAgencyFeePaymentVo> list = xzdBiddingAgencyFeePaymentService.queryList(bo);
ExcelUtil.exportExcel(list, "招标代理服务费支付申请", XzdBiddingAgencyFeePaymentVo.class, response);
}
/**
* 获取招标代理服务费支付申请详细信息
*
* @param id 主键
*/
@SaCheckPermission("paymentapplication:biddingAgencyFeePayment:query")
@GetMapping("/{id}")
public R<XzdBiddingAgencyFeePaymentVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(xzdBiddingAgencyFeePaymentService.queryById(id));
}
/**
* 新增招标代理服务费支付申请
*/
@SaCheckPermission("paymentapplication:biddingAgencyFeePayment:add")
@Log(title = "招标代理服务费支付申请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdBiddingAgencyFeePaymentBo bo) {
return toAjax(xzdBiddingAgencyFeePaymentService.insertByBo(bo));
}
/**
* 修改招标代理服务费支付申请
*/
@SaCheckPermission("paymentapplication:biddingAgencyFeePayment:edit")
@Log(title = "招标代理服务费支付申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdBiddingAgencyFeePaymentBo bo) {
return toAjax(xzdBiddingAgencyFeePaymentService.updateByBo(bo));
}
/**
* 删除招标代理服务费支付申请
*
* @param ids 主键串
*/
@SaCheckPermission("paymentapplication:biddingAgencyFeePayment:remove")
@Log(title = "招标代理服务费支付申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(xzdBiddingAgencyFeePaymentService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -0,0 +1,120 @@
package org.dromara.xzd.biddingManagement.paymentapplication.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial;
/**
* 招标代理服务费支付申请对象 xzd_bidding_agency_fee_payment
*
* @author Lion Li
* @date 2025-10-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("xzd_bidding_agency_fee_payment")
public class XzdBiddingAgencyFeePayment extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 单据编码
*/
private String documentCode;
/**
* 单据日期
*/
private LocalDateTime documentDate;
/**
* 标题
*/
private String title;
/**
* 项目
*/
private String projectName;
/**
* 工程地点
*/
private String projectLocation;
/**
* 联系人
*/
private String contactPerson;
/**
* 联系方式
*/
private String contactMethod;
/**
* 投标时间
*/
private LocalDateTime biddingDate;
/**
* 代理机构名称
*/
private String agencyName;
/**
* 申请金额
*/
private Long applicationAmount;
/**
* 支付方式
*/
private String paymentMethod;
/**
* 收款银行
*/
private String receivingBank;
/**
* 收款
*/
private String receivingAccount;
/**
* 事由
*/
private String reason;
/**
* 文件ID
*/
private String fileId;
/**
* 备注
*/
private String remark;
/**
* 审核状态
*/
private String auditStatus;
}

View File

@ -0,0 +1,121 @@
package org.dromara.xzd.biddingManagement.paymentapplication.domain.bo;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAgencyFeePayment;
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.time.LocalDateTime;
/**
* 招标代理服务费支付申请业务对象 xzd_bidding_agency_fee_payment
*
* @author Lion Li
* @date 2025-10-10
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = XzdBiddingAgencyFeePayment.class, reverseConvertGenerate = false)
public class XzdBiddingAgencyFeePaymentBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 单据编码
*/
private String documentCode;
/**
* 单据日期
*/
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
private LocalDateTime documentDate;
/**
* 标题
*/
private String title;
/**
* 项目
*/
@NotBlank(message = "项目不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 工程地点
*/
private String projectLocation;
/**
* 联系人
*/
private String contactPerson;
/**
* 联系方式
*/
private String contactMethod;
/**
* 投标时间
*/
private LocalDateTime biddingDate;
/**
* 代理机构名称
*/
@NotBlank(message = "代理机构名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String agencyName;
/**
* 申请金额
*/
@NotNull(message = "申请金额不能为空", groups = { AddGroup.class, EditGroup.class })
private Long applicationAmount;
/**
* 支付方式
*/
@NotBlank(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class })
private String paymentMethod;
/**
* 收款银行
*/
private String receivingBank;
/**
* 收款
*/
private String receivingAccount;
/**
* 事由
*/
private String reason;
/**
* 文件ID
*/
private String fileId;
/**
* 备注
*/
private String remark;
/**
* 审核状态
*/
private String auditStatus;
}

View File

@ -0,0 +1,141 @@
package org.dromara.xzd.biddingManagement.paymentapplication.domain.vo;
import java.util.Date;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAgencyFeePayment;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 招标代理服务费支付申请视图对象 xzd_bidding_agency_fee_payment
*
* @author Lion Li
* @date 2025-10-10
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = XzdBiddingAgencyFeePayment.class)
public class XzdBiddingAgencyFeePaymentVo 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 title;
/**
* 项目
*/
@ExcelProperty(value = "项目")
private String projectName;
/**
* 工程地点
*/
@ExcelProperty(value = "工程地点")
private String projectLocation;
/**
* 联系人
*/
@ExcelProperty(value = "联系人")
private String contactPerson;
/**
* 联系方式
*/
@ExcelProperty(value = "联系方式")
private String contactMethod;
/**
* 投标时间
*/
@ExcelProperty(value = "投标时间")
private Date biddingDate;
/**
* 代理机构名称
*/
@ExcelProperty(value = "代理机构名称")
private String agencyName;
/**
* 申请金额
*/
@ExcelProperty(value = "申请金额")
private Long applicationAmount;
/**
* 支付方式
*/
@ExcelProperty(value = "支付方式", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "xzd_payment_method")
private String paymentMethod;
/**
* 收款银行
*/
@ExcelProperty(value = "收款银行")
private String receivingBank;
/**
* 收款
*/
@ExcelProperty(value = "收款")
private String receivingAccount;
/**
* 事由
*/
@ExcelProperty(value = "事由")
private String reason;
/**
* 文件ID
*/
@ExcelProperty(value = "文件ID")
private String fileId;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 审核状态
*/
@ExcelProperty(value = "审核状态")
private String auditStatus;
}

View File

@ -0,0 +1,15 @@
package org.dromara.xzd.biddingManagement.paymentapplication.mapper;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAgencyFeePayment;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.vo.XzdBiddingAgencyFeePaymentVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 招标代理服务费支付申请Mapper接口
*
* @author Lion Li
* @date 2025-10-10
*/
public interface XzdBiddingAgencyFeePaymentMapper extends BaseMapperPlus<XzdBiddingAgencyFeePayment, XzdBiddingAgencyFeePaymentVo> {
}

View File

@ -0,0 +1,70 @@
package org.dromara.xzd.biddingManagement.paymentapplication.service;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.vo.XzdBiddingAgencyFeePaymentVo;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.bo.XzdBiddingAgencyFeePaymentBo;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAgencyFeePayment;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List;
/**
* 招标代理服务费支付申请Service接口
*
* @author Lion Li
* @date 2025-10-10
*/
public interface IXzdBiddingAgencyFeePaymentService extends IService<XzdBiddingAgencyFeePayment>{
/**
* 查询招标代理服务费支付申请
*
* @param id 主键
* @return 招标代理服务费支付申请
*/
XzdBiddingAgencyFeePaymentVo queryById(Long id);
/**
* 分页查询招标代理服务费支付申请列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 招标代理服务费支付申请分页列表
*/
TableDataInfo<XzdBiddingAgencyFeePaymentVo> queryPageList(XzdBiddingAgencyFeePaymentBo bo, PageQuery pageQuery);
/**
* 查询符合条件的招标代理服务费支付申请列表
*
* @param bo 查询条件
* @return 招标代理服务费支付申请列表
*/
List<XzdBiddingAgencyFeePaymentVo> queryList(XzdBiddingAgencyFeePaymentBo bo);
/**
* 新增招标代理服务费支付申请
*
* @param bo 招标代理服务费支付申请
* @return 是否新增成功
*/
Boolean insertByBo(XzdBiddingAgencyFeePaymentBo bo);
/**
* 修改招标代理服务费支付申请
*
* @param bo 招标代理服务费支付申请
* @return 是否修改成功
*/
Boolean updateByBo(XzdBiddingAgencyFeePaymentBo bo);
/**
* 校验并批量删除招标代理服务费支付申请信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@ -0,0 +1,158 @@
package org.dromara.xzd.biddingManagement.paymentapplication.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.utilS.AreaUtil;
import org.springframework.stereotype.Service;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.bo.XzdBiddingAgencyFeePaymentBo;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.vo.XzdBiddingAgencyFeePaymentVo;
import org.dromara.xzd.biddingManagement.paymentapplication.domain.XzdBiddingAgencyFeePayment;
import org.dromara.xzd.biddingManagement.paymentapplication.mapper.XzdBiddingAgencyFeePaymentMapper;
import org.dromara.xzd.biddingManagement.paymentapplication.service.IXzdBiddingAgencyFeePaymentService;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 招标代理服务费支付申请Service业务层处理
*
* @author Lion Li
* @date 2025-10-10
*/
@RequiredArgsConstructor
@Service
public class XzdBiddingAgencyFeePaymentServiceImpl extends ServiceImpl<XzdBiddingAgencyFeePaymentMapper, XzdBiddingAgencyFeePayment> implements IXzdBiddingAgencyFeePaymentService {
private final XzdBiddingAgencyFeePaymentMapper baseMapper;
private final AreaUtil areaUtil;
/**
* 查询招标代理服务费支付申请
*
* @param id 主键
* @return 招标代理服务费支付申请
*/
@Override
public XzdBiddingAgencyFeePaymentVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询招标代理服务费支付申请列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 招标代理服务费支付申请分页列表
*/
@Override
public TableDataInfo<XzdBiddingAgencyFeePaymentVo> queryPageList(XzdBiddingAgencyFeePaymentBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<XzdBiddingAgencyFeePayment> lqw = buildQueryWrapper(bo);
Page<XzdBiddingAgencyFeePaymentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的招标代理服务费支付申请列表
*
* @param bo 查询条件
* @return 招标代理服务费支付申请列表
*/
@Override
public List<XzdBiddingAgencyFeePaymentVo> queryList(XzdBiddingAgencyFeePaymentBo bo) {
LambdaQueryWrapper<XzdBiddingAgencyFeePayment> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<XzdBiddingAgencyFeePayment> buildQueryWrapper(XzdBiddingAgencyFeePaymentBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdBiddingAgencyFeePayment> lqw = Wrappers.lambdaQuery();
lqw.orderByDesc(XzdBiddingAgencyFeePayment::getId);
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdBiddingAgencyFeePayment::getDocumentCode, bo.getDocumentCode());
lqw.eq(bo.getDocumentDate() != null, XzdBiddingAgencyFeePayment::getDocumentDate, bo.getDocumentDate());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdBiddingAgencyFeePayment::getTitle, bo.getTitle());
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBiddingAgencyFeePayment::getProjectName, bo.getProjectName());
lqw.eq(StringUtils.isNotBlank(bo.getProjectLocation()), XzdBiddingAgencyFeePayment::getProjectLocation, bo.getProjectLocation());
lqw.eq(StringUtils.isNotBlank(bo.getContactPerson()), XzdBiddingAgencyFeePayment::getContactPerson, bo.getContactPerson());
lqw.eq(StringUtils.isNotBlank(bo.getContactMethod()), XzdBiddingAgencyFeePayment::getContactMethod, bo.getContactMethod());
lqw.eq(bo.getBiddingDate() != null, XzdBiddingAgencyFeePayment::getBiddingDate, bo.getBiddingDate());
lqw.like(StringUtils.isNotBlank(bo.getAgencyName()), XzdBiddingAgencyFeePayment::getAgencyName, bo.getAgencyName());
lqw.eq(bo.getApplicationAmount() != null, XzdBiddingAgencyFeePayment::getApplicationAmount, bo.getApplicationAmount());
lqw.eq(StringUtils.isNotBlank(bo.getPaymentMethod()), XzdBiddingAgencyFeePayment::getPaymentMethod, bo.getPaymentMethod());
lqw.eq(StringUtils.isNotBlank(bo.getReceivingBank()), XzdBiddingAgencyFeePayment::getReceivingBank, bo.getReceivingBank());
lqw.eq(StringUtils.isNotBlank(bo.getReceivingAccount()), XzdBiddingAgencyFeePayment::getReceivingAccount, bo.getReceivingAccount());
lqw.eq(StringUtils.isNotBlank(bo.getReason()), XzdBiddingAgencyFeePayment::getReason, bo.getReason());
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBiddingAgencyFeePayment::getFileId, bo.getFileId());
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBiddingAgencyFeePayment::getAuditStatus, bo.getAuditStatus());
return lqw;
}
/**
* 新增招标代理服务费支付申请
*
* @param bo 招标代理服务费支付申请
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(XzdBiddingAgencyFeePaymentBo bo) {
XzdBiddingAgencyFeePayment add = MapstructUtils.convert(bo, XzdBiddingAgencyFeePayment.class);
validEntityBeforeSave(add);
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBiddingAgencyFeePayment>().gt(XzdBiddingAgencyFeePayment::getCreateTime, LocalDateTime.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(XzdBiddingAgencyFeePaymentBo bo) {
XzdBiddingAgencyFeePayment update = MapstructUtils.convert(bo, XzdBiddingAgencyFeePayment.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(XzdBiddingAgencyFeePayment 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

@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.xzd.biddingManagement.mapper.XzdBidPreProjectMapper">
<select id="queryPageListBy" resultType="org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo">
SELECT
a.*,
b.*
FROM
xzd_bid_pre_project a
LEFT JOIN xzd_bqlx_project_info b ON a.id = b.bid_pre_project_id
<where>
<if test="bo.projectNumber != null and bo.projectNumber != ''">
AND a.project_number = #{bo.projectNumber}
</if>
<if test="bo.projectName != null and bo.projectName != ''">
AND a.project_name = #{bo.projectName}
</if>
<if test="bo.projectTypeId != null and bo.projectTypeId != ''">
AND a.project_type_id = #{bo.projectTypeId}
</if>
<if test="bo.createBy != null and bo.createBy != ''">
AND a.create_by = #{bo.createBy}
</if>
<if test="bo.createDept != null and bo.createDept != ''">
AND a.create_dept = #{bo.createDept}
</if>
<if test="bo.constructionUnit != null and bo.constructionUnit != ''">
AND b.construction_unit = #{bo.constructionUnit}
</if>
<if test="bo.remark != null and bo.remark != ''">
AND b.remark = #{bo.remark}
</if>
</where>
ORDER BY a.create_time DESC
LIMIT #{bo.num}, #{pageSize}
</select>
<select id="queryPageListByNum" resultType="java.lang.Integer">
select count(*) FROM
xzd_bid_pre_project a
LEFT JOIN xzd_bqlx_project_info b ON a.id = b.bid_pre_project_id
<where>
<if test="bo.projectNumber != null and bo.projectNumber != ''">
AND a.project_number = #{bo.projectNumber}
</if>
<if test="bo.projectName != null and bo.projectName != ''">
AND a.project_name = #{bo.projectName}
</if>
<if test="bo.projectTypeId != null and bo.projectTypeId != ''">
AND a.project_type_id = #{bo.projectTypeId}
</if>
<if test="bo.createBy != null and bo.createBy != ''">
AND a.create_by = #{bo.createBy}
</if>
<if test="bo.createDept != null and bo.createDept != ''">
AND a.create_dept = #{bo.createDept}
</if>
<if test="bo.constructionUnit != null and bo.constructionUnit != ''">
AND b.construction_unit = #{bo.constructionUnit}
</if>
<if test="bo.remark != null and bo.remark != ''">
AND b.remark = #{bo.remark}
</if>
</where>
</select>
</mapper>

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBidPreProjectMapper">
<resultMap id="XzdBidPreProjectVoMap" type="XzdBidPreProjectVo">
<id column="id" property="id"/>
<result column="project_number" property="projectNumber"/>
<result column="project_name" property="projectName"/>
<result column="country" property="country"/>
<result column="province" property="province"/>
<result column="city" property="city"/>
<result column="district" property="district"/>
<result column="project_location" property="projectLocation"/>
<result column="capital_source" property="capitalSource"/>
<result column="contracting_method" property="contractingMethod"/>
<result column="operation_mode" property="operationMode"/>
<result column="project_type_id" property="projectTypeId"/>
<result column="bidding_method" property="biddingMethod"/>
<result column="liaison_method" property="liaisonMethod"/>
<result column="investment_unit" property="investmentUnit"/>
<result column="project_cost" property="projectCost"/>
<result column="information_cost" property="informationCost"/>
<result column="file_id" property="fileId"/>
<result column="remark" property="remark"/>
<result column="audit_status" property="auditStatus"/>
<result column="create_by" property="createBy"/>
<result column="bill_date" property="billDate"/>
<result column="joint_investment_entity" property="jointInvestmentEntity"/>
<result column="contact_information" property="contactInformation"/>
</resultMap>
<resultMap id="XzdBqlxProjectInfoVoMap" type="XzdBqlxProjectInfoVo">
<id column="id" property="id"/>
<result column="bid_pre_project_id" property="bidPreProjectId"/>
<result column="expected_start_date" property="expectedStartDate"/>
<result column="qualification_requirement" property="qualificationRequirement"/>
<result column="bid_start_date" property="bidStartDate"/>
<result column="bid_end_date" property="bidEndDate"/>
<result column="submission_deadline" property="submissionDeadline"/>
<result column="reporting_organization" property="reportingOrganization"/>
<result column="design_description" property="designDescription"/>
<result column="project_status" property="projectStatus"/>
<result column="bidding_announcement_address" property="biddingAnnouncementAddress"/>
<result column="quality_requirement" property="qualityRequirement"/>
<result column="duration_days" property="durationDays"/>
<result column="lowest_qualification_requirement" property="lowestQualificationRequirement"/>
<result column="project_manager_requirement" property="projectManagerRequirement"/>
<result column="performance_requirement" property="performanceRequirement"/>
<result column="start_date" property="startDate"/>
<result column="evaluation_method" property="evaluationMethod"/>
<result column="bidding_deposit_form" property="biddingDepositForm"/>
<result column="bidding_deposit" property="biddingDeposit"/>
<result column="construction_unit" property="constructionUnit"/>
<result column="construction_person" property="constructionPerson"/>
<result column="construction_method" property="constructionMethod"/>
<result column="bidding_unit" property="biddingUnit"/>
<result column="bidding_person" property="biddingPerson"/>
<result column="bidding_method" property="biddingMethod"/>
<result column="cost_price" property="costPrice"/>
<result column="bidding_price_control" property="biddingPriceControl"/>
<result column="project_number" property="projectNumber"/>
<result column="default_finance" property="defaultFinance"/>
<result column="involve_finance" property="involveFinance"/>
<result column="file_id" property="fileId"/>
<result column="remark" property="remark"/>
<result column="audit_status" property="auditStatus"/>
</resultMap>
<!-- 包装类的 ResultMap -->
<resultMap id="ProjectWrapperResultMap" type="QuerListXzdBidPreVo">
<association property="xzdBidPreProjectVo" resultMap="XzdBidPreProjectVoMap"/>
<association property="xzdBqlxProjectInfoVo" resultMap="XzdBqlxProjectInfoVoMap"/>
</resultMap>
<select id="queryPageListBy" resultMap="ProjectWrapperResultMap">
SELECT
a.* ,
b.*
FROM
xzd_bid_pre_project a
LEFT JOIN xzd_bqlx_project_info b ON a.id = b.bid_pre_project_id
<where>
<if test="bo.projectNumber != null and bo.projectNumber != ''">
AND a.project_number = #{bo.projectNumber}
</if>
<if test="bo.projectName != null and bo.projectName != ''">
AND a.project_name = #{bo.projectName}
</if>
<if test="bo.projectTypeId != null and bo.projectTypeId != ''">
AND a.project_type_id = #{bo.projectTypeId}
</if>
<if test="bo.createBy != null and bo.createBy != ''">
AND a.create_by = #{bo.createBy}
</if>
<if test="bo.createDept != null and bo.createDept != ''">
AND a.create_dept = #{bo.createDept}
</if>
<if test="bo.constructionUnit != null and bo.constructionUnit != ''">
AND b.construction_unit = #{bo.constructionUnit}
</if>
<if test="bo.remark != null and bo.remark != ''">
AND b.remark = #{bo.remark}
</if>
</where>
ORDER BY a.create_time DESC
LIMIT #{bo.num}, #{pageSize}
</select>
<select id="queryPageListByNum" resultType="java.lang.Integer">
select count(*) FROM
xzd_bid_pre_project a
LEFT JOIN xzd_bqlx_project_info b ON a.id = b.bid_pre_project_id
<where>
<if test="bo.projectNumber != null and bo.projectNumber != ''">
AND a.project_number = #{bo.projectNumber}
</if>
<if test="bo.projectName != null and bo.projectName != ''">
AND a.project_name = #{bo.projectName}
</if>
<if test="bo.projectTypeId != null and bo.projectTypeId != ''">
AND a.project_type_id = #{bo.projectTypeId}
</if>
<if test="bo.createBy != null and bo.createBy != ''">
AND a.create_by = #{bo.createBy}
</if>
<if test="bo.createDept != null and bo.createDept != ''">
AND a.create_dept = #{bo.createDept}
</if>
<if test="bo.constructionUnit != null and bo.constructionUnit != ''">
AND b.construction_unit = #{bo.constructionUnit}
</if>
<if test="bo.remark != null and bo.remark != ''">
AND b.remark = #{bo.remark}
</if>
</where>
</select>
</mapper>