招投标
This commit is contained in:
parent
64d469210a
commit
3717cbc4ce
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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> {
|
||||
}
|
|
@ -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> {
|
||||
}
|
|
@ -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> {
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
|
||||
}
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue