招投标

This commit is contained in:
高雄 2025-07-28 18:19:42 +08:00 committed by 何德超
parent 64d469210a
commit 3717cbc4ce
26 changed files with 990 additions and 2 deletions

View File

@ -0,0 +1,62 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/28/周一 15:42
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("bidding_info")
@ApiModel(value="BiddingInfoEntity对象", description="招标信息表")
public class BiddingInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -2451841606051749490L;
@ApiModelProperty("招标信息id")
@TableId(type = IdType.ASSIGN_UUID)
private String biddingInfoId;
@ApiModelProperty("招标项目")
private String biddingProject;
@ApiModelProperty("招标公司")
private String biddingCompany;
@ApiModelProperty("招标金额")
private BigDecimal biddingAmount;
@ApiModelProperty("招标截止时间")
private String biddingDeadline;
@ApiModelProperty("招标信息录入时间")
private LocalDateTime infoEntryTime;
@ApiModelProperty("招标信息来源")
private String source;
@ApiModelProperty("招标信息来源网址")
private String sourceWebsite;
@ApiModelProperty("招标文件")
private String biddingFile;
@ApiModelProperty("状态0-待报名1-已报名")
private String status;
}

View File

@ -0,0 +1,54 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/28/周一 15:44
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("outbid_info")
@ApiModel(value="OutbidInfoEntity对象", description="中标通知信息表")
public class OutbidInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 6941283868242292970L;
@ApiModelProperty("中标通知信息id")
@TableId(type = IdType.ASSIGN_UUID)
private String outbidId;
@ApiModelProperty("招标信息id")
private String biddingInfoId;
@ApiModelProperty("中标金额,单位元,精确到分")
private BigDecimal outbidAmount;
@ApiModelProperty("工期,单位天")
private Integer duration;
@ApiModelProperty("中标通知日期")
private LocalDateTime outbidNotifyDate;
@ApiModelProperty("中标通知文件")
private String outbidFile;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableLogic(value = "0", delval = "1")
private String delFlag;
}

View File

@ -0,0 +1,63 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author Bear.G
* @date 2025/7/28/周一 15:47
* @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("tender_info")
@ApiModel(value="TenderInfoEntity对象", description="投标信息表")
public class TenderInfoEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -5677009089047831619L;
@ApiModelProperty("投标信息id")
@TableId(type = IdType.ASSIGN_UUID)
private String tenderInfoId;
@ApiModelProperty("招标信息id")
private String biddingInfoId;
@ApiModelProperty("投标金额")
private BigDecimal tenderAmount;
@ApiModelProperty("项目地址")
private String projectAddress;
@ApiModelProperty("项目类型")
private String projectType;
@ApiModelProperty("项目描述")
private String projectDescription;
@ApiModelProperty("投标负责人")
private String tenderManager;
@ApiModelProperty("投标负责人手机号")
private String tenderManagerPhone;
@ApiModelProperty("投标文件")
private String tenderFile;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableLogic(value = "0", delval = "1")
private String delFlag;
}

View File

@ -0,0 +1,55 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:18
* @description
*/
@Data
@ApiModel("招标信息请求实体")
public class BiddingInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = 6967025339487392364L;
@ApiModelProperty("招标项目")
@Size(max = 50, message = "招标项目不能超过50个字符")
private String biddingProject;
@ApiModelProperty("招标公司")
@Size(max = 50, message = "招标公司不能超过50个字符")
private String biddingCompany;
@ApiModelProperty("招标金额")
private BigDecimal biddingAmount;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招标截止时间")
private LocalDateTime biddingDeadline;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("信息录入时间")
private LocalDateTime infoEntryTime;
@ApiModelProperty("信息来源")
@Size(max = 50, message = "信息来源不能超过50个字符")
private String source;
@ApiModelProperty("信息来源网址")
@Size(max = 500, message = "信息来源网址不能超过500个字符")
private String sourceWebsite;
@ApiModelProperty("招标文件")
@Size(max = 200, message = "招标文件不能超过200个字符")
private String biddingFile;
}

View File

@ -0,0 +1,23 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:17
* @description
*/
@Data
@ApiModel("招标信息响应实体")
public class BiddingInfoResp extends BiddingInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = 2750666223381829115L;
@ApiModelProperty("招标信息id")
private String biddingInfoId;
}

View File

@ -0,0 +1,46 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/28/周一 17:05
* @description
*/
@Data
@ApiModel("中标信息请求实体")
public class OutbidInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = -1781661335173747275L;
@ApiModelProperty("中标信息ID")
@NotBlank(message = "中标信息ID不能为空")
private String biddingInfoId;
@ApiModelProperty("中标金额")
private BigDecimal outBidAmount;
@ApiModelProperty("工期")
private Integer duration;
@ApiModelProperty("中标通知日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime outbidNotifyDate;
@ApiModelProperty("中标通知文件")
@Size(max = 200, message = "中标通知文件长度不能超过200")
private String outbidNoticeFile;
@ApiModelProperty("状态0-已通知1-已签约")
private String status;
}

View File

@ -0,0 +1,29 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/7/28/周一 17:36
* @description
*/
@Data
@ApiModel("中标信息响应实体")
public class OutbidInfoResp extends OutbidInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = -718886028432322862L;
@ApiModelProperty("中标信息ID")
private String outbidInfoId;
@ApiModelProperty("招标项目")
private String biddingProject;
@ApiModelProperty("招标公司")
private String biddingCompany;
}

View File

@ -0,0 +1,54 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:23
* @description
*/
@Data
@ApiModel("投标信息请求实体")
public class TenderInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = -5653933337345116548L;
@ApiModelProperty("招标信息id")
@NotBlank(message = "招标信息id不能为空")
private String biddingInfoId;
@ApiModelProperty("投标金额")
private BigDecimal tenderAmount;
@ApiModelProperty("项目地址")
@Size(max = 500, message = "项目地址不能超过500个字符")
private String projectAddress;
@ApiModelProperty("项目类型,枚举ProjectTypeEnum")
private String projectType;
@ApiModelProperty("招标负责人")
@Size(min = 32, max = 32, message = "招标负责人长度必须为32个字符")
private String tenderManager;
@Size(min = 11, max = 11, message = "招标负责人联系方式长度必须为11个字符")
@ApiModelProperty("招标负责人联系方式")
private String tenderManagerPhone;
@Size(max = 100, message = "投标文件不能超过100个字符")
@ApiModelProperty("投标文件")
private String tenderFile;
@Size(max = 500, message = "项目描述不能超过500个字符")
@ApiModelProperty("项目描述")
private String projectDescription;
}

View File

@ -0,0 +1,36 @@
package com.dite.znpt.domain.vo;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:50
* @description
*/
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:49
* @description
*/
@Data
@ApiModel("投标信息响应实体")
public class TenderInfoResp extends BiddingInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = -8445413467535624096L;
@ApiModelProperty("投标标信息ID")
private String tenderInfoId;
@ApiModelProperty("招标项目")
private String biddingProject;
@ApiModelProperty("招标公司")
private String biddingCompany;
}

View File

@ -0,0 +1,49 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:35
* @description
*/
@Getter
@AllArgsConstructor
public enum ProjectTypeEnum {
BLADE_CHECK("blade_check", "风电叶片检查"),
OPERATION("operation", "风电运维"),
INSTALL("install", "风电安装"),
OTHER("other", "其他");
private final String code;
private final String desc;
public static ProjectTypeEnum getByCode(String code){
for (ProjectTypeEnum e : ProjectTypeEnum.values() ) {
if(e.code.equals(code)){
return e;
}
}
return null;
}
public static String getDescByCode(String code){
ProjectTypeEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll(){
List<JSONObject> list = new ArrayList<>(ProjectTypeEnum.values().length);
for (ProjectTypeEnum e : ProjectTypeEnum.values() ) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(String.valueOf(e.code), e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,12 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.BiddingInfoEntity;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:06
* @description
*/
public interface BiddingInfoMapper extends BaseMapper<BiddingInfoEntity> {
}

View File

@ -0,0 +1,12 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.OutbidInfoEntity;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:11
* @description
*/
public interface OutbidInfoMapper extends BaseMapper<OutbidInfoEntity> {
}

View File

@ -0,0 +1,12 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.TenderInfoEntity;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:08
* @description
*/
public interface TenderInfoMapper extends BaseMapper<TenderInfoEntity> {
}

View File

@ -0,0 +1,24 @@
package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.BiddingInfoEntity;
import com.dite.znpt.domain.vo.BiddingInfoReq;
import com.dite.znpt.domain.vo.BiddingInfoResp;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:06
* @description
*/
public interface BiddingInfoService extends IService<BiddingInfoEntity> {
List<BiddingInfoResp> page(String projectName);
List<BiddingInfoResp> list(String projectName);
void save(BiddingInfoReq req);
void update(String biddingInfoId, BiddingInfoReq req);
void apply(String biddingInfoId);
void uploadBiddingInfoFile(String biddingInfoId, MultipartFile file);
}

View File

@ -0,0 +1,27 @@
package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.OutbidInfoEntity;
import com.dite.znpt.domain.vo.OutbidInfoReq;
import com.dite.znpt.domain.vo.OutbidInfoResp;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:11
* @description
*/
public interface OutbidInfoService extends IService<OutbidInfoEntity> {
List<OutbidInfoResp> page(String projectName);
List<OutbidInfoResp> list(String projectName);
OutbidInfoResp detail(String outbidInfoId);
void save(OutbidInfoReq req);
void update(String outbidInfoId, OutbidInfoReq req);
void deleteById(String outbidInfoId);
void uploadOutbidInfoFile(String outbidInfoId, MultipartFile file);
void downLoadTenderInfoFile(String outbidInfoId, HttpServletResponse response);
}

View File

@ -0,0 +1,25 @@
package com.dite.znpt.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.TenderInfoEntity;
import com.dite.znpt.domain.vo.TenderInfoReq;
import com.dite.znpt.domain.vo.TenderInfoResp;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:09
* @description
*/
public interface TenderInfoService extends IService<TenderInfoEntity> {
List<TenderInfoResp> page(String projectName);
List<TenderInfoResp> list(String projectName);
TenderInfoResp detail(String tenderInfoId);
void save(TenderInfoReq req);
void update(String tenderInfoId, TenderInfoReq req);
void deleteById(String tenderInfoId);
void uploadBiddingInfoFile(String tenderInfoId, MultipartFile file);
}

View File

@ -0,0 +1,51 @@
package com.dite.znpt.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.domain.entity.BiddingInfoEntity;
import com.dite.znpt.domain.vo.BiddingInfoReq;
import com.dite.znpt.domain.vo.BiddingInfoResp;
import com.dite.znpt.mapper.BiddingInfoMapper;
import com.dite.znpt.service.BiddingInfoService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:07
* @description
*/
@Service
public class BiddingInfoServiceImpl extends ServiceImpl<BiddingInfoMapper, BiddingInfoEntity> implements BiddingInfoService {
@Override
public List<BiddingInfoResp> page(String projectName) {
return List.of();
}
@Override
public List<BiddingInfoResp> list(String projectName) {
return List.of();
}
@Override
public void save(BiddingInfoReq req) {
}
@Override
public void update(String biddingInfoId, BiddingInfoReq req) {
}
@Override
public void apply(String biddingInfoId) {
}
@Override
public void uploadBiddingInfoFile(String biddingInfoId, MultipartFile file) {
}
}

View File

@ -0,0 +1,61 @@
package com.dite.znpt.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.domain.entity.OutbidInfoEntity;
import com.dite.znpt.domain.vo.OutbidInfoReq;
import com.dite.znpt.domain.vo.OutbidInfoResp;
import com.dite.znpt.mapper.OutbidInfoMapper;
import com.dite.znpt.service.OutbidInfoService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:12
* @description
*/
@Service
public class OutbidInfoServiceImpl extends ServiceImpl<OutbidInfoMapper, OutbidInfoEntity> implements OutbidInfoService {
@Override
public List<OutbidInfoResp> page(String projectName) {
return List.of();
}
@Override
public List<OutbidInfoResp> list(String projectName) {
return List.of();
}
@Override
public OutbidInfoResp detail(String outbidInfoId) {
return null;
}
@Override
public void save(OutbidInfoReq req) {
}
@Override
public void update(String outbidInfoId, OutbidInfoReq req) {
}
@Override
public void deleteById(String outbidInfoId) {
}
@Override
public void uploadOutbidInfoFile(String outbidInfoId, MultipartFile file) {
}
@Override
public void downLoadTenderInfoFile(String outbidInfoId, HttpServletResponse response) {
}
}

View File

@ -0,0 +1,55 @@
package com.dite.znpt.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.domain.entity.TenderInfoEntity;
import com.dite.znpt.domain.vo.TenderInfoReq;
import com.dite.znpt.domain.vo.TenderInfoResp;
import com.dite.znpt.mapper.TenderInfoMapper;
import com.dite.znpt.service.TenderInfoService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:09
* @description
*/
@Service
public class TenderInfoServiceImpl extends ServiceImpl<TenderInfoMapper, TenderInfoEntity> implements TenderInfoService {
@Override
public List<TenderInfoResp> page(String projectName) {
return null;
}
@Override
public List<TenderInfoResp> list(String projectName) {
return List.of();
}
@Override
public TenderInfoResp detail(String tenderInfoId) {
return null;
}
@Override
public void save(TenderInfoReq req) {
}
@Override
public void update(String tenderInfoId, TenderInfoReq req) {
}
@Override
public void deleteById(String tenderInfoId) {
}
@Override
public void uploadBiddingInfoFile(String tenderInfoId, MultipartFile file) {
}
}

View File

@ -0,0 +1,5 @@
<?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="com.dite.znpt.mapper.BiddingInfoMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?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="com.dite.znpt.mapper.OutbidInfoMapper">
</mapper>

View File

@ -16,7 +16,7 @@
LEFT JOIN role r ON ur.role_id = r.role_id
LEFT JOIN user_post up ON up.user_id = u.user_id
LEFT JOIN post p ON p.post_id = up.post_id
<where>
WHERE u.del_flag = '0'
<if test="userCode != null and userCode != ''">
AND u.user_code LIKE concat ('%', #{userCode}, '%')
</if>
@ -38,7 +38,6 @@
<if test="userType != null and userType!=''">
AND u.user_Type = #{userType}
</if>
</where>
GROUP BY u.user_id, u.account, u.status, u.name, u.user_code, u.user_type, u.user_status, d.dept_name, u.mobile, u.create_time
</select>
</mapper>

View File

@ -0,0 +1,5 @@
<?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="com.dite.znpt.mapper.TenderInfoMapper">
</mapper>

View File

@ -0,0 +1,68 @@
package com.dite.znpt.web.controller;
import com.dite.znpt.domain.PageResult;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.vo.BiddingInfoReq;
import com.dite.znpt.domain.vo.BiddingInfoResp;
import com.dite.znpt.service.BiddingInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:07
* @description
*/
@Api(tags = "招标信息")
@RestController
@RequestMapping("/bidding-info")
public class BiddingInfoController {
@Resource
private BiddingInfoService biddingInfoService;
@ApiOperation(value = "分页查询招标信息列表", httpMethod = "GET")
@GetMapping("/page")
public PageResult<BiddingInfoResp> page(String projectName) {
return PageResult.ok(biddingInfoService.page(projectName));
}
@ApiOperation(value = "查询招标信息列表", httpMethod = "GET")
@GetMapping("/list")
public Result<List<BiddingInfoResp>> list(String projectName) {
return Result.ok(biddingInfoService.list(projectName));
}
@ApiOperation(value = "新增招标信息", httpMethod = "POST")
@PostMapping
public Result<?> add(@Validated @RequestBody BiddingInfoReq req){
biddingInfoService.save(req);
return Result.ok();
}
@ApiOperation(value = "编辑招标小心", httpMethod = "POST")
@PutMapping
public Result<?> edit(@PathVariable String biddingInfoId, @Validated @RequestBody BiddingInfoReq req){
biddingInfoService.update(biddingInfoId, req);
return Result.ok();
}
@ApiOperation(value = "报名", httpMethod = "PUT")
public Result<?> apply(@PathVariable String biddingInfoId){
biddingInfoService.apply(biddingInfoId);
return Result.ok();
}
@ApiOperation(value = "上传招标信息文件", httpMethod = "POST")
@PostMapping("/upload-bidding-info-file/{biddingInfoId}")
public Result<?> uploadBiddingInfoFile(@PathVariable String biddingInfoId, @RequestParam("file") MultipartFile file) {
biddingInfoService.uploadBiddingInfoFile(biddingInfoId, file);
return Result.ok();
}
}

View File

@ -0,0 +1,81 @@
package com.dite.znpt.web.controller;
import com.dite.znpt.domain.PageResult;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.vo.OutbidInfoReq;
import com.dite.znpt.domain.vo.OutbidInfoResp;
import com.dite.znpt.service.OutbidInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:13
* @description
*/
@Api(tags = "中标通知信息")
@RestController
@RequestMapping("/outbid-info")
public class OutbidInfoController {
@Resource
private OutbidInfoService outbidInfoService;
@ApiOperation(value = "分页查询中标通知信息列表", httpMethod = "GET")
@GetMapping("/page")
public PageResult<OutbidInfoResp> page(String projectName){
return PageResult.ok(outbidInfoService.page(projectName));
}
@ApiOperation(value = "查询中标通知信息列表", httpMethod = "GET")
@GetMapping("/list")
public Result<?> list(String projectName){
return Result.ok(outbidInfoService.list(projectName));
}
@ApiOperation(value = "根据中标通知信息Id获取详细信息", httpMethod = "GET")
@GetMapping("/detail/{outbidInfoId}")
public Result<OutbidInfoResp> detail(@PathVariable String outbidInfoId){
return Result.ok(outbidInfoService.detail(outbidInfoId));
}
@ApiOperation(value = "新增中标通知信息", httpMethod = "POST")
@PostMapping
public Result<Object> add(@RequestBody OutbidInfoReq req){
outbidInfoService.save(req);
return Result.ok();
}
@ApiOperation(value = "根据中标通知信息Id更新信息", httpMethod = "PUT")
@PutMapping("/{outbidInfoId}")
public Result<Object> update(@PathVariable String outbidInfoId, @RequestBody OutbidInfoReq req){
outbidInfoService.update(outbidInfoId, req);
return Result.ok();
}
@ApiOperation(value = "根据中标通知信息Id删除信息", httpMethod = "DELETE")
@DeleteMapping("/{outbidInfoId}")
public Result<Object> delete(@PathVariable String outbidInfoId){
outbidInfoService.deleteById(outbidInfoId);
return Result.ok();
}
@ApiOperation(value = "上传中标通知信息文件", httpMethod = "POST")
@PostMapping("/upload-outbid-info-file/{outBidInfoId}")
public Result<?> uploadTenderInfoFile(@PathVariable String outBidInfoId, @RequestParam("file") MultipartFile file) {
outbidInfoService.uploadOutbidInfoFile(outBidInfoId, file);
return Result.ok();
}
@ApiOperation(value = "下载中标通知信息文件", httpMethod = "POST")
@PostMapping("/download-outbid-info-file/{outBidInfoId}")
public Result<?> downLoadTenderInfoFile(@PathVariable String outBidInfoId, HttpServletResponse response) {
outbidInfoService.downLoadTenderInfoFile(outBidInfoId, response);
return Result.ok();
}
}

View File

@ -0,0 +1,75 @@
package com.dite.znpt.web.controller;
import com.dite.znpt.domain.PageResult;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.vo.TenderInfoReq;
import com.dite.znpt.domain.vo.TenderInfoResp;
import com.dite.znpt.service.TenderInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:10
* @description
*/
@Api(tags = "投标信息")
@RestController
@RequestMapping("/tender-info")
public class TenderInfoController {
@Resource
private TenderInfoService tenderInfoService;
@ApiOperation(value = "分页查询投标信息列表", httpMethod = "GET")
@GetMapping("/page")
public PageResult<TenderInfoResp> page(String projectName){
return PageResult.ok(tenderInfoService.page(projectName));
}
@ApiOperation(value = "查询投标信息列表", httpMethod = "GET")
@GetMapping("/list")
public Result<List<TenderInfoResp>> list(String projectName){
return Result.ok(tenderInfoService.list(projectName));
}
@ApiOperation(value = "根据投标信息Id获取详细信息", httpMethod = "GET")
@GetMapping("/detail/{tenderInfoId}")
public Result<TenderInfoResp> detail(@PathVariable String tenderInfoId){
return Result.ok(tenderInfoService.detail(tenderInfoId));
}
@ApiOperation(value = "新增投标信息", httpMethod = "POST")
@PostMapping
public Result<?> add(@Validated @RequestBody TenderInfoReq req) {
tenderInfoService.save(req);
return Result.ok();
}
@ApiOperation(value = "修改投标信息", httpMethod = "PUT")
@PutMapping("/{tenderInfoId}")
public Result<?> edit(@PathVariable String tenderInfoId, @Validated @RequestBody TenderInfoReq req) {
tenderInfoService.update(tenderInfoId, req);
return Result.ok();
}
@ApiOperation(value = "删除投标信息", httpMethod = "DELETE")
@DeleteMapping("/{tenderInfoId}")
public Result<?> delete(@PathVariable String tenderInfoId) {
tenderInfoService.deleteById(tenderInfoId);
return Result.ok();
}
@ApiOperation(value = "上传投标信息文件", httpMethod = "POST")
@PostMapping("/upload-tender-info-file/{tenderInfoId}")
public Result<?> uploadTenderInfoFile(@PathVariable String tenderInfoId, @RequestParam("file") MultipartFile file) {
tenderInfoService.uploadBiddingInfoFile(tenderInfoId, file);
return Result.ok();
}
}