From f0b1df9c7529c2a31e62962680191483167bb408 Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Wed, 27 Jan 2021 15:34:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=99=AE=E7=BD=97=E7=B1=B3=E4=BF=AE=E6=96=AF?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/.gitignore | 33 + bin/Dockerfile-gz | 7 + bin/README.md | 10 + bin/config-gz | 17 + bin/deployment-gz.yaml | 83 ++ bin/pom.xml | 117 ++ .../BizServiceEbtpExtendApplication.class | Bin 0 -> 2190 bytes .../column/BizBidNoticeField.class | Bin 0 -> 1319 bytes .../controller/BizBidNoticeController.class | Bin 0 -> 9261 bytes .../bizbidnotice/dao/BizBidNoticeMapper.class | Bin 0 -> 3885 bytes .../dao/mapper/BizBidNoticeMapper.xml | 134 +++ .../bizbidnotice/entity/BizBidNotice.class | Bin 0 -> 8002 bytes .../service/IBizBidNoticeService.class | Bin 0 -> 2113 bytes .../impl/BizBidNoticeServiceImpl.class | Bin 0 -> 6025 bytes .../column/BizBidSharedField.class | Bin 0 -> 1365 bytes .../controller/BizBidSharedController.class | Bin 0 -> 7627 bytes .../bizbidshared/dao/BizBidSharedMapper.class | Bin 0 -> 2275 bytes .../dao/mapper/BizBidSharedMapper.xml | 54 + .../bizbidshared/entity/BizBidShared.class | Bin 0 -> 8175 bytes .../service/IBizBidSharedService.class | Bin 0 -> 1417 bytes .../impl/BizBidSharedServiceImpl.class | Bin 0 -> 3320 bytes .../column/BizBidSharedRecordField.class | Bin 0 -> 1409 bytes .../BizBidSharedRecordController.class | Bin 0 -> 6426 bytes .../dao/BizBidSharedRecordMapper.class | Bin 0 -> 1761 bytes .../dao/mapper/BizBidSharedRecordMapper.xml | 66 + .../entity/BizBidSharedRecord.class | Bin 0 -> 8485 bytes .../service/IBizBidSharedRecordService.class | Bin 0 -> 1427 bytes .../impl/BizBidSharedRecordServiceImpl.class | Bin 0 -> 3117 bytes bin/src/main/resources/application-dev.yml | 194 +++ bin/src/main/resources/application.yml | 3 + bin/src/main/resources/file.conf | 66 + bin/src/main/resources/logback.xml | 89 ++ bin/src/main/resources/registry.conf | 79 ++ {src => bin/src}/main/resources/seata.conf | 0 .../swagger-configuration.properties | 7 + deployment-gz.yaml | 5 + pom.xml | 63 +- .../BizServiceEbtpExtendApplication.java | 12 +- .../controller/BizBidNoticeController.java | 14 +- .../bizbidnotice/dao/BizBidNoticeMapper.java | 10 +- .../dao/mapper/BizBidNoticeMapper.xml | 10 +- .../bizbidnotice/entity/BizBidNotice.java | 6 +- .../service/IBizBidNoticeService.java | 10 +- .../service/impl/BizBidNoticeServiceImpl.java | 10 +- .../controller/BizBidSharedController.java | 6 +- .../bizbidshared/dao/BizBidSharedMapper.java | 2 + .../dao/mapper/BizBidSharedMapper.xml | 2 +- .../bizbidshared/entity/BizBidShared.java | 6 +- .../service/IBizBidSharedService.java | 2 +- .../service/impl/BizBidSharedServiceImpl.java | 2 +- .../BizBidSharedRecordController.java | 34 +- .../dao/mapper/BizBidSharedRecordMapper.xml | 2 +- .../entity/BizBidSharedRecord.java | 6 +- .../ebtp/extend/export/bean/BidEarlyWarn.java | 71 ++ .../extend/export/bean/BidEvalDetail.java | 179 +++ .../extend/export/bean/BidEvalDetailDTO.java | 105 ++ .../ebtp/extend/export/bean/BidEvalInfo.java | 154 +++ .../extend/export/bean/BidEvalInfoDTO.java | 34 + .../ebtp/extend/export/bean/ExportParame.java | 57 + .../extend/export/bean/ProjectSection.java | 248 ++++ .../extend/export/bean/ProjectSectionVO.java | 141 +++ .../export/bean/ReviewConfigCategory.java | 58 + .../export/bean/ReviewConfigCategoryDTO.java | 36 + .../export/bean/ReviewConfigDetail.java | 127 ++ .../export/bean/ReviewConfigDetailDTO.java | 61 + .../export/bean/ReviewConfigStandard.java | 50 + .../export/controller/ExportController.java | 1064 +++++++++++++++++ .../ebtp/extend/export/model/价格打分.xls | Bin 0 -> 4123 bytes .../ebtp/extend/export/model/初步评审.xls | Bin 0 -> 4135 bytes .../ebtp/extend/export/model/开标记录表.docx | Bin 0 -> 18016 bytes .../ebtp/extend/export/model/打分汇总表.docx | Bin 0 -> 18987 bytes .../ebtp/extend/export/model/评委打分.xls | Bin 0 -> 8394 bytes .../extend/export/model/评审专家签到表.docx | Bin 0 -> 18928 bytes .../extend/export/model/评标专家承诺书.docx | Bin 0 -> 18117 bytes .../extend/export/model/评标委员会签字表.docx | Bin 0 -> 17825 bytes .../ebtp/extend/export/model/评标报告.docx | Bin 0 -> 22966 bytes .../extend/export/services/ExportService.java | 63 + .../services/ExportServiceFallback.java | 46 + .../export/services/ExportServiceProject.java | 25 + .../export/vo/BidEvalDetailConsistentVO.java | 32 + .../vo/BidEvalDetailJudgesSummaryVO.java | 42 + .../export/vo/BidEvalDetailSummaryVO.java | 53 + .../extend/export/vo/BidEvalDetailVO.java | 82 ++ .../vo/BidEvalEarlyJudgesSummaryVO.java | 46 + .../ebtp/extend/export/vo/JuryPrintVO.java | 87 ++ .../mall/ebtp/extend/export/vo/MemberVO.java | 33 + .../vo/ReviewResultDetailSummaryVO.java | 55 + .../vo/SupplierRegisterPriceScoreVO.java | 134 +++ .../extend/export/vo/SupplierRegisterVO.java | 40 + .../TemplateWarehouseController.java | 47 + .../dao/BizBidTemplateWarehouseMapper.java | 10 + .../mapper/BizBidTemplateWarehouseMapper.xml | 27 + .../entity/BizBidTemplateWarehouse.java | 52 + .../BizBidTemplateWarehouseService.java | 23 + .../BizBidTemplateWarehouseServiceImpl.java | 33 + src/main/resources/application-dev.yml | 25 +- src/main/resources/application-test.yml | 192 +++ src/main/resources/file.conf | 5 +- src/main/resources/registry.conf | 72 +- 99 files changed, 4590 insertions(+), 180 deletions(-) create mode 100644 bin/.gitignore create mode 100644 bin/Dockerfile-gz create mode 100644 bin/README.md create mode 100644 bin/config-gz create mode 100644 bin/deployment-gz.yaml create mode 100644 bin/pom.xml create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/column/BizBidNoticeField.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/IBizBidNoticeService.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/column/BizBidSharedField.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/controller/BizBidSharedController.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/BizBidSharedMapper.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/mapper/BizBidSharedMapper.xml create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/IBizBidSharedService.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/impl/BizBidSharedServiceImpl.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/column/BizBidSharedRecordField.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/BizBidSharedRecordMapper.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/service/IBizBidSharedRecordService.class create mode 100644 bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/service/impl/BizBidSharedRecordServiceImpl.class create mode 100644 bin/src/main/resources/application-dev.yml create mode 100644 bin/src/main/resources/application.yml create mode 100644 bin/src/main/resources/file.conf create mode 100644 bin/src/main/resources/logback.xml create mode 100644 bin/src/main/resources/registry.conf rename {src => bin/src}/main/resources/seata.conf (100%) create mode 100644 bin/src/main/resources/swagger-configuration.properties create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEarlyWarn.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetail.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetailDTO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfo.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfoDTO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSection.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSectionVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategory.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategoryDTO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetail.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetailDTO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigStandard.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/价格打分.xls create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/初步评审.xls create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/开标记录表.docx create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/打分汇总表.docx create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评委打分.xls create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评审专家签到表.docx create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评标专家承诺书.docx create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评标委员会签字表.docx create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评标报告.docx create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportService.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceFallback.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceProject.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailConsistentVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailJudgesSummaryVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailSummaryVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalEarlyJudgesSummaryVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/JuryPrintVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/MemberVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/ReviewResultDetailSummaryVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterPriceScoreVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterVO.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/controller/TemplateWarehouseController.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/BizBidTemplateWarehouseMapper.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/mapper/BizBidTemplateWarehouseMapper.xml create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/entity/BizBidTemplateWarehouse.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/BizBidTemplateWarehouseService.java create mode 100644 src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/impl/BizBidTemplateWarehouseServiceImpl.java create mode 100644 src/main/resources/application-test.yml diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/bin/Dockerfile-gz b/bin/Dockerfile-gz new file mode 100644 index 0000000..982ea9b --- /dev/null +++ b/bin/Dockerfile-gz @@ -0,0 +1,7 @@ +FROM harbor.dcos.guangzhou.unicom.local/eshop/skywalking_agent_springboot_8.1.0:v1.0 +ENV LC_ALL=zh_CN.utf8 +ENV LANG=zh_CN.utf8 +ENV LANGUAGE=zh_CN.utf8 +RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 +ADD /target/biz_service_ebtp_extend-0.0.1.jar /biz_service_ebtp_extend-0.0.1.jar +ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/biz_service_ebtp_extend-0.0.1.jar"] diff --git a/bin/README.md b/bin/README.md new file mode 100644 index 0000000..33c31eb --- /dev/null +++ b/bin/README.md @@ -0,0 +1,10 @@ +# 扩展功能微服务组件 + + 公告通知功能、共享文档... + +## 组件模块 + + 1. 包名:功能 + 2. 包名:功能 + 3. 包名:功能 + diff --git a/bin/config-gz b/bin/config-gz new file mode 100644 index 0000000..6fe3b43 --- /dev/null +++ b/bin/config-gz @@ -0,0 +1,17 @@ +apiVersion: v1 +clusters: +- cluster: + insecure-skip-tls-verify: true + server: https://10.125.164.35:48662 + name: demok8s +contexts: +- context: + cluster: demok8s + user: cluster-admin + name: default +current-context: default +kind: Config +users: +- name: cluster-admin + user: + token: df5e4896a4f6d1b1447b2584ca7405f7 diff --git a/bin/deployment-gz.yaml b/bin/deployment-gz.yaml new file mode 100644 index 0000000..ae3756b --- /dev/null +++ b/bin/deployment-gz.yaml @@ -0,0 +1,83 @@ +# 接口版本 +apiVersion: apps/v1 +# 接口类型 +kind: Deployment +metadata: + name: biz-service-ebtp-extend + namespace: default + labels: + app: biz-service-ebtp-extend + +# 必选,详细定义 +spec: + # pod 副本数量 + replicas: 1 + + # 滚动升级配置信息 + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + + # 选择器,匹配pod模板 + selector: + matchLabels: + app: biz-service-ebtp-extend + + template: + metadata: + labels: + # 模板名称 + app: biz-service-ebtp-extend + + # 定义容器模板,该模板可以包含多个容器 + spec: + # 挂载日志存储 + volumes: + - name: log + persistentVolumeClaim: + claimName: log-pvc + readOnly: false + - name: storage + persistentVolumeClaim: + claimName: file-pvc + readOnly: false + + # 必选,Pod中容器列表 + containers: + - name: biz-service-ebtp-extend + image: harbor.dcos.guangzhou.unicom.local/eshop/biz-service-ebtp-extend:latest + # 在容器中挂载日志存储区 + volumeMounts: + - name: log + mountPath: /log + - name: storage + mountPath: /storage + # 需要暴露的端口库号列表 + ports: + - containerPort: 18018 + # 容器运行前需设置的环境变量列表 + env: + # Apollo 配置中心变量设置 + - name: APOLLO_CONFIGSERVICE + value: http://10.242.31.158:6001 +--- +kind: Service +apiVersion: v1 +metadata: + name: biz-service-ebtp-extend + namespace: default + labels: + app: biz-service-ebtp-extend + annotations: + lb.cke.tg.unicom/target-vports: 18018-18018 +spec: + ports: + - port: 18018 + targetPort: 18018 + selector: + app: biz-service-ebtp-extend +status: + loadBalancer: {} + +--- \ No newline at end of file diff --git a/bin/pom.xml b/bin/pom.xml new file mode 100644 index 0000000..f696803 --- /dev/null +++ b/bin/pom.xml @@ -0,0 +1,117 @@ + + + 4.0.0 + + + com.chinaunicom.ebtp + mall-ebtp-cloud-parent + 0.0.1-SNAPSHOT + + + com.chinaunicom.mall.ebtp + biz_service_ebtp_extend + 0.0.1 + biz_service_ebtp_extend + + + + + com.chinaunicom.mall.ebtp + uboot-core + 0.0.2-SNAPSHOT + + + com.chinaunicom.ebtp + mall-ebtp-cloud-security-starter + + + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-attachment-sdk + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-eureka-starter + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-feign-starter + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-apollo-starter + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-jpa-starter + + + mysql + mysql-connector-java + + + org.apache.shardingsphere + sharding-jdbc-spring-boot-starter + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-seata-starter + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-swagger-starter + + + + com.chinaunicom.ebtp + mall-ebtp-cloud-redis-starter + + + + + + + maven-snapshot-local + maven-snapshot-local + http://ccp.tianti.tg.unicom.local/artifactory/tianti-maven-snapshot-local/ + + false + + + true + + + + + + + + src/main/resources + true + + + src/main/java + + **/mapper/*Mapper.xml + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..7a2e252d24ecce69fe7fda4a65c139c76c0fd035 GIT binary patch literal 2190 zcmds2OK%e~5T0$5CRqY0ee#st(nHE&_kx5(5mFmcsZv@HDU}c>XV*#G?%Ip(javQ~ z5=e08MJ6|n8p$d(j+K1fwwGMC@!gr!P(SZvOwIBg4xwYbap zK(r#xgwaip{47VIuZgwtcGk39NX|>V8!yKe>kEuhO9S0UVGN92BRot$B2}@?kwF9p^*USA| z$m^B^99U_-FFIfqRvd`0!0p!;H3!_hGIo*A9oU%ieP#6J!2LI=Fg#{^V#GDaz-`+f zB`YY5+iItn&zm+J!+&c)+ZfZ}@R;;rMdJfcyGAdSw%%igNM`o!m& zhY8L1xz@-Uhxi?8SOffJ@rMVP!C4vRu&?0i2}&It-7ipmx8Qz)`nOD{fxXoMZ1dRH zb1k?H3%IJmA}pcAB0QczSS~Q%>s@QTu1fzH z5=e08M6ZM#yaxCKoDD|11`^l`8s zoe1s-bjJJPus@g%-w{|HUHA{2mHPM#Cur6TPPM}z73?H($vqP3zONhPM5C8)Ms zCmy~ZwP6j7bzW{2fvc~jmhKIKE4}Rrfo9*tq6K%5dQsuPT4URAk2K&=Tag)cDq@OX zIF*VyX*5l(iIhmPm(=ToGeKj)6|+c68UM(R1>HinU+axu^u{lG%H;I-fYp> zh>T*+G+~aj9336kk=U|sghhen&qjmSRA&}=G+-e%K_+Z zQ<>3R$Kpt841a_kd}q0Gb+%9U^2`+;WKpJzd`sb)q}M5jhH|Eh>LNjZe^zHGqwZ5G z{!5Yv8}OhD>+q1kTJQ1}6f?9u!qUfi5(yhJ9E)OI3}tSoS4Y`U4u2uw!*Vu^7b zy#te5E_QJx2&`XP^ZB&2;MpI$UbY1{b5CX&Zgq%#$Y2w2J@9X50gGRNtB6{N8qh}U z)$ldMi#5E2c%_D~Bfe3?H&F>wgIjpsM#bkCh2Ycs3L76*?|z2+-{)~Co<&r^-zJ{j Wk_B7v2vGwb&(9~&!)FtHPk#aOM1UUv literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.class new file mode 100644 index 0000000000000000000000000000000000000000..070b78193ec6593944a3244083d640fd748b1bf9 GIT binary patch literal 9261 zcmeHN-BKJy6g~}vWfvldNzlZfNsJ0*-1R3$4M+)?q|hNjAZWBKt9Q1ubex@;%=941 zjZff(cUDYx%)d2 zy+dCVsE^T?QRq|}TzZuoe3Mrkzfo~Eq{m}V>iY(F-HNEHpdz-E@M@K+yj_(w&sWkB zp!QVgyRHZ;^YZq*tX)pV7j}jVG{9&q;p}p+Ub#}eAsof%hy}b@z?Jm9h*8O25s@EYtoiXEd%~YxDbYZI7H)Y?ANPa2yAy# z)GX*LkZv+5D+qnevJsuPO2xGeVbz4=asXHXcfRIzVVweX+0b-ZYr3p8U2bZ+Y-+mP z*7PZ>=8MRJ_*R1}XTwrpFSY{c)npH|f~EAzde(S-pJ2_|%SPab%1T(pO1hTAwf?QD zu(qY|Aly0-B0sEW@p&vsV9+eR{BI=E&zj1IhM(8u@Sh^k;;nVK!jM`UZld<737<(D@Z;ry2A*qk^f= zWk0Xxb)1Ge0%%-h;M)?ay+5wGqhye_{A1p)-O8Zsf@y{{rD7(*er(>eOP1?osy&n7 z5wy#^@4Esq=>AIvt9qG-JZ+0HS9Jd6vd&$J1gRryFu8THr1lf3de+R)e|~FrVX2=KRAkr5i9qiC5-+U?%PstQpXP3zvrsEvx{a@?qja81W2M&q{caCbXiwFU>&hC~Z`Qa z_CV?@MlalJ_BHe%c3FH7-a6;H=qO6mu^~KnD#ICD$$8>`CGCHSE5XNxLimpEPckal zNiGc!dX2Ha9{~^QRUCV?F-pbm>qj_K9MrfHL-aahKlIFRwxIV}Oq#n#N{HQ`nFg-& zYK#MoNn2;_oqN>D)E}@DHS6=%7Gx$_Sn=l=`~Gn=xv7E_>zFowIQ0>hx@ zeIGrCSr8Q%NKWBqn{6NNn`~c9VS6Tp?Mry0NK9jEMsV%_igGaz$}0xSWFpI`R_au1 z8n5EoDbtx0nfM-P6V$I|0>hSQ`l8t~DtBNHGpKYMyA!vPf*b6CJ4SuGaRK-Sy}4t! zw-RA@0MDih`gRK7x48f{KZgI{H~_%!x&VB)Tfp~HB>b@p!0B!QXHo!v=>qV$0XUn- zh99H=-su8x-T++41DGb^pSc11=|i|qA6-a-SqXO+@q7uN&+!>YX#0q4x=hQoLTj{6 GpZyB~`Xl%N literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..81acf5fddb587aedf29f26a71b204ef6e3aa969c GIT binary patch literal 3885 zcmeHK>2K386o1~vvX+e-EmAuKNJ#t8I?sN7@AoeI`Nz*M-vHnNR4o`FupBGjZBs7X4|IdNzHGbx zIv2DfxcP3=Fmzc{M=smcOayL|Z#Q`$q~<&iCRWk9CMiEmM3=x<}#D!F} z+}F(y%+~})7W|M4t``Xm&R13m3_Xznv!Fy^e3$!~Qc{h;aZ;|l6^g|&++cx?SRx)$ z&84s-C7U5@$B*rDsj<%NfcYU+$P`ikBW*Ez4!ND26^^mOF;+OK6;9p?2d$X11Ic0= z&9d86`|Gwwxok5++X!)neLI6M^>y3J$8o zow>WaTELK{W!39`R6L`gih5UgOHkcW2vYuCZ3|w$iK;H5_KV9MVfxd$*x)fo&m?yf z`a~_6el=;vV|0j@%;Sb*8#L@7)Y<(T8`u`^*>fUuVr{FzwF$xXBI~;TIOv##L$DWE zRz~$pVVH(-a+lbFGqgsV9RicxxO-WhqLIU&Hq*sHEhDt~(`GW3S7b-|>^V2q%;bHU zw#>SBxPy-`W4#6U2#oE?PzxTIMND@K9_@L@r8R_VU-CG{2H8Y49wva#Iebt8 zm?}I5!$@05UG2_(g^_nt<qA`V5@i zq0b>byKmjzw|*Yx5;+&L@nSY!G9wJZkOp{+zf({`%-6wzn{XTM!hOX5 F@E6SK>YV@p literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml new file mode 100644 index 0000000..8f15396 --- /dev/null +++ b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id,notice_name, notice_title, notice_content, notice_file,notice_release,notice_top, create_by, + create_date, update_by, update_date,tenant_id,tenant_name,last_update_time, delete_flag from biz_bid_notice + + + + + + + + + + + + update biz_bid_notice + set + delete_flag="deleted" + where notice_id=#{notice_id} limit #{pageIndex},#{pageSize} + + + + update biz_bid_notice + set + notice_release="open" + where id=#{id} + + + + update biz_bid_notice + set + notice_release="close" + where id=#{id} + + + + update biz_bid_notice + set + notice_top="0" + where id=#{id} + + + + update biz_bid_notice + set + notice_top="1" + where id=#{id} + + + + + update biz_bid_notice + + notice_name = #{noticeName}, + notice_title = #{noticeTitle}, + notice_content = #{noticeContent}, + notice_file = #{noticeFile}, + notice_release=#{noticeRelease} + notice_top=#{noticeTop} + update_by = #{updatBy}, + update_date = #{updateDate}, + tenant_id = #{tenantId}, + tenant_name = #{tenantName}, + last_update_time = #{lastTpdateTime}, + + where ID=#{id} + + + + + update biz_bid_notice + set + delete_flag="deleted" + where ID=#{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.class new file mode 100644 index 0000000000000000000000000000000000000000..ca146468486a6e27d4688659626741c629623150 GIT binary patch literal 8002 zcmeHMTXWk)6h2Cw`Vyy?G=|KM*hoL$M1OgE9`xMUcb8QIyRv)}pl?Af!s$AA3w%WnX18E76x z6u9NNdd>+=dIHx(G4W47mOw!fyC z9Wsi<_@AP{2sIQq*k~|&V_JbzD;+dtk-EJ}J=!wKjExjDAE7)2CK@viU1SC^mtE!% z*Wbb}qnjL2fnuYnVTZbbvYfx=pr{nkU(zgWOf+J$tG-Kxy|F-}NqrMl#)B48MHk>$ z!v5E3;^hi4iRN*8VOQoTkk>n|E4maLb?m%BTx3yjv<k0#@t1_(0y2}8DH)yI z91boIXB9XclU;CK<`&?b0@rWbF7cSTNemSy&7r37jOw@yM{ZqFOT}Phs;+UrsV$;L z9ek#0D)&pN1ZUudGF*U*==rPErv5brj#nNhG_{6A8q_9B9jirL;a~1ZrsD)_IL&A^ z6z2Rk#TojfG2}2qH;#L~zAK?G=eqtLLq~Q!UVy3sAEo;!)Zg7nIQwWfvQw@^X1G_z zki&8`yJM&sw?^?@9fP`n)I?Yp;2j0#(|K{_G*Y8zih~y`0X8QS2Ui%Wk;8)aktq10 z;KfxM#$zNZM_NrD(&b1)G!MmZgSB!fejf;8E7AIitwf?@h_fm(#Ac8oI(+>fs7&1~ zz;y-ArFscNmVDjOOboW3kPY(B^wd2CCKHi-3(dIHAQ(rd6XMm5^)9(n1ufa=KDyW(q+i^nEi4OKeGM% zw(G{gHu*uKuN9biHoB*rfvF9iABJaI7GU84W#DmTNC5MipK^jw;Osx|K~3CvdhS96 zJmN3#gAg7xyIZ9=NYzo`vw)8ftQDZC6#nevY$J2buu_u@dnhTl7kFs9NH1)#Mc_$z z&jBLC9aix5V(&SD^uj&a^(SuNPsF)H$==)*2GLE;#jCfY=@0Slr=G_ zGuP+k0?Dmqe^e+-qmr&+GONWNrs4FbC0x9N$r)Y8Ya+uF{;nmJVz)4rq9&>(JR(!{ zX0gPyAc}4&ioso)Zu3%1ifWf)w|17I9#+#*wCV=mnRZm#468(?VtR2S@?oC@gDq}H z)1uV%6f;pQO>xz}`LnNjT(K`LtlF)zj;oWP@^v&>F%YSg*P8hO4C_H-jc9RWYgBJz zy2bucjajHf3l>}BTE}NA#Os*;qJ|~1<8@odx-|88wfF`luIB3Ptvq~%DDeW$gN6m- zkbNF>tWNW_kOwRamy^pk4;wud_3ja_yciS}_(JpG9N?i2OXnpx38QcjTX}4aKmnf; zjA6Sh-j2XHejgU^j>1GJ=lWbe0>>n>Nr~*ZMD~nC_N+v90-h7LPKxgnX!{hL#?R+b z`WB8t!SB+qaOTqq^=CN$yU=|RKRHW)8}Jf-mIE!Qz!bI=xC9sRvx_i-vYincQiPY` zl>|b};Z+HTWhp`pUP~av9ApShDZ=X+INX&Yype&!=Td|>aSmcn#(sEP;)nZEgv;=5 z0wMN;48f2hyq6&!+ERoo8REf|B1~uC;7Ad!X5ipU5#GC3ae$jf_;jex;Yx0rr z9s2^TBt{WT zaPN;o%sMW0t4N_eA`bR=#@~MPvS*Hdeft3bFTr!*5`j;N4!k}S(%WVG%nMZC3wlDb zffV++&!WiV9TR(eXt)f$jyUXyP%0w=?j>CBTiI-g!-fbqQ)_Evbf7?BJ|&Hq?0Q?B zT^<+$rS%{ZQkV?_Q`Oowfx;UVatF!;=1$OWwN|TjFW2FsEc?L#AG+@$t?{IpY_bDLyx+tXCUmF!M}h{Q~QoWtQcp#Fcy*{^f4-kzh>4W%N^=oCS7u-q<_Hwmvmv-t^-soL%V;6HbvqX4d?ESfpx@!T&2Z8YSoBrEqHU&y)iYx` zq zeGNXc zE6n^v>m``SyTt%r3#rAf&_%ckR$hZ8v@fUj>!{y2qpzINZ=TU_!R?giPA2bW@}8AY d0Gcx2&pfQc1JnUryk;?~hp+}!jQkl){RY`+gh2oR literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..220aa23c3d7a6956dbee034e585d5ba2108fc30d GIT binary patch literal 6025 zcmeHL-E!MR6h50emF<`&4Nal6v}%Cj6p#uO0(Ba&`!je@lbJenh6`p`OB;KOEV-+- zN%}542Qx4O7u@kCyadBpOLk;eGm;aV&Ok1t{X6@ev)`Vxe}De{%WnX%2@f?`An<)4 zY_mhTXFjEUYTACswAx?@4oQ_3w*cF9398op2v9Q->y2EUjq5{23?H_21>FX$M#F#P^ zQ-)&72$?eCOc@bVhGJ@6cYGG;I0C&xrQOygDqsg)q$REZCk8>eXDGXk6Q~PEfSP?F z^#NEj|V_D<44|~0v$&VLo21jZl4Lk9hM?y`CgK%jPW}yV-^o&irV;aQbcEqHihD> z49;}4Q`k2@VrJ@Kr}RuN)$!n(-z2`YusZdg@JJHhqNZI!Gp;=~-**}H(x!S2Yy7E! z>eTsPp5h{u;Cu-Ruu5R9Y#klI8&YtuRZ$1@Ws7@kr`KsRu}AUDjW+|!x2gMt3a-jg zWlpv^p7op7yzeV`g(x`8Ws>dg?_<7fsq;-`qpofzMB?x?NOl-8IOYPij{QBRST~bX~6ti-Lvs| z2PcSm@+-~+6?XejgU@iwn9!-g9Rj7ep&D%AJ`%49EztlUhO~%s4Zg%RJ;@XeYWQ-b zoI`{ADu+7&YIwwh0Jkl*b_Q@A@QDc@(g=Qwa28Vyb1Kbax`b%~iuhl`(ruJfa>ZYv z^zG`opJC;9EG@vR_*Xp?$_4zFLMd2-i-Wq?;C1Xd#Jz-dL$n3VhiGpkpj}EpyMjIP zKv0dsA@C+#MGLNBegX6Z-0KOrR}*jvyajJVE<$=I#o8MQs5cW(C#@}?P{*wdIyO$I zV>5$}nSpO-001xn6!TL@394c@ZzJMy+`v-uS-!lLJ literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/column/BizBidSharedField.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/column/BizBidSharedField.class new file mode 100644 index 0000000000000000000000000000000000000000..451a0a00e948d5cc1e10049e0f46fe1a84402f6f GIT binary patch literal 1365 zcmdT^OK;Oa5S|U8N!;{7q2*OzTPUP}>#FpR zA%O&UeiUNXj)+ljNE|qL>~FsD%2cpA9zQo+g`O`id=aK&rg@0bGK-YAEiSf2ILLi_g3GW5RRW87Ldn#z zci^A!z!0c(b_pzXr^LW$p^je@nA?d}YM3%3CNo}#1_q0eKx6Q3tKZ%|?CjQ|iLfYq zXsOu=wZGMC*I@x26H>8=PwD&DOItd z5i`M<8cfa46V#!c8r8>iLb-Ou`0HO3avGf|ks=U=rdh%@ZVsi?SzuyK3*}pzRHQUh zAwLod%O4?w-z<}+9PQFxmKw`o6lKb;w@6${=`@O_p#f8NcRr`TkJZGKQS&L`|8I~3 ztFYFD+ptbxxpjF|Y@;o7@qG5P$me>)d9jDL7U~d)Lt6q0&BP%yd|;Tfbg{3`cX(|{a- zAEVH&b}09%59mIv+J2{Mx4B1SkIUx{b=@j!ilE941oNC~lRs{9Cu-A>IVkOk(05%H zR_pw6ojZ-BfBmrAfN25?39?JQR`q`K0kZ{xiyUzdJA8 z&=2!4Pv&0#-V5X&Ntw00%``Kk1U<&wplFfw3+EJ+m%x`18V58JM ziqup^YO2!JR7KTPWuU2L)A3nk;_%H56?WSc2+s}z)Qbv_W2RJ)5j3byFDE0yeI3ul61eEZV5z6jn8G)y zDINu^SXc|VMq-;ij1h5@1_AfdyherF=majexiF(RU?DDDFA`yF3qLfwF{V^Dd1S_( z!}hp`3u_Pm!Dkw~LY1zVn{g!MKPY8VPp-r+umV{u^y7 zt<#=$WH=)a9K*Y`DxAP9V`%*z%b2V*t%;=n7ER1iDBFw@|vrvFV0+&kGVE@#Ou{F8BnzyiU`Y!G? zS-2xzjKHGh+tls5T(5Ilv^nn7ezHz=yNTOBqs4^GIs~qjEY(|UWlME06fHD(%cCL= zanLtM3a?laa^)!AYHbxkE?8>Bz>ahK)Qu5w&Qj_%?7#8!7B)%TOtA3CUUm-mvPm5* zYp7ZtmI!&0VUMZ~LbJ-1VQC~)eQ889Bzn~t8Z<=(8p$z0HM2RDGLpdcr_H{D+o2;C zpW#@ghv=|njSuz`a^iMH>2`?+p=;$sbQzAP6X^a{Qo*6)lu7QlXTWjJsLFUz=O#y9 z$_71C9X@^z(QeN0#4ZjTDp(%gBjnc?E~}o(O;{RgL*4jx#Pd|ltawCQvSgV!oK4?K z{bML+5}36Hg>#ZX)e02@*GGi>eX?FK;L~N3(KXbB*62rS4Y{fYjp+ZrP{&2>Fc*s( z0!zpEMX!{`Y?g;xg#2={CO?%T=lQDs@m{5oT&mpVvaG+VmRf^j-{gJ*?|9@DjB*+* z3t?HJU^^{n3rl|~p&szo4EO?rff}j|Sd%@<&5!}>Skv@s1Ox8i%~4wDGT| z|A5&a7BBn`3xDBT4qom_N|cNEJlmCmOK=(A2wZ_zU>aUcWM6}8*ct@8uj4}>Hiyq$ zSThB-oC3RyUlf2y1_?yq4Ta@K!ZI(X_GVAuZET0xN-1ogAH#M9rX(8z_DE$TVF|o5 z#C={Ww9h@v`)&$v;~3rr$Q|WH!uO$asM2aO*+aq)QYZRh3L(uzDDeo|en9w17Q&k; pgby&JVkV?_!1~M!RO|&^ zAz4of`y8_<@_5@M9zQf(hF)77w?&wCndYGvGUYYIaYKa7OtH(7glh*%1Qs*8h{=xk zx_!U{L!ev_A|Zv@CU9|mW1m3jsS3FR6#@$*^mDD1F2f8deSa%8PgT_CA;nk{5iui_ zq={DTh{x$;TCKFYoQ6DzY&bMw!3WmibQRHVE(_OY;o2>}mCDeV znV?Gz^76w3|!aOVxn63|Z;qtma+J1vd)$Dd$ z@P*{BdU2cU7Q=-{U@1#~pJ`#`p>n>%jUA1~QA-$$+A84lhr?PsdD!r+QH?;QDLRsw zo<`I98BFVb{==+oBh}hoPuhjHBl{v17-Ba3+;IKGF1T!arvw~7)1$#upG7_NyYjnX z3-`#l%`i&>yG1dcDxg0$DWkMc=l}jZ`3j0sZK|FQ_zPisb2VSH!7k0t5&~Xs2nGix z20hxi1;oocGEg$bE^=vJ3a*(Bx + + + + + + + + + + + + + + + + + + + + + + select id,shared_id, shared_name, shared_role, shared_file,shared_remarks, create_by, + create_date, update_by, update_date,tenant_id,tenant_name,last_update_time, delete_flag from biz_bid_shared + + + + + + + + + update biz_bid_shared + set + delete_flag="deleted" + where ID=#{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.class new file mode 100644 index 0000000000000000000000000000000000000000..854decc879493087b466102d96c9ca0c95609979 GIT binary patch literal 8175 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 literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/controller/BizBidSharedRecordController.class new file mode 100644 index 0000000000000000000000000000000000000000..4fb7070b4b3e14e941b5371d45bbdefbcf172f54 GIT binary patch literal 6426 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 X_~$yTk?pX7ZfyZLtiuM}rc9M@>hCPa literal 0 HcmV?d00001 diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml new file mode 100644 index 0000000..ed9b47a --- /dev/null +++ b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id,record_id, record_role, record_name, record_staff,record_account, create_by, + create_date, update_by, update_date,tenant_id,tenant_name,last_update_time, delete_flag from biz_bid_shared_record + + + + + + + + + + update biz_bid_shared_record + set + delete_flag="deleted" + where ID=#{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.class b/bin/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.class new file mode 100644 index 0000000000000000000000000000000000000000..285db3456f05d01f244b48465ffa6f59e70d3df1 GIT binary patch literal 8485 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 literal 0 HcmV?d00001 diff --git a/bin/src/main/resources/application-dev.yml b/bin/src/main/resources/application-dev.yml new file mode 100644 index 0000000..7d976f2 --- /dev/null +++ b/bin/src/main/resources/application-dev.yml @@ -0,0 +1,194 @@ +server: + port: 18018 + servlet: + context-path: / + +# 对应 apollo 配置中心的应用名 +app: + id: biz-service-ebtp-extend + +# Apollo 配置信息 +apollo: + meta: http://10.242.31.158:6001/ + bootstrap: + namespace: application + enabled: true + eagerLoad: + enabled: true + +spring: + aop: + auto: true #开启spring的aop配置 + proxy-target-class: true + + application: + name: biz-service-ebtp-extend + + shardingsphere: + datasource: + names: ds0 + ds0: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: root + jdbc-url: jdbc:mysql://10.242.31.158:3033/ebtp_mall_extend?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + url: jdbc:mysql://10.242.31.158:3033/ebtp_mall_extend?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + filters: stat,wall,log4j + maxActive: 20 + initialSize: 1 + maxWait: 60000 + minIdle: 1 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxOpenPreparedStatements: 20 + connection-properties: druid.stat.merggSql=ture;druid.stat.slowSqlMillis=5000 + props: + sql: + show: true + + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + serialization: + write-dates-as-timestamps: false + + # 天宫Kafka增加了安全认证,需要配置安全属性 + kafka: + bootstrap-servers: 10.125.164.192:32005,10.125.164.193:32005,10.125.164.194:32005 + template: + default-topic: jl_test + + # 生产者配置参数 + producer: + client-id: core-service-ebtp-crypt + properties: + security.protocol: SASL_PLAINTEXT + sasl.mechanism: SCRAM-SHA-256 + sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="jltest" password="Unicom#123"; + + # 消费者配置参数 + consumer: + group-id: core-service-ebtp-crypt-consumer + auto-offset-reset: latest + properties: + security.protocol: SASL_PLAINTEXT + sasl.mechanism: SCRAM-SHA-256 + sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="jltest" password="Unicom#123"; + + # 天宫 redis 需要使用哨兵进行访问 + redis: + sentinel: + master: eshop-redis + nodes: 10.125.164.124:32718, 10.125.164.118:32716, 10.125.164.121:32716 + password: Unicom#135 + + lettuce: + # jedis: + pool: + maxTotal: 50 + minIdle: 1 + maxWaitMillis: 5000 + maxIdle: 5 + testOnBorrow: true + testOnReturn: true + testWhileIdle: true + token: + database: 0 + host: 125.32.114.204 + port: 16379 + password: redis@CC1234 + timeout: 6000 + uuid: + database: 1 + host: 125.32.114.204 + port: 16379 + password: redis@CC1234 + timeout: 6000 + cache: + database: 2 + host: 125.32.114.204 + port: 16379 + password: redis@CC1234 + timeout: 6000 + +# 天宫Eureka配置 +eureka: + client: + service-url: + defaultZone: http://10.242.31.158:5001/eureka,http://10.242.31.158:5002/eureka,http://10.242.31.158:5003/eureka + instance: + prefer-ip-address: true + hostname: ${spring.cloud.client.ip-address} + instance-ip: ${spring.cloud.client.ip-address}:${server.port} + +mybatis-plus: + configuration: + # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射 + map-underscore-to-camel-case: true + auto-mapping-behavior: full + # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + mapper-locations: classpath*:com/chinaunicom/mall/ebtp/**/mapper/*Mapper.xml + global-config: + # 逻辑删除配置 + db-config: + # logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2) @TableLogic + logic-delete-value: deleted # 逻辑已删除值 + logic-not-delete-value: normal # 逻辑未删除值 + +# --------------feign ------------ +feign: + httpclient: + enabled: false + okhttp: + enabled: true + client: + config: + default: + connect-timeout: 20000 + read-timeout: 20000 + +hystrix: + command: + default: + execution: + timeout: + enabled: true + isolation: + strategy: SEMAPHORE + thread: + timeoutInMilliseconds: 200000 #熔断超时时间 + circuitBreaker: + sleepWindowInMilliseconds: 20000 + forceClosed: true +ribbon: + ReadTimeout: 20000 #请求处理的超时时间 + ConnectTimeout: 20000 #请求连接超时时间 + MaxAutoRetries: 0 #对当前实例的重试次数 + MaxAutoRetriesNextServer: 1 #切换实例的重试次数 1 + +mconfig: + workerId: 1 + datacenterId: 1 + remote: + approval: true #是否需要提交公告审批 + media: true #是否需要发送到媒体 + + #中国联通电子商城外网接入平台 相关参数 + token: + userName: zbgg + password: eip_13579 + file-wjpt-storage-path: http://111.198.162.67:8081/enr/api/base/file/cgDownload/ #测试地址 + #获取file地址 + file: + address: http://125.32.114.204:8760/api/core-service-ebtp-updownload/v1/download/oid/ + #提交审批相关字段 + approve: + wfSectionNo: 002 + wfSectionName: 采购审批 diff --git a/bin/src/main/resources/application.yml b/bin/src/main/resources/application.yml new file mode 100644 index 0000000..caf4dfc --- /dev/null +++ b/bin/src/main/resources/application.yml @@ -0,0 +1,3 @@ +spring: + profiles: + active: dev \ No newline at end of file diff --git a/bin/src/main/resources/file.conf b/bin/src/main/resources/file.conf new file mode 100644 index 0000000..d591bab --- /dev/null +++ b/bin/src/main/resources/file.conf @@ -0,0 +1,66 @@ +transport { + # tcp udt unix-domain-socket + type = "TCP" + #NIO NATIVE + server = "NIO" + #enable heartbeat + heartbeat = true + # the client batch send request enable + enableClientBatchSendRequest = true + #thread factory for netty + threadFactory { + bossThreadPrefix = "NettyBoss" + workerThreadPrefix = "NettyServerNIOWorker" + serverExecutorThread-prefix = "NettyServerBizHandler" + shareBossWorker = false + clientSelectorThreadPrefix = "NettyClientSelector" + clientSelectorThreadSize = 1 + clientWorkerThreadPrefix = "NettyClientWorkerThread" + # netty boss thread size,will not be used for UDT + bossThreadSize = 1 + #auto default pin or 8 + workerThreadSize = "default" + } + shutdown { + # when destroy server, wait seconds + wait = 3 + } + serialization = "seata" + compressor = "none" +} +service { + #transaction service group mapping + vgroupMapping.biz-service-ebtp-expenses-fescar-service-group = "default" + #only support when registry.type=file, please don't set multiple addresses + default.grouplist = "127.0.0.1:8091" + #degrade, current not support + enableDegrade = false + #disable seata + disableGlobalTransaction = false +} + +client { + rm { + asyncCommitBufferLimit = 10000 + lock { + retryInterval = 10 + retryTimes = 30 + retryPolicyBranchRollbackOnConflict = true + } + reportRetryCount = 5 + tableMetaCheckEnable = false + reportSuccessEnable = false + } + tm { + commitRetryCount = 5 + rollbackRetryCount = 5 + } + undo { + dataValidation = true + logSerialization = "jackson" + logTable = "undo_log" + } + log { + exceptionRate = 100 + } +} \ No newline at end of file diff --git a/bin/src/main/resources/logback.xml b/bin/src/main/resources/logback.xml new file mode 100644 index 0000000..62285f5 --- /dev/null +++ b/bin/src/main/resources/logback.xml @@ -0,0 +1,89 @@ + + + + + + + ${logback.appname} + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{50} - %msg%n + + + + + + + + + ERROR + + DENY + + ACCEPT + + + ${logback.logdir}/info.${logback.appname}.log + + + + ${logback.logdir}/info.${logback.appname}.%d{yyyy-MM-dd}.log + + 3 + + true + + + + + + UTF-8 + %d [%thread] %-5level %logger{64} %line - %msg%n + + + + + + + Error + + + ${logback.logdir}/error.${logback.appname}.log + + + + ${logback.logdir}/error.${logback.appname}.%d{yyyy-MM-dd}.log + + 3 + + true + + + + + + UTF-8 + %d [%thread] %-5level %logger{128} %line - %msg%n + + + + + + + + + + + + diff --git a/bin/src/main/resources/registry.conf b/bin/src/main/resources/registry.conf new file mode 100644 index 0000000..bd724ed --- /dev/null +++ b/bin/src/main/resources/registry.conf @@ -0,0 +1,79 @@ +registry { + # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa + type = "eureka" + + nacos { + application = "seata-server" + serverAddr = "localhost" + namespace = "" + username = "" + password = "" + } + eureka { + serviceUrl = "http://10.242.31.158:5001/eureka,http://10.242.31.158:5002/eureka,http://10.242.31.158:5003/eureka" + weight = "1" + } + redis { + serverAddr = "localhost:6379" + db = "0" + password = "" + timeout = "0" + } + zk { + serverAddr = "127.0.0.1:2181" + sessionTimeout = 6000 + connectTimeout = 2000 + username = "" + password = "" + } + consul { + serverAddr = "127.0.0.1:8500" + } + etcd3 { + serverAddr = "http://localhost:2379" + } + sofa { + serverAddr = "127.0.0.1:9603" + region = "DEFAULT_ZONE" + datacenter = "DefaultDataCenter" + group = "SEATA_GROUP" + addressWaitTime = "3000" + } + file { + name = "file.conf" + } +} + +config { + # file、nacos 、apollo、zk、consul、etcd3、springCloudConfig + type = "file" + + nacos { + serverAddr = "localhost" + namespace = "" + group = "SEATA_GROUP" + username = "" + password = "" + } + consul { + serverAddr = "127.0.0.1:8500" + } + apollo { + appId = "seata-server" + apolloMeta = "http://192.168.1.204:8801" + namespace = "application" + } + zk { + serverAddr = "127.0.0.1:2181" + sessionTimeout = 6000 + connectTimeout = 2000 + username = "" + password = "" + } + etcd3 { + serverAddr = "http://localhost:2379" + } + file { + name = "file.conf" + } +} diff --git a/src/main/resources/seata.conf b/bin/src/main/resources/seata.conf similarity index 100% rename from src/main/resources/seata.conf rename to bin/src/main/resources/seata.conf diff --git a/bin/src/main/resources/swagger-configuration.properties b/bin/src/main/resources/swagger-configuration.properties new file mode 100644 index 0000000..6624bf1 --- /dev/null +++ b/bin/src/main/resources/swagger-configuration.properties @@ -0,0 +1,7 @@ +unifast.swagger.basePackage=com.chinaunicom.mall.ebtp.extend +unifast.swagger.title=\u6d4b\u8bd5\u63a5\u53e3\u6587\u6863 +unifast.swagger.contactName=\u5409\u6797\u9879\u76ee\u7ec4 +unifast.swagger.contactUrl=http://chinaunicom.com +unifast.swagger.contactEmail=chinaunicom@chinaunicom.com +unifast.swagger.version=0.0.1 +unifast.swagger.description=\u7840\u540e\u53f0\u529f\u80fd\u6846\u67b6 \ No newline at end of file diff --git a/deployment-gz.yaml b/deployment-gz.yaml index ae3756b..cf47903 100644 --- a/deployment-gz.yaml +++ b/deployment-gz.yaml @@ -29,6 +29,9 @@ spec: labels: # 模板名称 app: biz-service-ebtp-extend + annotations: + prometheus.io/port: '18018' + prometheus.io/jl-pod: 'true' # 定义容器模板,该模板可以包含多个容器 spec: @@ -71,6 +74,8 @@ metadata: app: biz-service-ebtp-extend annotations: lb.cke.tg.unicom/target-vports: 18018-18018 + prometheus.io/port: '18018' + prometheus.io/jl-svc: 'true' spec: ports: - port: 18018 diff --git a/pom.xml b/pom.xml index f696803..c947128 100644 --- a/pom.xml +++ b/pom.xml @@ -20,13 +20,7 @@ com.chinaunicom.mall.ebtp uboot-core - 0.0.2-SNAPSHOT - - - com.chinaunicom.ebtp - mall-ebtp-cloud-security-starter - - + 0.0.1-SNAPSHOT @@ -34,49 +28,45 @@ mall-ebtp-cloud-attachment-sdk - - com.chinaunicom.ebtp - mall-ebtp-cloud-eureka-starter - - - - com.chinaunicom.ebtp - mall-ebtp-cloud-feign-starter - - com.chinaunicom.ebtp mall-ebtp-cloud-apollo-starter - - com.chinaunicom.ebtp - mall-ebtp-cloud-jpa-starter - mysql mysql-connector-java + org.apache.shardingsphere sharding-jdbc-spring-boot-starter - - - com.chinaunicom.ebtp - mall-ebtp-cloud-seata-starter - - - - com.chinaunicom.ebtp - mall-ebtp-cloud-swagger-starter - - - - com.chinaunicom.ebtp - mall-ebtp-cloud-redis-starter - + + com.deepoove + poi-tl + 1.9.1 + + + + org.apache.poi + poi + 4.1.2 + + + + org.apache.poi + poi-ooxml + 4.1.2 + + + + org.apache.poi + poi-ooxml-schemas + 4.1.2 + + @@ -89,6 +79,7 @@ true + always diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java index 4cdccbc..0468653 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/BizServiceEbtpExtendApplication.java @@ -1,14 +1,19 @@ package com.chinaunicom.mall.ebtp.extend; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; +import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; + +import io.micrometer.core.instrument.MeterRegistry; + @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class @@ -22,5 +27,10 @@ public class BizServiceEbtpExtendApplication { public static void main(String[] args) { SpringApplication.run(BizServiceEbtpExtendApplication.class, args); } + + @Bean + public MeterRegistryCustomizer configurer() { + return (registry) -> registry.config().commonTags("application", "biz-service-ebtp-extend"); + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.java index 5266a1a..73a2cf2 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/controller/BizBidNoticeController.java @@ -25,7 +25,7 @@ import io.swagger.annotations.ApiParam; @RestController @Api(tags = "通知公告管理") -@RequestMapping("/api/biz-service-ebtp-extend/v1/bizbidnotice") +@RequestMapping("/v1/bizbidnotice") public class BizBidNoticeController { @Resource @@ -126,7 +126,7 @@ public class BizBidNoticeController { */ @ApiOperation("发布数据") @PostMapping("/fabu/{id}") - public BaseResponse fabu(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse fabu(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidNoticeService.fabu(id)); } @@ -140,7 +140,7 @@ public class BizBidNoticeController { */ @ApiOperation("发布数据") @PostMapping("/qxfabu/{id}") - public BaseResponse qxfabu(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse qxfabu(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidNoticeService.qxfabu(id)); } @@ -154,7 +154,7 @@ public class BizBidNoticeController { */ @ApiOperation("置顶数据") @PostMapping("/top/{id}") - public BaseResponse top(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse top(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidNoticeService.top(id)); } @@ -168,7 +168,7 @@ public class BizBidNoticeController { */ @ApiOperation("取消置顶数据") @PostMapping("/qxtop/{id}") - public BaseResponse qxtop(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse qxtop(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidNoticeService.qxtop(id)); } @@ -182,7 +182,7 @@ public class BizBidNoticeController { */ @ApiOperation("查询数据") @GetMapping("/select/{id}") - public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidNoticeService.getById(id)); } @@ -195,7 +195,7 @@ public class BizBidNoticeController { */ @ApiOperation("删除数据") @PostMapping("/delete/{id}") - public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidNoticeService.deleteOff(id)); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.java index de94fd2..0cb0f3b 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/BizBidNoticeMapper.java @@ -10,7 +10,7 @@ import com.chinaunicom.mall.ebtp.extend.bizbidnotice.entity.BizBidNotice; public interface BizBidNoticeMapper extends IBaseMapper { - public int deleteOff(Long id); + public int deleteOff(String id); public List getList(@Param("noticeTitle")String noticeTitle,@Param("noticeName") String noticeName, @Param("createDate")LocalDateTime createDate,@Param("noticeRelease") String noticeRelease, @Param("pageIndex") Integer getPageNo,@Param("pageSize") Integer pageSize); @@ -20,11 +20,11 @@ public interface BizBidNoticeMapper extends IBaseMapper { public List getAllListByTitle(@Param("noticeTitle")String noticeTitle,@Param("pageIndex") Integer getPageNo,@Param("pageSize") Integer pageSize); - public Boolean fabu(@Param("id")Long id); + public Boolean fabu(@Param("id")String id); - public Boolean qxfabu(@Param("id")Long id); + public Boolean qxfabu(@Param("id")String id); - public Boolean top(@Param("id")Long id); + public Boolean top(@Param("id")String id); - public Boolean qxtop(@Param("id")Long id); + public Boolean qxtop(@Param("id")String id); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml index 8f15396..186091e 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/dao/mapper/BizBidNoticeMapper.xml @@ -77,28 +77,28 @@ where notice_id=#{notice_id} limit #{pageIndex},#{pageSize} - + update biz_bid_notice set notice_release="open" where id=#{id} - + update biz_bid_notice set notice_release="close" where id=#{id} - + update biz_bid_notice set notice_top="0" where id=#{id} - + update biz_bid_notice set notice_top="1" @@ -125,7 +125,7 @@ - + update biz_bid_notice set delete_flag="deleted" diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.java index 504084d..132d7a5 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/entity/BizBidNotice.java @@ -29,7 +29,7 @@ public class BizBidNotice extends BaseEntity implements Serializable { */ @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) - private Long id; + private String id; /** * @@ -93,11 +93,11 @@ public class BizBidNotice extends BaseEntity implements Serializable { this.pageSize = pageSize; } - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/IBizBidNoticeService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/IBizBidNoticeService.java index 899eb57..3f7c76e 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/IBizBidNoticeService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/IBizBidNoticeService.java @@ -13,7 +13,7 @@ import com.chinaunicom.mall.ebtp.extend.bizbidnotice.entity.BizBidNotice; */ public interface IBizBidNoticeService extends IBaseService{ - public int deleteOff(Long id); + public int deleteOff(String id); public List getlist(BizBidNotice bizBidNotice); @@ -23,11 +23,11 @@ public interface IBizBidNoticeService extends IBaseService{ public List getAllListByTitle(BizBidNotice bizBidNotice); - public Boolean fabu(Long id); + public Boolean fabu(String id); - public Boolean qxfabu(Long id); + public Boolean qxfabu(String id); - public Boolean top(Long id); + public Boolean top(String id); - public Boolean qxtop(Long id); + public Boolean qxtop(String id); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.java index 236b7a6..89496a6 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidnotice/service/impl/BizBidNoticeServiceImpl.java @@ -23,7 +23,7 @@ public class BizBidNoticeServiceImpl extends BaseServiceImpl get(@ApiParam(value = "主键id", required = true) @PathVariable Long id){ + public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){ BizBidShared bizBidShared = ibizBidSharedService.getById(id); @@ -112,7 +112,7 @@ public class BizBidSharedController{ */ @ApiOperation("删除数据") @PostMapping("/delete/{id}") - public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable String id) { return BaseResponse.success(ibizBidSharedService.deleteOff(id)); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/BizBidSharedMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/BizBidSharedMapper.java index d27607d..7bac004 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/BizBidSharedMapper.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/BizBidSharedMapper.java @@ -15,5 +15,7 @@ public interface BizBidSharedMapper extends IBaseMapper { List getList(@Param("sharedName")String sharedName, @Param("sharedRole")String sharedRole,@Param("LocalDateTime") LocalDateTime localDateTime,@Param("pageIndex") Integer current,@Param("pageSize") Integer pageSize); + int deleteOff(String id); + } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/mapper/BizBidSharedMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/mapper/BizBidSharedMapper.xml index 8d7b42b..3710820 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/mapper/BizBidSharedMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/dao/mapper/BizBidSharedMapper.xml @@ -45,7 +45,7 @@ - + update biz_bid_shared set delete_flag="deleted" diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.java index aa58d8b..539b70c 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/entity/BizBidShared.java @@ -35,7 +35,7 @@ public class BizBidShared extends BaseEntity implements Serializable { */ @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) - private Long id; + private String id; /** * @@ -95,11 +95,11 @@ public class BizBidShared extends BaseEntity implements Serializable { this.pageSize = pageSize; } - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/IBizBidSharedService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/IBizBidSharedService.java index cb429ff..01997a5 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/IBizBidSharedService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/IBizBidSharedService.java @@ -13,7 +13,7 @@ import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidShared; */ public interface IBizBidSharedService extends IBaseService{ - public int deleteOff(Long id); + public int deleteOff(String id); public List getlist(BizBidShared bizBidNotice); diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/impl/BizBidSharedServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/impl/BizBidSharedServiceImpl.java index 966d372..3096908 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/impl/BizBidSharedServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidshared/service/impl/BizBidSharedServiceImpl.java @@ -23,7 +23,7 @@ public class BizBidSharedServiceImpl extends BaseServiceImpl> getList(@PathVariable("id") String id,@ApiParam(value = "对象数据", required = true)@RequestBody @Valid BizBidSharedRecord bizBidShared){ + public BaseResponse> getList(@PathVariable("id") String id, + @ApiParam(value = "对象数据", required = true) @RequestBody @Valid BizBidSharedRecord bizBidShared) { bizBidShared.setRecordId(id); return BaseResponse.success(ibizBidSharedRecordService.getlist(bizBidShared)); } - + /** * 插入新数据 * * @param bizBidSharedRecord - * + * * @return */ @ApiOperation("插入新数据") @PostMapping("/add") - public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid BizBidShared bizBidShared){ - Long userId = iBaseCacheUserService.getCacheUser().getUserId(); - BizBidSharedRecord bizBidSharedRecord=new BizBidSharedRecord(); + public BaseResponse insert( + @ApiParam(value = "对象数据", required = true) @RequestBody @Valid BizBidShared bizBidShared) { + BizBidSharedRecord bizBidSharedRecord = new BizBidSharedRecord(); bizBidSharedRecord.setId(null); - bizBidSharedRecord.setCreateBy(userId); bizBidSharedRecord.setRecordId(bizBidShared.getId().toString()); boolean save = ibizBidSharedRecordService.save(bizBidSharedRecord); - + return BaseResponse.success(save); } - + /** * 修改数据 * * @param bizBidSharedRecord - * + * * @return */ @ApiOperation("修改数据") @PutMapping("") - public BaseResponse update(@ApiParam(value = "对象数据", required = true) @RequestBody BizBidSharedRecord bizBidSharedRecord){ + public BaseResponse update( + @ApiParam(value = "对象数据", required = true) @RequestBody BizBidSharedRecord bizBidSharedRecord) { return BaseResponse.success(ibizBidSharedRecordService.saveOrUpdate(bizBidSharedRecord)); } - } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml index ed9b47a..a7c42e2 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/dao/mapper/BizBidSharedRecordMapper.xml @@ -57,7 +57,7 @@ - + update biz_bid_shared_record set delete_flag="deleted" diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java index 9a1937a..ea4fa88 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/bizbidsharedrecord/entity/BizBidSharedRecord.java @@ -31,7 +31,7 @@ public class BizBidSharedRecord extends BaseEntity implements Serializable { * */ @ApiModelProperty(value = "ID") - private Long id; + private String id; /** * @@ -94,11 +94,11 @@ public class BizBidSharedRecord extends BaseEntity implements Serializable { this.pageSize = pageSize; } - public Long getId() { + public String getId() { return id; } - public void setId(Long id) { + public void setId(String id) { this.id = id; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEarlyWarn.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEarlyWarn.java new file mode 100644 index 0000000..4f84e02 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEarlyWarn.java @@ -0,0 +1,71 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 有效供应商少于3家提醒说明 + *

+ * + * @author dino + * @since 2021-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEarlyWarn对象", description="有效供应商少于3家提醒说明") +@TableName(value = "biz_rsms_bid_early_warn",autoResultMap = true) +public class BidEarlyWarn extends BaseEntity implements Serializable { + + private static final Long serialVersionUID = 1L; + + @TableId + @ApiModelProperty(value = "编号") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + @ApiModelProperty(value = "是否继续:1是0否") + @TableField(value = "is_continue") + private Integer continueStatus; + + @ApiModelProperty(value = "说明") + private String remarks; + + @ApiModelProperty(value = "附件ID") + private String fileId; + + @ApiModelProperty(value = "项目id") + @JsonSerialize(using = ToStringSerializer.class) + private String projectId; + + @ApiModelProperty(value = "标包id") + @JsonSerialize(using = ToStringSerializer.class) + private String sectionId; + + @ApiModelProperty(value = "评审室Id") + @JsonSerialize(using = ToStringSerializer.class) + private String assessRoomId; + + @ApiModelProperty(value = "评审室序号") + private Integer assessRoomSort; + + @ApiModelProperty(value = "轮次ID") + @JsonSerialize(using = ToStringSerializer.class) + private String reviewTurnId; + + @ApiModelProperty(value = "轮次数") + private Integer reviewTurnSort; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetail.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetail.java new file mode 100644 index 0000000..0505d1b --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetail.java @@ -0,0 +1,179 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 评标详细评审表 + *

+ * + * @author dino + * @since 2020-11-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalDetail对象", description="评标详细评审表") +@TableName(value = "biz_rsms_bid_eval_detail",autoResultMap = true) +public class BidEvalDetail extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId + @ApiModelProperty(value = "编号") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "评标主表ID(biz_eval_rvw)") + @JsonSerialize(using = ToStringSerializer.class) + private String bidEvalId; + + @ApiModelProperty(value = "评标类别表ID(biz_rsms_bid_eval_category)") + @JsonSerialize(using = ToStringSerializer.class) + private String bidEvalCategoryId; + + @ApiModelProperty(value = "评审配置类别表ID(biz_rsms_review_config_category)") + @JsonSerialize(using = ToStringSerializer.class) + private String categoryId; + + @ApiModelProperty(value = "详审项类别:0:报价;1:商务;2:技术;4:工程报价 ;5:服务。初审项类别:0:形式评审;1:资格审查项;2:响应性评审;3:商务审查项;4: 技术审查项;5: 服务审查项;6: 其他审查项") + private String category; + + @ApiModelProperty(value = "评分细则表ID(biz_rsms_review_config_detail)") + @JsonSerialize(using = ToStringSerializer.class) + private String detailId; + + @ApiModelProperty(value = "详细评分标准ID(biz_rsms_bid_eval_standard)") + @JsonSerialize(using = ToStringSerializer.class) + private String standardId; + + @ApiModelProperty(value = "结果值:初审1:合格;2不合格。详审:合计") + private String resultValue; + + @ApiModelProperty(value = "评分详情") + private String detailValue; + + @ApiModelProperty(value = "权重") + private Float weights; + + @ApiModelProperty(value = "备注") + private String remarks; + + + + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSupplierRegisterId() { + return supplierRegisterId; + } + + public void setSupplierRegisterId(String supplierRegisterId) { + this.supplierRegisterId = supplierRegisterId; + } + + public String getBidEvalId() { + return bidEvalId; + } + + public void setBidEvalId(String bidEvalId) { + this.bidEvalId = bidEvalId; + } + + public String getBidEvalCategoryId() { + return bidEvalCategoryId; + } + + public void setBidEvalCategoryId(String bidEvalCategoryId) { + this.bidEvalCategoryId = bidEvalCategoryId; + } + + public String getCategoryId() { + return categoryId; + } + + public void setCategoryId(String categoryId) { + this.categoryId = categoryId; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getDetailId() { + return detailId; + } + + public void setDetailId(String detailId) { + this.detailId = detailId; + } + + public String getStandardId() { + return standardId; + } + + public void setStandardId(String standardId) { + this.standardId = standardId; + } + + public String getResultValue() { + return resultValue; + } + + public void setResultValue(String resultValue) { + this.resultValue = resultValue; + } + + public String getDetailValue() { + return detailValue; + } + + public void setDetailValue(String detailValue) { + this.detailValue = detailValue; + } + + public Float getWeights() { + return weights; + } + + public void setWeights(Float weights) { + this.weights = weights; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetailDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetailDTO.java new file mode 100644 index 0000000..86f911a --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalDetailDTO.java @@ -0,0 +1,105 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 评标详细评审表 + *

+ * + * @author dino + * @since 2020-11-19 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalDetailDTO对象", description="评标详细评审表DTO") +public class BidEvalDetailDTO extends BidEvalDetail implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "评审轮次ID") + @JsonSerialize(using = ToStringSerializer.class) + private String reviewTurnId; + + @ApiModelProperty(value = "轮次数") + private Integer reviewTurnSort; + + @ApiModelProperty(value = "评审室Id") + @JsonSerialize(using = ToStringSerializer.class) + private String assessRoomId; + + @ApiModelProperty(value = "评审室序号") + @JsonSerialize(using = ToStringSerializer.class) + private Integer assessRoomSort; + + @ApiModelProperty(value = "评审类型(1:初审,2:详细评审)") + private String reviewType; + + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + @ApiModelProperty(value = "供应商ID") + private List supplierRegisterIds; + + + public static long getSerialversionuid() { + return serialVersionUID; + } + + public String getReviewTurnId() { + return reviewTurnId; + } + + public void setReviewTurnId(String reviewTurnId) { + this.reviewTurnId = reviewTurnId; + } + + public Integer getReviewTurnSort() { + return reviewTurnSort; + } + + public void setReviewTurnSort(Integer reviewTurnSort) { + this.reviewTurnSort = reviewTurnSort; + } + + public String getAssessRoomId() { + return assessRoomId; + } + + public void setAssessRoomId(String assessRoomId) { + this.assessRoomId = assessRoomId; + } + + public Integer getAssessRoomSort() { + return assessRoomSort; + } + + public void setAssessRoomSort(Integer assessRoomSort) { + this.assessRoomSort = assessRoomSort; + } + + public String getReviewType() { + return reviewType; + } + + public void setReviewType(String reviewType) { + this.reviewType = reviewType; + } + + public List getSupplierRegisterIds() { + return supplierRegisterIds; + } + + public void setSupplierRegisterIds(List supplierRegisterIds) { + this.supplierRegisterIds = supplierRegisterIds; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfo.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfo.java new file mode 100644 index 0000000..8ef5000 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfo.java @@ -0,0 +1,154 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 评标主表 + *

+ * + * @author dino + * @since 2020-11-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalInfo对象", description="评标主表") +@TableName(value = "biz_rsms_bid_eval_info",autoResultMap = true) +public class BidEvalInfo extends BaseEntity implements Serializable { + + private static final Long serialVersionUID = 1L; + + @TableId + @ApiModelProperty(value = "编号") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + @ApiModelProperty(value = "评审类型(1:初审,2:详细评审)") + private String reviewType; + + @ApiModelProperty(value = "初审或详审状态(1:未提交汇总;2:提交汇总;3:结束)") + private String reviewStatus; + + @ApiModelProperty(value = "初审或详审评审结果说明") + private String reviewResultComment; + + @ApiModelProperty(value = "项目id") + @JsonSerialize(using = ToStringSerializer.class) + private String projectId; + + @ApiModelProperty(value = "标包id") + @JsonSerialize(using = ToStringSerializer.class) + private String sectionId; + + @ApiModelProperty(value = "评审室Id") + @JsonSerialize(using = ToStringSerializer.class) + private String assessRoomId; + + @ApiModelProperty(value = "评审室序号") + @JsonSerialize(using = ToStringSerializer.class) + private Integer assessRoomSort; + + @ApiModelProperty(value = "轮次ID") + @JsonSerialize(using = ToStringSerializer.class) + private String reviewTurnId; + + @ApiModelProperty(value = "轮次数") + private Integer reviewTurnSort; + + + public static Long getSerialVersionUID() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReviewType() { + return reviewType; + } + + public void setReviewType(String reviewType) { + this.reviewType = reviewType; + } + + public String getReviewStatus() { + return reviewStatus; + } + + public void setReviewStatus(String reviewStatus) { + this.reviewStatus = reviewStatus; + } + + public String getReviewResultComment() { + return reviewResultComment; + } + + public void setReviewResultComment(String reviewResultComment) { + this.reviewResultComment = reviewResultComment; + } + + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public String getSectionId() { + return sectionId; + } + + public void setSectionId(String sectionId) { + this.sectionId = sectionId; + } + + public String getAssessRoomId() { + return assessRoomId; + } + + public void setAssessRoomId(String assessRoomId) { + this.assessRoomId = assessRoomId; + } + + public Integer getAssessRoomSort() { + return assessRoomSort; + } + + public void setAssessRoomSort(Integer assessRoomSort) { + this.assessRoomSort = assessRoomSort; + } + + public String getReviewTurnId() { + return reviewTurnId; + } + + public void setReviewTurnId(String reviewTurnId) { + this.reviewTurnId = reviewTurnId; + } + + public Integer getReviewTurnSort() { + return reviewTurnSort; + } + + public void setReviewTurnSort(Integer reviewTurnSort) { + this.reviewTurnSort = reviewTurnSort; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfoDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfoDTO.java new file mode 100644 index 0000000..50496ca --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/BidEvalInfoDTO.java @@ -0,0 +1,34 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ * 评标主表 + *

+ * + * @author dino + * @since 2020-11-18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalInfoDTO对象", description="评标主表DTO") +public class BidEvalInfoDTO extends BidEvalInfo implements Serializable { + + private static final Long serialVersionUID = 1L; + + @ApiModelProperty(value = "初审提交说明") + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + private BidEarlyWarn earlyWarn; + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java new file mode 100644 index 0000000..52cbb2e --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ExportParame.java @@ -0,0 +1,57 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import io.swagger.annotations.ApiModelProperty; + +/** + * 参数 + */ +public class ExportParame { + + private String assessRoomId; + private String reviewTurnId; + + private String projectId; + @ApiModelProperty(value = "标段id") + private String sectionId; + private String reviewType; + + public String getAssessRoomId() { + return assessRoomId; + } + + public void setAssessRoomId(String assessRoomId) { + this.assessRoomId = assessRoomId; + } + + public String getReviewTurnId() { + return reviewTurnId; + } + + public void setReviewTurnId(String reviewTurnId) { + this.reviewTurnId = reviewTurnId; + } + + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public String getSectionId() { + return sectionId; + } + + public void setSectionId(String sectionId) { + this.sectionId = sectionId; + } + + public String getReviewType() { + return reviewType; + } + + public void setReviewType(String reviewType) { + this.reviewType = reviewType; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSection.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSection.java new file mode 100644 index 0000000..d262698 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSection.java @@ -0,0 +1,248 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 项目标段信息实体类 BizProjectSection + * + * @author daixc + * @date 2020/10/25 + */ +@Data +@Accessors(chain = true) +@ApiModel("项目标段信息") +@TableName(value = "biz_project_section", autoResultMap = true) +public class ProjectSection extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty(value = "主键") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + /** + * 招标项目表主键 + */ + @ApiModelProperty(value = "招标项目表主键") + @JsonSerialize(using = ToStringSerializer.class) + private String projectId; + + /** + * 标段包业务编号:招标项目业务编号/1 + */ + @ApiModelProperty(value = "标段包业务编号:招标项目业务编号/1") + @Length(max = 50,message = "业务编号最长为50字符") + private String bidSectBizNum; + + /** + * 标包序号 + */ + @ApiModelProperty(value = "标包序号") + private String bidSectCode; + + /** + * 标段(包)名称 + */ + @ApiModelProperty(value = "标段(包)名称") + @Length(max = 200,message = "标段(包)名称最长为200字符") + private String bidSectName; + + /** + * 标段(包)内容 + */ + @ApiModelProperty(value = "标段(包)内容") + @Length(max = 2000,message = "内容描述最长为2000字符") + private String bidSectContent; + + /** + * 标段(包)分类代码字典编码 + */ + @ApiModelProperty(value = "标段(包)分类代码字典编码") + private String bidSectTypeDict; + + /** + * 标包预算 + */ + @ApiModelProperty(value = "标包预算") + @Length(max = 20,message = "标包预算最长为20位") + private BigDecimal bidSectContractPrice; + + /** + * 标包预算币种字典编号 + */ + @ApiModelProperty(value = "标包预算币种字典编号") + private String contractPriceCurrencyDict; + + /** + * 询价方式 + */ + @ApiModelProperty(value = "询价方式") + private String selectionMethod; + + /** + * 评审规则(合格制|数量有限制) + */ + @ApiModelProperty(value = "评审规则(合格制|数量有限制)") + private String reviewRules; + + /** + * 标段合同估算价单位字典编码 + */ + @ApiModelProperty(value = "标段合同估算价单位字典编码") + private String priceUnitDict; + + /** + * 投标人资格条件 + */ + @ApiModelProperty(value = "投标人资格条件") + @Length(max = 1000,message = "投标人资格条件最长为1000字符") + private String bidderQual; + + /** + * 报价类型 + */ + @ApiModelProperty(value = "报价类型") + private String quotationMethodDict; + + /** + * 谈判开启时间 + */ + @ApiModelProperty(value = "谈判开启时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @TableField(typeHandler = CustomLocalDateTimeTypeHandler.class) + private LocalDateTime tenderOpeningTime; + + + /** + * 资审入围方式(合格制 | 有限数量制) + */ + @ApiModelProperty(value = "资审入围方式(合格制 | 有限数量制)") + private String ptcpMode; + + /** + * 入围数量(废弃) + */ + @ApiModelProperty(value = "入围数量") + private Integer ptcpCount; + + /** + * 业务模块 + */ + @ApiModelProperty(value = "业务模块") + private Integer businessModule; + /** + * 业务状态 + */ + @ApiModelProperty(value = "业务状态") + private Integer status; + + /** + * 标书附件集id + */ + @ApiModelProperty(value = "标书附件集id") + private String attDatasetId; + + + /** + * 资格审查方法1.资格预审 2.资格后审 + */ + @ApiModelProperty(value = "资格审查方法1.资格预审 2.资格后审") + private String checkMethodDict; + + /** + * 选择流程 + */ + @ApiModelProperty(value = "选择流程") + private String chooseProcess; + + /** + * 评审报告附件集id + */ + @ApiModelProperty(value = "评审报告附件集id") + private String reviewReportId; + + /** + * 标段编号(采购系统方案编号) + */ + @ApiModelProperty(value = "标段编号") + private String sectionNumber; + + /** + * 评审方法(1:最低价法;2:综合评估法) + */ + @ApiModelProperty(value = "评审方法(1:最低价法;2:综合评估法)") + private String evalMethodDict; + + /** + * 采购类型,1-货物,2-工程,3-服务,4-其他 + */ + @ApiModelProperty(value = "采购类型,1-货物,2-工程,3-服务,4-其他") + private String procurementTypeDict; + + + /** + * 项目数据推送工信部返回的工信部包编号 + */ + @ApiModelProperty(value = "项目数据推送工信部返回的工信部包编号") + private String miitSectionId; + + + /** + * 货币单位(1-元 2-万元) + */ + @ApiModelProperty(value = "货币单位(1-元 2-万元)") + private String monetaryUnit; + + /** + * 备注说明,用于本标段各种情况的说明,累加制 + */ + @ApiModelProperty(value = "备注说明,用于本标段各种情况的说明,累加制") + private String remarks; + + /** + * 父标包序号,当重新招标或二次公告、变更采购方式时用于记录原先的包序号 + */ + @ApiModelProperty(value = "父标包序号,当重新招标或二次公告、变更采购方式时用于记录原先的包序号") + @JsonSerialize(using = ToStringSerializer.class) + private String parentSectionId; + + /** + * 标段项目方案ID + */ + @ApiModelProperty(value = "标段项目方案ID") + private String projectPlanId; + + /** + * 标段子项目ID + */ + @ApiModelProperty(value = "标段子项目ID") + private String subprojectId; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSectionVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSectionVO.java new file mode 100644 index 0000000..e2b1748 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ProjectSectionVO.java @@ -0,0 +1,141 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +/** + * 项目标段信息VO实体类 BizProjectSection + * + * @author daixc + * @date 2020/10/25 + */ +@Data +@Accessors(chain = true) +@ApiModel("项目标段信息VO类") +@TableName(autoResultMap = true) +public class ProjectSectionVO extends ProjectSection implements Serializable { + + /** + * 分页数据 + */ + @ApiModelProperty(value = "分页对象信息") + private BasePageRequest basePageRequest; + + /** + * 是否被选中 0 是 1 否 + */ + @ApiModelProperty(value = "是否被选中 0 不选中 1 选中") + private Integer isExceptionCheck; + + /** + * 流程ID + */ + @ApiModelProperty(value = "流程ID") + @JsonSerialize(using = ToStringSerializer.class) + private String flowId; + + /** + * 招标方式字典编号 + */ + @ApiModelProperty(value = "招标方式字典编号") + private String bidMethodDict; + + /** + * 招标项目名称 + */ + @ApiModelProperty(value = "招标项目名称") + private String projectName; + + /** + * 查询ID集合 + */ + @ApiModelProperty(value = "查询ID集合") + private List sectionIds; + + /** + * 资格审查方式|招募方式(评审次数)|竞争性谈判(参与方式) + */ + @ApiModelProperty(value = "资格审查方式|招募方式(评审次数)|竞争性谈判(参与方式)") + private String examinationMethodDict; + + /** + * 候审流程ID + */ + @ApiModelProperty(value = "候审流程ID") + @JsonSerialize(using = ToStringSerializer.class) + private String qualFlowId; + + + public BasePageRequest getBasePageRequest() { + return basePageRequest; + } + + public void setBasePageRequest(BasePageRequest basePageRequest) { + this.basePageRequest = basePageRequest; + } + + public Integer getIsExceptionCheck() { + return isExceptionCheck; + } + + public void setIsExceptionCheck(Integer isExceptionCheck) { + this.isExceptionCheck = isExceptionCheck; + } + + public String getFlowId() { + return flowId; + } + + public void setFlowId(String flowId) { + this.flowId = flowId; + } + + public String getBidMethodDict() { + return bidMethodDict; + } + + public void setBidMethodDict(String bidMethodDict) { + this.bidMethodDict = bidMethodDict; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public List getSectionIds() { + return sectionIds; + } + + public void setSectionIds(List sectionIds) { + this.sectionIds = sectionIds; + } + + public String getExaminationMethodDict() { + return examinationMethodDict; + } + + public void setExaminationMethodDict(String examinationMethodDict) { + this.examinationMethodDict = examinationMethodDict; + } + + public String getQualFlowId() { + return qualFlowId; + } + + public void setQualFlowId(String qualFlowId) { + this.qualFlowId = qualFlowId; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategory.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategory.java new file mode 100644 index 0000000..2089c61 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategory.java @@ -0,0 +1,58 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 评审配置-类别表 + *

+ * + * @author dino + * @since 2020-10-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName(value = "biz_rsms_review_config_category",autoResultMap = true) +@ApiModel(value="ReviewConfigCategory对象", description="评审类别表") +public class ReviewConfigCategory extends BaseEntity implements Serializable { + + private static final Long serialVersionUID = 1L; + + @ApiModelProperty(value = "编号") + @TableId + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + @ApiModelProperty(value = "评审配置表ID") + @JsonSerialize(using = ToStringSerializer.class) + private String configId; + + @ApiModelProperty(value = "类别名称") + private String name; + + @ApiModelProperty(value = "类别:0:报价;1:商务;2:技术;5:服务。初审项类别:0:形式评审;1:资格审查项;2:响应性评审;7:符合性审查") + private String category; + + @JsonInclude(value = JsonInclude.Include.NON_NULL) + @ApiModelProperty(value = "权重") + private BigDecimal weights; + + @JsonInclude(value = JsonInclude.Include.NON_NULL) + @ApiModelProperty(value = "总分数") + private BigDecimal totalScore; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategoryDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategoryDTO.java new file mode 100644 index 0000000..de308e9 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigCategoryDTO.java @@ -0,0 +1,36 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + + +/** + *

+ * 评审配置-类别表 + *

+ * + * @author dino + * @since 2020-10-23 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +public class ReviewConfigCategoryDTO extends ReviewConfigCategory implements Serializable { + + private static final Long serialVersionUID = 1L; + + /** + * 详审项集合 + */ + @ApiModelProperty(value = "详审项集合") + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + private List detailList; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetail.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetail.java new file mode 100644 index 0000000..632c577 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetail.java @@ -0,0 +1,127 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 评分细则(初审和详审) + *

+ * + * @author dino + * @since 2020-11-06 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(value = "biz_rsms_review_config_detail",autoResultMap = true) +@ApiModel(value="ReviewConfigDetail对象", description="评分细则(初审和详审)") +public class ReviewConfigDetail extends BaseEntity implements Serializable { + + private static final Long serialVersionUID = 1L; + + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "编号") + @TableId + private String id; + + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "类别表ID") + private String categoryId; + + @ApiModelProperty(value = "是否可偏离项:1是0否") + @TableField(value = "is_deviation") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer deviationStatus; + + @ApiModelProperty(value = "审查标准") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String rvwStandard; + + @ApiModelProperty(value = "评分项名称") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String scoreItem; + + @ApiModelProperty(value = "权重") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal weights; + + @ApiModelProperty(value = "最低分") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal lowScore; + + @ApiModelProperty(value = "最高分") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal highScore; + + @ApiModelProperty(value = "评分方式") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String scoreMethod; + + @ApiModelProperty(value = "一致性:1是0否") + @TableField(value = "is_consistency") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer consistencyStatus; + + @ApiModelProperty(value = "有效报价") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String effectiveType; + + @ApiModelProperty(value = "是否包含(最低价)") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal includeLowPrice; + + @ApiModelProperty(value = "是否包含类别(最低价):1是0否") + @TableField(value = "is_include_low") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer includeLowStatus; + + @ApiModelProperty(value = "是否包含(最高价)") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal includeHighPrice; + + @ApiModelProperty(value = "是否包含类别(最高价):1是0否") + @TableField(value = "is_include_high") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer includeHighStatus; + + @ApiModelProperty(value = "评标基准价") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String baseType; + + @ApiModelProperty(value = "平均报价*乘数") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal avgPriceMultiplier; + + @ApiModelProperty(value = "报价分") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String priceType; + + @ApiModelProperty(value = "报价分*乘数") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal priceMultiplier; + + @ApiModelProperty(value = "报价分*乘数2") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal priceMultiplierSecond; + + @ApiModelProperty(value = "最低分2") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal lowScoreSecond; + + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetailDTO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetailDTO.java new file mode 100644 index 0000000..733bd8c --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigDetailDTO.java @@ -0,0 +1,61 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalDetailVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalEarlyJudgesSummaryVO; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + *

+ * 评审配置-评分细则 + *

+ * + * @author dino + * @since 2020-11-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +public class ReviewConfigDetailDTO extends ReviewConfigDetail implements Serializable { + + private static final Long serialVersionUID = 1L; + + /** + * excel导入时用来分组使用 + */ + @JsonInclude(value = JsonInclude.Include.NON_NULL) + @ApiModelProperty(value = "类别") + private String category; + + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + @ApiModelProperty(value = "评分标准集合") + private List standardList; + + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + @ApiModelProperty(value = "应答文件ID集合") + @NotNull + private List documentIdList; + + @ApiModelProperty(value = "前端索引") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer key; + + @ApiModelProperty(value = "打分") + private Map scoreMap; + + @ApiModelProperty(value = "初审专家汇总") + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Map earlyMap; + + @ApiModelProperty(value = "初审汇总表用") + private Map earlyExpertMap; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigStandard.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigStandard.java new file mode 100644 index 0000000..cd3e1ec --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/bean/ReviewConfigStandard.java @@ -0,0 +1,50 @@ +package com.chinaunicom.mall.ebtp.extend.export.bean; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 详审项-评分标准 + *

+ * + * @author dino + * @since 2020-11-06 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(value = "biz_rsms_review_config_standard",autoResultMap = true) +@ApiModel(value="ReviewConfigStandard对象", description="评分标准") +public class ReviewConfigStandard extends BaseEntity implements Serializable { + + private static final Long serialVersionUID = 1L; + + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "编号") + @TableId + private String id; + + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "详审项ID") + private String detailId; + + @ApiModelProperty(value = "评分因素") + private String standardName; + + @ApiModelProperty(value = "详细评分标准分数") + private BigDecimal standardDetailScore; + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java new file mode 100644 index 0000000..5fc7db5 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/controller/ExportController.java @@ -0,0 +1,1064 @@ +package com.chinaunicom.mall.ebtp.extend.export.controller; + +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.VerticalAlignment; +import org.apache.poi.ss.util.CellRangeAddress; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalDetailDTO; +import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalInfoDTO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ExportParame; +import com.chinaunicom.mall.ebtp.extend.export.bean.ProjectSectionVO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ReviewConfigCategoryDTO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ReviewConfigDetailDTO; +import com.chinaunicom.mall.ebtp.extend.export.services.ExportService; +import com.chinaunicom.mall.ebtp.extend.export.services.ExportServiceProject; +import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalDetailVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalEarlyJudgesSummaryVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.JuryPrintVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.MemberVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterPriceScoreVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterVO; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.policy.HackLoopTableRenderPolicy; + +import io.swagger.annotations.Api; + + +@RestController +@Api(tags = "") +@RequestMapping("/api/biz-service-ebtp-extend/v1/export") +public class ExportController { + + @Resource + private ExportService exportService; + @Resource + private ExportServiceProject exportServiceProject; + + + + + + /** + * 1 + * 导出方法 + * 开标记录表 + */ + @RequestMapping(value = "/kbjl", method = RequestMethod.GET) + @ResponseBody + //TODO 暂未完成 + public void exportKbjlMessage(HttpServletRequest request, HttpServletResponse response) throws IOException { + + ArrayList> maps = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map data = new HashMap<>(); + data.put("num", i); + data.put("tbr", "投标人" + i); + data.put("bj", "10" + i); + data.put("yy", "有争议" + i); + data.put("sign", "签字人" + i + ":2021年"); + maps.add(data); + } + + File file = new File("d:/开标记录表.docx"); + Map all = new HashMap() {{ + put("Record", maps); + put("time", "2020年1月11日"); + put("mc", "测试项目"); + put("yuan", "9999"); + }}; + + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + Configure config = Configure.builder().bind("Record", policy).build(); + XWPFTemplate template = XWPFTemplate.compile(file, config).render(all); + + String fileName = new String("开标记录表.docx".getBytes("UTF-8"), "iso-8859-1"); + + OutputStream os = response.getOutputStream(); + response.setHeader("Content-disposition", "attachment; filename=" + fileName); + template.write(os); + } + + + /** + * 2 + * 导出方法 + * 评标委员会签字表 + */ + @RequestMapping(value = "/judges", method = RequestMethod.GET) + @ResponseBody + public void exportJudgesMessage(ExportParame parame,HttpServletRequest request, HttpServletResponse response) throws IOException { + + //项目和招标名称处理 + ProjectSectionVO projectSectionVO = new ProjectSectionVO(); + projectSectionVO.setId(parame.getSectionId()); + BaseResponse list = exportServiceProject.selectById(projectSectionVO); + + //专家人员数据 + BaseResponse> listBaseResponse=exportService.queryReportPrintByRoomId(parame.getAssessRoomId()); + ArrayList> maps = new ArrayList<>(); + for (int i = 0; i < listBaseResponse.getData().size(); i++) { + Map data = new HashMap<>(); + data.put("name", listBaseResponse.getData().get(i).getName()); + data.put("phone", listBaseResponse.getData().get(i).getMobile()); + maps.add(data); + } + + //获取模板 + File file = new File("d:/评标委员会签字表.docx"); + + //当前时间 + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); + + Map all = new HashMap() {{ + put("Judges", maps); + put("time", sdf.format(date)); + put("bh",list.getData().getBidSectCode()); + put("mc", list.getData().getProjectName()); + }}; + + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + Configure config = Configure.builder().bind("Judges", policy).build(); + XWPFTemplate template = XWPFTemplate.compile(file, config).render(all); + + String fileName = new String("评标委员会签字表.docx".getBytes("UTF-8"), "iso-8859-1"); + + OutputStream os = response.getOutputStream(); + response.setHeader("Content-disposition", "attachment; filename=" + fileName); + template.write(os); + } + + + + /** + * 3 + * 导出方法 + * 评审专家签到表 + */ + @RequestMapping(value = "/pszj", method = RequestMethod.GET) + @ResponseBody + public void exportPszjMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { + + + //项目和招标名称处理 + ProjectSectionVO projectSectionVO = new ProjectSectionVO(); + projectSectionVO.setId(parame.getSectionId()); + BaseResponse list = exportServiceProject.selectById(projectSectionVO); + + //专家人员数据 + BaseResponse> listBaseResponse=exportService.queryReportPrintByRoomId(parame.getAssessRoomId()); + + ArrayList> maps = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map data = new HashMap<>(); + data.put("name", listBaseResponse.getData().get(i).getName()); + data.put("phone", listBaseResponse.getData().get(i).getMobile()); + data.put("idCard", listBaseResponse.getData().get(i).getCertificate()); + data.put("isTrue", listBaseResponse.getData().get(i).getAttitude()); + data.put("time", listBaseResponse.getData().get(i).getLoginTime()); + maps.add(data); + } + + File file = new File("d:/评审专家签到表.docx"); + Map all = new HashMap() {{ + put("table", maps); + }}; + + HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy(); + Configure config = Configure.builder().bind("table", policy).build(); + XWPFTemplate template = XWPFTemplate.compile(file, config).render(all); + + String fileName = new String("评审专家签到表.docx".getBytes("UTF-8"), "iso-8859-1"); + + OutputStream os = response.getOutputStream(); + response.setHeader("Content-disposition", "attachment; filename=" + fileName); + template.write(os); + } + + + + /** + * 4 + * 导出方法 + * 评标报告 + */ + @RequestMapping(value = "/pbbg", method = RequestMethod.GET) + @ResponseBody + //todo 暂未完成 + public void exportAllMessage( ExportParame parame,HttpServletRequest request, HttpServletResponse response) throws IOException { + + //表一假数据 + List> list1 = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("name", "投标人" + i); + map.put("type", "已投标"); + list1.add(map); + } + + //表二假数据 + List> list2 = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + Map map = new HashMap<>(); + map.put("time", "2021.3.4"); + map.put("nr", "好多内容"); + list2.add(map); + } + + //表三假数据 + List> list3 = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("work", "建设部" + i); + map.put("name", "刘某" + i); + map.put("unit", "全国各地" + i); + list3.add(map); + } + + //表四假数据 + List> list4 = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("tbr", "投标人" + i); + map.put("jg", "结果" + i); + list4.add(map); + } + + //表五假数据 + List> list5 = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("zg", "没资格"); + map.put("sm", "不合格理由"); + list5.add(map); + } + + + //表六假数据 + List> list6 = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("tbr", "投标人" + i); + map.put("js", "100" + i); + map.put("sw", "99" + i); + list6.add(map); + } + + //表七假数据 + List> list7 = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("tbr", "投标人" + i); + map.put("bj", "100" + i); + map.put("psjg", "101" + i); + map.put("jgdf", "102" + i); + list7.add(map); + } + + //表八假数据 + List> list8 = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map map = new HashMap<>(); + map.put("num", i); + map.put("tbr", "投标人" + i); + map.put("swdf", "100" + i); + map.put("jsdf", "101" + i); + map.put("jgdf", "102" + i); + map.put("zhdf", "103" + i); + map.put("bj", "104" + i); + list8.add(map); + } + + + Map all = new HashMap() {{ + put("table1", list1); + put("table2", list2); + put("table3", list3); + put("table4", list4); + put("table5", list5); + put("table6", list6); + put("table7", list7); + put("table8", list8); + }}; + + + HackLoopTableRenderPolicy policy1 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy2 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy3 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy4 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy5 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy6 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy7 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy8 = new HackLoopTableRenderPolicy(); + + Configure config = Configure.builder().bind("table1", policy1).bind("table2", policy2).bind("table3", policy3) + .bind("table4", policy4).bind("table5", policy5).bind("table6", policy6) + .bind("table7", policy7).bind("table8", policy8).build(); + + + File file = new File("d:/评标报告.docx"); + XWPFTemplate template = XWPFTemplate.compile(file, config).render(all); + + String fileName = new String("评标报告.docx".getBytes("UTF-8"), "iso-8859-1"); + OutputStream os = response.getOutputStream(); + response.setHeader("Content-disposition", "attachment; filename=" + fileName); + template.write(os); + + } + + + + /** + * 5 + * 导出方法 + * 评标专家承诺书 + */ + @RequestMapping(value = "/zjcn", method = RequestMethod.GET) + @ResponseBody + public void exportPbcnMessage(HttpServletRequest request, HttpServletResponse response) throws IOException { + + //文件模板从数据库或者项目位置取得 + File file = new File("d:/评标专家承诺书.docx"); + + XWPFTemplate template = XWPFTemplate.compile(file); + + String fileName = new String("评标专家承诺书.docx".getBytes("UTF-8"), "iso-8859-1"); + + OutputStream os = response.getOutputStream(); + response.setHeader("Content-disposition", "attachment; filename=" + fileName); + template.write(os); + } + + + /** + * 6 + * 导出方法 + * 打分汇总 + */ + @RequestMapping(value = "dfhz", method = RequestMethod.GET) + @ResponseBody + // TODO: 2021/1/26 暂时未完成 + public void exportDfMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { + + File file = new File("d:/打分汇总表.docx"); + + + //表1和表2假数据 + List> list12 = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + Map map = new HashMap<>(); + map.put("name", "投标人" + i); + map.put("num", i); + map.put("z1", 10); + map.put("z2", 15); + map.put("z3", 20); + map.put("avg", 15); + list12.add(map); + } + + //表3假数据 + List> list3 = new ArrayList<>(); + for (int i = 0; i < 4; i++) { + Map map = new HashMap<>(); + map.put("name", "投标人" + i); + map.put("num", i); + map.put("jg", i); + list3.add(map); + } + + //表4假数据 + List> list4 = new ArrayList<>(); + for (int i = 0; i < 3; i++) { + Map map = new HashMap<>(); + map.put("name", "投标人" + i); + map.put("num", i); + map.put("sw", i); + map.put("fw", i); + map.put("jg", i); + map.put("zh", i); + list4.add(map); + } + + Map all = new HashMap() {{ + put("table1", list12); + put("table2", list12); + put("table3", list3); + put("table4", list4); + + }}; + HackLoopTableRenderPolicy policy1 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy2 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy3 = new HackLoopTableRenderPolicy(); + HackLoopTableRenderPolicy policy4 = new HackLoopTableRenderPolicy(); + + Configure config = Configure.builder().bind("table1", policy1).bind("table2", policy2).bind("table3", policy3).bind("table4", policy4).build(); + XWPFTemplate template = XWPFTemplate.compile(file, config).render(all); + + + String fileName = new String("打分汇总表.docx".getBytes("UTF-8"), "iso-8859-1"); + OutputStream os = response.getOutputStream(); + response.setHeader("Content-disposition", "attachment; filename=" + fileName); + template.write(os); + } + + + /** + * 7 + * 导出方法 + * 价格打分 + */ + @RequestMapping(value = "/jgdf", method = RequestMethod.GET) + @ResponseBody + public void exportJgdfMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { + + List titles = new LinkedList(); + titles.add("序号"); + titles.add("应答人名称"); + titles.add("投标报价(元)"); + titles.add("评审价格(元)"); + titles.add("最低报价(元)"); + titles.add("投标平均价(元)"); + titles.add("价格得分"); + + List keys = new LinkedList(); + keys.add("num"); + keys.add("ydName"); + keys.add("tbPrice"); + keys.add("psPrice"); + keys.add("lowPrice"); + keys.add("avgPrice"); + keys.add("jgScore"); + + //项目和招标名称处理 + ProjectSectionVO projectSectionVO = new ProjectSectionVO(); + projectSectionVO.setId(parame.getSectionId()); + BaseResponse list = exportServiceProject.selectById(projectSectionVO); + + //价格数据 + BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); + bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); + bidEvalDetailDTO.setReviewType(parame.getReviewType()); + bidEvalDetailDTO.setAssessRoomId(parame.getAssessRoomId()); + + BaseResponse> listBaseResponse = exportService.findPriceScoreRecord(bidEvalDetailDTO); + //最小价格 + BigDecimal minPrice = listBaseResponse.getData().stream().map(SupplierRegisterPriceScoreVO::getBidContent).min((x1, x2) -> x1.compareTo(x2)).get(); + //平均价格 + BigDecimal avgPrice = listBaseResponse.getData().stream().map(SupplierRegisterPriceScoreVO::getBidContent).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(listBaseResponse.getData().size()), 2, BigDecimal.ROUND_HALF_UP); + + //组装价格数据 + ArrayList> maps = new ArrayList<>(); + for (int i = 0; i < listBaseResponse.getData().size(); i++) { + Map data = new HashMap<>(); + data.put("num", i + 1); + data.put("ydName", listBaseResponse.getData().get(i).getSupplierRegisterName()); + data.put("tbPrice", listBaseResponse.getData().get(i).getBidContent()); + data.put("psPrice", listBaseResponse.getData().get(i).getEvaluatingContent()); + if (i == 0) { + data.put("lowPrice", minPrice); + data.put("avgPrice", avgPrice); + } else { + data.put("lowPrice", ""); + data.put("avgPrice", ""); + } + data.put("jgScore", listBaseResponse.getData().get(i).getPriceScore()); + maps.add(data); + + } + + + + // 创建工作簿 + SXSSFWorkbook wb = new SXSSFWorkbook(); + //表格样式 + CellStyle cellStyle = wb.createCellStyle(); + //水平居中 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //边框 + cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle.setBorderRight(BorderStyle.THIN);//右边框 + + // 创建表格, + Sheet sheet = wb.createSheet("价格打分"); + sheet.createFreezePane(1, 1); + + int rowIndex = 0; + int colIndex = 0; + + // 价格打分 + CellRangeAddress region = new CellRangeAddress(0, 0, 0, 6); + sheet.addMergedRegion(region); + Row title0 = sheet.createRow(rowIndex++); + Cell titleCell0 = title0.createCell(0); + title0.setHeightInPoints(35); + titleCell0.setCellValue("价格打分表"); + titleCell0.setCellStyle(cellStyle); + //项目名称 + CellRangeAddress region1 = new CellRangeAddress(1, 1, 0, 6); + sheet.addMergedRegion(region1); + Row title1 = sheet.createRow(rowIndex++); + Cell titleCell1 = title1.createCell(0); + titleCell1.setCellValue("项目名称 : " + list.getData().getProjectName()); + //招标编号 + CellRangeAddress region2 = new CellRangeAddress(2, 2, 0, 6); + sheet.addMergedRegion(region2); + Row title2 = sheet.createRow(rowIndex++); + Cell titleCell2 = title2.createCell(0); + titleCell2.setCellValue("招标编号 : " + list.getData().getBidSectName()); + + //标题行 + Row titleRow = sheet.createRow(rowIndex++); + // 设置高度为30 + titleRow.setHeightInPoints(30); + + for (String title : titles) { + sheet.setColumnWidth(colIndex, 17 * 256); + Cell titleCell = titleRow.createCell(colIndex++); + titleCell.setCellValue(title); + //设置样式 + titleCell.setCellStyle(cellStyle); + } + + + // 遍历结果数据 + for (Map item : maps) { + // 创建数据行 + Row activityRow = sheet.createRow(rowIndex++); + // 重置列索引 + colIndex = 0; + for (String key : keys) { + String value = item.get(key).toString(); + Cell valueCell = activityRow.createCell(colIndex++); + valueCell.setCellValue(value); + valueCell.setCellStyle(cellStyle);//设置样式 + } + + } + + + CellRangeAddress region3 = new CellRangeAddress(4, (4 + maps.size() - 1), 4, 4); + sheet.addMergedRegion(region3); + + CellRangeAddress region4 = new CellRangeAddress(4, (4 + maps.size() - 1), 5, 5); + sheet.addMergedRegion(region4); + + + //价格打分说明 + CellStyle cellStyle0 = wb.createCellStyle(); + //边框 + cellStyle0.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle0.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle0.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle0.setBorderRight(BorderStyle.THIN);//右边框 + cellStyle0.setVerticalAlignment(VerticalAlignment.CENTER); + String description = "价格打分说明 :"; + CellRangeAddress region5 = new CellRangeAddress((4 + maps.size()), (4 + maps.size()), 0, 6); + sheet.addMergedRegion(region5); + Row titleLast2 = sheet.createRow(rowIndex++); + titleLast2.setHeightInPoints(40); + for (int i = 0; i < 7; i++) { + Cell valueCell = titleLast2.createCell(i); + if (i == 0) { + valueCell.setCellValue(description); + } else { + valueCell.setCellValue(""); + } + valueCell.setCellStyle(cellStyle0); + } + + + //签名行 + Row titleLast1 = sheet.createRow(rowIndex++); + Cell titleCellLast1 = titleLast1.createCell(0); + titleCellLast1.setCellValue("全体委员签字 :"); + CellRangeAddress region6 = new CellRangeAddress((4 + maps.size()+1), (4 + maps.size()+1), 0, 6); + sheet.addMergedRegion(region6); + //时间行 + CellStyle cellStyle1 = wb.createCellStyle(); + cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER); + cellStyle1.setAlignment(HorizontalAlignment.RIGHT); + Row title6 = sheet.createRow(rowIndex++); + Cell titleCell6 = title6.createCell(0); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); + titleCell6.setCellValue("日期: " + sdf.format(date)); + titleCell6.setCellStyle(cellStyle1); + CellRangeAddress region7 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, 6); + sheet.addMergedRegion(region7); + + String filename = "价格打分.xls"; + filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); + response.reset(); + response.setContentType("application/octet-stream;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); + wb.write(response.getOutputStream()); + + + } + + + /** + * 8 + * 导出方法 + * 初步评审 + */ + @RequestMapping(value = "/cbps", method = RequestMethod.GET) + @ResponseBody + public void exportCbpsMessage(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { + + //查询项目名称 + ProjectSectionVO projectSectionVO = new ProjectSectionVO(); + projectSectionVO.setId(parame.getSectionId()); + BaseResponse list = exportServiceProject.selectById(projectSectionVO); + + + BidEvalInfoDTO bidEvalInfoDTO = new BidEvalInfoDTO(); + bidEvalInfoDTO.setAssessRoomId(parame.getAssessRoomId()); + bidEvalInfoDTO.setReviewTurnId(parame.getReviewTurnId()); + bidEvalInfoDTO.setReviewType(parame.getReviewType()); + //供应商 + List listBaseResponse = exportService.findRegisterAndUser(bidEvalInfoDTO).getData(); + + //列头 + StringBuffer titles0 = new StringBuffer("序号,评审因素,评审标准"); + + //供应商 顺序 + ArrayList strings = new ArrayList<>(); + for (int i = 0; i < listBaseResponse.size(); i++) { + strings.add(listBaseResponse.get(i).getSupplierRegisterId()); + titles0.append("," + listBaseResponse.get(i).getSupplierRegisterName()); + } + String titles = titles0.toString(); + //最右侧列值 + Integer index = (titles.split(",").length) - 1; + //自定义序号 + Integer num = 1; + + // 创建工作簿 + SXSSFWorkbook wb = new SXSSFWorkbook(); + //表格样式 + CellStyle cellStyle = wb.createCellStyle(); + //水平居中 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //边框 + cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle.setBorderRight(BorderStyle.THIN);//右边框 + + + BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); + bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); + bidEvalDetailDTO.setReviewType(parame.getReviewType()); + BaseResponse> scoreRecord = exportService.findScoreEarlySummary(bidEvalDetailDTO); + List dataList = scoreRecord.getData(); + + // 创建表格 + Sheet sheet = wb.createSheet("评审汇总"); + sheet.createFreezePane(1, 1); + int rowIndex = 0; + int colIndex = 0; + // 1行 + CellRangeAddress region1 = new CellRangeAddress(0, 0, 0, index); + sheet.addMergedRegion(region1); + Row title1 = sheet.createRow(rowIndex++); + Cell titleCell1 = title1.createCell(0); + title1.setHeightInPoints(35); + titleCell1.setCellValue("初步评审表"); + titleCell1.setCellStyle(cellStyle); + // 2行 + CellRangeAddress region2 = new CellRangeAddress(1, 1, 0, index); + sheet.addMergedRegion(region2); + Row title2 = sheet.createRow(rowIndex++); + Cell titleCell2 = title2.createCell(0); + titleCell2.setCellValue("项目名称 : " + list.getData().getProjectName()); + //3行 + CellRangeAddress region3 = new CellRangeAddress(2, 2, 0, index); + sheet.addMergedRegion(region3); + Row title3 = sheet.createRow(rowIndex++); + Cell titleCell3 = title3.createCell(0); + titleCell3.setCellValue("招标编号 : " + list.getData().getBidSectName()); + + //4行 列头 + Row titleRow5 = sheet.createRow(rowIndex++); + // 设置高度为30 + titleRow5.setHeightInPoints(30); + for (String title : titles.split(",")) { + sheet.setColumnWidth(colIndex, 17 * 256); + Cell titleCell = titleRow5.createCell(colIndex++); + titleCell.setCellValue(title); + //设置样式 + titleCell.setCellStyle(cellStyle); + } + + // 5行开始渲染 + for (ReviewConfigCategoryDTO object : dataList) { + List detailList = object.getDetailList(); + String name = object.getName(); + for (ReviewConfigDetailDTO reviewConfigDetailDTO : detailList) { + colIndex = 0; + Row titleRowN = sheet.createRow(rowIndex++); + Cell cell = titleRowN.createCell(colIndex++); + cell.setCellStyle(cellStyle); + //供应商结论是否合格 + Map scoreMap = reviewConfigDetailDTO.getEarlyMap(); + if (StringUtils.isEmpty(name)) { + cell.setCellValue("结论"); + + Cell cell1 = titleRowN.createCell(colIndex++); + cell1.setCellValue("是否通过初审检查"); + cell1.setCellStyle(cellStyle); + //占位列 + Cell cell2 = titleRowN.createCell(colIndex++); + cell2.setCellValue(""); + cell2.setCellStyle(cellStyle); + if (scoreMap != null) { + for (String string : strings) { + Boolean actualValue; + String all = null; + if (scoreMap.get(string) != null) { + actualValue = scoreMap.get(string).getJudgesResult(); + if (actualValue != null) { + if (actualValue) { + all = "合格"; + } else { + all = "不合格"; + } + } else { + all = "空"; + } + } + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + cell4.setCellValue(all); + } + } else { + for (int j = 0; j < strings.size(); j++) { + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + } + } + } else { + cell.setCellValue(num++); + //评审因素 + Cell cell1 = titleRowN.createCell(colIndex++); + cell1.setCellValue(reviewConfigDetailDTO.getScoreItem()); + cell1.setCellStyle(cellStyle); + //评审标准 + Cell cell2 = titleRowN.createCell(colIndex++); + cell2.setCellValue(reviewConfigDetailDTO.getRvwStandard()); + cell2.setCellStyle(cellStyle); + + if (scoreMap != null) { + for (String string : strings) { + Boolean actualValue; + String all = null; + String qua = null; + String unqua = null; + if (scoreMap.get(string) != null) { + actualValue = scoreMap.get(string).getJudgesResult(); + if (actualValue != null) { + qua = scoreMap.get(string).getQualified(); + unqua = scoreMap.get(string).getUnqualified(); + if (actualValue) { + all = "√(√" + qua + ",×" + unqua + ")"; + } else { + all = "×(√" + qua + ",×" + unqua + ")"; + } + } else { + all = "空"; + } + } + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + cell4.setCellValue(all); + } + } else { + for (int j = 0; j < strings.size(); j++) { + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + } + } + } + + } + + //合并结论 + if (StringUtils.isEmpty(name)) { + sheet.addMergedRegion(new CellRangeAddress(rowIndex - 1, rowIndex - 1, 1, 2)); + } + } + + //倒第2行 + Row title5 = sheet.createRow(rowIndex++); + Cell titleCell5 = title5.createCell(0); + titleCell5.setCellValue("全体评委签字:"); + CellRangeAddress region5 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, index); + sheet.addMergedRegion(region5); + + //最后一行 + CellStyle cellStyle1 = wb.createCellStyle(); + cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER); + cellStyle1.setAlignment(HorizontalAlignment.RIGHT); + Row title6 = sheet.createRow(rowIndex++); + Cell titleCell6 = title6.createCell(0); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); + titleCell6.setCellValue("日期: " + sdf.format(date)); + titleCell6.setCellStyle(cellStyle1); + CellRangeAddress region6 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, index); + sheet.addMergedRegion(region6); + + + String filename = "初步评审表.xls"; + filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); + response.reset(); + response.setContentType("application/octet-stream;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); + wb.write(response.getOutputStream()); + } + + + /** + * 9 + * 导出 + * 专家个人打分表/评委打分表 + */ + @RequestMapping(value = "/zjgr", method = RequestMethod.GET) + @ResponseBody + public void exportZjgrExecl(ExportParame parame, HttpServletRequest request, HttpServletResponse response) throws IOException { + + //查询项目名称 + ProjectSectionVO projectSectionVO = new ProjectSectionVO(); + projectSectionVO.setId(parame.getSectionId()); + BaseResponse list = exportServiceProject.selectById(projectSectionVO); + + + BidEvalInfoDTO bidEvalInfoDTO = new BidEvalInfoDTO(); + bidEvalInfoDTO.setAssessRoomId(parame.getAssessRoomId()); + bidEvalInfoDTO.setReviewTurnId(parame.getReviewTurnId()); + bidEvalInfoDTO.setReviewType(parame.getReviewType()); + + //供应商 + List listBaseResponse = exportService.findRegisterAndUser(bidEvalInfoDTO).getData(); + //评委 + List members = listBaseResponse.stream().findFirst().get().getMembers(); + //列头 + StringBuffer titles0 = new StringBuffer("分类,项目名称,标准说明,分值"); + + //供应商 顺序 + ArrayList strings = new ArrayList<>(); + for (int i = 0; i < listBaseResponse.size(); i++) { + strings.add(listBaseResponse.get(i).getSupplierRegisterId()); + titles0.append("," + listBaseResponse.get(i).getSupplierRegisterName()); + } + String titles = titles0.toString(); + //最右侧列值 + Integer index = (titles.split(",").length) - 1; + + + // 创建工作簿 + SXSSFWorkbook wb = new SXSSFWorkbook(); + //表格样式 + CellStyle cellStyle = wb.createCellStyle(); + //水平居中 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + //垂直居中 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + //边框 + cellStyle.setBorderBottom(BorderStyle.THIN); //下边框 + cellStyle.setBorderLeft(BorderStyle.THIN);//左边框 + cellStyle.setBorderTop(BorderStyle.THIN);//上边框 + cellStyle.setBorderRight(BorderStyle.THIN);//右边框 + //Sheet + for (int i = 0; i < members.size(); i++) { + BidEvalDetailDTO bidEvalDetailDTO = new BidEvalDetailDTO(); + + bidEvalDetailDTO.setReviewTurnId(parame.getReviewTurnId()); + bidEvalDetailDTO.setReviewType(parame.getReviewType()); + bidEvalDetailDTO.setCreateBy(members.get(i).getUserId()); + BaseResponse> scoreRecord = exportService.findScoreRecord(bidEvalDetailDTO); + List dataList = scoreRecord.getData(); + + // 创建表格 + Sheet sheet = wb.createSheet(members.get(i).getName()); + sheet.createFreezePane(1, 1); + int rowIndex = 0; + int colIndex = 0; + // 1行 + CellRangeAddress region1 = new CellRangeAddress(0, 0, 0, index); + sheet.addMergedRegion(region1); + Row title1 = sheet.createRow(rowIndex++); + Cell titleCell1 = title1.createCell(0); + title1.setHeightInPoints(35); + titleCell1.setCellValue(list.getData().getProjectName()); + titleCell1.setCellStyle(cellStyle); + // 2行 + CellRangeAddress region2 = new CellRangeAddress(1, 1, 0, index); + sheet.addMergedRegion(region2); + Row title2 = sheet.createRow(rowIndex++); + Cell titleCell2 = title2.createCell(0); + titleCell2.setCellValue("评委打分表"); + titleCell2.setCellStyle(cellStyle); + //3行 + CellRangeAddress region3 = new CellRangeAddress(2, 2, 0, index); + sheet.addMergedRegion(region3); + Row title3 = sheet.createRow(rowIndex++); + Cell titleCell3 = title3.createCell(0); + titleCell3.setCellValue("包名 :" + list.getData().getBidSectName()); + //4行 + CellRangeAddress region4 = new CellRangeAddress(3, 3, 0, index); + sheet.addMergedRegion(region4); + Row title4 = sheet.createRow(rowIndex++); + Cell titleCell4 = title4.createCell(0); + titleCell4.setCellValue("评标委员会成员:" + members.get(i).getName()); + //5行 列头 + Row titleRow5 = sheet.createRow(rowIndex++); + // 设置高度为30 + titleRow5.setHeightInPoints(30); + for (String title : titles.split(",")) { + sheet.setColumnWidth(colIndex, 17 * 256); + Cell titleCell = titleRow5.createCell(colIndex++); + titleCell.setCellValue(title); + //设置样式 + titleCell.setCellStyle(cellStyle); + } + + // 6行开始渲染 + for (ReviewConfigCategoryDTO object : dataList) { + List detailList = object.getDetailList(); + String name = object.getName(); + for (ReviewConfigDetailDTO reviewConfigDetailDTO : detailList) { + colIndex = 0; + Row titleRowN = sheet.createRow(rowIndex++); + Cell cell = titleRowN.createCell(colIndex++); + cell.setCellStyle(cellStyle); + if (StringUtils.isEmpty(name)) { + cell.setCellValue("得分总计:"); + } else { + cell.setCellValue(name); + } + //项目名称 + Cell cell1 = titleRowN.createCell(colIndex++); + cell1.setCellValue(reviewConfigDetailDTO.getScoreItem()); + cell1.setCellStyle(cellStyle); + //标准说明 + Cell cell2 = titleRowN.createCell(colIndex++); + cell2.setCellValue(reviewConfigDetailDTO.getRvwStandard()); + cell2.setCellStyle(cellStyle); + //分值 + BigDecimal highScore = reviewConfigDetailDTO.getHighScore(); + Cell cell3 = titleRowN.createCell(colIndex++); + cell3.setCellStyle(cellStyle); + if (highScore != null) { + cell3.setCellValue(highScore.toString()); + } else { + cell3.setCellValue(""); + } + + //供应商打分 + Map scoreMap = reviewConfigDetailDTO.getScoreMap(); + if (scoreMap != null) { + for (String string : strings) { + String actualValue = null; + if (scoreMap.get(string) != null) { + actualValue = scoreMap.get(string).getResultValue(); + } + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + if (actualValue != null) { + cell4.setCellValue(actualValue); + } else { + cell4.setCellValue("0"); + } + } + } else { + for (int j = 0; j < strings.size(); j++) { + Cell cell4 = titleRowN.createCell(colIndex++); + cell4.setCellStyle(cellStyle); + } + } + } + + //合并得分总计单元格 + if (StringUtils.isEmpty(name)) { + sheet.addMergedRegion(new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, 3)); + } else { + if (rowIndex - detailList.size() < rowIndex - 1) { + sheet.addMergedRegion(new CellRangeAddress(rowIndex - detailList.size(), rowIndex - 1, 0, 0)); + } + } + + } + + //倒第2行 + Row title5 = sheet.createRow(rowIndex++); + Cell titleCell5 = title5.createCell(0); + titleCell5.setCellValue("评标委员会成员(" + members.get(i).getName() + ")签字:"); + CellRangeAddress region5 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, index); + sheet.addMergedRegion(region5); + //最后一行 + CellStyle cellStyle1 = wb.createCellStyle(); + cellStyle1.setVerticalAlignment(VerticalAlignment.CENTER); + cellStyle1.setAlignment(HorizontalAlignment.RIGHT); + Row title6 = sheet.createRow(rowIndex++); + Cell titleCell6 = title6.createCell(0); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 "); + titleCell6.setCellValue("日期: " + sdf.format(date)); + titleCell6.setCellStyle(cellStyle1); + CellRangeAddress region6 = new CellRangeAddress(rowIndex - 1, rowIndex - 1, 0, index); + sheet.addMergedRegion(region6); + } + + String filename = "评标打分表.xls"; + filename = filename.substring(0, filename.lastIndexOf('.')) + filename.substring(filename.lastIndexOf('.')); + response.reset(); + response.setContentType("application/octet-stream;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String(filename.getBytes("UTF-8"), "ISO8859-1"))); + wb.write(response.getOutputStream()); + + } + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/价格打分.xls b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/价格打分.xls new file mode 100644 index 0000000000000000000000000000000000000000..5c3dd8368642721321ea191abf4922cc8273b8ec GIT binary patch literal 4123 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/初步评审.xls b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/初步评审.xls new file mode 100644 index 0000000000000000000000000000000000000000..042d8af0fafa2bb70eb9d58688f18acf5de9dca5 GIT binary patch literal 4135 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/打分汇总表.docx b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/打分汇总表.docx new file mode 100644 index 0000000000000000000000000000000000000000..28c3f075943d693e921797c2e0a184cd22b88987 GIT binary patch literal 18987 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 Vh)Z7URm=PHqER$T*LyDo`T?i`42=K) literal 0 HcmV?d00001 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评委打分.xls b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评委打分.xls new file mode 100644 index 0000000000000000000000000000000000000000..005d0785c794b3b38ff46b97b39cc6ca16ebff62 GIT binary patch literal 8394 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 Vcj2rG0s=Pt^B5k0MpQR<{{b)YOl1H7 literal 0 HcmV?d00001 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评审专家签到表.docx b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评审专家签到表.docx new file mode 100644 index 0000000000000000000000000000000000000000..e280c90168c394f9710595c413a90b4f63668087 GIT binary patch literal 18928 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评标专家承诺书.docx b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/model/评标专家承诺书.docx new file mode 100644 index 0000000000000000000000000000000000000000..53cb5dc43430ae8edde93029c3e71e408e8781c3 GIT binary patch literal 18117 zcmb8X19)EB7B(6*wr$%<)7ZA{q_J(Yanjhf(b%@l#!h41wELX1cYF8$-{-F9S;_aU zZ@gm;%r(axQ?e4kA0PpKUcu7ayg&c{_kwu;U}$Y1YiDg^Pbd3MhW!2j{1+K~ZB2_l zAOL_f5C8!DKgslLY-n99Ez;$uq`T>nJ=ret65Fg#A<0uDV5B`6#k-?LW*pGwo9d-B zLY~{w(a|g0*X*U;?c8Lxwpz^NxIR@zWaJA;&wQw7uAg2}`&Ob|W14c0??9uTYnzBW zSqS(12#Gqb>cE#RlM{GbTL;m#jw5Kzt2>21SV5E5xNvY z;YJaoY&kdJyOKX{b-awIu4j2RWjct#F6SwkC8!KD4;T-4eVgmcV+nibAKa=X*S%98 zsKYqDd|R_3qOYMrRHHKH7Y9Hwe&4bTqq;$U2zQBF#3n>|X;Vi*_lDr_tN z(_RBJi1X`br>5;~|8oF1h~!Nm?60e~n!r0HWI3o5LQ!ShQn&!}x`WvOr_=?&VRY(X z1y$a#0pkfZvS*qPlI3gW4aicpDw$pXqdrTbDLm{eLD2>|h=@&S&L z=$o*HyMSeC3y#_%Q8G)2`2zd{3?vNchK9rBMggs4O$znbELD05q-z(oB`BWRUSHBQ z8n56QmGJS#4;R)+?wy+zD!xpw&l^236EO*&r+h!vBs=Osrg__77QjTpR7i<|$i0h* zteAH2fghmwD)5a~>EsH&kYW}U23zrkWaiQWTmMI(&Ev!MwDs@)iEokk`ugq{pLZW2 z{pKG>dk1UFU$0EGlteE*ve2F18-Zcwoh(P>vBDL_+x{Al4t>0|}K4OsU&-_GE9hg01z)SHA{tBH+l&wWdB z-?H++5cE6%CkP_g`?b^ZtvnG8kmA-qtp&M!Lu&A>46rCms$&LZ;y$Kl1I|#ruPOCcg<*YG-hqWZ>Q;U2eS{e2MJyP z!hlRuZ!4?6?{*xdvI*EF?n1Lih50kHi{{<0Tkm;3?~U1fY=2m~&qfKQ6EG`-@wzGM}Rt1|dfP5M`e%#`w3EOT<1A!OM*_hZsZJT1c zJ1>rEfvOGD#pMcW4^utc(nZ$Hs+~3$??3Hyh2rspbL&&>zkGDyyD_u&;t)@L>t1DU zNq;4;}@mX&x&$TW?RBM zDK#c3i;Q8+!I5%#?1~YDW7&Ghrm!HnqP53g2*)Z|!ut%yj7(P+beH2`FrJYCpg2_CIL3fts zvN!rXV+2$iRDj7(G?K%F%FB1yG(!KVAF`j_=xrftpz`tarhV78NmJu198|d zi`kj1Own7eCf*nyMzv33>IYnp({2%DwhZGx<6V{@aq(|CZ3M#D$AoqA zxewzdEKF+6@|)Prq3$V7;mtj0)E4UXcrp{|NLpWV4?PJ4$;;@O;Ib0D>MU3TK^>%` z;oI2@4DdPwi#);6a>n?|4vz(j`0qvCI_#wuFkcJkKWR%du0Vfu^3NwXwCp~Gr6yY9 z)Dd3h;_>zEZ;!T~*G1!rx)=0$>Sp{dVNnWLgIo(aCoicwR1w8u%5ega2vP33`}*KV zB5TTB4-x8a3*Sq{$^xZwUq{0wOvL>(S#@HY*o#@w7{~y_@7&Y3D)lnkkN&^`x}V)r z6~h6kYqYwo#e#ZvqG7>u04KR zQy@nfhndid2v+%Lj^hO(I3TojR3|lxxe@u4w4Ga1dv~FQ$-R#uaZ8N&%?J2sq&FYY zNFCW>6ZPWdHNMpJ3g=p6vLdYoG@T|muk~$6JW~wGl8aU&Ldr`9_#r=K;V*qWr2}JD zw)7UsLa^{wl11wkGq`rwu9uzymwyfkLFUQ9?~5WAy(EHs|LXVG*A-`M*3>Q+@mxBg zv~7j=Tdf_mvm3;MS8N^w^u}ra|g?HTeP;g8+!CBNKs%2d_FoB zDLC=ocRR&aw(X_ESoa=A}6G zdtwUYf?p3g?IZVtZekmxb(m;WAYRfWQaIL1R+*R3hHp?UmD(*;#asppUKvNFa-pu3 zL(RC!6=rE5B5MD738S92GWrH)`?B^UU7%aL+Z|=6abuNx6^Z zdCGb-+1Kx#SA=$*bvCF4XK1$+tkM+lv>oUz#CL%RM$sn4Hcf8$6HD&tewvyZss15pRguh^GHi&?@v0yv zsWq3#ni4gzwODn2R|=$t)S5Dy#Z|$#Y$z4dP-!IW-bE~uUROkpb9UI3>dT2{Lm5eFE$01`E4ZP^x+464nAwzw zuPfpsaUt_kx+3|W3~5|*mpi&n?-saym-_$34~YtyQ>FM_2~sQaD#fb;pyY#W0QsR* za6_5(6fT&rl0OCWKiYlg>MHUs0QFA+{-dKJzWF;qEshOkFr_t=*Xdoq?4Q#2!hjT( z{H`p^(=csvYcV+~*xXQRnEq8{8OkkU#&Et(Sy zBuZla!B3!TR-yA=PR)fG_e5lPlPL94H^v)!w2{0kS@$`F$#oEo`yL<)aL4Ys6zRRa z54@h6&28L;6?(2HS|v>3X(n-6qlrYUF!(OBgR-%e(#!WfluX;p0I|o`F$;E?wr{hE zg*IIgR+YmB_+!V|KFwFKQVM5kSVfIfE+Yt@H0USN4V1iza4fqOmB(kF%rjEl;SKU8 z8|I|eft)V`1FZ}sKdvA8yNJBZw`I0g+1Qpow$ro(dHT`jBxpR#yXXgqloV$~iwN#& zc#+a#uipCS(A9iL@Tf^|WZdWh#gj*E+�XCHpS-X_`a^LxU5j{=mu07Tm-q&n1CY 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 R`vYnKHNY0}CVT@4`VXL?#LNHy literal 0 HcmV?d00001 diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportService.java new file mode 100644 index 0000000..760ac8c --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportService.java @@ -0,0 +1,63 @@ +package com.chinaunicom.mall.ebtp.extend.export.services; + +import java.util.List; + +import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalInfoDTO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ProjectSectionVO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ReviewConfigCategoryDTO; +import com.chinaunicom.mall.ebtp.extend.export.vo.JuryPrintVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterPriceScoreVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterVO; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.constant.ServiceNameConstants; +import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalDetailDTO; + +/** + * 调用 RSMS_SERVICE + */ +@FeignClient(value = ServiceNameConstants.RSMS_SERVICE, fallback = ExportServiceFallback.class) +public interface ExportService { + /** + * 不同供应商的打分 + * @param bidEvalDetailDTO + * @return + */ + @PostMapping("/v1/bid/eval/record/findScoreRecord") + BaseResponse> findScoreRecord(@RequestBody BidEvalDetailDTO bidEvalDetailDTO); + + + /** + * 评委供应商 + * @param bidEvalInfoDTO + * @return + */ + @PostMapping("/v1/bid/archive/findRegister") + BaseResponse> findRegisterAndUser(BidEvalInfoDTO bidEvalInfoDTO); + + /** + * 初审汇总 + * @param bidEvalDetailDTO + * @return + */ + @PostMapping("/v1/bid/eval/summary/findScoreEarlySummary") + BaseResponse> findScoreEarlySummary(@RequestBody BidEvalDetailDTO bidEvalDetailDTO); + + + @PostMapping("/v1/bid/archive/findPriceScoreRecord") + BaseResponse> findPriceScoreRecord( @RequestBody BidEvalDetailDTO bidEvalDetailDTO); + + + @ApiOperation("报表打印-通过评审室Id查询评委会成员数据及签到数据") + @GetMapping("v1/jury/report/print/{roomId}") + + BaseResponse> queryReportPrintByRoomId(@ApiParam(value = "roomId", required = true) @PathVariable String roomId); + +} \ No newline at end of file diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceFallback.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceFallback.java new file mode 100644 index 0000000..de6eb20 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceFallback.java @@ -0,0 +1,46 @@ +package com.chinaunicom.mall.ebtp.extend.export.services; + +import java.util.List; + +import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalInfoDTO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ProjectSectionVO; +import com.chinaunicom.mall.ebtp.extend.export.bean.ReviewConfigCategoryDTO; +import com.chinaunicom.mall.ebtp.extend.export.vo.JuryPrintVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterPriceScoreVO; +import com.chinaunicom.mall.ebtp.extend.export.vo.SupplierRegisterVO; +import org.springframework.stereotype.Component; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.extend.export.bean.BidEvalDetailDTO; +import com.chinaunicom.mall.ebtp.extend.export.vo.BidEvalDetailVO; + +@Component +public class ExportServiceFallback implements ExportService{ + + @Override + public BaseResponse> findScoreRecord(BidEvalDetailDTO bidEvalDetailDTO) { + return null; + } + + @Override + public BaseResponse> findRegisterAndUser(BidEvalInfoDTO bidEvalInfoDTO) { + return null; + } + + @Override + public BaseResponse> findScoreEarlySummary(BidEvalDetailDTO bidEvalDetailDTO) { + return null; + } + + @Override + public BaseResponse> findPriceScoreRecord(BidEvalDetailDTO bidEvalDetailDTO) { + return null; + } + + @Override + public BaseResponse> queryReportPrintByRoomId(String roomId) { + return null; + } + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceProject.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceProject.java new file mode 100644 index 0000000..8422ea7 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/services/ExportServiceProject.java @@ -0,0 +1,25 @@ +package com.chinaunicom.mall.ebtp.extend.export.services; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.common.constant.ServiceNameConstants; +import com.chinaunicom.mall.ebtp.extend.export.bean.ProjectSectionVO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * 调用 PROJECT_SERVICE + */ +@FeignClient(value = ServiceNameConstants.PROJECT_SERVICE) +public interface ExportServiceProject { + + /** + * + * @param projectSection 项目标段查询 + * @return 返回结果 + */ + + @PostMapping("/v1/projectSection/selectById") + BaseResponse selectById(@RequestBody ProjectSectionVO projectSection); + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailConsistentVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailConsistentVO.java new file mode 100644 index 0000000..50e6288 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailConsistentVO.java @@ -0,0 +1,32 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Map; + +/** + * 一致性检查 + * + * @author dino + * @date 2020/12/23 10:11 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalDetailConsistentVO对象", description="一致性检查VO对象") +public class BidEvalDetailConsistentVO implements Serializable { + + @ApiModelProperty(value = "校验项") + private String scoreItem; + + @ApiModelProperty(value = "供应商名称") + private String supplierRegisterName; + + @ApiModelProperty(value = "专家评分") + private Map scoreMap; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailJudgesSummaryVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailJudgesSummaryVO.java new file mode 100644 index 0000000..ff1e5d8 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailJudgesSummaryVO.java @@ -0,0 +1,42 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 详审专家汇总 + * + * @author dino + * @date 2020/12/9 15:18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalDetailJudgesSummaryVO对象", description="详审专家汇总VO对象") +public class BidEvalDetailJudgesSummaryVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "专家ID") + @JsonSerialize(using = ToStringSerializer.class) + private String createBy; + + @JsonInclude(value = JsonInclude.Include.NON_NULL) + @ApiModelProperty(value = "专家评分") + private BigDecimal score; + + @JsonInclude(value = JsonInclude.Include.NON_NULL) + @ApiModelProperty(value = "进度") + private String progress; + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailSummaryVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailSummaryVO.java new file mode 100644 index 0000000..637d40d --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailSummaryVO.java @@ -0,0 +1,53 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * 详审汇总 + * + * @author dino + * @date 2020/12/9 15:18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalDetailSummaryVO对象", description="详审汇总VO对象") +public class BidEvalDetailSummaryVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "供应商名称") + private String supplierRegisterName; + + @ApiModelProperty(value = "最终得分") + private BigDecimal finalScore; + + @ApiModelProperty(value = "报价分") + private BigDecimal priceScore; + + @ApiModelProperty(value = "专家评分") + @JsonInclude(JsonInclude.Include.NON_EMPTY) + List scoreList; + + @ApiModelProperty(value = "详审专家汇总") + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Map scoreMap; + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailVO.java new file mode 100644 index 0000000..2b7f54e --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalDetailVO.java @@ -0,0 +1,82 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 评标详细评审表 + * + * @author dino + * @date 2020/12/3 11:17 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalDetailVO对象", description="评标详细评审表VO对象") +public class BidEvalDetailVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "编号") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "评分细则表ID(biz_rsms_review_config_detail)") + @JsonSerialize(using = ToStringSerializer.class) + private String detailId; + + @ApiModelProperty(value = "详细评分标准ID(biz_rsms_bid_eval_standard)") + @JsonSerialize(using = ToStringSerializer.class) + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String standardId; + + @ApiModelProperty(value = "结果值:初审1:合格;2不合格。详审:合计") + private String resultValue; + + @ApiModelProperty(value = "评分详情") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String detailValue; + + @ApiModelProperty(value = "备注") + private String remarks; + + @ApiModelProperty(value = "评分方式") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private String scoreMethod; + + @ApiModelProperty(value = "实际值") + private BigDecimal actualValue; + + @ApiModelProperty(value = "权重") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private BigDecimal weights; + + @ApiModelProperty(value = "是否可偏离项:1是0否") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer deviationStatus; + + @ApiModelProperty(value = "一致性:1是0否") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer consistencyStatus; + + @ApiModelProperty(value = "专家ID") + @JsonSerialize(using = ToStringSerializer.class) + private String createBy; + + @ApiModelProperty(value = "详审项类别:0:报价;1:商务;2:技术;4:工程报价 ;5:服务。初审项类别:0:形式评审;1:资格审查项;2:响应性评审;3:商务审查项;4: 技术审查项;5: 服务审查项;6: 其他审查项") + private String category; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalEarlyJudgesSummaryVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalEarlyJudgesSummaryVO.java new file mode 100644 index 0000000..67f9487 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/BidEvalEarlyJudgesSummaryVO.java @@ -0,0 +1,46 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 初审专家汇总 + * + * @author dino + * @date 2020/12/17 18:18 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BidEvalEarlyJudgesSummaryVO对象", description="初审专家汇总VO对象") +public class BidEvalEarlyJudgesSummaryVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "是否可偏离项:1是0否") + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer deviationStatus; + + @ApiModelProperty(value = "合格") + private String qualified; + + @ApiModelProperty(value = "不合格") + private String unqualified; + + @ApiModelProperty(value = "结果是否合格:true合格false不合格") + private Boolean judgesResult; + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/JuryPrintVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/JuryPrintVO.java new file mode 100644 index 0000000..f25fb0e --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/JuryPrintVO.java @@ -0,0 +1,87 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.chinaunicom.mall.ebtp.common.config.CustomLocalDateTimeTypeHandler; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 实体类 BizRsmsJuryCategory + * + * @auto.generated + */ +@Data +public class JuryPrintVO { + + /** + * 编号 + */ + @ApiModelProperty(value = "编号") + private String id; + + /** + * 专家职责:1-专家成员、2-专家组长 + */ + @ApiModelProperty(value = "专家职责:1-专家成员、2-专家组长") + private String duty; + + /** + * 专家姓名 + */ + @ApiModelProperty(value = "专家姓名") + private String name; + + /** + * 状态:1-已保存/未签到、2-已签到、3-申请回避 + */ + @ApiModelProperty(value = "状态:1-已保存/未签到、2-已签到、3-申请回避") + private Integer status; + + /** + * 专家用户id + */ + @ApiModelProperty(value = "专家用户id") + private String userId; + + /** + * 手机号 + */ + @ApiModelProperty(value = "手机号") + private String mobile; + + /** + * 证件号码 + */ + @ApiModelProperty(value = "证件号码") + private String certificate; + + /** + * 工作单位 + */ + @ApiModelProperty(value = "工作单位") + private String workunit; + + /** + * 职称 + */ + @ApiModelProperty(value = "职称") + private String jobTitle; + + /** + * 登录时间 + */ + @ApiModelProperty(value = "登录时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @TableField(typeHandler = CustomLocalDateTimeTypeHandler.class) + private java.time.LocalDateTime loginTime; + + /** + * 1-确定;2-申请回避 + */ + @ApiModelProperty(value = "1-确定;2-申请回避") + private Integer attitude; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/MemberVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/MemberVO.java new file mode 100644 index 0000000..5738b49 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/MemberVO.java @@ -0,0 +1,33 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 专家成员 + * + * @author dino + * @date 2020/12/12 13:15 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="MemberVO", description="专家成员VO") +public class MemberVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "评委ID") + @JsonSerialize(using = ToStringSerializer.class) + private String userId; + + @ApiModelProperty(value = "评委姓名") + private String name; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/ReviewResultDetailSummaryVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/ReviewResultDetailSummaryVO.java new file mode 100644 index 0000000..9d0c93d --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/ReviewResultDetailSummaryVO.java @@ -0,0 +1,55 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 评审结果汇总 + * + * @author dino + * @date 2020/12/19 13:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="ReviewResultDetailSummaryVO对象", description="详审汇总提交初始化VO对象") +public class ReviewResultDetailSummaryVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "供应商名称") + private String supplierRegisterName; + + @ApiModelProperty(value = "报价(元)") + private BigDecimal price; + + @ApiModelProperty(value = "评审价(元)") + private BigDecimal reviewPrice; + + @ApiModelProperty(value = "商务得分") + private BigDecimal businessScore; + + @ApiModelProperty(value = "技术得分") + private BigDecimal technologyScore; + + @ApiModelProperty(value = "服务得分") + private BigDecimal serviceScore; + + @ApiModelProperty(value = "报价分") + private BigDecimal priceScore; + + @ApiModelProperty(value = "最终得分") + private BigDecimal finalScore; +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterPriceScoreVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterPriceScoreVO.java new file mode 100644 index 0000000..6d9962a --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterPriceScoreVO.java @@ -0,0 +1,134 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 供应商报价分 + * + * @author dino + * @date 2020/12/21 10:36 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="SupplierRegisterPriceScoreVO", description="供应商报价分VO") +public class SupplierRegisterPriceScoreVO implements Serializable { + + private static final Long serialVersionUID = 1L; + + @ApiModelProperty(value = "编号") + @JsonSerialize(using = ToStringSerializer.class) + private String id; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "评分细则表ID(biz_rsms_review_config_detail)") + @JsonSerialize(using = ToStringSerializer.class) + private String detailId; + + @ApiModelProperty(value = "供应商名称") + private String supplierRegisterName; + + @ApiModelProperty(value = "主目录id") + @JsonSerialize(using = ToStringSerializer.class) + private String tdocId; + + @ApiModelProperty(value = "投标报价(元)") + private BigDecimal bidContent; + + @ApiModelProperty(value = "评审价格(元)") + private BigDecimal evaluatingContent; + + @ApiModelProperty(value = "价格得分") + private String priceScore; + + @ApiModelProperty(value = "最高分") + private BigDecimal highScore; + + public static Long getSerialVersionUID() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSupplierRegisterId() { + return supplierRegisterId; + } + + public void setSupplierRegisterId(String supplierRegisterId) { + this.supplierRegisterId = supplierRegisterId; + } + + public String getDetailId() { + return detailId; + } + + public void setDetailId(String detailId) { + this.detailId = detailId; + } + + public String getSupplierRegisterName() { + return supplierRegisterName; + } + + public void setSupplierRegisterName(String supplierRegisterName) { + this.supplierRegisterName = supplierRegisterName; + } + + public String getTdocId() { + return tdocId; + } + + public void setTdocId(String tdocId) { + this.tdocId = tdocId; + } + + public BigDecimal getBidContent() { + return bidContent; + } + + public void setBidContent(BigDecimal bidContent) { + this.bidContent = bidContent; + } + + public BigDecimal getEvaluatingContent() { + return evaluatingContent; + } + + public void setEvaluatingContent(BigDecimal evaluatingContent) { + this.evaluatingContent = evaluatingContent; + } + + public String getPriceScore() { + return priceScore; + } + + public void setPriceScore(String priceScore) { + this.priceScore = priceScore; + } + + public BigDecimal getHighScore() { + return highScore; + } + + public void setHighScore(BigDecimal highScore) { + this.highScore = highScore; + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterVO.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterVO.java new file mode 100644 index 0000000..0a561b8 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/export/vo/SupplierRegisterVO.java @@ -0,0 +1,40 @@ +package com.chinaunicom.mall.ebtp.extend.export.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +/** + * 供应商对象 + * + * @author dino + * @date 2020/12/12 13:12 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="SupplierRegisterVO", description="供应商VO") +public class SupplierRegisterVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "报名表id(biz_bid_register)") + @JsonSerialize(using = ToStringSerializer.class) + private String supplierRegisterId; + + @ApiModelProperty(value = "供应商名称") + private String supplierRegisterName; + + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @ApiModelProperty(value = "专家集合") + private List members; + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/controller/TemplateWarehouseController.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/controller/TemplateWarehouseController.java new file mode 100644 index 0000000..766ca33 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/controller/TemplateWarehouseController.java @@ -0,0 +1,47 @@ +package com.chinaunicom.mall.ebtp.extend.templatewarehouse.controller; + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.entity.BizBidTemplateWarehouse; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.sevice.BizBidTemplateWarehouseService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@Api(tags = "模板仓库") +@RequestMapping("/v1/template/warehouse") +public class TemplateWarehouseController { + @Resource + private BizBidTemplateWarehouseService templateWarehouseService; + + /** + * 通过模板类型查询模板数据 + * + * @param type + * + * @return + */ + @ApiOperation("通过模板类型查询模板数据") + @GetMapping("/{type}") + public BaseResponse getTemplateByType(@ApiParam(value = "模板类型", required = true) @PathVariable String type){ + BizBidTemplateWarehouse templateWarehouse = templateWarehouseService.getTemplateByType(type); + return BaseResponse.success(templateWarehouse); + } + + /** + * 新增模板仓库数据 + * + * @param templateWarehouse + * + * @return + */ + @ApiOperation("新增模板仓库数据") + @PostMapping("/insert") + public BaseResponse insertTemplate(@ApiParam(value = "模板仓库对象", required = true) @RequestBody BizBidTemplateWarehouse templateWarehouse){ + Boolean result = templateWarehouseService.insertTemplate(templateWarehouse); + return BaseResponse.success(result); + } +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/BizBidTemplateWarehouseMapper.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/BizBidTemplateWarehouseMapper.java new file mode 100644 index 0000000..24443ab --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/BizBidTemplateWarehouseMapper.java @@ -0,0 +1,10 @@ +package com.chinaunicom.mall.ebtp.extend.templatewarehouse.dao; + + +import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.entity.BizBidTemplateWarehouse; + +public interface BizBidTemplateWarehouseMapper extends IBaseMapper { + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/mapper/BizBidTemplateWarehouseMapper.xml b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/mapper/BizBidTemplateWarehouseMapper.xml new file mode 100644 index 0000000..3ebd3e1 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/dao/mapper/BizBidTemplateWarehouseMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + update biz_bid_template_warehouse + set + delete_flag="deleted" + where ID=#{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/entity/BizBidTemplateWarehouse.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/entity/BizBidTemplateWarehouse.java new file mode 100644 index 0000000..564dbf4 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/entity/BizBidTemplateWarehouse.java @@ -0,0 +1,52 @@ +package com.chinaunicom.mall.ebtp.extend.templatewarehouse.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 实体类 BizBidTemplateWarehouse + * + * @auto.generated + */ +@Data +@Accessors(chain = true) +@ApiModel +@TableName(value = "biz_bid_template_warehouse", autoResultMap = true) +public class BizBidTemplateWarehouse extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 模版仓库主键ID + */ + @ApiModelProperty(value = "模版仓库主键ID") + private String id; + + /** + * 文档中心-文档ID + */ + @ApiModelProperty(value = "文档中心-文档ID") + private String documentCenterId; + + /** + * 模板类型 + */ + @ApiModelProperty(value = "模板类型") + private String templateType; + + + + + + + + + + +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/BizBidTemplateWarehouseService.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/BizBidTemplateWarehouseService.java new file mode 100644 index 0000000..46db463 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/BizBidTemplateWarehouseService.java @@ -0,0 +1,23 @@ +package com.chinaunicom.mall.ebtp.extend.templatewarehouse.sevice; + + +import com.chinaunicom.mall.ebtp.common.base.service.IBaseService; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.entity.BizBidTemplateWarehouse; + +/** + * 对数据表 biz_bid_template_warehouse 操作的 service + * @author Auto create + * + */ +public interface BizBidTemplateWarehouseService extends IBaseService { + + /** + * 通过模板类型查询模板数据 + */ + BizBidTemplateWarehouse getTemplateByType(String type); + + /** + * 新增模板仓库数据 + */ + Boolean insertTemplate(BizBidTemplateWarehouse templateWarehouse); +} diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/impl/BizBidTemplateWarehouseServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/impl/BizBidTemplateWarehouseServiceImpl.java new file mode 100644 index 0000000..c5d9860 --- /dev/null +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/templatewarehouse/sevice/impl/BizBidTemplateWarehouseServiceImpl.java @@ -0,0 +1,33 @@ +package com.chinaunicom.mall.ebtp.extend.templatewarehouse.sevice.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.dao.BizBidTemplateWarehouseMapper; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.entity.BizBidTemplateWarehouse; +import com.chinaunicom.mall.ebtp.extend.templatewarehouse.sevice.BizBidTemplateWarehouseService; +import org.springframework.stereotype.Service; +import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; +/** + * 对数据表 biz_bid_template_warehouse 操作的 serviceImpl + * @author Auto create + * + */ +@Service +public class BizBidTemplateWarehouseServiceImpl extends BaseServiceImpl implements BizBidTemplateWarehouseService { + + + @Override + public BizBidTemplateWarehouse getTemplateByType(String type) { + QueryWrapper query = new QueryWrapper<>(new BizBidTemplateWarehouse().setTemplateType(type)); + BizBidTemplateWarehouse templateWarehouse = this.getOne(query); + return templateWarehouse; + } + + @Override + public Boolean insertTemplate(BizBidTemplateWarehouse templateWarehouse) { + String id = PropertyUtils.getSnowflakeId(); + templateWarehouse.setId(id); + return this.save(templateWarehouse); + } +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 7d976f2..d3643c2 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -141,18 +141,6 @@ mybatis-plus: # logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2) @TableLogic logic-delete-value: deleted # 逻辑已删除值 logic-not-delete-value: normal # 逻辑未删除值 - -# --------------feign ------------ -feign: - httpclient: - enabled: false - okhttp: - enabled: true - client: - config: - default: - connect-timeout: 20000 - read-timeout: 20000 hystrix: command: @@ -167,6 +155,7 @@ hystrix: circuitBreaker: sleepWindowInMilliseconds: 20000 forceClosed: true + ribbon: ReadTimeout: 20000 #请求处理的超时时间 ConnectTimeout: 20000 #请求连接超时时间 @@ -187,8 +176,18 @@ mconfig: file-wjpt-storage-path: http://111.198.162.67:8081/enr/api/base/file/cgDownload/ #测试地址 #获取file地址 file: - address: http://125.32.114.204:8760/api/core-service-ebtp-updownload/v1/download/oid/ + address: http://10.242.31.158:8100/core-service-ebtp-updownload/v1/download/oid/ #提交审批相关字段 approve: wfSectionNo: 002 wfSectionName: 采购审批 + +# 用户暴露给 prometheus 的健康数据 +management: + endpoints: + web: + exposure: + include: "*" + cors: + allowed-origins: "*" + allowed-methods: "*" diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml new file mode 100644 index 0000000..aac9a57 --- /dev/null +++ b/src/main/resources/application-test.yml @@ -0,0 +1,192 @@ +server: + port: 18018 + servlet: + context-path: / + +seata: + enabled: true + application-id: biz-service-ebtp-extend + tx-service-group: biz-service-ebtp-extend-group + enable-auto-data-source-proxy: true + use-jdk-proxy: false + service: + vgroup-mapping: + default: default + enable-degrade: false + disable-global-transaction: false + registry: + type: eureka + eureka: + weight: 1 + service-url: http://${eureka.instance.hostname}:8761/eureka/ + +spring: + aop: + auto: true #开启spring的aop配置 + proxy-target-class: true + application: + name: biz-service-ebtp-extend + + shardingsphere: + datasource: + # names: ds0,ds1 #主从库名称 开启主从时必须打开 + names: ds0 + ds0: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.cj.jdbc.Driver + username: mall3-ebtp-dev + password: mall3-ebtp-dev + jdbc-url: jdbc:mysql://125.32.114.204:13306/ebtp_mall_extend?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + url: jdbc:mysql://125.32.114.204:13306/ebtp_mall_extend?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + filters: stat,wall,log4j + maxActive: 20 + initialSize: 1 + maxWait: 60000 + minIdle: 1 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: select 'x' + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxOpenPreparedStatements: 20 + connection-properties: druid.stat.merggSql=ture;druid.stat.slowSqlMillis=5000 + props: + sql: + show: true + + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + serialization: + write-dates-as-timestamps: false + kafka: + bootstrap-servers: 127.0.0.1:9092 + producer: + # 写入失败时,重试次数。当leader节点失效,一个repli节点会替代成为leader节点,此时可能出现写入失败, + # 当retris为0时,produce不会重复。retirs重发,此时repli节点完全成为leader节点,不会产生消息丢失。 + retries: 0 + # 每次批量发送消息的数量,produce积累到一定数据,一次发送 + batch-size: 2 + # produce积累数据一次发送,缓存大小达到buffer.memory就发送数据 + buffer-memory: 33554432 + #procedure要求leader在考虑完成请求之前收到的确认数,用于控制发送记录在服务端的持久化,其值可以为如下: + #acks = 0 如果设置为零,则生产者将不会等待来自服务器的任何确认,该记录将立即添加到套接字缓冲区并视为已发送。在这种情况下,无法保证服务器已收到记录,并且重试配置将不会生效(因为客户端通常不会知道任何故障),为每条记录返回的偏移量始终设置为-1。 + #acks = 1 这意味着leader会将记录写入其本地日志,但无需等待所有副本服务器的完全确认即可做出回应,在这种情况下,如果leader在确认记录后立即失败,但在将数据复制到所有的副本服务器之前,则记录将会丢失。 + #acks = all 这意味着leader将等待完整的同步副本集以确认记录,这保证了只要至少一个同步副本服务器仍然存活,记录就不会丢失,这是最强有力的保证,这相当于acks = -1的设置。 + #可以设置的值为:all, -1, 0, 1 + acks: 1 + key-serializer: org.apache.kafka.common.serialization.StringSerializer + value-serializer: org.apache.kafka.common.serialization.StringSerializer + consumer: + group-id: user-group + auto-offset-reset: earliest + enable-auto-commit: true + auto-commit-interval: 100 + key-deserializer: org.apache.kafka.common.serialization.StringDeserializer + value-deserializer: org.apache.kafka.common.serialization.StringDeserializer + #=========redis基础配置========= + redis: + lettuce: + # jedis: + pool: + maxTotal: 50 + minIdle: 1 + maxWaitMillis: 5000 + maxIdle: 5 + testOnBorrow: true + testOnReturn: true + testWhileIdle: true + token: + database: 0 + host: 125.32.114.204 + port: 16379 + password: redis@CC1234 + timeout: 6000 + uuid: + database: 1 + host: 125.32.114.204 + port: 16379 + password: redis@CC1234 + timeout: 6000 + cache: + database: 2 + host: 125.32.114.204 + port: 16379 + password: redis@CC1234 + timeout: 6000 + +#=========eureka配置========= +eureka: + client: + service-url: + defaultZone: http://125.32.114.204:8761/eureka/ + # defaultZone: http://192.168.1.103:8761/eureka/ + instance: + prefer-ip-address: true + instance-id: 125.32.114.204:${server.port} + hostname: 125.32.114.204 + ip-address: 125.32.114.204 + +mybatis-plus: + configuration: + # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射 + map-underscore-to-camel-case: true + auto-mapping-behavior: full + # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + mapper-locations: classpath*:com/chinaunicom/mall/ebtp/**/mapper/*Mapper.xml + global-config: + # 逻辑删除配置 + db-config: + # logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2) @TableLogic + logic-delete-value: deleted # 逻辑已删除值 + logic-not-delete-value: normal # 逻辑未删除值 +# --------------feign ------------ +feign: + hystrix: + enabled: true + httpclient: + enabled: false + okhttp: + enabled: true + client: + config: + default: + connect-timeout: 20000 + read-timeout: 20000 +hystrix: + command: + default: + execution: + isolation: + thread: + timeoutInMilliseconds: 200000 #熔断超时时间 + circuitBreaker: + sleepWindowInMilliseconds: 20000 + forceClosed: true +ribbon: + ReadTimeout: 20000 #请求处理的超时时间 + ConnectTimeout: 20000 #请求连接超时时间 + MaxAutoRetries: 0 #对当前实例的重试次数 + MaxAutoRetriesNextServer: 1 #切换实例的重试次数 1 +mconfig: + workerId: 1 + datacenterId: 1 + remote: + approval: true #是否需要提交公告审批 + media: true #是否需要发送到媒体 + + #中国联通电子商城外网接入平台 相关参数 + token: + userName: zbgg + password: eip_13579 + file-wjpt-storage-path: http://111.198.162.67:8081/enr/api/base/file/cgDownload/ #测试地址 + #获取file地址 + file: + address: http://125.32.114.204:8760/api/core-service-ebtp-updownload/v1/download/oid/ + #提交审批相关字段 + approve: + wfSectionNo: 002 + wfSectionName: 采购审批 \ No newline at end of file diff --git a/src/main/resources/file.conf b/src/main/resources/file.conf index d591bab..85c2035 100644 --- a/src/main/resources/file.conf +++ b/src/main/resources/file.conf @@ -28,11 +28,12 @@ transport { serialization = "seata" compressor = "none" } + service { #transaction service group mapping - vgroupMapping.biz-service-ebtp-expenses-fescar-service-group = "default" + vgroupMapping.biz-service-ebtp-extend-fescar-service-group = "default" #only support when registry.type=file, please don't set multiple addresses - default.grouplist = "127.0.0.1:8091" + default.grouplist = "10.242.31.158:18035" #degrade, current not support enableDegrade = false #disable seata diff --git a/src/main/resources/registry.conf b/src/main/resources/registry.conf index bd724ed..0a4eb4c 100644 --- a/src/main/resources/registry.conf +++ b/src/main/resources/registry.conf @@ -1,79 +1,15 @@ registry { - # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa - type = "eureka" - - nacos { - application = "seata-server" - serverAddr = "localhost" - namespace = "" - username = "" - password = "" - } - eureka { - serviceUrl = "http://10.242.31.158:5001/eureka,http://10.242.31.158:5002/eureka,http://10.242.31.158:5003/eureka" - weight = "1" - } - redis { - serverAddr = "localhost:6379" - db = "0" - password = "" - timeout = "0" - } - zk { - serverAddr = "127.0.0.1:2181" - sessionTimeout = 6000 - connectTimeout = 2000 - username = "" - password = "" - } - consul { - serverAddr = "127.0.0.1:8500" - } - etcd3 { - serverAddr = "http://localhost:2379" - } - sofa { - serverAddr = "127.0.0.1:9603" - region = "DEFAULT_ZONE" - datacenter = "DefaultDataCenter" - group = "SEATA_GROUP" - addressWaitTime = "3000" - } + type = "file" + file { name = "file.conf" } } config { - # file、nacos 、apollo、zk、consul、etcd3、springCloudConfig type = "file" - - nacos { - serverAddr = "localhost" - namespace = "" - group = "SEATA_GROUP" - username = "" - password = "" - } - consul { - serverAddr = "127.0.0.1:8500" - } - apollo { - appId = "seata-server" - apolloMeta = "http://192.168.1.204:8801" - namespace = "application" - } - zk { - serverAddr = "127.0.0.1:2181" - sessionTimeout = 6000 - connectTimeout = 2000 - username = "" - password = "" - } - etcd3 { - serverAddr = "http://localhost:2379" - } + file { name = "file.conf" } -} +} \ No newline at end of file