Commit bc2e88e2 authored by 张富洋's avatar 张富洋

Merge branch 'e路阳光子系统' into 'master'

E路阳光子系统

See merge request !1
parents 2ed3c35c 33944c10
......@@ -68,6 +68,12 @@
<artifactId>spring-boot-starter-webmvc-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
<build>
......
......@@ -8,6 +8,7 @@ public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
package com.example.demo.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OpenApiConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("Spring Boot MySQL API 文档")
.version("1.0")
.description("Spring Boot 项目 API 文档")
.contact(new Contact()
.name("开发者")
.email("developer@example.com")
.url("https://example.com"))
.license(new License()
.name("Apache 2.0")
.url("https://springdoc.org"))
.termsOfService("https://example.com/terms"));
}
}
\ No newline at end of file
package com.example.demo.controller;
import com.example.demo.dto.ERoadPushBid;
import com.example.demo.dto.ERoadPushTender;
import com.example.demo.dto.SupervisorPlatformResponse;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.example.demo.service.ERoadService;
@RestController
@RequestMapping("/api/eRoad")
@RequiredArgsConstructor
@Tag(name = "e路阳光")
public class ERoadController {
private final ERoadService eService;
@PostMapping("/writeSimilarityDetailAndInfo")
@Operation(
description = "写入投标文件雷同分析表和雷同明细",
summary = "写入投标文件雷同分析表和雷同明细"
)
public ResponseEntity<?> writeSimilarityDetail(@RequestBody ERoadPushTender request){
String infoMessage = eService.writeSimilarityInfo(request.getYwBiddingfileSimilarityInfoRequest());
String detailMessage = eService.writeSimilarityDetail(request.getYwBiddingfileSimilarityDetailRequest());
SupervisorPlatformResponse response = new SupervisorPlatformResponse();
response.setMsg(infoMessage+";"+detailMessage);
return ResponseEntity.ok(response);
}
@PostMapping("/writeReviewDetailAndInfo")
@Operation(
description = "写入招标文件审查基础表和明细结果表",
summary = "写入招标文件审查基础表和明细结果表"
)
public ResponseEntity<?> writeReviewDetail(@RequestBody ERoadPushBid request){
String infoMessage = eService.batchWriteReviewDetail(request.getYwBidfileReviewDetailListRequest());
String detailMessage = eService.writeReviewInfo(request.getYwBidfileReviewInfoRequest());
SupervisorPlatformResponse response = new SupervisorPlatformResponse();
response.setMsg(infoMessage+";"+detailMessage);
return ResponseEntity.ok(response);
}
}
package com.example.demo.dto;
import lombok.Data;
import java.util.List;
@Data
public class ERoadPushBid {
private YwBidfileReviewInfoRequest ywBidfileReviewInfoRequest;
private List<YwBidfileReviewDetailRequest> ywBidfileReviewDetailListRequest;
}
package com.example.demo.dto;
import lombok.Data;
import java.util.List;
@Data
public class ERoadPushTender {
private YwBiddingfileSimilarityInfoRequest ywBiddingfileSimilarityInfoRequest;
private List<YwBiddingfileSimilarityDetailRequest> ywBiddingfileSimilarityDetailRequest;
}
package com.example.demo.dto;
import lombok.Data;
@Data
public class SupervisorPlatformResponse {
private String code;
private String msg;
private String resTime;
private Object data;
}
\ No newline at end of file
package com.example.demo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class YwBiddingfileSimilarityDetailRequest {
@Schema(description = "行唯一标识", example = "550e8400-e29b-41d4-a716-446655440000")
private String rowguid;
@Schema(description = "标段名称", example = "XX高速公路建设项目第1标段", required = true)
private String biaoduanname;
@Schema(description = "标段编号", example = "BD-2023-001", required = true)
private String biaoduanno;
@Schema(description = "投标单位名称", example = "XX建设集团有限公司", required = true)
private String danweiname;
@Schema(description = "投标单位统一社会信用代码",
example = "91330100MA2J5R1234",
required = true)
private String danweiguid;
@Schema(description = "文件雷同状态 0否 1是",
example = "1",
allowableValues = {"0", "1"}
)
private Integer similaritystatus;
@Schema(description = "雷同单位数量",
example = "3",
minimum = "0"
)
private Integer similarityorgnum;
@Schema(description = "数据推送时间",
example = "2023-12-15T14:30:00",
pattern = "yyyy-MM-dd'T'HH:mm:ss")
private String senddate;
}
package com.example.demo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class YwBiddingfileSimilarityInfoRequest {
@Schema(description = "行唯一标识", example = "550e8400-e29b-41d4-a716-446655440000", maxLength = 50)
private String rowguid;
@Schema(description = "标段名称", example = "XX高速公路第1标段", required = true, maxLength = 500)
private String biaoduanname;
@Schema(description = "标段编号", example = "BD2023001", required = true, maxLength = 50)
private String biaoduanno;
@Schema(description = "项目名称", example = "XX高速公路建设项目", required = true, maxLength = 500)
private String projectname;
@Schema(description = "项目编号", example = "XM2023001", required = true, maxLength = 50)
private String projectno;
@Schema(description = "1:交通 2:水利 3:住建", example = "1", required = true, maxLength = 50)
private String projectjiaoyitype;
@Schema(description = "招标单位名称", example = "XX省交通建设集团有限公司", maxLength = 200)
private String jianshedanwei;
@Schema(description = "招标代理名称", example = "XX招标代理有限公司", maxLength = 200)
private String dailiname;
@Schema(description = "中标单位统一社会信用代码", example = "91330100MA2J5R1234", maxLength = 50)
private String zhongbiaodanweiguid;
@Schema(description = "中标单位名称", example = "XX建设集团有限公司", required = true, maxLength = 200)
private String zhongbiaodanwei;
@Schema(description = "中标金额(元)", example = "125000000.00")
private BigDecimal zhongbiaojine;
@Schema(description = "开标时间", example = "2023-06-15T09:30:00")
private String kaibiaodate;
@Schema(description = "报告生成日期", example = "2023-06-20T14:00:00")
private String reportdate;
@Schema(description = "投标单位文件数量", example = "15")
private Integer bidfilenum;
@Schema(description = "雷同投标文件数", example = "3")
private Integer similarityfilenum;
@Schema(description = "文件疑似雷同点数", example = "125")
private Integer similaritynum;
@Schema(description = "雷同性风险分析报告地址",
example = "http://example.com/reports/risk_analysis_2023001.pdf",
required = true,
maxLength = 200)
private String url;
@Schema(description = "数据推送时间", example = "2023-06-21T10:00:00")
private String senddate;
}
package com.example.demo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class YwBidfileReviewDetailRequest {
@Schema(description = "行唯一标识",
example = "550e8400-e29b-41d4-a716-446655440000")
private String rowguid;
@Schema(description = "标段名称",
example = "XX市轨道交通3号线二期工程土建施工02标段",
maxLength = 500
)
private String biaoduanname;
@Schema(description = "标段编号",
example = "BD202312-002")
private String biaoduanno;
@Schema(description = "审查类型 1.错敏词检查 2.一致性检查 3.合规性检查",
example = "1",
allowableValues = {"1", "2", "3"})
private String checktype;
@Schema(description = "检查次数",
example = "3",
minimum = "0",
defaultValue = "0")
private Integer checktimes;
@Schema(description = "存疑点数",
example = "15",
minimum = "0"
)
private Integer storagepoint;
@Schema(description = "反馈数",
example = "12",
minimum = "0"
)
private Integer feedbacknum;
@Schema(description = "未反馈数",
example = "3",
minimum = "0"
)
private Integer unfeedbackednum;
@Schema(description = "采纳建议数",
example = "8",
minimum = "0"
)
private Integer adoptednum;
@Schema(description = "准确率",
example = "0.8750",
minimum = "0",
maximum = "1"
)
private BigDecimal accuracy;
@Schema(description = "数据推送时间",
example = "2023-12-15T14:30:00",
pattern = "yyyy-MM-dd'T'HH:mm:ss")
private String senddate;
}
package com.example.demo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class YwBidfileReviewInfoRequest {
@Schema(description = "行唯一标识", example = "123e4567-e89b-12d3-a456-426614174000")
private String rowguid;
@Schema(description = "标段名称", example = "XX高速公路建设项目第1标段", required = true)
private String biaoduanname;
@Schema(description = "标段编号", example = "BD-2023-001", required = true)
private String biaoduanno;
@Schema(description = "招标单位名称", example = "XX省交通建设集团有限公司")
private String jianshedanwei;
@Schema(description = "招标代理名称", example = "XX招标代理有限公司")
private String dailiname;
@Schema(description = "错敏词审查日期", example = "2023-12-15T09:30:00")
private String wordcheckdate;
@Schema(description = "一致性审查日期", example = "2023-12-16T10:30:00")
private String consistencycheckdate;
@Schema(description = "合规性审查日期", example = "2023-12-17T11:30:00")
private String compliancecheckdate;
@Schema(description = "审查范围1.错敏词检查 2.一致性检查 3.合规性检查 英文分号隔开,如:1;2;3",
example = "1;2;3"
)
private String checkscope;
@Schema(description = "组织名称", example = "XX审查中心", required = true)
private String organization;
@Schema(description = "审查报告地址",
example = "http://example.com/reports/check_report_2023001.pdf",
required = true)
private String url;
@Schema(description = "数据推送时间", example = "2023-12-18T14:00:00")
private String senddate;
}
package com.example.demo.entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;
import lombok.Data;
import java.time.LocalDateTime;
@Entity
@Table(name = "yw_biddingfile_similaritydetail")
@Data
@Schema(description = "投标文件雷同明细")
public class YwBiddingfileSimilarityDetail {
@Id
@Column(length = 50)
@Schema(description = "行唯一标识", example = "550e8400-e29b-41d4-a716-446655440000")
private String rowguid;
@Column(length = 500, nullable = false)
@Schema(description = "标段名称", example = "XX高速公路建设项目第1标段", required = true)
private String biaoduanname;
@Column(length = 50, nullable = false)
@Schema(description = "标段编号", example = "BD-2023-001", required = true)
private String biaoduanno;
@Column(length = 500, nullable = false)
@Schema(description = "投标单位名称", example = "XX建设集团有限公司", required = true)
private String danweiname;
@Column(length = 50)
@Schema(description = "投标单位统一社会信用代码",
example = "91330100MA2J5R1234")
private String danweiguid;
@Schema(description = "文件雷同状态 0否 1是",
example = "1",
allowableValues = {"0", "1"}
)
private Integer similaritystatus;
@Schema(description = "雷同单位数量",
example = "3",
minimum = "0"
)
private Integer similarityorgnum;
@Schema(description = "数据推送时间",
example = "2023-12-15T14:30:00",
pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime senddate;
}
\ No newline at end of file
package com.example.demo.entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Entity
@Data
@Table(name = "yw_biddingfile_similarityinfo")
@Schema(name = "投标文件雷同分析表")
public class YwBiddingfileSimilarityInfo {
@Id
@Column(length = 50)
@Schema(description = "行唯一标识", example = "550e8400-e29b-41d4-a716-446655440000", maxLength = 50)
private String rowguid;
@Column(length = 500, nullable = false)
@Schema(description = "标段名称", example = "XX高速公路第1标段", required = true, maxLength = 500)
private String biaoduanname;
@Column(length = 50, nullable = false)
@Schema(description = "标段编号", example = "BD2023001", required = true, maxLength = 50)
private String biaoduanno;
@Column(length = 500, nullable = false)
@Schema(description = "项目名称", example = "XX高速公路建设项目", required = true, maxLength = 500)
private String projectname;
@Column(length = 50, nullable = false)
@Schema(description = "项目编号", example = "XM2023001", required = true, maxLength = 50)
private String projectno;
@Column(length = 50, nullable = false)
@Schema(description = "1:交通 2:水利 3:住建", example = "1", required = true, maxLength = 50)
private String projectjiaoyitype;
@Column(length = 200)
@Schema(description = "招标单位名称", example = "XX省交通建设集团有限公司", maxLength = 200)
private String jianshedanwei;
@Column(length = 200)
@Schema(description = "招标代理名称", example = "XX招标代理有限公司", maxLength = 200)
private String dailiname;
@Column(length = 50)
@Schema(description = "中标单位统一社会信用代码", example = "91330100MA2J5R1234", maxLength = 50)
private String zhongbiaodanweiguid;
@Column(length = 200, nullable = false)
@Schema(description = "中标单位名称", example = "XX建设集团有限公司", required = true, maxLength = 200)
private String zhongbiaodanwei;
@Column(precision = 20, scale = 8)
@Schema(description = "中标金额(元)", example = "125000000.00")
private BigDecimal zhongbiaojine;
@Schema(description = "开标时间", example = "2023-06-15T09:30:00")
private LocalDateTime kaibiaodate;
@Schema(description = "报告生成日期", example = "2023-06-20T14:00:00")
private LocalDateTime reportdate;
@Schema(description = "投标单位文件数量", example = "15")
private Integer bidfilenum;
@Schema(description = "雷同投标文件数", example = "3")
private Integer similarityfilenum;
@Schema(description = "文件疑似雷同点数", example = "125")
private Integer similaritynum;
@Column(length = 200, nullable = false)
@Schema(description = "雷同性风险分析报告地址",
example = "http://example.com/reports/risk_analysis_2023001.pdf",
required = true,
maxLength = 200)
private String url;
@Schema(description = "数据推送时间", example = "2023-06-21T10:00:00")
private LocalDateTime senddate;
}
package com.example.demo.entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Entity
@Data
@Table(name = "yw_bidfile_reviewdetail")
@Schema(name = "招标文件审查明细结果表")
public class YwBidfileReviewDetail {
@Id
@Column(length = 50)
@Schema(description = "行唯一标识",
example = "550e8400-e29b-41d4-a716-446655440000")
private String rowguid;
@Column(length = 500, nullable = false)
@Schema(description = "标段名称",
example = "XX市轨道交通3号线二期工程土建施工02标段",
maxLength = 500
)
private String biaoduanname;
@Column(length = 50, nullable = false)
@Schema(description = "标段编号",
example = "BD202312-002")
private String biaoduanno;
@Column(length = 2, nullable = false)
@Schema(description = "审查类型 1.错敏词检查 2.一致性检查 3.合规性检查",
example = "1",
allowableValues = {"1", "2", "3"})
private String checktype;
@Schema(description = "检查次数",
example = "3",
minimum = "0",
defaultValue = "0")
private Integer checktimes;
@Schema(description = "存疑点数",
example = "15",
minimum = "0"
)
private Integer storagepoint;
@Schema(description = "反馈数",
example = "12",
minimum = "0"
)
private Integer feedbacknum;
@Schema(description = "未反馈数",
example = "3",
minimum = "0"
)
private Integer unfeedbackednum;
@Schema(description = "采纳建议数",
example = "8",
minimum = "0"
)
private Integer adoptednum;
@Schema(description = "准确率",
example = "0.8750",
minimum = "0",
maximum = "1"
)
@Column(precision = 20, scale = 8)
private BigDecimal accuracy;
@Schema(description = "数据推送时间",
example = "2023-12-15T14:30:00",
pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime senddate;
}
package com.example.demo.entity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.*;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;
import java.time.LocalDateTime;
@Entity
@Data
@DynamicUpdate
@Schema(name = "招标文件审查基础表")
@Table(name = "yw_bidfile_reviewinfo")
public class YwBidfileReviewInfo {
@Id
@Column(length = 50)
@Schema(description = "行唯一标识", example = "123e4567-e89b-12d3-a456-426614174000")
private String rowguid;
@Column(length = 500, nullable = false)
@Schema(description = "标段名称", example = "XX高速公路建设项目第1标段", required = true)
private String biaoduanname;
@Column(length = 50, nullable = false)
@Schema(description = "标段编号", example = "BD-2023-001", required = true)
private String biaoduanno;
@Column(length = 200)
@Schema(description = "招标单位名称", example = "XX省交通建设集团有限公司")
private String jianshedanwei;
@Column(length = 200)
@Schema(description = "招标代理名称", example = "XX招标代理有限公司")
private String dailiname;
@Schema(description = "错敏词审查日期", example = "2023-12-15T09:30:00")
private LocalDateTime wordcheckdate;
@Schema(description = "一致性审查日期", example = "2023-12-16T10:30:00")
private LocalDateTime consistencycheckdate;
@Schema(description = "合规性审查日期", example = "2023-12-17T11:30:00")
private LocalDateTime compliancecheckdate;
@Column(length = 50, nullable = false)
@Schema(description = "审查范围1.错敏词检查 2.一致性检查 3.合规性检查 英文分号隔开,如:1;2;3",
example = "1;2;3"
)
private String checkscope;
@Column(length = 200, nullable = false)
@Schema(description = "组织名称", example = "XX审查中心", required = true)
private String organization;
@Column(length = 200, nullable = false)
@Schema(description = "审查报告地址",
example = "http://example.com/reports/check_report_2023001.pdf",
required = true)
private String url;
@Schema(description = "数据推送时间", example = "2023-12-18T14:00:00")
private LocalDateTime senddate;
}
package com.example.demo.repository;
import com.example.demo.entity.YwBiddingfileSimilarityDetail;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface YwBiddingfileSimilarityDetailRepository extends JpaRepository<YwBiddingfileSimilarityDetail, Long> {
List<YwBiddingfileSimilarityDetail> findByBiaoduanno(String biaoduanno);
List<YwBiddingfileSimilarityDetail> findByBiaoduannoAndDanweiguid(String biaoduanno, String danweiguid);
}
package com.example.demo.repository;
import com.example.demo.entity.YwBiddingfileSimilarityInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface YwBiddingfileSimilarityInfoRepository extends JpaRepository<YwBiddingfileSimilarityInfo, Long> {
List<YwBiddingfileSimilarityInfo> findByBiaoduanno(String biaoduanno);
}
package com.example.demo.repository;
import com.example.demo.entity.YwBiddingfileSimilarityDetail;
import com.example.demo.entity.YwBidfileReviewDetail;
import com.example.demo.entity.YwBidfileReviewInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface YwBidfileReviewDetailRepository extends JpaRepository<YwBidfileReviewDetail, Long> {
List<YwBidfileReviewDetail> findByBiaoduanno(String biaoduanno);
List<YwBidfileReviewDetail> findByBiaoduannoAndChecktype(String biaoduanno, String checktype);
}
package com.example.demo.repository;
import com.example.demo.entity.YwBidfileReviewInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface YwBidfileReviewInfoRepository extends JpaRepository<YwBidfileReviewInfo, Long> {
List<YwBidfileReviewInfo> findByBiaoduanno(String biaoduanno);
}
package com.example.demo.service;
import com.example.demo.dto.*;
import com.example.demo.entity.YwBiddingfileSimilarityDetail;
import com.example.demo.entity.YwBiddingfileSimilarityInfo;
import com.example.demo.entity.YwBidfileReviewDetail;
import com.example.demo.entity.YwBidfileReviewInfo;
import com.example.demo.repository.YwBiddingfileSimilarityDetailRepository;
import com.example.demo.repository.YwBiddingfileSimilarityInfoRepository;
import com.example.demo.repository.YwBidfileReviewDetailRepository;
import com.example.demo.repository.YwBidfileReviewInfoRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class ERoadService {
private final YwBiddingfileSimilarityDetailRepository similarityDetailRepository;
private final YwBiddingfileSimilarityInfoRepository similarityInfoRepository;
private final YwBidfileReviewDetailRepository reviewDetailRepository;
private final YwBidfileReviewInfoRepository reviewInfoRepository;
private final YwBidfileReviewInfoRepository ywBidfileReviewInfoRepository;
private final YwBiddingfileSimilarityInfoRepository ywBiddingfileSimilarityInfoRepository;
private final YwBiddingfileSimilarityDetailRepository ywBiddingfileSimilarityDetailRepository;
private YwBiddingfileSimilarityDetail convertToEntitySimilarDetail(YwBiddingfileSimilarityDetailRequest request){
YwBiddingfileSimilarityDetail entity = new YwBiddingfileSimilarityDetail();
// 复制属性
BeanUtils.copyProperties(request, entity, "senddate");
if (request.getSenddate() != null) {
entity.setSenddate(LocalDateTime.parse(request.getSenddate()));
}
List<YwBiddingfileSimilarityDetail> ywBiddingfileSimilarityDetails =ywBiddingfileSimilarityDetailRepository.findByBiaoduannoAndDanweiguid(entity.getBiaoduanno(),entity.getDanweiguid());
if(!ywBiddingfileSimilarityDetails.isEmpty()){
entity.setRowguid(ywBiddingfileSimilarityDetails.get(0).getRowguid());
}
return entity;
}
/**
* 转换Request为Entity
*/
private YwBiddingfileSimilarityInfo convertToEntitySimilarInfo(YwBiddingfileSimilarityInfoRequest request) {
YwBiddingfileSimilarityInfo entity = new YwBiddingfileSimilarityInfo();
// 复制属性
BeanUtils.copyProperties(request, entity, "kaibiaodate", "reportdate","senddate");
// 处理日期
if (request.getSenddate() != null) {
entity.setSenddate(LocalDateTime.parse(request.getSenddate()));
}
if (request.getReportdate() != null) {
entity.setReportdate(LocalDateTime.parse(request.getReportdate()));
}
if(request.getKaibiaodate() !=null) {
entity.setKaibiaodate(LocalDateTime.parse(request.getKaibiaodate()));
}
List<YwBiddingfileSimilarityInfo> ywBiddingfileSimilarityInfos =ywBiddingfileSimilarityInfoRepository.findByBiaoduanno(entity.getBiaoduanno());
if(!ywBiddingfileSimilarityInfos.isEmpty()){
entity.setRowguid(ywBiddingfileSimilarityInfos.get(0).getRowguid());
}
return entity;
}
public String writeSimilarityDetail(List<YwBiddingfileSimilarityDetailRequest> request){
if (request==null) {
return "投标文件雷同明细不能为空";
}
List<YwBiddingfileSimilarityDetail> entity = convertToEntitySimilarityList(request);
ywBiddingfileSimilarityDetailRepository.saveAll(entity);
return "投标文件雷同明细更新成功";
}
public String writeSimilarityInfo(YwBiddingfileSimilarityInfoRequest request){
if (request==null) {
return "投标文件雷同分析表不能为空";
}
YwBiddingfileSimilarityInfo entity = convertToEntitySimilarInfo(request);
ywBiddingfileSimilarityInfoRepository.save(entity);
return "投标文件雷同分析表更新成功";
}
/**
* 转换Request为Entity
*/
private YwBidfileReviewDetail convertToEntity(YwBidfileReviewDetailRequest request) {
YwBidfileReviewDetail entity = new YwBidfileReviewDetail();
// 复制属性
BeanUtils.copyProperties(request, entity, "senddate");
// 处理日期
if (request.getSenddate() != null) {
entity.setSenddate(LocalDateTime.parse(request.getSenddate()));
}
List<YwBidfileReviewDetail> ywBidfileReviewDetail =reviewDetailRepository.findByBiaoduannoAndChecktype(entity.getBiaoduanno(), entity.getChecktype());
if(!ywBidfileReviewDetail.isEmpty()){
entity.setRowguid(ywBidfileReviewDetail.get(0).getRowguid());
}
return entity;
}
private YwBidfileReviewInfo convertToEntityInfo(YwBidfileReviewInfoRequest request) {
YwBidfileReviewInfo entity = new YwBidfileReviewInfo();
// 复制属性
BeanUtils.copyProperties(request, entity, "senddate","complianceCheckDate","consistencyCheckDate","wordCheckDate");
// 处理日期
if (request.getSenddate() != null) {
entity.setSenddate(LocalDateTime.parse(request.getSenddate()));
}
if(request.getCompliancecheckdate()!=null){
entity.setCompliancecheckdate(LocalDateTime.parse(request.getCompliancecheckdate()));
}
if(request.getConsistencycheckdate()!=null){
entity.setConsistencycheckdate(LocalDateTime.parse(request.getConsistencycheckdate()));
}
if(request.getWordcheckdate()!=null){
entity.setWordcheckdate(LocalDateTime.parse(request.getWordcheckdate()));
}
return entity;
}
/**
* 批量转换
*/
private List<YwBidfileReviewDetail> convertToEntityList(List<YwBidfileReviewDetailRequest> requests) {
return requests.stream()
.map(this::convertToEntity)
.collect(Collectors.toList());
}
private List<YwBiddingfileSimilarityDetail> convertToEntitySimilarityList(List<YwBiddingfileSimilarityDetailRequest> requests) {
return requests.stream()
.map(this::convertToEntitySimilarDetail)
.collect(Collectors.toList());
}
/**
* 批量保存
*/
public String batchWriteReviewDetail(List<YwBidfileReviewDetailRequest> requests) {
if (CollectionUtils.isEmpty(requests)) {
return "招标文件审查基础表信息不能为空";
}
List<YwBidfileReviewDetail> entities = convertToEntityList(requests);
reviewDetailRepository.saveAll(entities);
return "招标文件审查基础表信息更新成功";
}
public String writeReviewInfo(YwBidfileReviewInfoRequest request){
SupervisorPlatformResponse supervisorPlatformResponse = new SupervisorPlatformResponse();
if (request==null) {
return "招标文件审查明细结果表不能为空";
}
YwBidfileReviewInfo entity = convertToEntityInfo(request);
List<YwBidfileReviewInfo> ywBidfileReviewInfo = ywBidfileReviewInfoRepository.findByBiaoduanno(entity.getBiaoduanno());
if(!ywBidfileReviewInfo.isEmpty()){
entity.setRowguid(ywBidfileReviewInfo.get(0).getRowguid());
}
reviewInfoRepository.save(entity);
return "招标文件审查明细结果表更新成功";
}
}
spring:
datasource:
url: jdbc:mysql://49.77.204.17:4516/aielu_dev
username: aiall
password: Axbp2Puy3V
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
\ No newline at end of file
spring:
datasource:
url: jdbc:mysql://49.77.204.17:4516/aielu_dev
username: aiall
password: Axbp2Puy3V
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
\ No newline at end of file
spring:
datasource:
url: jdbc:mysql://49.77.204.17:4516/aielu_prod
username: aiall
password: Axbp2Puy3V
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment