Compare commits
20 Commits
prod
...
97e0dd467f
| Author | SHA1 | Date | |
|---|---|---|---|
| 97e0dd467f | |||
| e58a99e696 | |||
| 0d5a9eb505 | |||
| 45ac1817e1 | |||
| f2d4ff4237 | |||
| a4cc5c14f3 | |||
| 5be571cc30 | |||
| ff656dd046 | |||
| 20574d0037 | |||
| 42cf396e93 | |||
| 2a30b05dd7 | |||
| 4ecee185bf | |||
| 48ab59c67d | |||
| 806e8f3391 | |||
| 61244321a7 | |||
| ff1e613316 | |||
| 03161751fc | |||
| 9ebf4a3e5f | |||
| 3ba13e3ef8 | |||
| 8d3853fe6b |
@ -1,3 +1,7 @@
|
|||||||
|
# 开发环境配置
|
||||||
|
server:
|
||||||
|
# 服务器的HTTP端口,默认为8080
|
||||||
|
port: 8899
|
||||||
--- # 监控中心配置
|
--- # 监控中心配置
|
||||||
spring.boot.admin.client:
|
spring.boot.admin.client:
|
||||||
# 增加客户端开关
|
# 增加客户端开关
|
||||||
@ -354,3 +358,7 @@ qrCode:
|
|||||||
# 无人机大图
|
# 无人机大图
|
||||||
drone:
|
drone:
|
||||||
url: http://192.168.110.2:9512
|
url: http://192.168.110.2:9512
|
||||||
|
# 聊天服务
|
||||||
|
chat:
|
||||||
|
server:
|
||||||
|
port: 19099
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
# 开发环境配置
|
||||||
|
server:
|
||||||
|
# 服务器的HTTP端口,默认为8080
|
||||||
|
port: 9918
|
||||||
--- # 临时文件存储位置 避免临时文件被系统清理报错
|
--- # 临时文件存储位置 避免临时文件被系统清理报错
|
||||||
spring.servlet.multipart.location: /ruoyi/server/temp
|
spring.servlet.multipart.location: /ruoyi/server/temp
|
||||||
|
|
||||||
@ -105,7 +109,7 @@ spring.data:
|
|||||||
# 端口,默认为6379
|
# 端口,默认为6379
|
||||||
port: 9287
|
port: 9287
|
||||||
# 数据库索引
|
# 数据库索引
|
||||||
database: 6
|
database: 17
|
||||||
# redis 密码必须配置
|
# redis 密码必须配置
|
||||||
password: syar23rdsaagdrsa
|
password: syar23rdsaagdrsa
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
@ -164,7 +168,7 @@ sms:
|
|||||||
# 配置源类型用于标定配置来源(interface,yaml)
|
# 配置源类型用于标定配置来源(interface,yaml)
|
||||||
config-type: yaml
|
config-type: yaml
|
||||||
# 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制
|
# 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制
|
||||||
restricted: true
|
restricted: false
|
||||||
# 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效
|
# 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效
|
||||||
minute-max: 1
|
minute-max: 1
|
||||||
# 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效
|
# 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效
|
||||||
@ -183,12 +187,45 @@ sms:
|
|||||||
signature: 您的短信签名
|
signature: 您的短信签名
|
||||||
sdk-app-id: 您的sdkAppId
|
sdk-app-id: 您的sdkAppId
|
||||||
config2:
|
config2:
|
||||||
# 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
|
# 登录
|
||||||
supplier: tencent
|
supplier: tencent
|
||||||
access-key-id: 您的accessKey
|
access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv
|
||||||
access-key-secret: 您的accessKeySecret
|
access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi
|
||||||
signature: 您的短信签名
|
signature: 重庆远界大数据研究院
|
||||||
sdk-app-id: 您的sdkAppId
|
sdk-app-id: 1401018866
|
||||||
|
template-id: 2491779
|
||||||
|
config3:
|
||||||
|
# 注册
|
||||||
|
supplier: tencent
|
||||||
|
access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv
|
||||||
|
access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi
|
||||||
|
signature: 重庆远界大数据研究院
|
||||||
|
sdk-app-id: 1401018866
|
||||||
|
template-id: 2491776
|
||||||
|
config4:
|
||||||
|
# 质量工单逾期
|
||||||
|
supplier: tencent
|
||||||
|
access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv
|
||||||
|
access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi
|
||||||
|
signature: 重庆远界大数据研究院
|
||||||
|
sdk-app-id: 1401018866
|
||||||
|
template-id: 2534747
|
||||||
|
config5:
|
||||||
|
# 设计图纸
|
||||||
|
supplier: tencent
|
||||||
|
access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv
|
||||||
|
access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi
|
||||||
|
signature: 重庆远界大数据研究院
|
||||||
|
sdk-app-id: 1401018866
|
||||||
|
template-id: 2534750
|
||||||
|
config6:
|
||||||
|
# 安全工单
|
||||||
|
supplier: tencent
|
||||||
|
access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv
|
||||||
|
access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi
|
||||||
|
signature: 重庆远界大数据研究院
|
||||||
|
sdk-app-id: 1401018866
|
||||||
|
template-id: 2534848
|
||||||
|
|
||||||
--- # 三方授权
|
--- # 三方授权
|
||||||
justauth:
|
justauth:
|
||||||
@ -275,8 +312,11 @@ weather:
|
|||||||
dxf2GeoJson:
|
dxf2GeoJson:
|
||||||
file-name: main
|
file-name: main
|
||||||
ys7:
|
ys7:
|
||||||
app-key: 3acf9f1a43dc4209841e0893003db0a2
|
app-key: xxx
|
||||||
app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36
|
app-secret: xxx
|
||||||
|
job:
|
||||||
|
capture-enabled: true # 控制是否启用萤石抓拍任务
|
||||||
|
device-sync-enabled: true # 控制是否同步萤石设备
|
||||||
# 斯巴达算法
|
# 斯巴达算法
|
||||||
sparta:
|
sparta:
|
||||||
url: http://119.3.204.120:8040
|
url: http://119.3.204.120:8040
|
||||||
@ -286,10 +326,14 @@ sparta:
|
|||||||
id-card:
|
id-card:
|
||||||
encrypt-key: 7ae260d150a14027d2238a1cf80a48ef
|
encrypt-key: 7ae260d150a14027d2238a1cf80a48ef
|
||||||
recognizer:
|
recognizer:
|
||||||
url: http://192.168.110.5:50070
|
url: http://192.168.110.5:50071
|
||||||
|
|
||||||
qrCode:
|
qrCode:
|
||||||
url: http://xny.yj-3d.com:7171
|
url: http://xny.yj-3d.com:7788
|
||||||
# 无人机大图
|
# 无人机大图
|
||||||
drone:
|
drone:
|
||||||
url: http://192.168.110.2:9512
|
url: http://192.168.110.2:9512
|
||||||
|
# 聊天服务
|
||||||
|
chat:
|
||||||
|
server:
|
||||||
|
port: 18088
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
|
# 开发环境配置
|
||||||
|
server:
|
||||||
|
# 服务器的HTTP端口,默认为8080
|
||||||
|
port: 8899
|
||||||
--- # 临时文件存储位置 避免临时文件被系统清理报错
|
--- # 临时文件存储位置 避免临时文件被系统清理报错
|
||||||
spring.servlet.multipart.location: /ruoyi/server/temp
|
spring.servlet.multipart.location: /ruoyi/server/temp
|
||||||
|
|
||||||
@ -326,7 +330,7 @@ ys7:
|
|||||||
app-key: 3acf9f1a43dc4209841e0893003db0a2
|
app-key: 3acf9f1a43dc4209841e0893003db0a2
|
||||||
app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e
|
app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e
|
||||||
job:
|
job:
|
||||||
capture-enabled: false # 控制是否启用萤石抓拍任务
|
capture-enabled: true # 控制是否启用萤石抓拍任务
|
||||||
device-sync-enabled: true # 控制是否同步萤石设备
|
device-sync-enabled: true # 控制是否同步萤石设备
|
||||||
# 斯巴达算法
|
# 斯巴达算法
|
||||||
sparta:
|
sparta:
|
||||||
@ -344,3 +348,7 @@ qrCode:
|
|||||||
# 无人机大图
|
# 无人机大图
|
||||||
drone:
|
drone:
|
||||||
url: http://192.168.110.2:9512
|
url: http://192.168.110.2:9512
|
||||||
|
# 聊天服务
|
||||||
|
chat:
|
||||||
|
server:
|
||||||
|
port: 19099
|
||||||
|
|||||||
@ -22,7 +22,7 @@ captcha:
|
|||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
server:
|
server:
|
||||||
# 服务器的HTTP端口,默认为8080
|
# 服务器的HTTP端口,默认为8080
|
||||||
port: 8899
|
# port: 8899
|
||||||
servlet:
|
servlet:
|
||||||
# 应用的访问路径
|
# 应用的访问路径
|
||||||
context-path: /
|
context-path: /
|
||||||
@ -106,6 +106,10 @@ sa-token:
|
|||||||
is-share: false
|
is-share: false
|
||||||
# jwt秘钥
|
# jwt秘钥
|
||||||
jwt-secret-key: abcdefghijklmnopqrstuvwxyz
|
jwt-secret-key: abcdefghijklmnopqrstuvwxyz
|
||||||
|
# token有效期,单位s 默认30天, -1代表永不过期
|
||||||
|
timeout: 2592000
|
||||||
|
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||||
|
active-timeout: 86400
|
||||||
|
|
||||||
# security配置
|
# security配置
|
||||||
security:
|
security:
|
||||||
@ -277,8 +281,8 @@ springdoc:
|
|||||||
packages-to-scan: org.dromara.gps
|
packages-to-scan: org.dromara.gps
|
||||||
- group: 24.招标模块
|
- group: 24.招标模块
|
||||||
packages-to-scan: org.dromara.tender
|
packages-to-scan: org.dromara.tender
|
||||||
# - group: 25.app版本模块
|
# - group: 25.app版本模块
|
||||||
# packages-to-scan: org.dromara.app
|
# packages-to-scan: org.dromara.app
|
||||||
- group: 25.数据迁移模块
|
- group: 25.数据迁移模块
|
||||||
packages-to-scan: org.dromara.transferData
|
packages-to-scan: org.dromara.transferData
|
||||||
- group: 26.netty消息模块
|
- group: 26.netty消息模块
|
||||||
@ -300,6 +304,14 @@ xss:
|
|||||||
- /system/notice
|
- /system/notice
|
||||||
- /warm-flow/save-xml
|
- /warm-flow/save-xml
|
||||||
- /project/project
|
- /project/project
|
||||||
|
- /xzd/contractDetails/**
|
||||||
|
- /xzd/contractChange/**
|
||||||
|
- /comprehensive/csContractChange/**
|
||||||
|
- /comprehensive/csContractInformation/**
|
||||||
|
- /hetongbiangeng/**
|
||||||
|
- /fenbaohetongbiangg/**
|
||||||
|
- /fenbaohetongxinxi/**
|
||||||
|
- /contractManagement/**
|
||||||
|
|
||||||
# 全局线程池相关配置
|
# 全局线程池相关配置
|
||||||
# 如使用JDK21请直接使用虚拟线程 不要开启此配置
|
# 如使用JDK21请直接使用虚拟线程 不要开启此配置
|
||||||
|
|||||||
@ -9,10 +9,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.dromara.bigscreen.domain.dto.ProjectUpdateDto;
|
import org.dromara.bigscreen.domain.dto.ProjectUpdateDto;
|
||||||
import org.dromara.bigscreen.domain.dto.TanchuangInfoReq;
|
import org.dromara.bigscreen.domain.dto.TanchuangInfoReq;
|
||||||
import org.dromara.bigscreen.domain.dto.Ys7DeviceUpdateReq;
|
import org.dromara.bigscreen.domain.dto.Ys7DeviceUpdateReq;
|
||||||
import org.dromara.bigscreen.domain.vo.ProjectImageProgressVo;
|
import org.dromara.bigscreen.domain.vo.*;
|
||||||
import org.dromara.bigscreen.domain.vo.ProjectLandVo;
|
|
||||||
import org.dromara.bigscreen.domain.vo.ProjectPeopleVo;
|
|
||||||
import org.dromara.bigscreen.domain.vo.ProjectSafetyInspectionVo;
|
|
||||||
import org.dromara.bigscreen.service.ProjectBigScreenService;
|
import org.dromara.bigscreen.service.ProjectBigScreenService;
|
||||||
import org.dromara.common.core.constant.HttpStatus;
|
import org.dromara.common.core.constant.HttpStatus;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
@ -20,7 +17,12 @@ import org.dromara.common.core.exception.ServiceException;
|
|||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
import org.dromara.common.log.annotation.Log;
|
import org.dromara.common.log.annotation.Log;
|
||||||
import org.dromara.common.log.enums.BusinessType;
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.facility.domain.bo.FacRedLineBo;
|
||||||
|
import org.dromara.facility.domain.vo.redline.FacRedLineVo;
|
||||||
|
import org.dromara.facility.service.IFacRedLineService;
|
||||||
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
import org.dromara.land.domain.BusLandBlock;
|
import org.dromara.land.domain.BusLandBlock;
|
||||||
import org.dromara.land.domain.BusLandTransferLedger;
|
import org.dromara.land.domain.BusLandTransferLedger;
|
||||||
@ -33,6 +35,7 @@ import org.dromara.manager.ys7manager.Ys7Manager;
|
|||||||
import org.dromara.other.domain.OthYs7Device;
|
import org.dromara.other.domain.OthYs7Device;
|
||||||
import org.dromara.other.service.IOthYs7DeviceService;
|
import org.dromara.other.service.IOthYs7DeviceService;
|
||||||
import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo;
|
import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo;
|
||||||
|
import org.dromara.project.domain.vo.project.BusProjectVo;
|
||||||
import org.dromara.project.domain.vo.projectnews.BusProjectNewsVo;
|
import org.dromara.project.domain.vo.projectnews.BusProjectNewsVo;
|
||||||
import org.dromara.project.service.IBusProjectNewsService;
|
import org.dromara.project.service.IBusProjectNewsService;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
@ -86,6 +89,8 @@ public class ProjectBigScreenController extends BaseController {
|
|||||||
|
|
||||||
private final BusLandTransferLedgerSonServiceImpl busLandTransferLedgerSonService;
|
private final BusLandTransferLedgerSonServiceImpl busLandTransferLedgerSonService;
|
||||||
|
|
||||||
|
private final IFacRedLineService facRedLineService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询项目土地统计
|
* 查询项目土地统计
|
||||||
*/
|
*/
|
||||||
@ -334,6 +339,22 @@ public class ProjectBigScreenController extends BaseController {
|
|||||||
return toAjax(projectService.updatePosition(dto));
|
return toAjax(projectService.updatePosition(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取项目信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/getProjectInfo/{projectId}")
|
||||||
|
public R<ProjectInfo> getProjectInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long projectId) {
|
||||||
|
BusProjectVo projectVo = projectService.queryById(projectId);
|
||||||
|
ProjectInfo info = new ProjectInfo();
|
||||||
|
info.setLat(projectVo.getLat());
|
||||||
|
info.setLng(projectVo.getLng());
|
||||||
|
info.setPlan(projectVo.getPlan());
|
||||||
|
info.setPosition(projectVo.getPosition());
|
||||||
|
info.setProjectId(projectVo.getId().toString());
|
||||||
|
return R.ok(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询项目地域分散图
|
* 查询项目地域分散图
|
||||||
@ -372,4 +393,12 @@ public class ProjectBigScreenController extends BaseController {
|
|||||||
return R.ok(projectBigScreenService.getInfoData(req));
|
return R.ok(projectBigScreenService.getInfoData(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询设施-红线列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/redLine/list")
|
||||||
|
public TableDataInfo<FacRedLineVo> list(FacRedLineBo bo, PageQuery pageQuery) {
|
||||||
|
return facRedLineService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,42 @@
|
|||||||
|
package org.dromara.bigscreen.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-22 15:00
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ProjectInfo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = -8436930470114636496L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 纬度
|
||||||
|
*/
|
||||||
|
private String lat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经度
|
||||||
|
*/
|
||||||
|
private String lng;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计划
|
||||||
|
*/
|
||||||
|
private String plan;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 位置
|
||||||
|
*/
|
||||||
|
private String position;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目id
|
||||||
|
*/
|
||||||
|
private String projectId;
|
||||||
|
}
|
||||||
@ -1,8 +1,15 @@
|
|||||||
package org.dromara.design.controller;
|
package org.dromara.design.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import com.alibaba.excel.EasyExcel;
|
||||||
|
import com.alibaba.excel.ExcelWriter;
|
||||||
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||||
|
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
|
||||||
|
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.poi.ss.usermodel.IndexedColors;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
import org.dromara.common.log.annotation.Log;
|
import org.dromara.common.log.annotation.Log;
|
||||||
@ -10,17 +17,17 @@ import org.dromara.common.log.enums.BusinessType;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.design.domain.bo.ImportExcelFileReq;
|
import org.dromara.design.domain.bo.*;
|
||||||
import org.dromara.design.domain.bo.ObtainAllVersionNumbersReq;
|
|
||||||
import org.dromara.design.domain.bo.CoryObtainTheListReq;
|
|
||||||
import org.dromara.design.domain.bo.SheetListReq;
|
|
||||||
import org.dromara.design.domain.vo.*;
|
import org.dromara.design.domain.vo.*;
|
||||||
|
import org.dromara.design.exportUtil.bill.*;
|
||||||
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.List;
|
import java.io.IOException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工程量清单版本
|
* 工程量清单版本
|
||||||
@ -103,6 +110,74 @@ public class BusBillofquantitiesVersionsController extends BaseController {
|
|||||||
return R.ok(busBillofquantitiesVersionsService.obtainAllClassification(bo));
|
return R.ok(busBillofquantitiesVersionsService.obtainAllClassification(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出工程量清单版本列表
|
||||||
|
*/
|
||||||
|
@Log(title = "工程量清单版本", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(String versions,Long projectId, HttpServletResponse response) throws IOException {
|
||||||
|
Map<String, List<BillOfQuantitiesExport>> sheetDataMap = busBillofquantitiesVersionsService.export(versions,projectId);
|
||||||
|
|
||||||
|
if (sheetDataMap.isEmpty()) {
|
||||||
|
response.getWriter().write("无数据可导出");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 设置响应头(同上)
|
||||||
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
response.setCharacterEncoding("UTF-8");
|
||||||
|
String fileName = URLEncoder.encode( "工程量清单", "UTF-8").replaceAll("\\+", "%20");
|
||||||
|
response.setHeader("Content-disposition", "attachment;filename*=UTF-8''" + fileName + ".xlsx");
|
||||||
|
|
||||||
|
// 3. 构建Excel写入器
|
||||||
|
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
|
||||||
|
try {
|
||||||
|
// 4. 遍历每个Sheet分组,创建Sheet并写入数据
|
||||||
|
for (Map.Entry<String, List<BillOfQuantitiesExport>> entry : sheetDataMap.entrySet()) {
|
||||||
|
String sheetName = entry.getKey();
|
||||||
|
List<BillOfQuantitiesExport> dataList = entry.getValue();
|
||||||
|
|
||||||
|
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
|
||||||
|
// 背景设置为红色
|
||||||
|
headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
|
||||||
|
|
||||||
|
HorizontalCellStyleStrategy horizontalCellStyleStrategy =
|
||||||
|
new HorizontalCellStyleStrategy(headWriteCellStyle, new WriteCellStyle());
|
||||||
|
|
||||||
|
// 定义Sheet(同时注册标题处理器和冻结窗格处理器)
|
||||||
|
WriteSheet writeSheet = EasyExcel.writerSheet(sheetName)
|
||||||
|
.registerWriteHandler(new FreezePaneWriteHandler()) // 冻结前2行
|
||||||
|
.registerWriteHandler(new ColumnWidthWriteHandler()) // 调整列宽
|
||||||
|
.registerWriteHandler(new CustomRowStyleHandler()) // 新增:边框和标题样式
|
||||||
|
.registerWriteHandler(horizontalCellStyleStrategy)
|
||||||
|
.head(head(sheetName))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// 写入数据
|
||||||
|
excelWriter.write(dataList, writeSheet);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
excelWriter.finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<List<String>> head(String sheetName) {
|
||||||
|
List<List<String>> list = new ArrayList<List<String>>();
|
||||||
|
List<String> list1 = Arrays.asList(sheetName,"编号");
|
||||||
|
List<String> list2 = Arrays.asList(sheetName, "名称");
|
||||||
|
List<String> list3 = Arrays.asList(sheetName, "规格");
|
||||||
|
List<String> list4 = Arrays.asList(sheetName, "单位");
|
||||||
|
List<String> list5 = Arrays.asList(sheetName, "数量");
|
||||||
|
List<String> list6 = Arrays.asList(sheetName, "备注");
|
||||||
|
list.add(list1);
|
||||||
|
list.add(list2);
|
||||||
|
list.add(list3);
|
||||||
|
list.add(list4);
|
||||||
|
list.add(list5);
|
||||||
|
list.add(list6);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 导入物资设备清单
|
// * 导入物资设备清单
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
|||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import org.dromara.design.domain.bo.DesCollectFileBo;
|
import org.dromara.design.domain.bo.DesCollectFileBo;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.design.domain.vo.DesCollectFileVo;
|
import org.dromara.design.domain.vo.DesCollectFileVo;
|
||||||
import org.dromara.design.service.IDesCollectFileService;
|
import org.dromara.design.service.IDesCollectFileService;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -117,4 +118,11 @@ public class DesCollectFileController extends BaseController {
|
|||||||
@NotNull(message = "请先选择项目")Long projectId) {
|
@NotNull(message = "请先选择项目")Long projectId) {
|
||||||
return toAjax(desCollectFileService.addFile(file, catalogueId, projectId));
|
return toAjax(desCollectFileService.addFile(file, catalogueId, projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/exportZip")
|
||||||
|
public void exportZip(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
|
desCollectFileService.exportAsZip(dto, response);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -143,4 +144,10 @@ public class DesConstructionSchedulePlanController extends BaseController {
|
|||||||
@PathVariable Long[] ids) {
|
@PathVariable Long[] ids) {
|
||||||
return toAjax(desConstructionSchedulePlanService.deleteByIds(List.of(ids)));
|
return toAjax(desConstructionSchedulePlanService.deleteByIds(List.of(ids)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/exportSchedule")
|
||||||
|
public void exportSchedule(HttpServletResponse response, Long projectId) throws IOException {
|
||||||
|
desConstructionSchedulePlanService.exportSchedule(response,projectId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
@ -128,4 +129,9 @@ public class DesPrelimSchemeController extends BaseController {
|
|||||||
return toAjax(desPrelimSchemeService.updateFile(file, projectId,id));
|
return toAjax(desPrelimSchemeService.updateFile(file, projectId,id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/exportZipWithStatus")
|
||||||
|
public void exportZipWithStatus(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
|
desPrelimSchemeService.exportAsZipWithStatusPrefix(dto, response);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
@ -126,4 +127,10 @@ public class DesSchemeController extends BaseController {
|
|||||||
public R<Void> updateFile(MultipartFile file, Long projectId, @NotNull(message = "主键不能为空")@PathVariable Long id) {
|
public R<Void> updateFile(MultipartFile file, Long projectId, @NotNull(message = "主键不能为空")@PathVariable Long id) {
|
||||||
return toAjax(desSchemeService.updateFile(file, projectId,id));
|
return toAjax(desSchemeService.updateFile(file, projectId,id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/exportZipWithStatus")
|
||||||
|
public void exportZipWithStatus(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
|
desSchemeService.exportAsZipWithStatusPrefix(dto, response);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
package org.dromara.design.domain.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ExportDto {
|
||||||
|
private Long projectId;
|
||||||
|
private List<Long> ids;
|
||||||
|
}
|
||||||
@ -1,5 +1,7 @@
|
|||||||
package org.dromara.design.domain.vo;
|
package org.dromara.design.domain.vo;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
|
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
||||||
import org.dromara.design.domain.DesSubcontract;
|
import org.dromara.design.domain.DesSubcontract;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@ -31,13 +33,13 @@ public class DesSubcontractVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 主键ID
|
* 主键ID
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "主键ID")
|
@ExcelIgnore
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目id
|
* 项目id
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目id")
|
@ExcelIgnore
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,7 +51,13 @@ public class DesSubcontractVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 分包要求
|
* 分包要求
|
||||||
*/
|
*/
|
||||||
|
@ExcelProperty(value = "说明")
|
||||||
private String requirement;
|
private String requirement;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@DateTimeFormat("yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "创建时间")
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
package org.dromara.design.exportUtil.bill;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.format.NumberFormat;
|
||||||
|
import com.alibaba.excel.annotation.write.style.HeadStyle;
|
||||||
|
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 9)
|
||||||
|
public class BillOfQuantitiesExport {
|
||||||
|
@ExcelProperty(value = "编号", index = 0)
|
||||||
|
private String num;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "名称及规格", index = 1)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "规格", index = 2)
|
||||||
|
private String specification;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "单位", index = 3)
|
||||||
|
@NumberFormat("#") // 若单位为文本,可去掉此注解
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "数量", index = 4)
|
||||||
|
@NumberFormat("#,##0.00") // 数量格式化(保留两位小数)
|
||||||
|
private BigDecimal quantity;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "备注", index = 5)
|
||||||
|
private String remark;
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package org.dromara.design.exportUtil.bill;
|
||||||
|
|
||||||
|
import com.alibaba.excel.write.handler.SheetWriteHandler;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调整指定列的宽度(第二列和第五列)
|
||||||
|
*/
|
||||||
|
public class ColumnWidthWriteHandler implements SheetWriteHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
|
||||||
|
Sheet sheet = writeSheetHolder.getSheet();
|
||||||
|
|
||||||
|
// 设置列宽(单位:字符数,1字符≈256个单位,这里按实际需求调整)
|
||||||
|
// 第二列(索引1):例如设置宽度为30个字符
|
||||||
|
sheet.setColumnWidth(1, 30 * 256);
|
||||||
|
// 第五列(索引4):例如设置宽度为15个字符
|
||||||
|
sheet.setColumnWidth(4, 15 * 256);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
package org.dromara.design.exportUtil.bill;
|
||||||
|
|
||||||
|
import com.alibaba.excel.write.handler.RowWriteHandler;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 行样式处理器:
|
||||||
|
* 1. 第二行(索引1)及以后所有行添加边框
|
||||||
|
* 2. 第二行(索引1)的第二列(索引1)标题栏加粗加大
|
||||||
|
*/
|
||||||
|
import com.alibaba.excel.write.handler.RowWriteHandler;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
|
||||||
|
public class CustomRowStyleHandler implements RowWriteHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer relativeRowIndex, Boolean isHead) {
|
||||||
|
// 关键修改:通过 writeSheetHolder 获取 Workbook(兼容所有版本)
|
||||||
|
Workbook workbook = writeSheetHolder.getParentWriteWorkbookHolder().getWorkbook();
|
||||||
|
int rowIndex = row.getRowNum();
|
||||||
|
|
||||||
|
// 1. 第二行(索引1)及以后的行添加边框
|
||||||
|
if (rowIndex >= 1) {
|
||||||
|
CellStyle borderStyle = ExcelStyleUtils.createBorderStyle(workbook);
|
||||||
|
|
||||||
|
for (int i = 0; i <= 5; i++) {
|
||||||
|
Cell cell = row.getCell(i);
|
||||||
|
if (cell == null) {
|
||||||
|
cell = row.createCell(i);
|
||||||
|
}
|
||||||
|
cell.setCellStyle(borderStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 第二行(索引1)的第二列(索引1)标题栏加粗加大
|
||||||
|
if (rowIndex == 1) {
|
||||||
|
for (int i = 0; i <= 5; i++) {
|
||||||
|
Cell secondColumnCell = row.getCell(i);
|
||||||
|
if (secondColumnCell != null) {
|
||||||
|
CellStyle headerStyle = ExcelStyleUtils.createSecondColumnHeaderStyle(workbook);
|
||||||
|
secondColumnCell.setCellStyle(headerStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
package org.dromara.design.exportUtil.bill;
|
||||||
|
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 样式工具类(定义边框、字体等样式)
|
||||||
|
*/
|
||||||
|
public class ExcelStyleUtils {
|
||||||
|
// 边框样式(细实线)
|
||||||
|
public static final BorderStyle BORDER_STYLE = BorderStyle.THIN;
|
||||||
|
// 边框颜色(黑色)
|
||||||
|
public static final short BORDER_COLOR = IndexedColors.BLACK.getIndex();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建带边框的单元格样式
|
||||||
|
*/
|
||||||
|
public static CellStyle createBorderStyle(Workbook workbook) {
|
||||||
|
CellStyle style = workbook.createCellStyle();
|
||||||
|
// 上下左右边框
|
||||||
|
style.setBorderTop(BORDER_STYLE);
|
||||||
|
style.setBorderBottom(BORDER_STYLE);
|
||||||
|
style.setBorderLeft(BORDER_STYLE);
|
||||||
|
style.setBorderRight(BORDER_STYLE);
|
||||||
|
// 边框颜色
|
||||||
|
style.setTopBorderColor(BORDER_COLOR);
|
||||||
|
style.setBottomBorderColor(BORDER_COLOR);
|
||||||
|
style.setLeftBorderColor(BORDER_COLOR);
|
||||||
|
style.setRightBorderColor(BORDER_COLOR);
|
||||||
|
// 单元格内容居中(可选)
|
||||||
|
style.setAlignment(HorizontalAlignment.CENTER);
|
||||||
|
style.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建第二列标题栏样式(加粗、字号加大)
|
||||||
|
*/
|
||||||
|
public static CellStyle createSecondColumnHeaderStyle(Workbook workbook) {
|
||||||
|
CellStyle style = createBorderStyle(workbook); // 继承边框样式
|
||||||
|
Font font = workbook.createFont();
|
||||||
|
font.setBold(true); // 加粗
|
||||||
|
font.setFontHeightInPoints((short) 12); // 字号加大(默认11,这里设12)
|
||||||
|
style.setFont(font);
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建第一行(合并标题行)的白色背景样式
|
||||||
|
*/
|
||||||
|
public static CellStyle createFirstRowWhiteStyle(Workbook workbook) {
|
||||||
|
CellStyle style = workbook.createCellStyle();
|
||||||
|
// 设置白色背景
|
||||||
|
style.setFillForegroundColor(IndexedColors.WHITE.getIndex());
|
||||||
|
style.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 纯色填充
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package org.dromara.design.exportUtil.bill;
|
||||||
|
|
||||||
|
import com.alibaba.excel.write.handler.SheetWriteHandler;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 冻结前3行的处理器(滚动时前3行固定)
|
||||||
|
*/
|
||||||
|
public class FreezePaneWriteHandler implements SheetWriteHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
|
||||||
|
Sheet sheet = writeSheetHolder.getSheet();
|
||||||
|
// 参数说明:冻结0列,冻结2行,从第0列、第2行开始滚动
|
||||||
|
// 前2行(索引0和1)将固定在顶部
|
||||||
|
sheet.createFreezePane(0, 2, 0, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package org.dromara.design.exportUtil.bill;
|
||||||
|
|
||||||
|
import com.alibaba.excel.write.handler.SheetWriteHandler;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
|
||||||
|
public class SheetHeaderWriteHandler implements SheetWriteHandler {
|
||||||
|
|
||||||
|
private final String sheetName;
|
||||||
|
|
||||||
|
public SheetHeaderWriteHandler( String sheetName) {
|
||||||
|
this.sheetName = sheetName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
|
||||||
|
Sheet sheet = writeSheetHolder.getSheet();
|
||||||
|
Workbook workbook = writeWorkbookHolder.getWorkbook();
|
||||||
|
|
||||||
|
// 第一行(索引0):合并标题 + 白色背景
|
||||||
|
Row titleRow = sheet.createRow(0);
|
||||||
|
Cell titleCell = titleRow.createCell(0);
|
||||||
|
titleCell.setCellValue(sheetName);
|
||||||
|
// 应用白色背景样式
|
||||||
|
titleCell.setCellStyle(ExcelStyleUtils.createFirstRowWhiteStyle(workbook));
|
||||||
|
// 合并第一行的0-5列
|
||||||
|
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 5));
|
||||||
|
|
||||||
|
// 第2行(索引1):字段标题栏(手动指定,覆盖实体类默认表头)
|
||||||
|
Row headerRow = sheet.createRow(1);
|
||||||
|
String[] headers = {"编号", "名称", "规格", "单位", "数量", "备注"};
|
||||||
|
for (int i = 0; i < headers.length; i++) {
|
||||||
|
headerRow.createCell(i).setCellValue(headers[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
package org.dromara.design.exportUtil.plan;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
||||||
|
import com.alibaba.excel.converters.localdate.LocalDateStringConverter;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ConstructionScheduleExport {
|
||||||
|
@ExcelProperty(value = "编号", index = 0)
|
||||||
|
private String levelCode; // 层级编号(如1、1.1、1.1.1)
|
||||||
|
|
||||||
|
@ExcelProperty(value = "节点名称", index = 1)
|
||||||
|
private String nodeName;
|
||||||
|
|
||||||
|
|
||||||
|
@DateTimeFormat("yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "预计开始时间", index = 2)
|
||||||
|
private LocalDate planStartDate;
|
||||||
|
|
||||||
|
@DateTimeFormat("yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "预计结束时间", index = 3)
|
||||||
|
private LocalDate planEndDate;
|
||||||
|
|
||||||
|
@DateTimeFormat("yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "实际开始时间", index = 4)
|
||||||
|
private LocalDate practicalStartDate;
|
||||||
|
|
||||||
|
@DateTimeFormat("yyyy-MM-dd")
|
||||||
|
@ExcelProperty(value = "实际结束时间", index = 5)
|
||||||
|
private LocalDate practicalEndDate;
|
||||||
|
|
||||||
|
@ExcelProperty(value = "状态", index = 6,converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(dictType = "project_construction_status")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
// 用于构建层级关系的临时字段(不导出)
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ExcelIgnore
|
||||||
|
private Long parentId;
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
package org.dromara.design.exportUtil.plan;
|
||||||
|
|
||||||
|
import com.alibaba.excel.write.handler.SheetWriteHandler;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||||
|
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
|
||||||
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.poi.ss.util.CellRangeAddress;
|
||||||
|
|
||||||
|
public class ScheduleHeaderWriteHandler implements SheetWriteHandler {
|
||||||
|
@Override
|
||||||
|
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
|
||||||
|
Sheet sheet = writeSheetHolder.getSheet();
|
||||||
|
|
||||||
|
// 第一行直接作为标题栏
|
||||||
|
Row titleRow = sheet.createRow(0);
|
||||||
|
String[] titles = {"编号", "节点名称", "预计开始时间", "预计结束时间", "实际开始时间", "实际结束时间", "状态"};
|
||||||
|
for (int i = 0; i < titles.length; i++) {
|
||||||
|
Cell cell = titleRow.createCell(i);
|
||||||
|
cell.setCellValue(titles[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -3,14 +3,15 @@ package org.dromara.design.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.design.domain.BusBillofquantities;
|
|
||||||
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
||||||
import org.dromara.design.domain.bo.*;
|
import org.dromara.design.domain.bo.*;
|
||||||
import org.dromara.design.domain.vo.*;
|
import org.dromara.design.domain.vo.*;
|
||||||
|
import org.dromara.design.exportUtil.bill.BillOfQuantitiesExport;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工程量清单版本Service接口
|
* 工程量清单版本Service接口
|
||||||
@ -100,4 +101,7 @@ public interface IBusBillofquantitiesVersionsService extends IService<BusBillofq
|
|||||||
List<BusBillofquantitiesMaterialTotalVo> queryMaterialTotalListByProject(Long projectId);
|
List<BusBillofquantitiesMaterialTotalVo> queryMaterialTotalListByProject(Long projectId);
|
||||||
|
|
||||||
List<BusBillofquantitiesVo> obtainAllClassification(ObtainAllVersionNumbersReq bo);
|
List<BusBillofquantitiesVo> obtainAllClassification(ObtainAllVersionNumbersReq bo);
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, List<BillOfQuantitiesExport>> export(String versions,Long projectId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,14 @@
|
|||||||
package org.dromara.design.service;
|
package org.dromara.design.service;
|
||||||
|
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.dromara.design.domain.DesCollectFile;
|
import org.dromara.design.domain.DesCollectFile;
|
||||||
import org.dromara.design.domain.bo.DesCollectFileBo;
|
import org.dromara.design.domain.bo.DesCollectFileBo;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.design.domain.vo.DesCollectFileVo;
|
import org.dromara.design.domain.vo.DesCollectFileVo;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@ -79,5 +81,6 @@ public interface IDesCollectFileService extends IService<DesCollectFile>{
|
|||||||
Boolean addFile(MultipartFile file, Long catalogueId, Long projectId);
|
Boolean addFile(MultipartFile file, Long catalogueId, Long projectId);
|
||||||
|
|
||||||
|
|
||||||
|
void exportAsZip(ExportDto dto, HttpServletResponse response) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import org.dromara.design.domain.dto.constructionscheduleplan.*;
|
|||||||
import org.dromara.design.domain.vo.DesConstructionSchedulePlanVo;
|
import org.dromara.design.domain.vo.DesConstructionSchedulePlanVo;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -114,4 +115,7 @@ public interface IDesConstructionSchedulePlanService extends IService<DesConstru
|
|||||||
* @return 实体列表
|
* @return 实体列表
|
||||||
*/
|
*/
|
||||||
List<DesConstructionSchedulePlan> convertToEntities(List<DesConstructionSchedulePlanExcelDto> excelList);
|
List<DesConstructionSchedulePlan> convertToEntities(List<DesConstructionSchedulePlanExcelDto> excelList);
|
||||||
|
|
||||||
|
|
||||||
|
void exportSchedule(HttpServletResponse response, Long projectId) throws IOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package org.dromara.design.service;
|
package org.dromara.design.service;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.design.domain.vo.DesPrelimSchemeVo;
|
import org.dromara.design.domain.vo.DesPrelimSchemeVo;
|
||||||
import org.dromara.design.domain.bo.DesPrelimSchemeBo;
|
import org.dromara.design.domain.bo.DesPrelimSchemeBo;
|
||||||
import org.dromara.design.domain.DesPrelimScheme;
|
import org.dromara.design.domain.DesPrelimScheme;
|
||||||
@ -8,7 +9,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -81,4 +81,7 @@ public interface IDesPrelimSchemeService extends IService<DesPrelimScheme>{
|
|||||||
* 修改文件
|
* 修改文件
|
||||||
*/
|
*/
|
||||||
Boolean updateFile(MultipartFile file, Long projectId, Long id);
|
Boolean updateFile(MultipartFile file, Long projectId, Long id);
|
||||||
|
|
||||||
|
|
||||||
|
void exportAsZipWithStatusPrefix(ExportDto dto, HttpServletResponse response) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package org.dromara.design.service;
|
package org.dromara.design.service;
|
||||||
|
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.design.domain.vo.DesSchemeVo;
|
import org.dromara.design.domain.vo.DesSchemeVo;
|
||||||
import org.dromara.design.domain.bo.DesSchemeBo;
|
import org.dromara.design.domain.bo.DesSchemeBo;
|
||||||
import org.dromara.design.domain.DesScheme;
|
import org.dromara.design.domain.DesScheme;
|
||||||
@ -82,4 +84,7 @@ public interface IDesSchemeService extends IService<DesScheme>{
|
|||||||
* 修改文件
|
* 修改文件
|
||||||
*/
|
*/
|
||||||
Boolean updateFile(MultipartFile file, Long projectId, Long id);
|
Boolean updateFile(MultipartFile file, Long projectId, Long id);
|
||||||
|
|
||||||
|
|
||||||
|
void exportAsZipWithStatusPrefix(ExportDto dto, HttpServletResponse response) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@ package org.dromara.design.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.alibaba.fastjson2.util.BeanUtils;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -28,12 +28,11 @@ import org.dromara.common.excel.coryUtils.ExcelReader;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.utils.BatchNumberGenerator;
|
import org.dromara.common.utils.BatchNumberGenerator;
|
||||||
import org.dromara.common.utils.excel.ExcelDynamicReader;
|
|
||||||
import org.dromara.design.domain.BusBillofquantities;
|
import org.dromara.design.domain.BusBillofquantities;
|
||||||
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
import org.dromara.design.domain.BusBillofquantitiesVersions;
|
||||||
import org.dromara.design.domain.bo.*;
|
import org.dromara.design.domain.bo.*;
|
||||||
import org.dromara.design.domain.dto.MaterialsAndEquipmentExcelDto;
|
|
||||||
import org.dromara.design.domain.vo.*;
|
import org.dromara.design.domain.vo.*;
|
||||||
|
import org.dromara.design.exportUtil.bill.BillOfQuantitiesExport;
|
||||||
import org.dromara.design.mapper.BusBillofquantitiesVersionsMapper;
|
import org.dromara.design.mapper.BusBillofquantitiesVersionsMapper;
|
||||||
import org.dromara.design.service.IBusBillofquantitiesService;
|
import org.dromara.design.service.IBusBillofquantitiesService;
|
||||||
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
||||||
@ -363,6 +362,34 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
|
|||||||
return BeanUtil.copyToList(busBillofquantities,BusBillofquantitiesVo.class);
|
return BeanUtil.copyToList(busBillofquantities,BusBillofquantitiesVo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, List<BillOfQuantitiesExport>> export(String versions,Long projectId) {
|
||||||
|
// 1. 从数据库查询指定版本的所有数据
|
||||||
|
List<BusBillofquantities> dbList = busBillofquantitiesService.list(Wrappers.<BusBillofquantities>lambdaQuery()
|
||||||
|
.eq(BusBillofquantities::getVersions, versions)
|
||||||
|
.eq(BusBillofquantities::getProjectId, projectId)
|
||||||
|
);
|
||||||
|
if (CollectionUtil.isEmpty(dbList)) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 转换为导出实体并按sheet分组
|
||||||
|
Map<String, List<BillOfQuantitiesExport>> sheetMap = new HashMap<>();
|
||||||
|
for (BusBillofquantities dbItem : dbList) {
|
||||||
|
BillOfQuantitiesExport exportItem = new BillOfQuantitiesExport();
|
||||||
|
BeanUtil.copyProperties(dbItem, exportItem);
|
||||||
|
// 处理编号、名称等字段(若需格式化可在此补充)
|
||||||
|
exportItem.setNum(dbItem.getNum());
|
||||||
|
exportItem.setName(dbItem.getName());
|
||||||
|
|
||||||
|
// 按sheet分组
|
||||||
|
String sheetName = dbItem.getSheet();
|
||||||
|
sheetMap.computeIfAbsent(sheetName, k -> new ArrayList<>()).add(exportItem);
|
||||||
|
}
|
||||||
|
return sheetMap;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 递归构建树形结构
|
* 递归构建树形结构
|
||||||
*
|
*
|
||||||
|
|||||||
@ -2,8 +2,11 @@ package org.dromara.design.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
@ -18,10 +21,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.design.domain.DesCollect;
|
import org.dromara.design.domain.DesCollect;
|
||||||
|
import org.dromara.design.domain.DesCollectCatalogue;
|
||||||
import org.dromara.design.domain.DesCollectFile;
|
import org.dromara.design.domain.DesCollectFile;
|
||||||
import org.dromara.design.domain.bo.DesCollectFileBo;
|
import org.dromara.design.domain.bo.DesCollectFileBo;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.design.domain.vo.DesCollectFileVo;
|
import org.dromara.design.domain.vo.DesCollectFileVo;
|
||||||
import org.dromara.design.mapper.DesCollectFileMapper;
|
import org.dromara.design.mapper.DesCollectFileMapper;
|
||||||
|
import org.dromara.design.service.IDesCollectCatalogueService;
|
||||||
import org.dromara.design.service.IDesCollectFileService;
|
import org.dromara.design.service.IDesCollectFileService;
|
||||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
@ -31,10 +37,22 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.io.FileInputStream;
|
||||||
import java.util.Map;
|
import java.io.IOException;
|
||||||
import java.util.Collection;
|
import java.io.InputStream;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.net.http.HttpRequest;
|
||||||
|
import java.net.http.HttpResponse;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
||||||
|
|
||||||
@ -53,6 +71,8 @@ public class DesCollectFileServiceImpl extends ServiceImpl<DesCollectFileMapper,
|
|||||||
|
|
||||||
private final ISysOssService ossService;
|
private final ISysOssService ossService;
|
||||||
|
|
||||||
|
private final IDesCollectCatalogueService collectCatalogueService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询收资文件
|
* 查询收资文件
|
||||||
*
|
*
|
||||||
@ -217,4 +237,144 @@ public class DesCollectFileServiceImpl extends ServiceImpl<DesCollectFileMapper,
|
|||||||
log.info("监听删除流程事件,上传资料审核任务执行了{}", processDeleteEvent.toString());
|
log.info("监听删除流程事件,上传资料审核任务执行了{}", processDeleteEvent.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exportAsZip(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
|
// 1. 查询所有收资文件
|
||||||
|
List<DesCollectFile> files = baseMapper.selectList(Wrappers.<DesCollectFile>lambdaQuery()
|
||||||
|
.eq(DesCollectFile::getProjectId, dto.getProjectId())
|
||||||
|
.in(CollectionUtil.isNotEmpty(dto.getIds()),DesCollectFile::getId, dto.getIds())
|
||||||
|
);
|
||||||
|
if (files.isEmpty()) {
|
||||||
|
throw new RuntimeException("没有可导出的收资文件");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 提取所有catalogueId,查询对应的目录名称
|
||||||
|
List<Long> catalogueIds = files.stream()
|
||||||
|
.map(DesCollectFile::getCatalogueId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
Map<Long, String> catalogueNameMap = getCatalogueNames(catalogueIds); // 获取名称映射
|
||||||
|
|
||||||
|
// 3. 按catalogueId分组
|
||||||
|
Map<Long, List<DesCollectFile>> catalogueGroup = files.stream()
|
||||||
|
.collect(Collectors.groupingBy(DesCollectFile::getCatalogueId));
|
||||||
|
|
||||||
|
// 4. 创建临时根目录
|
||||||
|
File tempRootDir = File.createTempFile("collect_file_", "_temp");
|
||||||
|
if (!tempRootDir.delete() || !tempRootDir.mkdirs()) {
|
||||||
|
throw new RuntimeException("创建临时根目录失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 5. 按分组创建文件夹(用目录名称)并下载文件
|
||||||
|
for (Map.Entry<Long, List<DesCollectFile>> entry : catalogueGroup.entrySet()) {
|
||||||
|
Long catalogueId = entry.getKey();
|
||||||
|
List<DesCollectFile> fileList = entry.getValue();
|
||||||
|
|
||||||
|
// 获取目录名称(若查询不到,用catalogueId作为默认名称)
|
||||||
|
String catalogueName = catalogueNameMap.getOrDefault(catalogueId, String.valueOf(catalogueId));
|
||||||
|
// 处理名称中的特殊字符(避免创建文件夹失败)
|
||||||
|
String safeCatalogueName = catalogueName.replaceAll("[\\\\/:*?\"<>|]", "_");
|
||||||
|
|
||||||
|
// 创建以目录名称命名的文件夹
|
||||||
|
File catalogueDir = new File(tempRootDir, safeCatalogueName);
|
||||||
|
if (!catalogueDir.exists() && !catalogueDir.mkdirs()) {
|
||||||
|
throw new RuntimeException("创建文件夹[" + safeCatalogueName + "]失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载文件(命名格式:审核状态-原文件名)
|
||||||
|
for (DesCollectFile file : fileList) {
|
||||||
|
String newFileName = BusinessStatusEnum.getByStatus(file.getStatus()).getDesc() + "-" + file.getFileName();
|
||||||
|
File destFile = new File(catalogueDir, newFileName);
|
||||||
|
downloadFile(file.getFileUrl(), destFile); // 复用之前的下载方法
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6. 压缩并导出(逻辑不变)
|
||||||
|
response.setContentType("application/zip");
|
||||||
|
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
|
||||||
|
String zipFileName = URLEncoder.encode("收资文件汇总", StandardCharsets.UTF_8.name()) + ".zip";
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + zipFileName);
|
||||||
|
|
||||||
|
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||||
|
zipDirectory(tempRootDir, tempRootDir.getName(), zos);
|
||||||
|
}
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
FileUtils.deleteQuietly(tempRootDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询catalogueId对应的目录名称(从数据库获取)
|
||||||
|
* @param catalogueIds 多个catalogueId
|
||||||
|
* @return key: catalogueId, value: 目录名称
|
||||||
|
*/
|
||||||
|
public Map<Long, String> getCatalogueNames(List<Long> catalogueIds) {
|
||||||
|
if (catalogueIds.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
// 实际实现:从目录表查询,例如
|
||||||
|
List<DesCollectCatalogue> desCollectCatalogues = collectCatalogueService.listByIds(catalogueIds);
|
||||||
|
return desCollectCatalogues.stream()
|
||||||
|
.collect(Collectors.toMap(DesCollectCatalogue::getId, DesCollectCatalogue::getCatalogueName));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载文件(Java 21兼容,使用HttpClient替代URL)
|
||||||
|
* @param fileUrl 文件URL(远程地址或本地路径)
|
||||||
|
* @param destFile 目标文件
|
||||||
|
*/
|
||||||
|
private void downloadFile(String fileUrl, File destFile) throws Exception {
|
||||||
|
|
||||||
|
|
||||||
|
// 远程URL文件,使用HttpClient下载
|
||||||
|
HttpClient client = HttpClient.newBuilder()
|
||||||
|
.connectTimeout(Duration.ofMinutes(5))
|
||||||
|
.build();
|
||||||
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
|
.uri(URI.create(fileUrl))
|
||||||
|
.timeout(Duration.ofMinutes(10))
|
||||||
|
.GET()
|
||||||
|
.build();
|
||||||
|
HttpResponse<Path> response = client.send(
|
||||||
|
request,
|
||||||
|
HttpResponse.BodyHandlers.ofFile(destFile.toPath())
|
||||||
|
);
|
||||||
|
if (response.statusCode() != 200) {
|
||||||
|
throw new RuntimeException("文件下载失败:" + fileUrl + ",状态码:" + response.statusCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归压缩目录到ZIP流
|
||||||
|
* @param sourceDir 源目录
|
||||||
|
* @param baseName ZIP内的基础路径(避免包含系统临时目录路径)
|
||||||
|
* @param zos ZIP输出流
|
||||||
|
*/
|
||||||
|
private void zipDirectory(File sourceDir, String baseName, ZipOutputStream zos) throws IOException {
|
||||||
|
File[] files = sourceDir.listFiles();
|
||||||
|
if (files == null) return;
|
||||||
|
|
||||||
|
for (File file : files) {
|
||||||
|
String entryName = baseName + File.separator + file.getName();
|
||||||
|
if (file.isDirectory()) {
|
||||||
|
// 递归压缩子目录
|
||||||
|
zipDirectory(file, entryName, zos);
|
||||||
|
} else {
|
||||||
|
// 压缩文件
|
||||||
|
zos.putNextEntry(new ZipEntry(entryName));
|
||||||
|
try (InputStream in = new FileInputStream(file)) {
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int len;
|
||||||
|
while ((len = in.read(buffer)) != -1) {
|
||||||
|
zos.write(buffer, 0, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zos.closeEntry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
package org.dromara.design.service.impl;
|
package org.dromara.design.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.alibaba.excel.EasyExcel;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -14,15 +17,19 @@ import org.dromara.common.core.constant.HttpStatus;
|
|||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.ObjectUtils;
|
import org.dromara.common.core.utils.ObjectUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
import org.dromara.design.domain.DesConstructionSchedulePlan;
|
import org.dromara.design.domain.DesConstructionSchedulePlan;
|
||||||
import org.dromara.design.domain.bo.DesUserBo;
|
import org.dromara.design.domain.bo.DesUserBo;
|
||||||
import org.dromara.design.domain.dto.constructionscheduleplan.*;
|
import org.dromara.design.domain.dto.constructionscheduleplan.*;
|
||||||
import org.dromara.design.domain.vo.DesConstructionSchedulePlanVo;
|
import org.dromara.design.domain.vo.DesConstructionSchedulePlanVo;
|
||||||
|
import org.dromara.design.exportUtil.plan.ConstructionScheduleExport;
|
||||||
|
import org.dromara.design.exportUtil.plan.ScheduleHeaderWriteHandler;
|
||||||
import org.dromara.design.mapper.DesConstructionSchedulePlanMapper;
|
import org.dromara.design.mapper.DesConstructionSchedulePlanMapper;
|
||||||
import org.dromara.design.service.IDesConstructionSchedulePlanService;
|
import org.dromara.design.service.IDesConstructionSchedulePlanService;
|
||||||
|
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserExportVo;
|
||||||
import org.dromara.system.service.ISysDictDataService;
|
import org.dromara.system.service.ISysDictDataService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -36,6 +43,7 @@ import java.nio.charset.StandardCharsets;
|
|||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 施工进度计划Service业务层处理
|
* 施工进度计划Service业务层处理
|
||||||
@ -624,4 +632,97 @@ public class DesConstructionSchedulePlanServiceImpl extends ServiceImpl<DesConst
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exportSchedule(HttpServletResponse response, Long projectId) throws IOException {
|
||||||
|
// 1. 构建导出数据(含层级编号)
|
||||||
|
List<ConstructionScheduleExport> dataList = buildExportData(projectId);
|
||||||
|
// 2. 设置响应头
|
||||||
|
ExcelUtil.exportExcel(dataList, "用户数据", ConstructionScheduleExport.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public List<ConstructionScheduleExport> buildExportData(Long projectId) {
|
||||||
|
// 1. 查询项目下所有里程碑节点
|
||||||
|
List<DesConstructionSchedulePlan> allNodes = baseMapper.selectList(Wrappers.<DesConstructionSchedulePlan>lambdaQuery()
|
||||||
|
.eq(DesConstructionSchedulePlan::getProjectId, projectId));
|
||||||
|
if (CollectionUtil.isEmpty(allNodes)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 转换为导出模型并缓存ID映射
|
||||||
|
Map<Long, ConstructionScheduleExport> nodeMap = new HashMap<>();
|
||||||
|
List<ConstructionScheduleExport> exportList = new ArrayList<>();
|
||||||
|
for (DesConstructionSchedulePlan node : allNodes) {
|
||||||
|
ConstructionScheduleExport export = new ConstructionScheduleExport();
|
||||||
|
BeanUtils.copyProperties(node, export);
|
||||||
|
nodeMap.put(node.getId(), export);
|
||||||
|
exportList.add(export);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 构建树形结构并生成层级编号
|
||||||
|
List<ConstructionScheduleExport> rootNodes = new ArrayList<>();
|
||||||
|
for (ConstructionScheduleExport export : exportList) {
|
||||||
|
if (export.getParentId() == 0) { // 父ID为0的是根节点
|
||||||
|
rootNodes.add(export);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 递归生成层级编号(根节点从1开始)
|
||||||
|
int rootIndex = 1;
|
||||||
|
for (ConstructionScheduleExport root : rootNodes) {
|
||||||
|
root.setLevelCode(String.valueOf(rootIndex));
|
||||||
|
buildChildrenCode(root, nodeMap);
|
||||||
|
rootIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 5. 按层级顺序排序(确保1.1在1之后,1.1.1在1.1之后)
|
||||||
|
return sortByLevelCode(exportList);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 递归为子节点生成编号(如父节点1 -> 子节点1.1、1.2)
|
||||||
|
private void buildChildrenCode(ConstructionScheduleExport parent, Map<Long, ConstructionScheduleExport> nodeMap) {
|
||||||
|
List<ConstructionScheduleExport> children = nodeMap.values().stream()
|
||||||
|
.filter(node -> parent.getId().equals(node.getParentId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
int childIndex = 1;
|
||||||
|
for (ConstructionScheduleExport child : children) {
|
||||||
|
child.setLevelCode(parent.getLevelCode() + "." + childIndex);
|
||||||
|
buildChildrenCode(child, nodeMap); // 递归处理孙子节点
|
||||||
|
childIndex++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 按层级编号排序(字符串自然排序)
|
||||||
|
private List<ConstructionScheduleExport> sortByLevelCode(List<ConstructionScheduleExport> list) {
|
||||||
|
return list.stream()
|
||||||
|
.sorted(Comparator.comparing(ConstructionScheduleExport::getLevelCode))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package org.dromara.design.service.impl;
|
package org.dromara.design.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
@ -15,13 +18,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.design.domain.DesScheme;
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.message.domain.MsgConfig;
|
|
||||||
import org.dromara.message.domain.bo.MsgNoticeBo;
|
|
||||||
import org.dromara.message.domain.dto.SendMsgDto;
|
|
||||||
import org.dromara.message.service.IMsgConfigService;
|
import org.dromara.message.service.IMsgConfigService;
|
||||||
import org.dromara.message.service.IMsgNoticeService;
|
import org.dromara.message.service.IMsgNoticeService;
|
||||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
@ -33,8 +32,18 @@ import org.dromara.design.mapper.DesPrelimSchemeMapper;
|
|||||||
import org.dromara.design.service.IDesPrelimSchemeService;
|
import org.dromara.design.service.IDesPrelimSchemeService;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.net.http.HttpRequest;
|
||||||
|
import java.net.http.HttpResponse;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
||||||
|
|
||||||
@ -189,6 +198,105 @@ public class DesPrelimSchemeServiceImpl extends ServiceImpl<DesPrelimSchemeMappe
|
|||||||
return baseMapper.updateById(desPrelimScheme)>0;
|
return baseMapper.updateById(desPrelimScheme)>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件名添加审核状态前缀后压缩为ZIP导出
|
||||||
|
* @param response 响应对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void exportAsZipWithStatusPrefix(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
|
// 1. 查询数据
|
||||||
|
List<DesPrelimScheme> schemes = baseMapper.selectList(Wrappers.<DesPrelimScheme>lambdaQuery()
|
||||||
|
.eq(DesPrelimScheme::getProjectId, dto.getProjectId())
|
||||||
|
.in(CollectionUtil.isNotEmpty(dto.getIds()), DesPrelimScheme::getId, dto.getIds())
|
||||||
|
);
|
||||||
|
if (schemes.isEmpty()) {
|
||||||
|
throw new RuntimeException("没有可导出的初步设计方案文件");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 创建临时目录(存放重命名后的文件)
|
||||||
|
File tempDir = File.createTempFile("prelim_scheme_", "_temp");
|
||||||
|
if (!tempDir.delete()) { // 删除临时文件,创建同名目录
|
||||||
|
throw new RuntimeException("创建临时目录失败");
|
||||||
|
}
|
||||||
|
if (!tempDir.mkdirs()) {
|
||||||
|
throw new RuntimeException("创建临时目录失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 3. 下载文件并以“审核状态-原文件名”命名
|
||||||
|
for (DesPrelimScheme scheme : schemes) {
|
||||||
|
String status = BusinessStatusEnum.getByStatus(scheme.getStatus()).getDesc(); // 审核状态(如draft、approved)
|
||||||
|
String originalFileName = scheme.getFileName(); // 原文件名
|
||||||
|
String newFileName = status + "-" + originalFileName; // 新文件名:状态-原文件名
|
||||||
|
|
||||||
|
// 临时文件路径
|
||||||
|
File tempFile = new File(tempDir, newFileName);
|
||||||
|
|
||||||
|
// 下载文件到临时目录(根据实际存储类型实现,此处以URL为例)
|
||||||
|
downloadFile(scheme.getFileUrl(), tempFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 压缩临时目录中的所有文件为ZIP并写入响应
|
||||||
|
response.setContentType("application/zip");
|
||||||
|
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
|
||||||
|
String zipFileName = URLEncoder.encode("初步设计方案", StandardCharsets.UTF_8.name()) + ".zip";
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + zipFileName);
|
||||||
|
|
||||||
|
// 压缩文件到响应流
|
||||||
|
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||||
|
File[] tempFiles = tempDir.listFiles();
|
||||||
|
if (tempFiles != null) {
|
||||||
|
for (File file : tempFiles) {
|
||||||
|
// ZIP条目名称为新文件名(不含临时目录路径)
|
||||||
|
zos.putNextEntry(new ZipEntry(file.getName()));
|
||||||
|
try (InputStream in = new FileInputStream(file)) {
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int len;
|
||||||
|
while ((len = in.read(buffer)) != -1) {
|
||||||
|
zos.write(buffer, 0, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zos.closeEntry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
// 5. 清理临时目录
|
||||||
|
FileUtils.deleteQuietly(tempDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载文件到本地临时目录(根据实际存储类型调整,如OSS、本地文件系统)
|
||||||
|
*/
|
||||||
|
private void downloadFile(String fileUrl, File destFile) throws Exception {
|
||||||
|
// 示例:从URL下载(若为OSS,使用OSS SDK的getObject方法)
|
||||||
|
// 创建HTTP客户端(设置超时时间)
|
||||||
|
HttpClient client = HttpClient.newBuilder()
|
||||||
|
.connectTimeout(Duration.ofMinutes(5)) // 连接超时
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// 创建HTTP请求
|
||||||
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
|
.uri(URI.create(fileUrl)) // 转换为URI(比URL更推荐)
|
||||||
|
.timeout(Duration.ofMinutes(10)) // 响应超时
|
||||||
|
.GET()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// 发送请求并将响应体写入目标文件
|
||||||
|
HttpResponse<Path> response = client.send(
|
||||||
|
request,
|
||||||
|
HttpResponse.BodyHandlers.ofFile(destFile.toPath()) // 直接写入文件路径
|
||||||
|
);
|
||||||
|
|
||||||
|
// 检查响应状态(200表示成功)
|
||||||
|
if (response.statusCode() != 200) {
|
||||||
|
throw new RuntimeException("文件下载失败,URL: " + fileUrl + ",状态码: " + response.statusCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package org.dromara.design.service.impl;
|
package org.dromara.design.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
@ -19,6 +22,7 @@ import org.dromara.common.oss.core.OssClient;
|
|||||||
import org.dromara.common.oss.factory.OssFactory;
|
import org.dromara.common.oss.factory.OssFactory;
|
||||||
import org.dromara.design.domain.DesCollectFile;
|
import org.dromara.design.domain.DesCollectFile;
|
||||||
import org.dromara.design.domain.DesPrelimScheme;
|
import org.dromara.design.domain.DesPrelimScheme;
|
||||||
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
@ -31,10 +35,23 @@ import org.dromara.design.mapper.DesSchemeMapper;
|
|||||||
import org.dromara.design.service.IDesSchemeService;
|
import org.dromara.design.service.IDesSchemeService;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.net.http.HttpRequest;
|
||||||
|
import java.net.http.HttpResponse;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.zip.ZipEntry;
|
||||||
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
import static org.dromara.common.constant.MinioPathConstant.ContactNoticeTemplate;
|
||||||
|
|
||||||
@ -183,6 +200,101 @@ public class DesSchemeServiceImpl extends ServiceImpl<DesSchemeMapper, DesScheme
|
|||||||
return baseMapper.updateById(desScheme)>0;
|
return baseMapper.updateById(desScheme)>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exportAsZipWithStatusPrefix(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
|
// 1. 查询数据
|
||||||
|
List<DesScheme> schemes = baseMapper.selectList(Wrappers.<DesScheme>lambdaQuery()
|
||||||
|
.eq(DesScheme::getProjectId, dto.getProjectId())
|
||||||
|
.in(CollectionUtil.isNotEmpty(dto.getIds()), DesScheme::getId, dto.getIds())
|
||||||
|
);
|
||||||
|
if (schemes.isEmpty()) {
|
||||||
|
throw new RuntimeException("没有可导出的初步设计方案文件");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 创建临时目录(存放重命名后的文件)
|
||||||
|
File tempDir = File.createTempFile("prelim_scheme_", "_temp");
|
||||||
|
if (!tempDir.delete()) { // 删除临时文件,创建同名目录
|
||||||
|
throw new RuntimeException("创建临时目录失败");
|
||||||
|
}
|
||||||
|
if (!tempDir.mkdirs()) {
|
||||||
|
throw new RuntimeException("创建临时目录失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 3. 下载文件并以“审核状态-原文件名”命名
|
||||||
|
for (DesScheme scheme : schemes) {
|
||||||
|
String status = BusinessStatusEnum.getByStatus(scheme.getStatus()).getDesc(); // 审核状态(如draft、approved)
|
||||||
|
String originalFileName = scheme.getFileName(); // 原文件名
|
||||||
|
String newFileName = status + "-" + originalFileName; // 新文件名:状态-原文件名
|
||||||
|
|
||||||
|
// 临时文件路径
|
||||||
|
File tempFile = new File(tempDir, newFileName);
|
||||||
|
|
||||||
|
// 下载文件到临时目录(根据实际存储类型实现,此处以URL为例)
|
||||||
|
downloadFile(scheme.getFileUrl(), tempFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 压缩临时目录中的所有文件为ZIP并写入响应
|
||||||
|
response.setContentType("application/zip");
|
||||||
|
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
|
||||||
|
String zipFileName = URLEncoder.encode("初步设计方案", StandardCharsets.UTF_8.name()) + ".zip";
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + zipFileName);
|
||||||
|
|
||||||
|
// 压缩文件到响应流
|
||||||
|
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||||
|
File[] tempFiles = tempDir.listFiles();
|
||||||
|
if (tempFiles != null) {
|
||||||
|
for (File file : tempFiles) {
|
||||||
|
// ZIP条目名称为新文件名(不含临时目录路径)
|
||||||
|
zos.putNextEntry(new ZipEntry(file.getName()));
|
||||||
|
try (InputStream in = new FileInputStream(file)) {
|
||||||
|
byte[] buffer = new byte[1024];
|
||||||
|
int len;
|
||||||
|
while ((len = in.read(buffer)) != -1) {
|
||||||
|
zos.write(buffer, 0, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
zos.closeEntry();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
// 5. 清理临时目录
|
||||||
|
FileUtils.deleteQuietly(tempDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 下载文件到本地临时目录(根据实际存储类型调整,如OSS、本地文件系统)
|
||||||
|
*/
|
||||||
|
private void downloadFile(String fileUrl, File destFile) throws Exception {
|
||||||
|
// 示例:从URL下载(若为OSS,使用OSS SDK的getObject方法)
|
||||||
|
// 创建HTTP客户端(设置超时时间)
|
||||||
|
HttpClient client = HttpClient.newBuilder()
|
||||||
|
.connectTimeout(Duration.ofMinutes(5)) // 连接超时
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// 创建HTTP请求
|
||||||
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
|
.uri(URI.create(fileUrl)) // 转换为URI(比URL更推荐)
|
||||||
|
.timeout(Duration.ofMinutes(10)) // 响应超时
|
||||||
|
.GET()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// 发送请求并将响应体写入目标文件
|
||||||
|
HttpResponse<Path> response = client.send(
|
||||||
|
request,
|
||||||
|
HttpResponse.BodyHandlers.ofFile(destFile.toPath()) // 直接写入文件路径
|
||||||
|
);
|
||||||
|
|
||||||
|
// 检查响应状态(200表示成功)
|
||||||
|
if (response.statusCode() != 200) {
|
||||||
|
throw new RuntimeException("文件下载失败,URL: " + fileUrl + ",状态码: " + response.statusCode());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
|||||||
@ -157,4 +157,9 @@ public class BusProjectUpdateReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private List<Long> deptIds;
|
private List<Long> deptIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 省份
|
||||||
|
*/
|
||||||
|
private String province;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1252,159 +1252,159 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
// projectVos.add(create("台湾省", "台北", 25.0330, 121.5654, 1));
|
// projectVos.add(create("台湾省", "台北", 25.0330, 121.5654, 1));
|
||||||
|
|
||||||
// 1号项目
|
// 1号项目
|
||||||
projectVos.add(create("贵州省", "都匀市沙包堡匀东农业光伏电站项目", 26.2556, 107.5139, 1));
|
projectVos.add(create("贵州省", "都匀市沙包堡匀东农业光伏电站项目", 26.2556, 107.5139, 1,"118.0452MWp"));
|
||||||
|
|
||||||
// 2号项目
|
// 2号项目
|
||||||
projectVos.add(create("贵州省", "长顺县朝核农业光伏电站", 26.1833, 106.4522, 1));
|
projectVos.add(create("贵州省", "长顺县朝核农业光伏电站", 26.1833, 106.4522, 1,"99.84MW"));
|
||||||
|
|
||||||
// 3号项目
|
// 3号项目
|
||||||
projectVos.add(create("重庆市", "重庆无水港绿色低碳能源项目", 29.533155, 106.504962, 1));
|
projectVos.add(create("重庆市", "重庆无水港绿色低碳能源项目", 29.533155, 106.504962, 1,"2.598MW"));
|
||||||
|
|
||||||
// 4号项目
|
// 4号项目
|
||||||
projectVos.add(create("贵州省", "兴义市捧乍猪场坪农业光伏电站项目", 25.1467, 104.8925, 1));
|
projectVos.add(create("贵州省", "兴义市捧乍猪场坪农业光伏电站项目", 25.1467, 104.8925, 1,"100MW"));
|
||||||
|
|
||||||
// 5号项目
|
// 5号项目
|
||||||
projectVos.add(create("贵州省", "华能盘州市羊场高光村、松林农业光伏发电项目", 25.7833, 104.6583, 1));
|
projectVos.add(create("贵州省", "华能盘州市羊场高光村、松林农业光伏发电项目", 25.7833, 104.6583, 1,"200MW"));
|
||||||
|
|
||||||
// 6号项目
|
// 6号项目
|
||||||
projectVos.add(create("贵州省", "大唐(六盘水)新能源有限公司水城区化乐农业光伏电站项目", 26.5167, 104.8289, 1));
|
projectVos.add(create("贵州省", "大唐(六盘水)新能源有限公司水城区化乐农业光伏电站项目", 26.5167, 104.8289, 1,"99.84MW"));
|
||||||
|
|
||||||
// 7号项目
|
// 7号项目
|
||||||
projectVos.add(create("广西壮族自治区", "河池市宜州区北牙瑶族乡100MWp农光互补光伏发电项目", 24.6833, 108.6958, 1));
|
projectVos.add(create("广西壮族自治区", "河池市宜州区北牙瑶族乡100MWp农光互补光伏发电项目", 24.6833, 108.6958, 1,"101.34MWp"));
|
||||||
|
|
||||||
// 8号项目
|
// 8号项目
|
||||||
projectVos.add(create("四川省", "凉山木里茶布朗光伏发电项目220kV升压站设计施工总承包项目", 27.9167, 100.3250, 1));
|
projectVos.add(create("四川省", "凉山木里茶布朗光伏发电项目220kV升压站设计施工总承包项目", 27.9167, 100.3250, 1,"220kV"));
|
||||||
|
|
||||||
// 9号项目
|
// 9号项目
|
||||||
projectVos.add(create("内蒙古自治区", "土默特右旗英能光伏电力开发有限公司100兆瓦光伏基地项目", 40.5333, 110.5489, 1));
|
projectVos.add(create("内蒙古自治区", "土默特右旗英能光伏电力开发有限公司100兆瓦光伏基地项目", 40.5333, 110.5489, 1,"100MWp"));
|
||||||
|
|
||||||
// 10号项目
|
// 10号项目
|
||||||
projectVos.add(create("云南省", "云南沾益农业光伏项目", 25.5000, 103.8194, 1));
|
projectVos.add(create("云南省", "云南沾益农业光伏项目", 25.5000, 103.8194, 1,"350MWp"));
|
||||||
|
|
||||||
// 11号项目
|
// 11号项目
|
||||||
projectVos.add(create("贵州省", "威宁县盐仓老鸦营30MW农业光伏电站项目", 26.8833, 104.2250, 1));
|
projectVos.add(create("贵州省", "威宁县盐仓老鸦营30MW农业光伏电站项目", 26.8833, 104.2250, 1,"30MW"));
|
||||||
|
|
||||||
// 12号项目
|
// 12号项目
|
||||||
projectVos.add(create("云南省", "大黑土光伏电站总承包工程项目", 25.0406, 102.7142, 1));
|
projectVos.add(create("云南省", "大黑土光伏电站总承包工程项目", 25.0406, 102.7142, 1,"272.97MW"));
|
||||||
|
|
||||||
// 13号项目
|
// 13号项目
|
||||||
projectVos.add(create("贵州省", "晴隆县碧痕新坪村风光火储一体化农业光伏电站", 25.5333, 105.1250, 1));
|
projectVos.add(create("贵州省", "晴隆县碧痕新坪村风光火储一体化农业光伏电站", 25.5333, 105.1250, 1,"/"));
|
||||||
|
|
||||||
// 15号项目
|
// 15号项目
|
||||||
projectVos.add(create("河北省", "怀安县风光储一体化项目", 40.6667, 114.5417, 1));
|
projectVos.add(create("河北省", "怀安县风光储一体化项目", 40.6667, 114.5417, 1,"200MW"));
|
||||||
|
|
||||||
// 16号项目
|
// 16号项目
|
||||||
projectVos.add(create("云南省", "保山市隆阳区黑岩洼光伏发电项目", 25.1250, 99.1667, 1));
|
projectVos.add(create("云南省", "保山市隆阳区黑岩洼光伏发电项目", 25.1250, 99.1667, 1,"100MW"));
|
||||||
|
|
||||||
// 17号项目
|
// 17号项目
|
||||||
projectVos.add(create("云南省", "白玉光伏发电项目", 25.1250, 99.1667, 1));
|
projectVos.add(create("云南省", "白玉光伏发电项目", 25.1250, 99.1667, 1,"340MW"));
|
||||||
|
|
||||||
// 20号项目
|
// 20号项目
|
||||||
projectVos.add(create("云南省", "云南省沾益区菱角农业光伏发电项目", 25.6000, 103.6833, 1));
|
projectVos.add(create("云南省", "云南省沾益区菱角农业光伏发电项目", 25.6000, 103.6833, 1,"350MWp"));
|
||||||
|
|
||||||
// 21号项目
|
// 21号项目
|
||||||
projectVos.add(create("云南省", "云南省文山州砚山县平远光伏发电项目", 23.7500, 104.3333, 1));
|
projectVos.add(create("云南省", "云南省文山州砚山县平远光伏发电项目", 23.7500, 104.3333, 1,"120MW"));
|
||||||
|
|
||||||
// 22号项目
|
// 22号项目
|
||||||
projectVos.add(create("贵州省", "兴仁市大山能投农业光伏电站项目", 25.4000, 105.1833, 1));
|
projectVos.add(create("贵州省", "兴仁市大山能投农业光伏电站项目", 25.4000, 105.1833, 1,"100MW"));
|
||||||
|
|
||||||
// 23号项目
|
// 23号项目
|
||||||
projectVos.add(create("贵州省", "兴仁市潘家庄能投农业光伏电站项目", 25.5333, 104.9833, 1));
|
projectVos.add(create("贵州省", "兴仁市潘家庄能投农业光伏电站项目", 25.5333, 104.9833, 1,"100MW"));
|
||||||
|
|
||||||
// 47号项目
|
// 47号项目
|
||||||
projectVos.add(create("重庆市", "丰都许明寺镇100MW农牧光互补复合项目", 29.9333, 107.7500, 1));
|
projectVos.add(create("重庆市", "丰都许明寺镇100MW农牧光互补复合项目", 29.9333, 107.7500, 1,"100MW"));
|
||||||
|
|
||||||
// 48号项目
|
// 48号项目
|
||||||
projectVos.add(create("云南省", "文山市茂克光伏电站项目", 23.3667, 104.2000, 1));
|
projectVos.add(create("云南省", "文山市茂克光伏电站项目", 23.3667, 104.2000, 1,"90.2MW"));
|
||||||
|
|
||||||
// 50号项目
|
// 50号项目
|
||||||
projectVos.add(create("云南省", "文山市清水井光伏电站项目", 23.4500, 104.3333, 1));
|
projectVos.add(create("云南省", "文山市清水井光伏电站项目", 23.4500, 104.3333, 1,"120.25MW"));
|
||||||
|
|
||||||
// 52号项目(原序号1)
|
// 52号项目(原序号1)
|
||||||
projectVos.add(create("广西壮族自治区", "新铝电力新山站屋顶分布式光伏发电项目EPC总承包", 22.8241, 108.3178, 1));
|
projectVos.add(create("广西壮族自治区", "新铝电力新山站屋顶分布式光伏发电项目EPC总承包", 22.8241, 108.3178, 1,"0.3MWp"));
|
||||||
|
|
||||||
// 53号项目(原序号2)
|
// 53号项目(原序号2)
|
||||||
projectVos.add(create("江西省", "江西省高速公路服务区分布式光伏项目EPC", 28.6764, 115.8922, 1));
|
projectVos.add(create("江西省", "江西省高速公路服务区分布式光伏项目EPC", 28.6764, 115.8922, 1,"120.12MWp"));
|
||||||
|
|
||||||
// 54号项目(原序号3)
|
// 54号项目(原序号3)
|
||||||
projectVos.add(create("河南省", "龙佰集团股份有限公司7MWp分布式光伏发电项目EPC总承包", 34.7573, 113.6145, 1));
|
projectVos.add(create("河南省", "龙佰集团股份有限公司7MWp分布式光伏发电项目EPC总承包", 34.7573, 113.6145, 1,"8.4MWp"));
|
||||||
|
|
||||||
// 55号项目(原序号4)
|
// 55号项目(原序号4)
|
||||||
projectVos.add(create("吉林省", "吉林热电检修安装工程有限公司吉林省南湖宾馆光储充一体化项目EPC总承包", 43.8868, 125.3245, 1));
|
projectVos.add(create("吉林省", "吉林热电检修安装工程有限公司吉林省南湖宾馆光储充一体化项目EPC总承包", 43.8868, 125.3245, 1,"400kW"));
|
||||||
|
|
||||||
// 56号项目(原序号5)
|
// 56号项目(原序号5)
|
||||||
projectVos.add(create("吉林省", "集安市瀚能风电场相关装备有限公司益盛汉参集团分布式光伏发电项目EPC", 41.1333, 126.1650, 1));
|
projectVos.add(create("吉林省", "集安市瀚能风电场相关装备有限公司益盛汉参集团分布式光伏发电项目EPC", 41.1333, 126.1650, 1,"3.50784MW"));
|
||||||
|
|
||||||
// 57号项目(原序号6)
|
// 57号项目(原序号6)
|
||||||
projectVos.add(create("重庆市", "重庆潼南综合智慧零碳电厂耀辉环保单元项目", 30.1550, 106.2289, 1));
|
projectVos.add(create("重庆市", "重庆潼南综合智慧零碳电厂耀辉环保单元项目", 30.1550, 106.2289, 1,"2.9MW"));
|
||||||
|
|
||||||
// 58号项目(原序号7)
|
// 58号项目(原序号7)
|
||||||
projectVos.add(create("重庆市", "汇智能源公司重庆永川综合智慧零碳电厂", 29.4167, 105.7833, 1));
|
projectVos.add(create("重庆市", "汇智能源公司重庆永川综合智慧零碳电厂", 29.4167, 105.7833, 1,"2MW"));
|
||||||
|
|
||||||
// 59号项目(原序号8)
|
// 59号项目(原序号8)
|
||||||
projectVos.add(create("广西壮族自治区", "德保县乡村振兴光伏发电项目(第二批)EPC 总承包", 23.7167, 106.6833, 1));
|
projectVos.add(create("广西壮族自治区", "德保县乡村振兴光伏发电项目(第二批)EPC 总承包", 23.7167, 106.6833, 1,"44.775MW"));
|
||||||
|
|
||||||
// 60号项目(原序号9)
|
// 60号项目(原序号9)
|
||||||
projectVos.add(create("重庆市", "汇智能源公司重庆永川综合智慧零碳电厂升科精锻单元项目工程EPC总承包工程(一期)", 29.4167, 105.7833, 1));
|
projectVos.add(create("重庆市", "汇智能源公司重庆永川综合智慧零碳电厂升科精锻单元项目工程EPC总承包工程(一期)", 29.4167, 105.7833, 1,"/"));
|
||||||
|
|
||||||
// 62号项目(原序号11)
|
// 62号项目(原序号11)
|
||||||
projectVos.add(create("贵州省", "新铝电力莲塘、马隘变电站屋顶分布式光伏发电项目EPC工程总承包项目", 23.7833, 106.9500, 1));
|
projectVos.add(create("贵州省", "新铝电力莲塘、马隘变电站屋顶分布式光伏发电项目EPC工程总承包项目", 23.7833, 106.9500, 1,"0.788MW"));
|
||||||
|
|
||||||
// 63号项目(原序号12)
|
// 63号项目(原序号12)
|
||||||
projectVos.add(create("广西壮族自治区", "广西德保县乡村振兴光伏发电项目(第三批)EPC总承包", 23.7167, 106.6833, 1));
|
projectVos.add(create("广西壮族自治区", "广西德保县乡村振兴光伏发电项目(第三批)EPC总承包", 23.7167, 106.6833, 1,"191MW(直流侧装机容量243.9007MWp)"));
|
||||||
|
|
||||||
// 64号项目(原序号13)
|
// 64号项目(原序号13)
|
||||||
projectVos.add(create("内蒙古自治区", "内蒙古自治区蒙西户用分布式200MW光伏发电项目EPC总承包四期", 40.6667, 109.8333, 1));
|
projectVos.add(create("内蒙古自治区", "内蒙古自治区蒙西户用分布式200MW光伏发电项目EPC总承包四期", 40.6667, 109.8333, 1,"200MW"));
|
||||||
|
|
||||||
// 65号项目(原序号14)
|
// 65号项目(原序号14)
|
||||||
projectVos.add(create("广东省", "惠来县50MWp居民屋顶分布式光伏项目", 23.0333, 116.2833, 1));
|
projectVos.add(create("广东省", "惠来县50MWp居民屋顶分布式光伏项目", 23.0333, 116.2833, 1,"50MWp"));
|
||||||
|
|
||||||
// 66号项目(原序号15)
|
// 66号项目(原序号15)
|
||||||
projectVos.add(create("广西壮族自治区", "田东县乡村振兴分布式光伏发电项目(二期)EPC总承包", 23.6167, 106.9167, 1));
|
projectVos.add(create("广西壮族自治区", "田东县乡村振兴分布式光伏发电项目(二期)EPC总承包", 23.6167, 106.9167, 1,"92MW"));
|
||||||
|
|
||||||
// 67号项目(原序号16)
|
// 67号项目(原序号16)
|
||||||
projectVos.add(create("广西壮族自治区", "田东县乡村振兴分布式光伏发电项目(一期)EPC总承包", 23.6167, 106.9167, 1));
|
projectVos.add(create("广西壮族自治区", "田东县乡村振兴分布式光伏发电项目(一期)EPC总承包", 23.6167, 106.9167, 1,"203MW"));
|
||||||
|
|
||||||
// 68号项目(原序号17)
|
// 68号项目(原序号17)
|
||||||
projectVos.add(create("重庆市", "华能重庆华通电脑有限公司屋顶分布式光伏EPC项目合同", 29.533155, 106.504962, 1));
|
projectVos.add(create("重庆市", "华能重庆华通电脑有限公司屋顶分布式光伏EPC项目合同", 29.533155, 106.504962, 1,"10.2245MWp"));
|
||||||
|
|
||||||
// 69号项目(原序号18)
|
// 69号项目(原序号18)
|
||||||
projectVos.add(create("广东省", "大埔峡能白罗20MW、长兴20MW、洋门10MW、群丰10MW农光互补光伏发电项目", 24.3667, 116.7000, 1));
|
projectVos.add(create("广东省", "大埔峡能白罗20MW、长兴20MW、洋门10MW、群丰10MW农光互补光伏发电项目", 24.3667, 116.7000, 1,"60MWp"));
|
||||||
|
|
||||||
// 70号项目(原序号19)
|
// 70号项目(原序号19)
|
||||||
projectVos.add(create("广东省", "化州区域分布式光伏项目", 21.7000, 110.6333, 1));
|
projectVos.add(create("广东省", "化州区域分布式光伏项目", 21.7000, 110.6333, 1,"15MWp"));
|
||||||
|
|
||||||
// 71号项目(原序号20)
|
// 71号项目(原序号20)
|
||||||
projectVos.add(create("河北省", "兴隆县10MW分布式光伏项目", 40.4167, 117.4833, 1));
|
projectVos.add(create("河北省", "兴隆县10MW分布式光伏项目", 40.4167, 117.4833, 1,"5.99MW"));
|
||||||
|
|
||||||
// 75号项目(原序号24)
|
// 75号项目(原序号24)
|
||||||
projectVos.add(create("重庆市", "石柱发电公司厂区分布式光伏施工项目", 29.9333, 108.1333, 1));
|
projectVos.add(create("重庆市", "石柱发电公司厂区分布式光伏施工项目", 29.9333, 108.1333, 1,"0.9MW"));
|
||||||
|
|
||||||
// 76号项目(原序号25)
|
// 76号项目(原序号25)
|
||||||
projectVos.add(create("陕西省", "靖边燃气发电厂3.0MW光伏发电工程", 37.6167, 108.7833, 1));
|
projectVos.add(create("陕西省", "靖边燃气发电厂3.0MW光伏发电工程", 37.6167, 108.7833, 1,"3MWp"));
|
||||||
|
|
||||||
// 77号项目(原序号26)
|
// 77号项目(原序号26)
|
||||||
projectVos.add(create("河北省", "河北兴隆 10MW分布式光伏项目", 40.4167, 117.4833, 1));
|
projectVos.add(create("河北省", "河北兴隆 10MW分布式光伏项目", 40.4167, 117.4833, 1,"4MW"));
|
||||||
|
|
||||||
// 79号项目(原序号28)
|
// 79号项目(原序号28)
|
||||||
projectVos.add(create("广东省", "茂名分公司化工区物资仓库屋顶光伏发电合同能源管理项目", 21.6833, 110.8667, 1));
|
projectVos.add(create("广东省", "茂名分公司化工区物资仓库屋顶光伏发电合同能源管理项目", 21.6833, 110.8667, 1,"1.855MWp"));
|
||||||
|
|
||||||
// 88号项目(原序号37)
|
// 88号项目(原序号37)
|
||||||
projectVos.add(create("河北省", "怀安县风光储一体化项目", 40.6667, 114.5417, 1));
|
projectVos.add(create("河北省", "怀安县风光储一体化项目", 40.6667, 114.5417, 1,"200MW"));
|
||||||
|
|
||||||
// 91号项目(原序号2)
|
// 91号项目(原序号2)
|
||||||
projectVos.add(create("辽宁省", "鑫泰新能源大石桥市200MW风电场新建工程项目", 40.6333, 122.5333, 2));
|
projectVos.add(create("辽宁省", "鑫泰新能源大石桥市200MW风电场新建工程项目", 40.6333, 122.5333, 2,"200MW"));
|
||||||
|
|
||||||
// 92号项目(原序号3)
|
// 92号项目(原序号3)
|
||||||
projectVos.add(create("辽宁省", "大石桥市冠程新能源550MW风电场工程项目", 40.6333, 122.5333, 2));
|
projectVos.add(create("辽宁省", "大石桥市冠程新能源550MW风电场工程项目", 40.6333, 122.5333, 2,"550MW"));
|
||||||
|
|
||||||
// 96号项目(原序号7)
|
// 96号项目(原序号7)
|
||||||
projectVos.add(create("四川省", "阿坝公司运检大楼“风光油储型”微电网试点项目", 31.9500, 102.2167, 2));
|
projectVos.add(create("四川省", "阿坝公司运检大楼“风光油储型”微电网试点项目", 31.9500, 102.2167, 2,"0.6MW"));
|
||||||
|
|
||||||
// 老挝 - 万象
|
// 老挝 - 万象
|
||||||
projectVos.add(create("老挝", "巴塞", 15.110507, 105.817291, 1));
|
projectVos.add(create("老挝", "巴塞", 15.110507, 105.817291, 1,"1000MW"));
|
||||||
// 老挝 - 琅勃拉邦
|
// 老挝 - 琅勃拉邦
|
||||||
projectVos.add(create("老挝", "波利坎塞", 18.39639, 103.65583, 1));
|
projectVos.add(create("老挝", "波利坎塞", 18.39639, 103.65583, 1,"50.1MW"));
|
||||||
Map<String, Map<String, Map<String, String>>> map = new HashMap<>();
|
Map<String, Map<String, Map<String, String>>> map = new HashMap<>();
|
||||||
for (SysDictDataVo projectType : projectTypes) {
|
for (SysDictDataVo projectType : projectTypes) {
|
||||||
Map<String, Map<String, String>> map1 = new HashMap<>();
|
Map<String, Map<String, String>> map1 = new HashMap<>();
|
||||||
@ -1539,7 +1539,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
* @param projectType 项目类型
|
* @param projectType 项目类型
|
||||||
* @return 项目信息
|
* @return 项目信息
|
||||||
*/
|
*/
|
||||||
private static BusProjectVo create(String province, String name, double lat, double lng, Integer projectType) {
|
private static BusProjectVo create(String province, String name, double lat, double lng, Integer projectType,String plan) {
|
||||||
BusProjectVo vo = new BusProjectVo();
|
BusProjectVo vo = new BusProjectVo();
|
||||||
vo.setId(IdWorker.getID());
|
vo.setId(IdWorker.getID());
|
||||||
vo.setProvince(province);
|
vo.setProvince(province);
|
||||||
@ -1547,6 +1547,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
vo.setLat(String.valueOf(lat));
|
vo.setLat(String.valueOf(lat));
|
||||||
vo.setLng(String.valueOf(lng));
|
vo.setLng(String.valueOf(lng));
|
||||||
vo.setProjectType(projectType.toString());
|
vo.setProjectType(projectType.toString());
|
||||||
|
vo.setPlan(plan);
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package org.dromara.websocket;
|
package org.dromara.websocket;
|
||||||
|
|
||||||
import io.netty.bootstrap.ServerBootstrap;
|
import io.netty.bootstrap.ServerBootstrap;
|
||||||
import io.netty.channel.ChannelFuture;
|
|
||||||
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelInitializer;
|
||||||
import io.netty.channel.ChannelOption;
|
import io.netty.channel.ChannelOption;
|
||||||
import io.netty.channel.EventLoopGroup;
|
import io.netty.channel.EventLoopGroup;
|
||||||
@ -15,15 +14,15 @@ import io.netty.handler.stream.ChunkedWriteHandler;
|
|||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import jakarta.annotation.PreDestroy;
|
import jakarta.annotation.PreDestroy;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.CommandLineRunner;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ChatServer {
|
public class ChatServer {
|
||||||
private final int port = 19099; // 聊天服务器端口
|
|
||||||
|
@Value("${chat.server.port}")
|
||||||
|
private int port; // 聊天服务器端口
|
||||||
|
|
||||||
private EventLoopGroup bossGroup;
|
private EventLoopGroup bossGroup;
|
||||||
private EventLoopGroup workerGroup;
|
private EventLoopGroup workerGroup;
|
||||||
@ -62,12 +61,12 @@ public class ChatServer {
|
|||||||
ch.pipeline().addLast(new ChunkedWriteHandler());
|
ch.pipeline().addLast(new ChunkedWriteHandler());
|
||||||
ch.pipeline().addLast(new HttpObjectAggregator(8192));
|
ch.pipeline().addLast(new HttpObjectAggregator(8192));
|
||||||
// 注意:WebSocketServerProtocolHandler 必须在 ChatServerHandler 之前添加
|
// 注意:WebSocketServerProtocolHandler 必须在 ChatServerHandler 之前添加
|
||||||
ch.pipeline().addLast(new WebSocketServerProtocolHandler("/ws", null, true, 65536 * 10,false,true));
|
ch.pipeline().addLast(new WebSocketServerProtocolHandler("/ws", null, true, 65536 * 10, false, true));
|
||||||
ch.pipeline().addLast(new ChatServerHandler()); // 添加聊天消息处理类
|
ch.pipeline().addLast(new ChatServerHandler()); // 添加聊天消息处理类
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
log.info("Netty聊天服务器启动,端口:" + port);
|
log.info("Netty聊天服务器启动,端口:{}", port);
|
||||||
bootstrap.bind(port).sync();
|
bootstrap.bind(port).sync();
|
||||||
// ChannelFuture future = bootstrap.bind(port).sync();
|
// ChannelFuture future = bootstrap.bind(port).sync();
|
||||||
// future.channel().closeFuture().sync();
|
// future.channel().closeFuture().sync();
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -102,7 +103,7 @@ public class XzdBidPreProject extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime billDate;
|
private LocalDate billDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 联投单位
|
* 联投单位
|
||||||
|
|||||||
@ -5,6 +5,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ public class XzdBqlxProjectInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 预计开工日期
|
* 预计开工日期
|
||||||
*/
|
*/
|
||||||
private Date expectedStartDate;
|
private LocalDate expectedStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资质要求
|
* 资质要求
|
||||||
@ -48,7 +50,7 @@ public class XzdBqlxProjectInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 报名开始时间
|
* 报名开始时间
|
||||||
*/
|
*/
|
||||||
private Date bidStartDate;
|
private LocalDate bidStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 填报组织
|
* 填报组织
|
||||||
@ -60,12 +62,12 @@ public class XzdBqlxProjectInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 报名截止时间
|
* 报名截止时间
|
||||||
*/
|
*/
|
||||||
private Date bidEndDate;
|
private LocalDate bidEndDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标截止时间
|
* 投标截止时间
|
||||||
*/
|
*/
|
||||||
private Date submissionDeadline;
|
private LocalDate submissionDeadline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设计情况
|
* 设计情况
|
||||||
@ -110,7 +112,7 @@ public class XzdBqlxProjectInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开标时间
|
* 开标时间
|
||||||
*/
|
*/
|
||||||
private Date startDate;
|
private LocalDate startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 评标方式
|
* 评标方式
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,7 +32,6 @@ public class XzdBidPreProjectBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 项目编码
|
* 项目编码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "项目编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
|
||||||
private String projectNumber;
|
private String projectNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,7 +63,7 @@ public class XzdBidPreProjectBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime billDate;
|
private LocalDate billDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 联投单位
|
* 联投单位
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,7 +39,7 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 预计开工日期
|
* 预计开工日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime expectedStartDate;
|
private LocalDate expectedStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资质要求
|
* 资质要求
|
||||||
@ -48,18 +49,18 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 报名开始时间
|
* 报名开始时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime bidStartDate;
|
private LocalDate bidStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报名截止时间
|
* 报名截止时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "报名截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "报名截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private LocalDateTime bidEndDate;
|
private LocalDate bidEndDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标截止时间
|
* 投标截止时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime submissionDeadline;
|
private LocalDate submissionDeadline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设计情况
|
* 设计情况
|
||||||
@ -111,7 +112,7 @@ public class XzdBqlxProjectInfoBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开标时间
|
* 开标时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime startDate;
|
private LocalDate startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 评标方式
|
* 评标方式
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
|
||||||
@ -134,7 +135,7 @@ public class XzdBidPreProjectVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime billDate;
|
private LocalDate billDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 联投单位
|
* 联投单位
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
|
package org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
|
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
|
||||||
@ -44,7 +45,7 @@ public class XzdBqlxProjectInfoVo implements Serializable {
|
|||||||
* 预计开工日期
|
* 预计开工日期
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "预计开工日期")
|
@ExcelProperty(value = "预计开工日期")
|
||||||
private Date expectedStartDate;
|
private LocalDate expectedStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资质要求
|
* 资质要求
|
||||||
@ -56,19 +57,19 @@ public class XzdBqlxProjectInfoVo implements Serializable {
|
|||||||
* 报名开始时间
|
* 报名开始时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "报名开始时间")
|
@ExcelProperty(value = "报名开始时间")
|
||||||
private Date bidStartDate;
|
private LocalDate bidStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报名截止时间
|
* 报名截止时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "报名截止时间")
|
@ExcelProperty(value = "报名截止时间")
|
||||||
private Date bidEndDate;
|
private LocalDate bidEndDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标截止时间
|
* 投标截止时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "投标截止时间")
|
@ExcelProperty(value = "投标截止时间")
|
||||||
private Date submissionDeadline;
|
private LocalDate submissionDeadline;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -130,7 +131,7 @@ public class XzdBqlxProjectInfoVo implements Serializable {
|
|||||||
* 开标时间
|
* 开标时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开标时间")
|
@ExcelProperty(value = "开标时间")
|
||||||
private Date startDate;
|
private LocalDate startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 评标方式
|
* 评标方式
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -35,9 +36,9 @@ public class XzdProjectByVo {
|
|||||||
private Long createBy;
|
private Long createBy;
|
||||||
|
|
||||||
|
|
||||||
private LocalDateTime startTime;
|
private LocalDate startTime;
|
||||||
|
|
||||||
private LocalDateTime endTime;
|
private LocalDate endTime;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -37,7 +39,7 @@ public class XzdBiddingFileEstimate extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
@ -72,7 +74,7 @@ public class XzdBiddingFileEstimate extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开标时间
|
* 开标时间
|
||||||
*/
|
*/
|
||||||
private Date startDate;
|
private LocalDate startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工程概况
|
* 工程概况
|
||||||
@ -82,7 +84,7 @@ public class XzdBiddingFileEstimate extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
private Date biddingDate;
|
private LocalDate biddingDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标地址
|
* 投标地址
|
||||||
|
|||||||
@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,18 +31,16 @@ public class XzdBiddingFileEstimateBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单据编码
|
* 单据编码
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "单据编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
|
||||||
private String documentCode;
|
private String documentCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,7 +71,7 @@ public class XzdBiddingFileEstimateBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开标时间
|
* 开标时间
|
||||||
*/
|
*/
|
||||||
private Date startDate;
|
private LocalDate startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工程概况
|
* 工程概况
|
||||||
@ -81,7 +81,7 @@ public class XzdBiddingFileEstimateBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
private Date biddingDate;
|
private LocalDate biddingDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标地址
|
* 投标地址
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.biddingManagement.biddingDocument.domain.vo;
|
package org.dromara.xzd.biddingManagement.biddingDocument.domain.vo;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
@ -48,7 +49,7 @@ public class XzdBiddingFileEstimateVo implements Serializable {
|
|||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "单据日期")
|
@ExcelProperty(value = "单据日期")
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
@ -92,7 +93,7 @@ public class XzdBiddingFileEstimateVo implements Serializable {
|
|||||||
* 开标时间
|
* 开标时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开标时间")
|
@ExcelProperty(value = "开标时间")
|
||||||
private Date startDate;
|
private LocalDate startDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工程概况
|
* 工程概况
|
||||||
@ -104,7 +105,7 @@ public class XzdBiddingFileEstimateVo implements Serializable {
|
|||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "投标时间")
|
@ExcelProperty(value = "投标时间")
|
||||||
private Date biddingDate;
|
private LocalDate biddingDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标地址
|
* 投标地址
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -42,7 +44,7 @@ public class XzdBiddingDocument extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
private Date biddingTime;
|
private LocalDate biddingTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
@ -62,7 +64,7 @@ public class XzdBiddingDocument extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理
|
* 项目经理
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -42,7 +44,7 @@ public class XzdTbwjBusinessBidRequirements extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 提供时间
|
* 提供时间
|
||||||
*/
|
*/
|
||||||
private Date provideTime;
|
private LocalDate provideTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -42,7 +44,7 @@ public class XzdTbwjQualificationRequirements extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 提供时间
|
* 提供时间
|
||||||
*/
|
*/
|
||||||
private Date provideTime;
|
private LocalDate provideTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -42,7 +44,7 @@ public class XzdTbwjTechnicalBidRequirements extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 提供时间
|
* 提供时间
|
||||||
*/
|
*/
|
||||||
private Date provideTime;
|
private LocalDate provideTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument;
|
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument;
|
||||||
@ -41,7 +43,7 @@ public class XzdBiddingDocumentBo extends BaseEntity {
|
|||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "投标时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "投标时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Date biddingTime;
|
private LocalDate biddingTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
@ -63,7 +65,7 @@ public class XzdBiddingDocumentBo extends BaseEntity {
|
|||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理
|
* 项目经理
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements;
|
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjBusinessBidRequirements;
|
||||||
@ -43,7 +45,7 @@ public class XzdTbwjBusinessBidRequirementsBo extends BaseEntity {
|
|||||||
* 提供时间
|
* 提供时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Date provideTime;
|
private LocalDate provideTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements;
|
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjQualificationRequirements;
|
||||||
@ -43,7 +45,7 @@ public class XzdTbwjQualificationRequirementsBo extends BaseEntity {
|
|||||||
* 提供时间
|
* 提供时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Date provideTime;
|
private LocalDate provideTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements;
|
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdTbwjTechnicalBidRequirements;
|
||||||
@ -43,7 +45,7 @@ public class XzdTbwjTechnicalBidRequirementsBo extends BaseEntity {
|
|||||||
* 提供时间
|
* 提供时间
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "提供时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Date provideTime;
|
private LocalDate provideTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo;
|
package org.dromara.xzd.biddingManagement.biddingDocumentList.domain.vo;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
@ -59,7 +60,7 @@ public class XzdBiddingDocumentVo implements Serializable {
|
|||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "投标时间")
|
@ExcelProperty(value = "投标时间")
|
||||||
private Date biddingTime;
|
private LocalDate biddingTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目名称
|
* 项目名称
|
||||||
@ -83,7 +84,7 @@ public class XzdBiddingDocumentVo implements Serializable {
|
|||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "单据日期")
|
@ExcelProperty(value = "单据日期")
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理
|
* 项目经理
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
@ -39,7 +40,7 @@ public class XzdBiddingAgencyFeePayment extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标题
|
* 标题
|
||||||
@ -69,7 +70,7 @@ public class XzdBiddingAgencyFeePayment extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime biddingDate;
|
private LocalDate biddingDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代理机构名称
|
* 代理机构名称
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -36,7 +37,7 @@ public class XzdBiddingAgencyFeePaymentBo extends BaseEntity {
|
|||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "单据日期不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private LocalDateTime documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标题
|
* 标题
|
||||||
@ -67,7 +68,7 @@ public class XzdBiddingAgencyFeePaymentBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime biddingDate;
|
private LocalDate biddingDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代理机构名称
|
* 代理机构名称
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.biddingManagement.paymentapplication.domain.vo;
|
package org.dromara.xzd.biddingManagement.paymentapplication.domain.vo;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
@ -48,7 +49,7 @@ public class XzdBiddingAgencyFeePaymentVo implements Serializable {
|
|||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "单据日期")
|
@ExcelProperty(value = "单据日期")
|
||||||
private Date documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标题
|
* 标题
|
||||||
@ -84,7 +85,7 @@ public class XzdBiddingAgencyFeePaymentVo implements Serializable {
|
|||||||
* 投标时间
|
* 投标时间
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "投标时间")
|
@ExcelProperty(value = "投标时间")
|
||||||
private Date biddingDate;
|
private LocalDate biddingDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 代理机构名称
|
* 代理机构名称
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -67,7 +69,7 @@ public class XzdPostBidAnalysis extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开标日期
|
* 开标日期
|
||||||
*/
|
*/
|
||||||
private Date bidOpeningDate;
|
private LocalDate bidOpeningDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -68,7 +70,7 @@ public class XzdPostBidAnalysisBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开标日期
|
* 开标日期
|
||||||
*/
|
*/
|
||||||
private Date bidOpeningDate;
|
private LocalDate bidOpeningDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.biddingManagement.postAnalysis.domain.vo;
|
package org.dromara.xzd.biddingManagement.postAnalysis.domain.vo;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
@ -83,7 +84,7 @@ public class XzdPostBidAnalysisVo implements Serializable {
|
|||||||
* 开标日期
|
* 开标日期
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开标日期")
|
@ExcelProperty(value = "开标日期")
|
||||||
private Date bidOpeningDate;
|
private LocalDate bidOpeningDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
|
|||||||
@ -192,6 +192,11 @@ public class XzdCsContractChange extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal contractCumulativeChangeAmount;
|
private BigDecimal contractCumulativeChangeAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据引用
|
* 单据引用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -227,6 +227,11 @@ public class XzdCsContractInformation extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal budgetNotExceedRatio;
|
private BigDecimal budgetNotExceedRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据引用
|
* 单据引用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -205,6 +205,10 @@ public class XzdCsContractChangeBo extends BaseEntity {
|
|||||||
* 单据引用
|
* 单据引用
|
||||||
*/
|
*/
|
||||||
private String documentReference;
|
private String documentReference;
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件id
|
* 文件id
|
||||||
|
|||||||
@ -245,6 +245,11 @@ public class XzdCsContractInformationBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal budgetNotExceedRatio;
|
private BigDecimal budgetNotExceedRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据引用
|
* 单据引用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -249,6 +249,11 @@ public class XzdCsContractChangeVo implements Serializable {
|
|||||||
@ExcelProperty(value = "合同累计变更金额")
|
@ExcelProperty(value = "合同累计变更金额")
|
||||||
private BigDecimal contractCumulativeChangeAmount;
|
private BigDecimal contractCumulativeChangeAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据引用
|
* 单据引用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -223,6 +223,7 @@ public class XzdCsContractInformationVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目责任人")
|
@ExcelProperty(value = "项目责任人")
|
||||||
private Long projectOwner;
|
private Long projectOwner;
|
||||||
|
private String projectOwnerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WBS编码
|
* WBS编码
|
||||||
@ -298,6 +299,11 @@ public class XzdCsContractInformationVo implements Serializable {
|
|||||||
@ExcelDictFormat(readConverterExp = "%=")
|
@ExcelDictFormat(readConverterExp = "%=")
|
||||||
private BigDecimal budgetNotExceedRatio;
|
private BigDecimal budgetNotExceedRatio;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据引用
|
* 单据引用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.system.domain.vo.SysDeptVo;
|
import org.dromara.system.domain.vo.SysDeptVo;
|
||||||
|
import org.dromara.system.service.ISysDeptService;
|
||||||
import org.dromara.system.service.ISysUserService;
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
@ -63,6 +64,8 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
private SysOssServiceImpl sysOssService;
|
private SysOssServiceImpl sysOssService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysUserService sysUserService;
|
private ISysUserService sysUserService;
|
||||||
|
@Autowired
|
||||||
|
private ISysDeptService sysDeptService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -348,7 +351,7 @@ public class XzdCsContractChangeServiceImpl extends ServiceImpl<XzdCsContractCha
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//签约组织(客户信息列表)
|
//签约组织(客户信息列表)
|
||||||
String dtoR = iXzdCorrespondentList.queryNameById(item.getOrganization());
|
String dtoR = sysDeptService.selectDeptNameById(item.getOrganization());
|
||||||
if (dtoR!=null){
|
if (dtoR!=null){
|
||||||
item.setOrganizationName(dtoR);
|
item.setOrganizationName(dtoR);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.utils.BatchNumberGenerator;
|
import org.dromara.common.utils.BatchNumberGenerator;
|
||||||
import org.dromara.system.domain.vo.SysDeptVo;
|
import org.dromara.system.domain.vo.SysDeptVo;
|
||||||
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
import org.dromara.xzd.comprehensive.domain.XzdCsContractSuspendZfkx;
|
||||||
@ -77,6 +78,9 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IXzdHtglHtbgqdService xzdHtglHtbgqdService;
|
private IXzdHtglHtbgqdService xzdHtglHtbgqdService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询综合服务合同信息
|
* 查询综合服务合同信息
|
||||||
*
|
*
|
||||||
@ -159,7 +163,7 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
//签约组织(客户信息列表)
|
//签约组织(客户信息列表)
|
||||||
|
|
||||||
if (item.getSignOrganization() != null){
|
if (item.getSignOrganization() != null){
|
||||||
String byid = iXzdCorrespondentList.queryNameById(item.getSignOrganization());
|
String byid = sysDeptService.selectDeptNameById(item.getSignOrganization());
|
||||||
if (byid!=null){
|
if (byid!=null){
|
||||||
item.setSignOrganizationName(byid);
|
item.setSignOrganizationName(byid);
|
||||||
}
|
}
|
||||||
@ -193,6 +197,13 @@ public class XzdCsContractInformationServiceImpl extends ServiceImpl<XzdCsContra
|
|||||||
item.setInvoiceReceiverName(byid);
|
item.setInvoiceReceiverName(byid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//项目负责人
|
||||||
|
if (item.getProjectOwner() != null){
|
||||||
|
String s = sysUserService.queryNameById(item.getProjectOwner());
|
||||||
|
if (s!=null){
|
||||||
|
item.setProjectOwnerName(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -129,4 +129,10 @@ public class XzdPurchaseContractSuspendBo extends BaseEntity {
|
|||||||
private String auditStatus;
|
private String auditStatus;
|
||||||
|
|
||||||
|
|
||||||
|
private LocalDate startDate;
|
||||||
|
|
||||||
|
|
||||||
|
private LocalDate endDate;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -150,6 +150,11 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
|||||||
lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdPurchaseContractSuspend::getReceiptsCode, bo.getReceiptsCode());
|
lqw.eq(StringUtils.isNotBlank(bo.getReceiptsCode()), XzdPurchaseContractSuspend::getReceiptsCode, bo.getReceiptsCode());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdPurchaseContractSuspend::getTitle, bo.getTitle());
|
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdPurchaseContractSuspend::getTitle, bo.getTitle());
|
||||||
lqw.eq(bo.getDocumentDate() != null, XzdPurchaseContractSuspend::getDocumentDate, bo.getDocumentDate());
|
lqw.eq(bo.getDocumentDate() != null, XzdPurchaseContractSuspend::getDocumentDate, bo.getDocumentDate());
|
||||||
|
lqw.ge(bo.getStartDate() != null, XzdPurchaseContractSuspend::getDocumentDate, bo.getStartDate());
|
||||||
|
lqw.le(bo.getEndDate() != null, XzdPurchaseContractSuspend::getDocumentDate, bo.getEndDate());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdPurchaseContractSuspend::getContractName, bo.getContractName());
|
lqw.like(StringUtils.isNotBlank(bo.getContractName()), XzdPurchaseContractSuspend::getContractName, bo.getContractName());
|
||||||
lqw.eq(bo.getTerminationDate() != null, XzdPurchaseContractSuspend::getTerminationDate, bo.getTerminationDate());
|
lqw.eq(bo.getTerminationDate() != null, XzdPurchaseContractSuspend::getTerminationDate, bo.getTerminationDate());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdPurchaseContractSuspend::getProject, bo.getProject());
|
lqw.eq(StringUtils.isNotBlank(bo.getProject()), XzdPurchaseContractSuspend::getProject, bo.getProject());
|
||||||
|
|||||||
@ -149,7 +149,7 @@ public class XzdPurchaseContractAlteration extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 变更后合同备注
|
* 变更后合同备注
|
||||||
*/
|
*/
|
||||||
private Long changeContractRemarks;
|
private String changeContractRemarks;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目大类
|
* 项目大类
|
||||||
@ -211,6 +211,11 @@ public class XzdPurchaseContractAlteration extends BaseEntity {
|
|||||||
private String auditStatus;
|
private String auditStatus;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -154,7 +154,7 @@ public class XzdPurchaseContractAlterationBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 变更后合同备注
|
* 变更后合同备注
|
||||||
*/
|
*/
|
||||||
private Long changeContractRemarks;
|
private String changeContractRemarks;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目大类
|
* 项目大类
|
||||||
@ -220,6 +220,11 @@ public class XzdPurchaseContractAlterationBo extends BaseEntity {
|
|||||||
|
|
||||||
private LocalDate endDate;
|
private LocalDate endDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -53,6 +53,13 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
@ExcelDictFormat(readConverterExp = "合=同编码")
|
@ExcelDictFormat(readConverterExp = "合=同编码")
|
||||||
private Long contractInformationId;
|
private Long contractInformationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购合同信息ID(合同编码)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "采购合同信息ID", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "合=同编码")
|
||||||
|
private String contractInformationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据编码
|
* 单据编码
|
||||||
*/
|
*/
|
||||||
@ -119,6 +126,13 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
@ExcelProperty(value = "甲方单位")
|
@ExcelProperty(value = "甲方单位")
|
||||||
private Long partyAUnit;
|
private Long partyAUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 甲方单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "甲方单位")
|
||||||
|
private String partyAUnitName;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 集采模式
|
* 集采模式
|
||||||
*/
|
*/
|
||||||
@ -131,6 +145,12 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
@ExcelProperty(value = "乙方单位")
|
@ExcelProperty(value = "乙方单位")
|
||||||
private Long artyBUnit;
|
private Long artyBUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 乙方单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "乙方单位")
|
||||||
|
private String artyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 警示信息
|
* 警示信息
|
||||||
*/
|
*/
|
||||||
@ -173,23 +193,44 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
@ExcelProperty(value = "变更后项目经理")
|
@ExcelProperty(value = "变更后项目经理")
|
||||||
private Long changeProjectManager;
|
private Long changeProjectManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更后项目经理
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeProjectManager")
|
||||||
|
@ExcelProperty(value = "变更后项目经理")
|
||||||
|
private String changeProjectManageName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后项目责任人
|
* 变更后项目责任人
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "变更后项目责任人")
|
@ExcelProperty(value = "变更后项目责任人")
|
||||||
private Long changeProjectResponsible;
|
private Long changeProjectResponsible;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更后项目责任人
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeProjectResponsible")
|
||||||
|
@ExcelProperty(value = "变更后项目责任人")
|
||||||
|
private String changeProjectResponsibleName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后现场经理
|
* 变更后现场经理
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "变更后现场经理")
|
@ExcelProperty(value = "变更后现场经理")
|
||||||
private Long changeSiteManager;
|
private Long changeSiteManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变更后现场经理
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "changeSiteManager")
|
||||||
|
@ExcelProperty(value = "变更后现场经理")
|
||||||
|
private String changeSiteManagerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后现场经理
|
* 变更后现场经理
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "变更后合同备注")
|
@ExcelProperty(value = "变更后合同备注")
|
||||||
private Long changeContractRemarks;
|
private String changeContractRemarks;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目大类
|
* 项目大类
|
||||||
@ -270,11 +311,22 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
@ExcelProperty(value = "审核状态")
|
@ExcelProperty(value = "审核状态")
|
||||||
private String auditStatus;
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
private Date updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更价税合计
|
* 变更价税合计
|
||||||
*/
|
*/
|
||||||
private String changeInTotalAmount;
|
private String changeInTotalAmount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 变更后价税合计
|
* 变更后价税合计
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -97,6 +97,29 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
|||||||
|
|
||||||
for (XzdPurchaseContractAlterationVo item : infos) {
|
for (XzdPurchaseContractAlterationVo item : infos) {
|
||||||
|
|
||||||
|
//甲方单位(客户信息列表)
|
||||||
|
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
||||||
|
if (byid!=null){
|
||||||
|
if (byid.getData().getXzdCustomerinformation() != null){
|
||||||
|
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//乙方单位(供应商信息列表)
|
||||||
|
if (item.getArtyBUnit() != null){
|
||||||
|
String unitName = xzdSupplierInfoService.queryNameById(item.getArtyBUnit());
|
||||||
|
if (unitName != null){
|
||||||
|
item.setArtyBUnitName(unitName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 合同编码
|
||||||
|
if (item.getContractInformationId() != null){
|
||||||
|
XzdPurchaseContractInformationVo vo = iXzdPurchaseContractInformationService.queryById(item.getContractInformationId());
|
||||||
|
if (vo != null){
|
||||||
|
item.setContractInformationName(vo.getContractCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
//合同文本-预收款项
|
//合同文本-预收款项
|
||||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
||||||
@ -147,6 +170,7 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
|||||||
public TableDataInfo<XzdPurchaseContractAlterationVo> queryPageList(XzdPurchaseContractAlterationBo bo, PageQuery pageQuery) {
|
public TableDataInfo<XzdPurchaseContractAlterationVo> queryPageList(XzdPurchaseContractAlterationBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<XzdPurchaseContractAlteration> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<XzdPurchaseContractAlteration> lqw = buildQueryWrapper(bo);
|
||||||
Page<XzdPurchaseContractAlterationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<XzdPurchaseContractAlterationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
setValue(result.getRecords());
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -44,6 +44,11 @@ public class XzdSubcontractChange extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private LocalDate documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同编码
|
* 合同编码
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -68,6 +68,10 @@ public class XzdSubcontractChangeBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String changeType;
|
private String changeType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
/**
|
/**
|
||||||
* 项目
|
* 项目
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -64,6 +64,11 @@ public class XzdSubcontractChangeVo implements Serializable {
|
|||||||
@ExcelProperty(value = "单据日期")
|
@ExcelProperty(value = "单据日期")
|
||||||
private LocalDate documentDate;
|
private LocalDate documentDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同编码
|
* 合同编码
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -58,6 +58,11 @@ public class XzdSubcontract extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String businessModel;
|
private String businessModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原合同造价
|
* 原合同造价
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -58,6 +58,11 @@ public class XzdSubcontractBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long project;
|
private Long project;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
/**
|
/**
|
||||||
* 经营模式
|
* 经营模式
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -69,6 +69,11 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
@ExcelProperty(value = "合同类型")
|
@ExcelProperty(value = "合同类型")
|
||||||
private String contractType;
|
private String contractType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目
|
* 项目
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -91,6 +91,9 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
|||||||
@Override
|
@Override
|
||||||
public XzdSubcontractVo queryById(Long id){
|
public XzdSubcontractVo queryById(Long id){
|
||||||
XzdSubcontractVo xzdSubcontractVo = baseMapper.selectVoById(id);
|
XzdSubcontractVo xzdSubcontractVo = baseMapper.selectVoById(id);
|
||||||
|
if (xzdSubcontractVo == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
List<XzdSubcontractVo> informationVo = List.of(xzdSubcontractVo);
|
List<XzdSubcontractVo> informationVo = List.of(xzdSubcontractVo);
|
||||||
// 装填数据
|
// 装填数据
|
||||||
setValue(informationVo);
|
setValue(informationVo);
|
||||||
@ -141,10 +144,12 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
|||||||
if (unitName != null){
|
if (unitName != null){
|
||||||
item.setManagementOrganizationName(unitName);
|
item.setManagementOrganizationName(unitName);
|
||||||
}
|
}
|
||||||
//开票单位名称(供应商名称)
|
//开票单位名称
|
||||||
String unitName1 = xzdSupplierInfoService.queryNameById(item.getInvoicingUnit());
|
R<QuerCorrespondentDto> byidtemp = iXzdCorrespondentList.getCustomerByid((item.getInvoicingUnit()));
|
||||||
if (unitName1 != null){
|
if (byidtemp!=null){
|
||||||
item.setInvoicingUnitName(unitName1);
|
if (byidtemp.getData().getXzdCustomerinformation() != null){
|
||||||
|
item.setInvoicingUnitName(byidtemp.getData().getXzdCustomerinformation().getUnitName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//收票单位名称(供应商名称)
|
//收票单位名称(供应商名称)
|
||||||
String unitName2 = xzdSupplierInfoService.queryNameById(item.getTicketReceivingUnit());
|
String unitName2 = xzdSupplierInfoService.queryNameById(item.getTicketReceivingUnit());
|
||||||
|
|||||||
@ -126,6 +126,11 @@ public class XzdPurchaseContractInformation extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String paymentTerms;
|
private String paymentTerms;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 集采模式
|
* 集采模式
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -317,6 +317,11 @@ public class XzdPurchaseContractInformationBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private List<XzdHtglHtbgqd> htbgqds;
|
private List<XzdHtglHtbgqd> htbgqds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 汇总数据
|
* 汇总数据
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -58,6 +58,11 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
@ExcelProperty(value = "合同名称")
|
@ExcelProperty(value = "合同名称")
|
||||||
private String contractName;
|
private String contractName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String contractText;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
@ -148,6 +153,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 管理组织名称
|
* 管理组织名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "管理组织名称")
|
@ExcelProperty(value = "管理组织名称")
|
||||||
|
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "managementOrganization")
|
||||||
private String managementOrganizationName;
|
private String managementOrganizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -234,7 +240,6 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 其他收入合同项目名称
|
* 其他收入合同项目名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "其他收入合同项目名称")
|
@ExcelProperty(value = "其他收入合同项目名称")
|
||||||
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "otherIncomeContractProject")
|
|
||||||
private String otherIncomeContractProjectName;
|
private String otherIncomeContractProjectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -311,6 +316,12 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
@ExcelProperty(value = "关联主合同")
|
@ExcelProperty(value = "关联主合同")
|
||||||
private String associatedMainContract;
|
private String associatedMainContract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联主合同
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "关联主合同")
|
||||||
|
private String associatedMainContractName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目责任人
|
* 项目责任人
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -108,6 +108,8 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl<XzdPu
|
|||||||
informationVo = List.of(xzdPurchaseContractInformationVo);
|
informationVo = List.of(xzdPurchaseContractInformationVo);
|
||||||
// 装填数据
|
// 装填数据
|
||||||
setValue(informationVo);
|
setValue(informationVo);
|
||||||
|
}else {
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
return informationVo.getFirst();
|
return informationVo.getFirst();
|
||||||
}
|
}
|
||||||
@ -408,6 +410,17 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl<XzdPu
|
|||||||
item.setProjectName(projectName);
|
item.setProjectName(projectName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//其他项目名称
|
||||||
|
if (item.getProject() != null){
|
||||||
|
if (StringUtils.isNotEmpty(item.getAssociatedMainContract())){
|
||||||
|
String projectName = xzdProjectService.queryNameById(Long.parseLong(item.getAssociatedMainContract()));
|
||||||
|
if (projectName != null){
|
||||||
|
item.setAssociatedMainContractName(projectName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
//其他收入合同项目名称
|
//其他收入合同项目名称
|
||||||
if (item.getOtherIncomeContractProject() != null){
|
if (item.getOtherIncomeContractProject() != null){
|
||||||
String projectName = xzdProjectService.queryNameById(item.getOtherIncomeContractProject());
|
String projectName = xzdProjectService.queryNameById(item.getOtherIncomeContractProject());
|
||||||
@ -429,23 +442,21 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl<XzdPu
|
|||||||
item.setPartyBUnitName(unitName);
|
item.setPartyBUnitName(unitName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//管理组织(供应商)
|
// //管理组织
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
// String unitName = xzdSupplierInfoService.queryNameById(item.getManagementOrganization());
|
||||||
|
//
|
||||||
if (unitName != null){
|
// if (unitName != null){
|
||||||
item.setManagementOrganizationName(unitName);
|
// item.setManagementOrganizationName(unitName);
|
||||||
}
|
// }
|
||||||
//开票单位名称(供应商名称)
|
//开票单位名称(供应商名称)
|
||||||
String unitName1 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
String unitName1 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
||||||
if (unitName1 != null){
|
if (unitName1 != null){
|
||||||
item.setInvoiceIssuingUnitName(unitName1);
|
item.setInvoiceIssuingUnitName(unitName1);
|
||||||
}
|
}
|
||||||
//收票单位名称(客户名称)
|
//收票单位名称
|
||||||
R<QuerCorrespondentDto> byid2 = iXzdCorrespondentList.getCustomerByid(item.getInvoiceReceivingUnit());
|
String unitNametemp = xzdSupplierInfoService.queryNameById(item.getInvoiceReceivingUnit());
|
||||||
if (byid2!=null){
|
if (unitNametemp!=null){
|
||||||
if (byid2.getData().getXzdCustomerinformation() != null){
|
item.setInvoiceReceivingUnitName(unitNametemp);
|
||||||
item.setInvoiceReceivingUnitName(byid2.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//签约组织(供应商)
|
//签约组织(供应商)
|
||||||
String unitName2 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
String unitName2 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||||
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
import org.dromara.common.core.validate.EditGroup;
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
@ -10,7 +8,6 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@ -164,7 +161,7 @@ public class XzdCbysZjhcbAlterationBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 成本明细
|
* 成本明细
|
||||||
*/
|
*/
|
||||||
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiao;
|
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 税收成本
|
* 税收成本
|
||||||
|
|||||||
@ -4,16 +4,13 @@ import java.math.BigDecimal;
|
|||||||
|
|
||||||
import org.dromara.common.translation.annotation.Translation;
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
import org.dromara.common.translation.constant.TransConstant;
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -223,7 +220,7 @@ public class XzdCbysZjhcbAlterationVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 成本明细
|
* 成本明细
|
||||||
*/
|
*/
|
||||||
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiao;
|
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 税收成本
|
* 税收成本
|
||||||
|
|||||||
@ -13,21 +13,15 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.dromara.common.utils.BatchNumberGenerator;
|
import org.dromara.common.utils.BatchNumberGenerator;
|
||||||
import org.dromara.system.service.ISysUserService;
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysSscb;
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysWgcbtbFubiao;
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZtjhcbBgjl;
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysSscbService;
|
import org.dromara.xzd.costProjectApproval.costBudget.service.*;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysWgcbtbFubiaoService;
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZtjhcbBgjlService;
|
|
||||||
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo;
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbAlterationBo;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo;
|
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbAlterationVo;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcbAlteration;
|
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbAlterationMapper;
|
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbAlterationMapper;
|
||||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbAlterationService;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@ -57,6 +51,9 @@ public class XzdCbysZjhcbAlterationServiceImpl extends ServiceImpl<XzdCbysZjhcbA
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISysUserService sysUserService;
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
|
||||||
|
private final IXzdCbysZjhcbFubiaoService iXzdCbysZjhcbFubiaoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询立项及成本-成本预算-总体计划成本变更
|
* 查询立项及成本-成本预算-总体计划成本变更
|
||||||
*
|
*
|
||||||
@ -118,7 +115,9 @@ public class XzdCbysZjhcbAlterationServiceImpl extends ServiceImpl<XzdCbysZjhcbA
|
|||||||
vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls);
|
vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls);
|
||||||
List<XzdCbysSscb> xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, vo.getId()));
|
List<XzdCbysSscb> xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, vo.getId()));
|
||||||
vo.setXzdCbysSscb(xzdCbysSscbs);
|
vo.setXzdCbysSscb(xzdCbysSscbs);
|
||||||
List<XzdCbysWgcbtbFubiao> xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().eq(XzdCbysWgcbtbFubiao::getMainDocId, vo.getId()));
|
|
||||||
|
|
||||||
|
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiaos = iXzdCbysZjhcbFubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, vo.getId()));
|
||||||
vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos);
|
vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos);
|
||||||
}
|
}
|
||||||
private LambdaQueryWrapper<XzdCbysZjhcbAlteration> buildQueryWrapper(XzdCbysZjhcbAlterationBo bo) {
|
private LambdaQueryWrapper<XzdCbysZjhcbAlteration> buildQueryWrapper(XzdCbysZjhcbAlterationBo bo) {
|
||||||
@ -177,8 +176,8 @@ public class XzdCbysZjhcbAlterationServiceImpl extends ServiceImpl<XzdCbysZjhcbA
|
|||||||
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||||
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());});
|
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||||
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(add.getId());});
|
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||||
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
iXzdCbysZjhcbFubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setId(add.getId());
|
bo.setId(add.getId());
|
||||||
}
|
}
|
||||||
@ -206,13 +205,13 @@ public class XzdCbysZjhcbAlterationServiceImpl extends ServiceImpl<XzdCbysZjhcbA
|
|||||||
}
|
}
|
||||||
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId()));
|
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId()));
|
||||||
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, bo.getId()));
|
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, bo.getId()));
|
||||||
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysWgcbtbFubiao>().eq(XzdCbysWgcbtbFubiao::getMainDocId, bo.getId()));
|
iXzdCbysZjhcbFubiaoService.remove(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, bo.getId()));
|
||||||
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||||
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||||
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||||
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocId(bo.getId());});
|
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||||
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
iXzdCbysZjhcbFubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||||
return baseMapper.updateById(update) > 0;
|
return baseMapper.updateById(update) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,11 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
|
||||||
@ -52,11 +55,15 @@ public class XzdCertificateInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 生效日期
|
* 生效日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date effectiveDate;
|
private Date effectiveDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 截止日期
|
* 截止日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date expirationDate;
|
private Date expirationDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -193,5 +193,9 @@ public class XzdContractChange extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long danjuId;
|
private Long danjuId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String htwb;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -230,5 +230,9 @@ public class XzdContractDetails extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String fileId;
|
private String fileId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String htwb;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,16 @@
|
|||||||
package org.dromara.xzd.domain;
|
package org.dromara.xzd.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 承包合同终止对象 xzd_contract_termination
|
* 承包合同终止对象 xzd_contract_termination
|
||||||
@ -103,5 +104,14 @@ public class XzdContractTermination extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long danjuId;
|
private Long danjuId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计结算金额
|
||||||
|
*/
|
||||||
|
private BigDecimal ljjsje;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 累计付款金额
|
||||||
|
*/
|
||||||
|
private BigDecimal ljfkje;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -77,12 +79,12 @@ public class XzdCustomerDetail extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 冻结开始时间
|
* 冻结开始时间
|
||||||
*/
|
*/
|
||||||
private Date freezeStartTime;
|
private LocalDate freezeStartTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 冻结结束时间
|
* 冻结结束时间
|
||||||
*/
|
*/
|
||||||
private Date freezeEndTime;
|
private LocalDate freezeEndTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经销商类型
|
* 经销商类型
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
|
||||||
@ -122,7 +124,7 @@ public class XzdCustomerinformation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 工商变更时间
|
* 工商变更时间
|
||||||
*/
|
*/
|
||||||
private Date industrialCommercialChangeTime;
|
private LocalDate industrialCommercialChangeTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
@ -162,7 +164,7 @@ public class XzdCustomerinformation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 单位成立日期
|
* 单位成立日期
|
||||||
*/
|
*/
|
||||||
private Date establishmentDate;
|
private LocalDate establishmentDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 纳税身份类型
|
* 纳税身份类型
|
||||||
@ -207,7 +209,7 @@ public class XzdCustomerinformation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 注册时间
|
* 注册时间
|
||||||
*/
|
*/
|
||||||
private Date registrationTime;
|
private LocalDate registrationTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 营业范围
|
* 营业范围
|
||||||
|
|||||||
@ -4,8 +4,11 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
|
||||||
@ -77,6 +80,8 @@ public class XzdProjectInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 项目日期
|
* 项目日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date projectDate;
|
private Date projectDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,11 +1,14 @@
|
|||||||
package org.dromara.xzd.domain;
|
package org.dromara.xzd.domain;
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,12 +64,12 @@ public class XzdSettlementInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 开户银行
|
* 开户银行
|
||||||
*/
|
*/
|
||||||
// private Long openingBank;
|
private String openingBank;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 账号
|
* 账号
|
||||||
*/
|
*/
|
||||||
// private String accountNumber;
|
private String accountNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 折扣方式
|
* 折扣方式
|
||||||
@ -76,27 +79,27 @@ public class XzdSettlementInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 默认扣率
|
* 默认扣率
|
||||||
*/
|
*/
|
||||||
private Long defaultDeductionRate;
|
private BigDecimal defaultDeductionRate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开户行户名
|
* 开户行户名
|
||||||
*/
|
*/
|
||||||
// private String accountName;
|
private String accountName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开户行省
|
* 开户行省
|
||||||
*/
|
*/
|
||||||
// private String openingBankProvince;
|
private String openingBankProvince;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开户行市
|
* 开户行市
|
||||||
*/
|
*/
|
||||||
// private String openingBankCity;
|
private String openingBankCity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开户行区县
|
* 开户行区县
|
||||||
*/
|
*/
|
||||||
// private String openingBankCountyDistrict;
|
private String openingBankCountyDistrict;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 财务类型
|
* 财务类型
|
||||||
@ -106,7 +109,7 @@ public class XzdSettlementInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 消费税率
|
* 消费税率
|
||||||
*/
|
*/
|
||||||
private Long consumptionTaxRate;
|
private BigDecimal consumptionTaxRate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 回款天数
|
* 回款天数
|
||||||
@ -116,7 +119,7 @@ public class XzdSettlementInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 年利率
|
* 年利率
|
||||||
*/
|
*/
|
||||||
private Long annualInterestRate;
|
private BigDecimal annualInterestRate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 信用等级
|
* 信用等级
|
||||||
@ -131,7 +134,7 @@ public class XzdSettlementInfo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 信用额度
|
* 信用额度
|
||||||
*/
|
*/
|
||||||
private Long creditLimit;
|
private BigDecimal creditLimit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 默认付款天数
|
* 默认付款天数
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
|
||||||
@ -57,6 +58,8 @@ public class XzdSupplierEvaluation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 评价时间
|
* 评价时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date evaluationTime;
|
private Date evaluationTime;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
|
||||||
@ -42,11 +43,15 @@ public class XzdSupplierQualification extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 资质起始日期
|
* 资质起始日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date beginTime;
|
private Date beginTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 资质到期日期
|
* 资质到期日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date endTime;
|
private Date endTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
|
||||||
@ -67,6 +68,8 @@ public class XzdSupplierSupplement extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 创建日期
|
* 创建日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date createDate;
|
private Date createDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -82,11 +85,17 @@ public class XzdSupplierSupplement extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 冻结开始时间
|
* 冻结开始时间
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date freezeStartTime;
|
private Date freezeStartTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 冻结结束时间
|
* 冻结结束时间
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date freezeEndTime;
|
private Date freezeEndTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -112,6 +121,8 @@ public class XzdSupplierSupplement extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 合格有效期
|
* 合格有效期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date qualificationValidity;
|
private Date qualificationValidity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import java.time.LocalDate;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户信息-证照信息4业务对象 xzd_certificate_info
|
* 客户信息-证照信息4业务对象 xzd_certificate_info
|
||||||
@ -53,12 +54,16 @@ public class XzdCertificateInfoBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 生效日期
|
* 生效日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime effectiveDate;
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date effectiveDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 截止日期
|
* 截止日期
|
||||||
*/
|
*/
|
||||||
private LocalDateTime expirationDate;
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date expirationDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 停用标志(0:未停用,1:已停用)
|
* 停用标志(0:未停用,1:已停用)
|
||||||
|
|||||||
@ -1,18 +1,16 @@
|
|||||||
package org.dromara.xzd.domain.bo;
|
package org.dromara.xzd.domain.bo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
|
||||||
import org.dromara.xzd.domain.*;
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
|
||||||
import org.dromara.common.core.validate.EditGroup;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
import org.dromara.xzd.domain.vo.XzdContractAdvanceInfoVo;
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
import org.dromara.xzd.domain.vo.XzdContractClauseVo;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.dromara.xzd.domain.vo.XzdDeductionItemsVo;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
|
import org.dromara.xzd.domain.*;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -31,7 +29,7 @@ import java.util.List;
|
|||||||
public class XzdContractChangeBo extends BaseEntity {
|
public class XzdContractChangeBo extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* id
|
||||||
*/
|
*/
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ -54,7 +52,7 @@ public class XzdContractChangeBo extends BaseEntity {
|
|||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date documentDate;
|
private Date documentDate;
|
||||||
//
|
|
||||||
/**
|
/**
|
||||||
* 所属部门
|
* 所属部门
|
||||||
*/
|
*/
|
||||||
@ -65,10 +63,10 @@ public class XzdContractChangeBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long contractCodeId;
|
private Long contractCodeId;
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * 合同名称
|
* 合同名称
|
||||||
// */
|
*/
|
||||||
// private String contractName;
|
private String contractName;
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * 合同类型(字典)
|
// * 合同类型(字典)
|
||||||
@ -225,4 +223,9 @@ public class XzdContractChangeBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private List<XzdHtglHtbgqd> htbgqds;
|
private List<XzdHtglHtbgqd> htbgqds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同文本
|
||||||
|
*/
|
||||||
|
private String htwb;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user