Compare commits

..

148 Commits

Author SHA1 Message Date
cuizhibin aa204a2345 1.用户查询未过滤已删除数据 2025-08-14 21:19:03 +08:00
崔芝斌 1232ed4eac Merge pull request 'development' (#3) from development into master
Reviewed-on: http://pms.dtyx.net:3000/cuizhibin/znpt-backend/pulls/3
2025-08-14 20:04:44 +08:00
郝彬 e7df0aa244 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development
# Conflicts:
#	core/src/main/java/com/dite/znpt/service/impl/ProjectServiceImpl.java
2025-08-14 17:56:27 +08:00
郝彬 8224c2105d 8-14 新增支出类型数据库,修复项目立项时未分配主负责人时后端异常问题 2025-08-14 17:53:27 +08:00
Mr.j b95b4b78dc Merge remote-tracking branch 'origin/development' into development 2025-08-14 15:23:50 +08:00
Mr.j f57fe26166 完善收货状态随着流程变化,确保在采购审批后通过后才出现收货状态,添加支付状态和收获状态字段 2025-08-14 15:22:28 +08:00
ybb ead45b36f6 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-13 19:49:38 +08:00
ybb 2a72604dde 8月13(包括加班),修改了重命名bug.还对路径格式,对于不同系统做了适配,兼容性更好。 2025-08-13 19:48:38 +08:00
郝彬 1083efd2bd 8-13 项目详细信息展示所有子任务 2025-08-13 17:46:28 +08:00
Mr.j bcb9ce7014 Merge remote-tracking branch 'origin/development' into development 2025-08-13 16:47:01 +08:00
Mr.j 5ed374f06f 实现点击确认收货后直接入库 2025-08-13 16:46:42 +08:00
wangna0328 f8503e3382 Merge remote-tracking branch 'origin/development' into development 2025-08-13 14:40:24 +08:00
wangna0328 9585f6dd39 项目甘特图后端接口设计 2025-08-13 14:39:15 +08:00
Mr.j 2dec48a83f Merge branch 'master' into development 2025-08-13 14:33:46 +08:00
Mr.j 4a9eca9387 Merge remote-tracking branch 'origin/development' into development 2025-08-13 11:37:18 +08:00
郝彬 a939b45246 Merge remote-tracking branch 'origin/development' into development 2025-08-13 10:31:39 +08:00
郝彬 bd7cf2123e Merge branch 'master' into development
# Conflicts:
#	core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java
#	core/src/main/java/com/dite/znpt/domain/vo/ProjectTasksDetailResp.java
#	core/src/main/java/com/dite/znpt/service/impl/ProjectTaskServiceImpl.java
#	web/src/main/java/com/dite/znpt/web/controller/ProjectController.java
#	web/src/main/java/com/dite/znpt/web/controller/ProjectTaskController.java
2025-08-13 10:31:04 +08:00
Mr.j 36720e7a38 实现设备盘库的分页查询 2025-08-13 10:19:30 +08:00
郝彬 f500082ea6 8-13 项目立项时使合同同步关联该项目 2025-08-13 10:08:35 +08:00
Mr.j a66ac26002 Merge remote-tracking branch 'origin/development' into development 2025-08-13 09:29:09 +08:00
Mr.j e19d849045 修复设备管理相关功能分页查询表格无法顺利下拉和分页条不固定问题 2025-08-13 09:28:41 +08:00
何德超 f55724cac5 Merge remote-tracking branch 'origin/development' into development 2025-08-13 09:12:22 +08:00
郝彬 3ad1389539 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-12 17:58:43 +08:00
郝彬 86ce3a6a2f 8-12 查询所有未立项合同,新增项目时可直接选择对应合同 2025-08-12 17:57:54 +08:00
Mr.j 53aa75d37b 修复设备管理相关功能分页查询无法分页和正确获取总页数的问题 2025-08-12 17:49:17 +08:00
何德超 19e9bb7978 净空形变视频监测后端 2025-08-12 17:21:49 +08:00
何德超 2708a02588 净空形变视频监测后端 2025-08-12 17:20:09 +08:00
郝彬 71f39d8732 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-12 11:41:06 +08:00
ybb f7b877aef8 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-12 11:35:20 +08:00
ybb 28b763fb2d 8月12,实现了能够按名称的拼音排序,和更改时间排序等。 2025-08-12 11:34:45 +08:00
郝彬 181cbfec80 8-12 施工规模(风机数量)下放至任务中管理,可以计算任务进度,项目总进度 2025-08-12 11:33:58 +08:00
cuizhibin 2701f7fd46 合同-修复查询问题 2025-08-12 10:40:50 +08:00
cuizhibin 7ce85c6e80 合同-修复查询问题 2025-08-12 10:06:05 +08:00
cuizhibin 987c4eeb38 合同,项目id更改为项目名称 2025-08-12 09:22:06 +08:00
wangna0328 5871635e4c Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-11 18:04:55 +08:00
wangna0328 ba2f7ecbea 项目看板模块方法修改联调 2025-08-11 17:58:50 +08:00
Mr.j 2db53fd62e Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-11 17:12:58 +08:00
Mr.j 1277b40705 修复设备采购状态图无法顺利依据流程变化的问题 2025-08-11 17:12:09 +08:00
wangna0328 15086236ea 项目人员模块crud方法联调 2025-08-11 15:23:39 +08:00
郝彬 36958212f0 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-11 14:25:49 +08:00
郝彬 7496486a5e 8-11 项目立项时可初始化任务列表一次性增加多个属于该项目的任务(需设置任务名称、任务编号、计划开始/结束时间、任务组id、负责人id) 2025-08-11 14:23:52 +08:00
Mr.j de2439e65d 实现了消息中心显示最新申请消息,并可以查看消息然后点击跳转到具体的审批台 2025-08-11 11:19:38 +08:00
崔芝斌 8a968f1a49 Merge pull request '合并development代码到master' (#1) from development into master
Reviewed-on: http://pms.dtyx.net:3000/cuizhibin/znpt-backend/pulls/1
2025-08-11 09:25:53 +08:00
Mr.j c15dd69cd9 Merge remote-tracking branch 'origin/development' into development 2025-08-11 09:18:27 +08:00
Mr.j f63b96a178 修改配置文件数据库为znpt_dev 2025-08-11 09:16:12 +08:00
郝彬 70db15a6fd Merge remote-tracking branch 'origin/development' into development 2025-08-08 17:55:38 +08:00
Mr.j 4f7d53aba7 合并最新代码 2025-08-08 17:47:48 +08:00
Mr.j 74550c615b 实现申请采购推送信息到审批台出现语音提示和闪烁提示 2025-08-08 17:35:06 +08:00
郝彬 078f0699fa 8-8 查询项目下的设备和任务完成进度 2025-08-08 16:25:07 +08:00
Mr.j 01455720be 实现审批台接收到采购申请信息 2025-08-08 15:43:27 +08:00
ybb 231faee0d0 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development
# Conflicts:
#	core/pom.xml
#	core/src/main/java/com/dite/znpt/domain/entity/BusinessDataEntity.java
#	core/src/main/java/com/dite/znpt/domain/entity/BusinessDataFileEntity.java
#	core/src/main/java/com/dite/znpt/mapper/BusinessDataFileMapper.java
#	core/src/main/java/com/dite/znpt/mapper/BusinessDataMapper.java
#	core/src/main/java/com/dite/znpt/service/BusinessDataFileService.java
#	core/src/main/java/com/dite/znpt/service/BusinessDataService.java
#	core/src/main/java/com/dite/znpt/service/impl/BusinessDataFileServiceImpl.java
#	core/src/main/java/com/dite/znpt/service/impl/BusinessDataServiceImpl.java
#	web/src/main/java/com/dite/znpt/web/controller/BusinessDataFileController.java
2025-08-08 15:17:51 +08:00
ybb 3b3aa95437 8/7,ybb文件夹和文件都实现了记录Id功能。 2025-08-08 15:15:26 +08:00
郝彬 386c7273ce 8-8 查询项目下的设备和任务完成进度 2025-08-08 15:09:21 +08:00
wangna0328 389c8a58b0 Merge branch 'development' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend into development 2025-08-08 15:03:00 +08:00
wangna0328 d4b06d9c66 消除人员重复bug 2025-08-08 14:52:14 +08:00
Mr.j 91c54aaf5e Merge remote-tracking branch 'origin/jgq' into development 2025-08-08 10:49:39 +08:00
wangna0328 b45766d377 项目人员模块代码更新 2025-08-08 09:17:54 +08:00
wangna0328 386561125e 项目人员模块代码更新 2025-08-07 18:00:40 +08:00
wangna0328 32d43e5a3b 修复 ProjectMemberController 的合并冲突并完成修改 2025-08-07 17:56:30 +08:00
wangna0328 e1259d904a 接口类合并冲突解决 2025-08-07 17:54:45 +08:00
Mr.j 40c11dd974 实现审批台的基础查询功能 2025-08-07 16:47:42 +08:00
ybb e356368b62 8/7,ybb文件夹和文件都实现了记录Id功能。 2025-08-07 16:06:15 +08:00
郝彬 0d7ee41ebe Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend 2025-08-07 15:45:05 +08:00
cuizhibin 3ec94f8487 删除convertsImpl 2025-08-07 15:40:31 +08:00
cuizhibin e557a5df86 Merge branch 'merge'
# Conflicts:
#	core/src/main/java/com/dite/znpt/domain/dto/FolderDto.java
#	core/src/main/java/com/dite/znpt/domain/entity/BusinessDataEntity.java
#	core/src/main/java/com/dite/znpt/domain/entity/BusinessDataFileEntity.java
#	core/src/main/java/com/dite/znpt/domain/entity/EquipmentEntity.java
#	core/src/main/java/com/dite/znpt/domain/page/PageBean.java
#	core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoDetailResp.java
#	core/src/main/java/com/dite/znpt/enums/HealthStatusEnum.java
#	core/src/main/java/com/dite/znpt/enums/LocationStatusEnum.java
#	core/src/main/java/com/dite/znpt/mapper/BusinessDataFileMapper.java
#	core/src/main/java/com/dite/znpt/mapper/BusinessDataMapper.java
#	core/src/main/java/com/dite/znpt/service/BusinessDataFileService.java
#	core/src/main/java/com/dite/znpt/service/BusinessDataService.java
#	core/src/main/java/com/dite/znpt/service/EmailService.java
#	core/src/main/java/com/dite/znpt/service/ProjectBudgetInfoService.java
#	core/src/main/java/com/dite/znpt/service/impl/BusinessDataFileServiceImpl.java
#	core/src/main/java/com/dite/znpt/service/impl/BusinessDataServiceImpl.java
#	core/src/main/java/com/dite/znpt/service/impl/EmailServiceImpl.java
#	core/src/main/java/com/dite/znpt/service/impl/EquipmentServiceImpl.java
#	core/src/main/java/com/dite/znpt/service/impl/InMemoryVerificationCodeStore.java
#	core/src/main/java/com/dite/znpt/service/impl/ProjectBudgetInfoServiceImpl.java
#	core/src/main/resources/mapper/BusinessDataFileMapper.xml
#	core/src/main/resources/mapper/BusinessDataMapper.xml
#	web/src/main/java/com/dite/znpt/web/controller/BusinessDataController.java
#	web/src/main/java/com/dite/znpt/web/controller/BusinessDataFileController.java
#	web/src/main/java/com/dite/znpt/web/controller/EmailController.java
#	web/src/main/java/com/dite/znpt/web/controller/EquipmentController.java
#	web/src/main/java/com/dite/znpt/web/controller/PostController.java
#	web/src/main/java/com/dite/znpt/web/controller/ProjectBudgetInfoController.java
2025-08-07 15:38:22 +08:00
cuizhibin a996310f25 代码合并问题处理 2025-08-07 15:33:32 +08:00
cuizhibin a5d5c0006d 回滚sip文件 2025-08-07 15:02:35 +08:00
Mr.j c6d44f1787 忽略提交pom.xml,yaml文件,完成设备采购模块的新增和编辑功能 2025-08-07 14:35:43 +08:00
ybb 50659ef1a7 8/7,ybb文件夹和文件都实现了记录Id功能。 2025-08-07 11:26:02 +08:00
ybb 2a4ac18052 8/7,ybb文件夹和文件都实现了记录Id功能。 2025-08-07 09:50:34 +08:00
郝彬 11ee7f3ddd Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend 2025-08-07 09:15:04 +08:00
郝彬 bfcc5e7f2f 8-7 删除与target文件中同样的ConvertsImpl类,避免拉取无法同步 2025-08-07 09:14:16 +08:00
wangna0328 de02aa3891 Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend 2025-08-06 17:53:29 +08:00
wangna0328 854d311307 修复制度不显示问题 2025-08-06 17:51:42 +08:00
郝彬 a589422315 退回崔工的application-dev 2025-08-06 17:14:15 +08:00
郝彬 0f67c55892 Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend
# Conflicts:
#	pom.xml
2025-08-06 17:03:14 +08:00
Mr.j e7d892f8a2 Merge remote-tracking branch 'origin/master' 2025-08-06 16:52:03 +08:00
郝彬 14ee89c4af Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend
# Conflicts:
#	core/src/main/java/com/dite/znpt/domain/entity/ProjectBudgetInfoEntity.java
#	core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoReq.java
#	core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoResp.java
#	core/src/main/java/com/dite/znpt/service/impl/ProjectBudgetInfoServiceImpl.java
#	core/src/main/resources/mapper/ProjectBudgetInfoMapper.xml
#	web/src/main/java/com/dite/znpt/web/controller/PostController.java
2025-08-06 16:50:51 +08:00
郝彬 d8c76f97af 8-6 先commit再pull 2025-08-06 16:48:33 +08:00
wangna0328 7665cdd2e0 项目人员调度模块前端卡片接口联调 2025-08-06 16:27:15 +08:00
wangna0328 39ec9a99bd Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend 2025-08-06 16:25:08 +08:00
Mr.j 275cb94c02 完善jgq分支内容到master分支 2025-08-06 16:23:57 +08:00
Mr.j 64d40d0f84 Merge remote-tracking branch 'origin/jgq' 2025-08-06 16:08:40 +08:00
郝彬 67d943af61 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	core/src/main/java/com/dite/znpt/domain/vo/ProjectBudgetInfoImportReq.java
#	core/src/main/java/com/dite/znpt/service/impl/UserServiceImpl.java
#	core/src/main/resources/mapper/ProjectMapper.xml
#	core/src/main/resources/mapper/UserMapper.xml
#	pom.xml
#	web/src/main/java/com/dite/znpt/web/controller/VideoController.java
2025-08-06 16:00:53 +08:00
高雄 7034fecc0b Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend 2025-08-06 15:15:56 +08:00
高雄 adc074804e 岗位中增加部门信息,岗位列表查询条件支持按部门(及子部门)查询 2025-08-06 15:14:59 +08:00
cuizhibin ac23b19b0a 合同新增字段 2025-08-06 15:03:03 +08:00
wangna0328 8bdbbdccd5 项目人员调度模块前端卡片接口联调 2025-08-06 14:43:11 +08:00
郝彬 dbbd3922f9 8-6 取消预算单同步删除数据库的使用记录,并撤回预算消费,创建项目时自动计算总预算 2025-08-06 14:30:30 +08:00
高雄 24d275045a Merge branch 'master' of http://pms.dtyx.net:3000/cuizhibin/znpt-backend 2025-08-06 14:28:33 +08:00
cuizhibin 4befd2d588 图片列表增加上传时间 2025-08-06 13:43:19 +08:00
cuizhibin 5aa29cc3dd 图片列表增加上传时间 2025-08-06 13:41:22 +08:00
郝彬 0548238a18 8-6 新增预算单同步修改数据库的使用记录 2025-08-06 10:02:38 +08:00
郝彬 1c136ed302 Merge remote-tracking branch 'origin/master' 2025-08-06 09:45:43 +08:00
郝彬 8c7a441662 8-6 根据项目id查询其相关预算汇总 2025-08-06 09:44:22 +08:00
wangna0328 f2d2800f79 修改部署后出现的报错 2025-08-06 09:38:41 +08:00
wangna0328 bce91a4951 修改后出现错误,版本回退 2025-08-06 09:21:21 +08:00
ybb b94f7d3f44 Merge branch 'master' of https://gitee.com/xswl_123/dite-shixi-bakcend 2025-08-06 08:48:55 +08:00
ybb d7066714e5 8/6,ybb文件模糊查询功能 2025-08-06 08:48:15 +08:00
cuizhibin 28ebad9966 文件列表排序 2025-08-05 21:42:16 +08:00
cuizhibin 9b963d43f5 被删除文件恢复 2025-08-05 21:38:54 +08:00
wangna0328 4c85f9197c 报错修改完成 2025-08-05 21:02:41 +08:00
wangna0328 1544e3e829 消除分支冲突 2025-08-05 20:44:22 +08:00
wangna0328 ade816ab3f 代码修改部分重新提交 2025-08-05 20:31:52 +08:00
cuizhibin 8c3da0878e 合并问题 2025-08-05 20:27:44 +08:00
cuizhibin ffbf766cee 1.手动批量上传文件夹图像到项目(单张) 2025-08-05 20:24:55 +08:00
cuizhibin b818eec318 1.批量上传图像校验部件id是否存在 2025-08-05 20:24:55 +08:00
gaoxiong 0a446e5f66 招投标 2025-08-05 20:24:45 +08:00
Mr.j 8a1c5b04c5 优化设备请求类字段 2025-08-05 16:55:03 +08:00
Mr.j 5e21feb414 手动解决合并冲突 2025-08-05 16:44:00 +08:00
Mr.j 524faa18a5 完成设备采购需要的数据库跟新和完成分页查询功能 2025-08-05 16:24:31 +08:00
郝彬 a49d01d23a Merge branch 'master' of https://gitee.com/xswl_123/dite-shixi-bakcend 2025-08-05 10:15:11 +08:00
郝彬 351c8e0d8e 8-5 岗位字段新增 2025-08-05 10:14:30 +08:00
ybb 50c343402b 7-31 岗位查用户 2025-08-05 09:27:10 +08:00
Mr.j facf7a8f51 Revert "实现设备中心模块编辑,删除,查看详情,查看"
This reverts commit 3ebacd55c1.
2025-08-04 22:47:56 +08:00
Mr.j d388bbe4a4 Merge remote-tracking branch 'origin/jgq' into jgq 2025-08-04 22:30:04 +08:00
Mr.j 3ebacd55c1 实现设备中心模块编辑,删除,查看详情,查看 2025-08-04 22:29:32 +08:00
cuizhibin 47fb031221 1.手动批量上传文件夹图像到项目增加信息 2025-08-04 20:24:56 +08:00
高雄 345b931de9 招标信息模板下载和招标信息导入 2025-08-04 20:24:56 +08:00
高雄 4cd953ff08 招投标 2025-08-04 20:24:56 +08:00
高雄 8db8dec22b 招投标 2025-08-04 20:24:49 +08:00
gaoxiong 6c698b5256 招投标 2025-08-04 20:24:32 +08:00
高雄 3717cbc4ce 招投标 2025-08-04 20:24:01 +08:00
admin123 64d469210a revert 3d7263248c
revert 1.增加项目日报功能
2025-08-04 20:07:07 +08:00
admin123 8e2e73f257 revert 258806b499
revert 制度模块按需求修改完成,且通过测试
2025-08-04 19:42:15 +08:00
Mr.j d3e0851413 Revert "制度模块按需求修改完成,且通过测试"
This reverts commit 258806b499.
2025-08-04 19:35:00 +08:00
Mr.j 075d1daf02 Revert "Merge branch 'jgq' into master"
This reverts commit d4883a7fb2, reversing
changes made to 258806b499.
2025-08-04 17:46:42 +08:00
ybb 141c95f63e Merge branch 'master' of https://gitee.com/xswl_123/dite-shixi-bakcend
# Conflicts:
#	core/src/main/java/com/dite/znpt/mapper/BusinessDataMapper.java
#	core/src/main/java/com/dite/znpt/service/BusinessDataService.java
#	core/src/main/java/com/dite/znpt/service/impl/BusinessDataServiceImpl.java
#	core/src/main/resources/mapper/BusinessDataMapper.xml
#	web/src/main/java/com/dite/znpt/web/controller/BusinessDataController.java
2025-08-04 16:11:06 +08:00
ybb 944681f334 7-31 岗位查用户 2025-08-04 16:10:14 +08:00
郝彬 14428ca9ae 8-4 项目与合同关联、项目预算 2025-08-04 16:02:39 +08:00
郝彬 b188cbd181 8-4 商务资料管理系统(ybb) 2025-08-04 15:48:14 +08:00
Mr.j d4883a7fb2 Merge branch 'jgq' into master 2025-08-04 14:28:59 +08:00
高雄 0d10667ef3 招标信息模板下载和招标信息导入 2025-08-01 18:27:05 +08:00
郝彬 f84e1b5aa8 7-31 岗位查用户 2025-08-01 16:06:50 +08:00
Mr.j 02f5447be3 实现设备中心模块编辑,删除,查看详情,查看 2025-08-01 15:14:05 +08:00
Mr.j 8fe29807a8 实现设备中心模块手动新增设备 2025-08-01 11:21:59 +08:00
Mr.j 023455be47 实现设备中心模块数据库设计以及设备分页查询功能 2025-08-01 09:42:08 +08:00
郝彬 9723dc0390 7-31 删除角色或岗位或角色时,同时删除对应关联表,优化后续查询效率及外键不存在问题 2025-07-31 10:41:01 +08:00
郝彬 35fdcf14f6 7-29 修改用户查询的Mapper层查询SQL语句,去除岗位和角色的重复显示 2025-07-30 11:15:41 +08:00
郝彬 7dbadc7378 7-29 修改岗位新增时传入的状态逻辑,与数据库保持一致 2025-07-30 09:48:38 +08:00
Mr.j 4b46233805 实现培训计划查询 2025-07-30 09:43:29 +08:00
郝彬 849754b6c6 7-29 新增ConvertsImpl类,岗位信息返回创建时间及更新时间 2025-07-29 17:22:03 +08:00
高雄 7897ec9de3 招投标 2025-07-29 15:46:34 +08:00
高雄 096151403a 招投标 2025-07-29 15:41:04 +08:00
郝彬 6e4c96b404 7-29-根据角色查询用户,过滤器条件修改 2025-07-29 09:47:38 +08:00
郝彬 4ac2b4314c 7-29-根据角色查询用户 2025-07-29 09:09:57 +08:00
gaoxiong b0f8e7264a 招投标 2025-07-28 23:35:44 +08:00
高雄 be16222032 招投标 2025-07-28 18:19:42 +08:00
327 changed files with 20133 additions and 895 deletions

6
.gitignore vendored
View File

@ -36,3 +36,9 @@ build/
.vscode/ .vscode/
target/ target/
logs/ logs/
### Maven ###
pom.xml
### YAML ###
*.yaml

View File

@ -10,6 +10,10 @@
<artifactId>core</artifactId> <artifactId>core</artifactId>
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@ -161,6 +165,44 @@
<artifactId>opencv</artifactId> <artifactId>opencv</artifactId>
<version>4.7.0-0</version> <version>4.7.0-0</version>
</dependency> </dependency>
<!-- JavaMail邮件依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 阿里云短信核心库 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.6.3</version> <!-- 建议使用最新版本 -->
</dependency>
<!-- 阿里云短信服务 SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version> <!-- 建议使用最新版本 -->
</dependency>
<!-- Java 11+ 需要额外添加的依赖 -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<!-- WebSocket 支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -0,0 +1,24 @@
package com.dite.znpt.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
/**
* @author hedechao
* @date 2025/8/11 11:02
* @Description: 形变配置线程
*/
@Configuration
public class TaskConfig {
@Bean("clearanceExecutor") // 方法返回的对象会被注册成 Bean名字叫 clearanceExecutor
public ThreadPoolTaskExecutor clearanceExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2); // 核心线程数
executor.setMaxPoolSize(4); // 最大线程数
executor.setQueueCapacity(100); // 队列容量
executor.setThreadNamePrefix("clearance-"); // 线程名前缀
executor.initialize(); // 初始化
return executor;
}
}

View File

@ -0,0 +1,27 @@
package com.dite.znpt.config;
import com.dite.znpt.websocket.SimpleWebSocketHandler;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
/**
* WebSocket配置
*/
@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer {
private final SimpleWebSocketHandler simpleWebSocketHandler;
public WebSocketConfig(SimpleWebSocketHandler simpleWebSocketHandler) {
this.simpleWebSocketHandler = simpleWebSocketHandler;
}
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(simpleWebSocketHandler, "/websocket")
.setAllowedOrigins("*"); // 在生产环境中应该限制允许的源
}
}

View File

@ -80,4 +80,9 @@ public class Message implements Serializable {
public static final String EQUIPMENT_IS_USED = "设备已被使用"; public static final String EQUIPMENT_IS_USED = "设备已被使用";
public static final String EQUIPMENT_IS_RETURN = "设备已归还"; public static final String EQUIPMENT_IS_RETURN = "设备已归还";
public static final String DAILY_REPORT_EXISTS = "当日已提交日报"; public static final String DAILY_REPORT_EXISTS = "当日已提交日报";
public static final String BIDDING_INFO_ID_IS_NOT_EXIST = "招标信息id不存在";
public static final String TENDER_INFO_ID_IS_NOT_EXIST = "投标信息id不存在";
public static final String TENDER_INFO_IS_EXIST = "招标[{}]已存中投信息存在";
public static final String OUTBID_INFO_ID_IS_NOT_EXIST = "中标信息id不存在";
public static final String OUTBID_INFO_IS_EXIST = "招标[{}]已存中标信息存在";
} }

View File

@ -59,6 +59,8 @@ public interface Converts {
List<RoleResp> toRoleResp(List<RoleEntity> list); List<RoleResp> toRoleResp(List<RoleEntity> list);
List<UserResp> toUserResp(List<UserEntity> list);
RoleEntity toRoleEntity(RoleReq req); RoleEntity toRoleEntity(RoleReq req);
MenuEntity toMenuEntity(MenuReq req); MenuEntity toMenuEntity(MenuReq req);
@ -124,5 +126,9 @@ public interface Converts {
EquipmentEntity toEquipmentUseRecordEntity(EquipmentReq req); EquipmentEntity toEquipmentUseRecordEntity(EquipmentReq req);
EquipmentUseRecordEntity toEquipmentUseRecordEntity(EquipmentUseRecordReq req); EquipmentUseRecordEntity toEquipmentUseRecordEntity(EquipmentUseRecordReq req);
BiddingInfoEntity toBiddingInfoReq (BiddingInfoReq req);
List<BiddingInfoEntity> toBiddingInfoReq (List<BiddingInfoReq> req);
TenderInfoEntity toTenderInfoEntity (TenderInfoReq req);
OutbidInfoEntity toOutbidInfoEntity (OutbidInfoReq req);
} }

View File

@ -0,0 +1,15 @@
package com.dite.znpt.domain.dto;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("接受文件夹参数")
public class FolderDto {
private String name = "tom";
private Long parentId = 0L;
}

View File

@ -43,6 +43,10 @@ public class AttachInfoEntity extends AuditableEntity implements Serializable {
@TableField("business_type") @TableField("business_type")
private String businessType; private String businessType;
@ApiModelProperty("文件名")
@TableField("file_name")
private String fileName;
@ApiModelProperty("文件类型") @ApiModelProperty("文件类型")
@TableField("file_type") @TableField("file_type")
private String fileType; private String fileType;

View File

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

View File

@ -0,0 +1,38 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_data_part")
@ApiModel(value="商务资料文件夹对象")
@AllArgsConstructor
@NoArgsConstructor
public class BusinessDataEntity {
// 主键
private Long folderId = null;
// 文件夹名称
private String folderName = null;
// 父级文件夹
private Long parentId = null;
// 创建人
private String creatorId = null;
// 创建时间
private LocalDateTime createTime = null;
// 更新时间
private LocalDateTime updateTime = null;
// 是否删除
private Boolean isDeleted = false;
// 文件夹路径
private String folderPath = null;
}

View File

@ -0,0 +1,39 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("business_data_part_file")
@ApiModel(value="商务资料对象")
public class BusinessDataFileEntity {
//文件id
private Long fileId = null;
//文件夹id
private Long folderId = null;
//文件名
private String fileName = null;
//文件路径
private String filePath = null;
//文件类型
private String fileType = "unknown";
//文件大小
private Long fileSize = null;
//上传时间
private Date uploadTime = null;
//上传人id
private String uploaderId = null;
//是否删除
private Boolean isDeleted = false;
// //有效日期
// private Date validDate = null;
}

View File

@ -1,17 +1,20 @@
package com.dite.znpt.domain.entity; package com.dite.znpt.domain.entity;
import java.math.BigDecimal; import com.alibaba.excel.annotation.ExcelProperty;
import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType;
import java.io.Serial; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity; import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/** /**
* @author huise23 * @author huise23
@ -42,10 +45,10 @@ public class ContractEntity extends AuditableEntity implements Serializable {
@TableField("code") @TableField("code")
private String code; private String code;
@ExcelProperty("项目id") @ExcelProperty("项目名称")
@ApiModelProperty("项目id") @ApiModelProperty("项目名称")
@TableField("project_id") @TableField("project_name")
private String projectId; private String projectName;
@ExcelProperty("业务员id") @ExcelProperty("业务员id")
@ApiModelProperty("业务员id") @ApiModelProperty("业务员id")
@ -82,6 +85,11 @@ public class ContractEntity extends AuditableEntity implements Serializable {
@TableField("payment_date") @TableField("payment_date")
private Date paymentDate; private Date paymentDate;
@ExcelProperty("履约时间期限")
@ApiModelProperty("履约时间期限")
@TableField("performance_deadline")
private Date performanceDeadline;
@ExcelProperty("付款地址/交付地址") @ExcelProperty("付款地址/交付地址")
@ApiModelProperty("付款地址/交付地址") @ApiModelProperty("付款地址/交付地址")
@TableField("payment_address") @TableField("payment_address")
@ -106,5 +114,10 @@ public class ContractEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("合同状态") @ApiModelProperty("合同状态")
@TableField("contract_status") @TableField("contract_status")
private String contractStatus; private String contractStatus;
@ExcelProperty("合同内容")
@ApiModelProperty("合同内容")
@TableField("contract_text")
private String contractText;
} }

View File

@ -0,0 +1,91 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/1/8/周三 17:26
* @description 设备审批实体
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("equipment_approval")
@ApiModel(value="EquipmentApprovalEntity对象", description="设备审批信息表")
public class EquipmentApprovalEntity extends AuditableEntity implements Serializable {
private static final long serialVersionUID = -6665040704562461286L;
@ApiModelProperty("审批ID")
@TableId(type = IdType.ASSIGN_ID)
private String approvalId;
@ApiModelProperty("设备ID")
private String equipmentId;
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("设备类型")
private String equipmentType;
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("采购价格")
private BigDecimal purchasePrice;
@ApiModelProperty("总价")
private BigDecimal totalPrice;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("申请人")
private String applicantName;
@ApiModelProperty("申请人ID")
private String applicantId;
@ApiModelProperty("申请时间")
private LocalDateTime applyTime;
@ApiModelProperty("申请原因")
private String applyReason;
@ApiModelProperty("业务类型PROCUREMENT-采购BORROW-借用RETURN-归还")
private String businessType;
@ApiModelProperty("审批状态PENDING-待审批APPROVED-已通过REJECTED-已拒绝")
private String approvalStatus;
@ApiModelProperty("审批人")
private String approverName;
@ApiModelProperty("审批人ID")
private String approverId;
@ApiModelProperty("审批时间")
private LocalDateTime approvalTime;
@ApiModelProperty("审批意见")
private String approvalComment;
@ApiModelProperty("删除标志0代表存在 1代表删除")
@TableLogic
private String delFlag;
}

View File

@ -7,8 +7,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* @author Bear.G * @author Bear.G
@ -20,13 +21,15 @@ import java.io.Serializable;
@TableName("equipment") @TableName("equipment")
@ApiModel(value="EquipmentEntity对象", description="设备信息表") @ApiModel(value="EquipmentEntity对象", description="设备信息表")
public class EquipmentEntity extends AuditableEntity implements Serializable { public class EquipmentEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = -6665040704562461286L; private static final long serialVersionUID = -6665040704562461286L;
@ApiModelProperty("设备id") @ApiModelProperty("设备id")
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
private String equipmentId; private String equipmentId;
@ApiModelProperty("资产编号")
private String assetCode;
@ApiModelProperty("设备名称") @ApiModelProperty("设备名称")
private String equipmentName; private String equipmentName;
@ -45,6 +48,174 @@ public class EquipmentEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("设备序列号") @ApiModelProperty("设备序列号")
private String equipmentSn; private String equipmentSn;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("配置规格/参数")
private String specification;
@ApiModelProperty("位置状态")
private String locationStatus;
@ApiModelProperty("设备当前物理位置")
private String physicalLocation;
@ApiModelProperty("负责人")
private String responsiblePerson;
@ApiModelProperty("健康状态")
private String healthStatus;
@ApiModelProperty("采购时间")
private LocalDateTime purchaseTime;
@ApiModelProperty("入库时间")
private LocalDateTime inStockTime;
@ApiModelProperty("启用时间")
private LocalDateTime activationTime;
@ApiModelProperty("预计报废时间")
private LocalDateTime expectedScrapTime;
@ApiModelProperty("实际报废时间")
private LocalDateTime actualScrapTime;
@ApiModelProperty("状态变更时间")
private LocalDateTime statusChangeTime;
@ApiModelProperty("采购订单")
private String purchaseOrder;
@ApiModelProperty("供应商名称")
private String supplierName;
// 移除采购价格字段使用单价和总价替代
// @ApiModelProperty("采购价格")
// private BigDecimal purchasePrice;
@ApiModelProperty("当前净值")
private BigDecimal currentNetValue;
@ApiModelProperty("折旧方法")
private String depreciationMethod;
@ApiModelProperty("折旧年限")
private Integer depreciationYears;
@ApiModelProperty("残值")
private BigDecimal salvageValue;
@ApiModelProperty("保修截止日期")
private LocalDateTime warrantyExpireDate;
@ApiModelProperty("上次维护日期")
private LocalDateTime lastMaintenanceDate;
@ApiModelProperty("下次维护日期")
private LocalDateTime nextMaintenanceDate;
@ApiModelProperty("维护人员")
private String maintenancePerson;
@ApiModelProperty("库存条码")
private String inventoryBarcode;
@ApiModelProperty("资产备注")
private String assetRemark;
@ApiModelProperty("次户号")
private String accountNumber;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("单价")
private BigDecimal unitPrice;
@ApiModelProperty("总价")
private BigDecimal totalPrice;
// 移除备用状态字段使用现有的 location_status 字段
// @ApiModelProperty("备用状态")
// private String spareStatus;
@ApiModelProperty("盘点依据")
private String inventoryBasis;
@ApiModelProperty("动态记录")
private String dynamicRecord;
// 移除认证状态字段使用现有的 health_status 字段
// @ApiModelProperty("认证状态")
// private String certificationStatus;
@ApiModelProperty("使用部门/人")
private String usingDepartment;
@ApiModelProperty("领用时间")
private LocalDateTime borrowingTime;
@ApiModelProperty("归还时间")
private LocalDateTime returnTime;
@ApiModelProperty("出库时间")
private LocalDateTime outStockTime;
@ApiModelProperty("总使用时间")
private String totalUsageTime;
@ApiModelProperty("折旧率")
private BigDecimal depreciationRate;
@ApiModelProperty("折旧方法说明")
private String depreciationMethodDesc;
@ApiModelProperty("发票")
private String invoice;
@ApiModelProperty("发票状态")
private String invoiceStatus;
@ApiModelProperty("采购状态NOT_STARTED-未开始PENDING_APPROVAL-待审批APPROVED-已通过REJECTED-已拒绝COMPLETED-已完成")
private String procurementStatus;
@ApiModelProperty("收货状态NOT_RECEIVED-未收货PARTIALLY_RECEIVED-部分收货RECEIVED-已收货")
private String receiptStatus;
@ApiModelProperty("支付状态NOT_PAID-未支付PARTIALLY_PAID-部分支付PAID-已支付")
private String paymentStatus;
@ApiModelProperty("附件")
private String attachments;
@ApiModelProperty("照片")
private String photos;
@ApiModelProperty("条码")
private String barcode;
@ApiModelProperty("导入人")
private String importer;
@ApiModelProperty("盘库时间/状态1")
private String inventoryTimeStatus1;
@ApiModelProperty("盘库时间/状态2")
private String inventoryTimeStatus2;
@ApiModelProperty("盘库时间/状态3")
private String inventoryTimeStatus3;
@ApiModelProperty("盘点时间/状态1")
private String inventoryCheckTimeStatus1;
@ApiModelProperty("盘点时间/状态2")
private String inventoryCheckTimeStatus2;
@ApiModelProperty("盘点时间/状态3")
private String inventoryCheckTimeStatus3;
@ApiModelProperty("当前使用记录id") @ApiModelProperty("当前使用记录id")
@TableField(updateStrategy = FieldStrategy.ALWAYS) @TableField(updateStrategy = FieldStrategy.ALWAYS)
private String useRecordId; private String useRecordId;
@ -52,4 +223,7 @@ public class EquipmentEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("删除标志0代表存在 1代表删除") @ApiModelProperty("删除标志0代表存在 1代表删除")
@TableLogic(value = "0", delval = "1") @TableLogic(value = "0", delval = "1")
private String delFlag; private String delFlag;
@ApiModelProperty("项目id")
private String projectId;
} }

View File

@ -0,0 +1,27 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("expense_type")
@ApiModel(value="ExpenseTypeEntity对象", description="支出类型表")
public class ExpenseTypeEntity {
@TableId(type = IdType.AUTO)
private Integer Id;
@ApiModelProperty("支出类型名称")
private String name;
@ApiModelProperty("父级id")
private Integer parentId;
}

View File

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

View File

@ -1,6 +1,5 @@
package com.dite.znpt.domain.entity; package com.dite.znpt.domain.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
@ -13,6 +12,7 @@ import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* @author Bear.G * @author Bear.G
@ -31,6 +31,10 @@ public class PostEntity extends AuditableEntity implements Serializable {
@TableId(value = "post_id", type = IdType.ASSIGN_UUID) @TableId(value = "post_id", type = IdType.ASSIGN_UUID)
private String postId; private String postId;
@ApiModelProperty("部门id")
@TableField("dept_id")
private String deptId;
@ApiModelProperty("岗位名称") @ApiModelProperty("岗位名称")
@TableField("post_name") @TableField("post_name")
private String postName; private String postName;
@ -46,4 +50,32 @@ public class PostEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("备注") @ApiModelProperty("备注")
@TableField("remark") @TableField("remark")
private String remark; private String remark;
@ApiModelProperty("创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@ApiModelProperty("更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
@ApiModelProperty("岗位说明")
@TableField("statement")
private String statement;
@ApiModelProperty("岗位任务")
@TableField("responsibilities_task")
private String responsibilitiesTask;
@ApiModelProperty("岗位任职资格")
@TableField("qualifications")
private String qualifications;
@ApiModelProperty("岗位工作条件")
@TableField("working_conditions")
private String workingConditions;
@ApiModelProperty("岗位薪资")
@TableField("salary")
private Double salary;
} }

View File

@ -30,7 +30,7 @@ public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializ
@ExcelProperty("主键") @ExcelProperty("主键")
@ApiModelProperty("主键") @ApiModelProperty("主键")
@TableId(value = "budget_id", type = IdType.ASSIGN_ID) @TableId(value = "budget_id", type = IdType.AUTO)
private String budgetId; private String budgetId;
@ExcelProperty("项目id") @ExcelProperty("项目id")
@ -43,13 +43,8 @@ public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializ
@TableField("budget_name") @TableField("budget_name")
private String budgetName; private String budgetName;
@ExcelProperty("预算类型") @ExcelProperty("预算花费金额")
@ApiModelProperty("预算类型") @ApiModelProperty("预算花费金额")
@TableField("budget_type")
private String budgetType;
@ExcelProperty("预算金额(万元)")
@ApiModelProperty("预算金额(万元)")
@TableField("budget_amount") @TableField("budget_amount")
private Double budgetAmount; private Double budgetAmount;
@ -57,5 +52,10 @@ public class ProjectBudgetInfoEntity extends AuditableEntity implements Serializ
@ApiModelProperty("预算说明") @ApiModelProperty("预算说明")
@TableField("budget_desc") @TableField("budget_desc")
private String budgetDesc; private String budgetDesc;
@ExcelProperty("附件")
@ApiModelProperty("附件")
@TableField("attach")
private String attach;
} }

View File

@ -33,6 +33,16 @@ public class ProjectEntity extends AuditableEntity implements Serializable {
@TableId(value = "project_id", type = IdType.ASSIGN_UUID) @TableId(value = "project_id", type = IdType.ASSIGN_UUID)
private String projectId; private String projectId;
@ExcelProperty("项目来源")
@ApiModelProperty("项目来源")
@TableField("project_origin")
private String projectOrigin;
@ExcelProperty("项目预算")
@ApiModelProperty("项目预算")
@TableField("project_budget")
private Integer projectBudget;
@ExcelProperty("项目名称") @ExcelProperty("项目名称")
@ApiModelProperty("项目名称") @ApiModelProperty("项目名称")
@TableField("project_name") @TableField("project_name")
@ -79,7 +89,7 @@ public class ProjectEntity extends AuditableEntity implements Serializable {
@ExcelProperty("项目规模") @ExcelProperty("项目规模")
@ApiModelProperty("项目规模") @ApiModelProperty("项目规模")
@TableField("scale") @TableField("scale")
private String scale; private Integer scale;
@ExcelProperty("总工期,单位天") @ExcelProperty("总工期,单位天")
@ApiModelProperty("总工期,单位天") @ApiModelProperty("总工期,单位天")
@ -91,24 +101,31 @@ public class ProjectEntity extends AuditableEntity implements Serializable {
@TableField("turbine_model") @TableField("turbine_model")
private String turbineModel; private String turbineModel;
@ApiModelProperty("施工人员id") // 人员管理已迁移到 project_member
// 以下字段保留用于向后兼容但建议使用 ProjectMemberService 进行人员管理
@ApiModelProperty("施工人员id已废弃请使用ProjectMemberService")
@TableField("constructor_ids") @TableField("constructor_ids")
@Deprecated
private String constructorIds; private String constructorIds;
@ApiModelProperty("安全员id") @ApiModelProperty("安全员id已废弃请使用ProjectMemberService")
@TableField("auditor_id") @TableField("auditor_id")
@Deprecated
private String auditorId; private String auditorId;
@ApiModelProperty("质量员id") @ApiModelProperty("质量员id已废弃请使用ProjectMemberService")
@TableField("quality_officer_id") @TableField("quality_officer_id")
@Deprecated
private String qualityOfficerId; private String qualityOfficerId;
@ApiModelProperty("项目经理id") @ApiModelProperty("项目经理id已废弃请使用ProjectMemberService")
@TableField("project_manager_id") @TableField("project_manager_id")
@Deprecated
private String projectManagerId; private String projectManagerId;
@ApiModelProperty("施工组长id") @ApiModelProperty("施工组长id已废弃请使用ProjectMemberService")
@TableField("construct_team_leader_id") @TableField("construct_team_leader_id")
@Deprecated
private String constructTeamLeaderId; private String constructTeamLeaderId;
@ApiModelProperty("技术方案图片,多个用逗号隔开") @ApiModelProperty("技术方案图片,多个用逗号隔开")
@ -162,5 +179,35 @@ public class ProjectEntity extends AuditableEntity implements Serializable {
// 施工人员安全经理项目经理商务财务高级管理员项目远程顾问外部协作者质量经理现场经理及工作组长 // 施工人员安全经理项目经理商务财务高级管理员项目远程顾问外部协作者质量经理现场经理及工作组长
@ApiModelProperty(value = "结束时间") @ApiModelProperty(value = "结束时间")
private LocalDate endDate; private LocalDate endDate;
@ApiModelProperty("人工成本")
private Double laborCost;
@ApiModelProperty("设备摊销")
private Double equipmentAmortization;
@ApiModelProperty("奖金预提")
private Double bonusProvision;
@ApiModelProperty("交通食宿")
private Double transAccomMeals;
@ApiModelProperty("其他杂费")
private Double othersCost;
@ApiModelProperty("已用人工成本")
private Double useLaborCost;
@ApiModelProperty("已用设备摊销")
private Double useEquipmentAmortization;
@ApiModelProperty("已用奖金预提")
private Double useBonusProvision;
@ApiModelProperty("已用交通食宿")
private Double useTransAccomMeals;
@ApiModelProperty("已用其他杂费")
private Double useOthersCost;
} }

View File

@ -0,0 +1,99 @@
package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目人员关联表实体类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_member")
@ApiModel(value="ProjectMemberEntity对象", description="项目人员关联表")
public class ProjectMemberEntity extends AuditableEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@ApiModelProperty("关联ID")
@TableId(value = "member_id", type = IdType.ASSIGN_UUID)
private String memberId;
@ApiModelProperty("项目ID")
@TableField("project_id")
private String projectId;
@ApiModelProperty("机组ID可选关联到具体机组")
@TableField("turbine_id")
private String turbineId;
@ApiModelProperty("任务组ID可选关联到具体任务组")
@TableField("task_group_id")
private String taskGroupId;
@ApiModelProperty("任务ID可选关联到具体任务")
@TableField("task_id")
private String taskId;
@ApiModelProperty("用户ID")
@TableField("user_id")
private String userId;
@ApiModelProperty("项目角色类型PROJECT_MANAGER-项目经理SAFETY_OFFICER-安全员QUALITY_OFFICER-质量员CONSTRUCTOR-施工人员TEAM_LEADER-施工组长")
@TableField("role_type")
private String roleType;
@ApiModelProperty("具体岗位代码GROUND_SERVICE-地勤DRIVER-司机ASCENDING-登高等)")
@TableField("job_code")
private String jobCode;
@ApiModelProperty("岗位描述")
@TableField("job_desc")
private String jobDesc;
@ApiModelProperty("加入时间")
@TableField("join_date")
private LocalDate joinDate;
@ApiModelProperty("离开时间")
@TableField("leave_date")
private LocalDate leaveDate;
@ApiModelProperty("状态ACTIVE-在职INACTIVE-离职SUSPENDED-暂停")
@TableField("status")
private String status;
@ApiModelProperty("备注")
@TableField("remark")
private String remark;
// 非数据库字段用于显示
@TableField(exist = false)
@ApiModelProperty("用户姓名")
private String userName;
@TableField(exist = false)
@ApiModelProperty("用户账号")
private String userAccount;
@TableField(exist = false)
@ApiModelProperty("角色类型描述")
private String roleTypeDesc;
@TableField(exist = false)
@ApiModelProperty("岗位代码描述")
private String jobCodeDesc;
}

View File

@ -85,5 +85,13 @@ public class ProjectTaskEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
@TableField("project_id") @TableField("project_id")
private String projectId; private String projectId;
@ApiModelProperty("任务规模")
@TableField("scales")
private Integer scales;
@ApiModelProperty("已完成数")
@TableField("finished")
private Integer finished;
} }

View File

@ -1,12 +1,15 @@
package com.dite.znpt.domain.entity; package com.dite.znpt.domain.entity;
import com.baomidou.mybatisplus.annotation.*; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity; import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -39,9 +42,7 @@ public class RegulationEntity extends AuditableEntity implements Serializable {
@TableField("content") @TableField("content")
private String content; private String content;
@ExcelProperty("制度类型") @TableField(exist = false)
@ApiModelProperty("制度类型")
@TableField("regulation_type")
private String type; private String type;
@ExcelProperty("制度状态") @ExcelProperty("制度状态")
@ -97,7 +98,8 @@ public class RegulationEntity extends AuditableEntity implements Serializable {
@ApiModelProperty("创建人姓名") @ApiModelProperty("创建人姓名")
private String createByName; private String createByName;
@TableField(exist = false) @ExcelProperty("制度类型")
@ApiModelProperty("制度类型") @ApiModelProperty("制度类型")
@TableField("regulation_type")
private String regulationType; private String regulationType;
} }

View File

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

View File

@ -0,0 +1,170 @@
package com.dite.znpt.domain.entity;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 视频监测信息
*/
@ApiModel(description="视频监测信息")
@Schema(description="视频监测信息")
@Data
@TableName(value = "video_monitor")
public class VideoMonitorEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 视频id
*/
@TableId(value = "video_id", type = IdType.ASSIGN_UUID)
@ApiModelProperty(value="视频id")
@Schema(description="视频id")
private String videoId;
/**
* 项目id
*/
@TableField(value = "project_id")
@ApiModelProperty(value="项目id")
@Schema(description="项目id")
private String projectId;
/**
* 机组id
*/
@TableField(value = "turbine_id")
@ApiModelProperty(value="机组id")
@Schema(description="机组id")
private String turbineId;
/**
* 视频名称
*/
@TableField(value = "video_name")
@ApiModelProperty(value="视频名称")
@Schema(description="视频名称")
private String videoName;
/**
* 视频路径
*/
@TableField(value = "video_path")
@ApiModelProperty(value="视频路径")
@Schema(description="视频路径")
private String videoPath;
/**
* 0 正常 1 已删除
*/
@TableField(value = "is_deleted")
@ApiModelProperty(value="0 正常 1 已删除")
@Schema(description="0 正常 1 已删除")
private Boolean isDeleted;
/**
* 0 待审核 1 已上线 2 下线
*/
@TableField(value = "`status`")
@ApiModelProperty(value="0 待审核 1 已上线 2 下线")
@Schema(description="0 待审核 1 已上线 2 下线")
private Byte status;
/**
* 预处理后的视频路径
*/
@TableField(value = "pre_image_path")
@ApiModelProperty(value="预处理后的视频路径")
@Schema(description="预处理后的视频路径")
private String preImagePath;
/**
* 是否处理默认0
*/
@TableField(value = "pre_treatment")
@ApiModelProperty(value="是否处理默认0")
@Schema(description="是否处理默认0")
private Boolean preTreatment;
/**
* 修改人
*/
@TableField(value = "update_by")
@ApiModelProperty(value="修改人")
@Schema(description="修改人")
private String updateBy;
/**
* 创建时间
*/
@TableField(value = "create_time",fill = FieldFill.INSERT)
@ApiModelProperty(value="创建时间")
@Schema(description="创建时间")
private Date createTime;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value="创建人")
@Schema(description="创建人")
private String createBy;
/**
* 修改时间
*/
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value="修改时间")
@Schema(description="修改时间")
private Date updateTime;
/**
* 风速
*/
@TableField(value = "wind_speed")
@ApiModelProperty(value="风速")
@Schema(description="风速")
private String windSpeed;
/**
* 转速
*/
@TableField(value = "rpm")
@ApiModelProperty(value="转速")
@Schema(description="转速")
private String rpm;
/**
* 检测类型
*/
@TableField(value = "`type`")
@ApiModelProperty(value="检测类型")
@Schema(description="检测类型")
private String type;
/**
* 业务扩展字段
*/
@TableField(value = "extra",typeHandler = JacksonTypeHandler.class)
@ApiModelProperty(value="业务扩展字段")
@Schema(description="业务扩展字段")
private JSONObject extra;
/**
* 上传时间
*/
@TableField(value = "upload_time")
@ApiModelProperty(value="上传时间")
@Schema(description="上传时间")
private Date uploadTime;
}

View File

@ -0,0 +1,14 @@
package com.dite.znpt.domain.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.EquipmentApprovalEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* @author Bear.G
* @date 2025/1/8/周三 17:30
* @description 设备审批Mapper接口
*/
@Mapper
public interface EquipmentApprovalMapper extends BaseMapper<EquipmentApprovalEntity> {
}

View File

@ -0,0 +1,15 @@
package com.dite.znpt.domain.page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
private Long total;
private List<?> rows;
}

View File

@ -24,6 +24,9 @@ public class AttachInfoReq implements Serializable {
@ApiModelProperty("自定义路径") @ApiModelProperty("自定义路径")
private String userDefinedPath; private String userDefinedPath;
@ApiModelProperty("文件名称")
private String fileName;
@ApiModelProperty("文件类型") @ApiModelProperty("文件类型")
private String fileType; private String fileType;

View File

@ -32,6 +32,9 @@ public class AttachInfoResp implements Serializable {
@ApiModelProperty("附件路径") @ApiModelProperty("附件路径")
private String attachPath; private String attachPath;
@ApiModelProperty("文件名称")
private String fileName;
@ApiModelProperty("文件类型") @ApiModelProperty("文件类型")
private String fileType; private String fileType;

View File

@ -0,0 +1,69 @@
package com.dite.znpt.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:18
* @description
*/
@Data
@ApiModel("招标信息请求实体")
public class BiddingInfoReq implements Serializable {
@Serial
private static final long serialVersionUID = 6967025339487392364L;
@ColumnWidth(40)
@ExcelProperty(index = 0, value = "招标项目")
@ApiModelProperty("招标项目")
@Size(max = 50, message = "招标项目不能超过50个字符")
private String biddingProject;
@ColumnWidth(40)
@ExcelProperty(index = 1, value = "招标公司")
@ApiModelProperty("招标公司")
@Size(max = 50, message = "招标公司不能超过50个字符")
private String biddingCompany;
@ColumnWidth(20)
@ExcelProperty(index = 2, value = "招标金额\n(单位元,精确到分)")
@ApiModelProperty("招标金额")
private BigDecimal biddingAmount;
@ColumnWidth(30)
@ExcelProperty(index = 3, value = "招标截止时间\n(yyyy-MM-dd HH:mm:ss)")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("招标截止时间")
private LocalDateTime biddingDeadline;
@ColumnWidth(30)
@ExcelProperty(index = 4, value = "信息录入时间\n(yyyy-MM-dd HH:mm:ss)")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("信息录入时间")
private LocalDateTime infoEntryTime;
@ColumnWidth(20)
@ExcelProperty(index = 5, value = "信息来源")
@ApiModelProperty("信息来源")
@NotBlank(message = "信息来源不能为空")
@Size(max = 50, message = "信息来源不能超过50个字符")
private String source;
@ColumnWidth(60)
@ExcelProperty(index = 6, value = "信息来源网址")
@ApiModelProperty("信息来源网址")
@NotBlank(message = "信息来源网址不能为空")
@Size(max = 100, message = "信息来源网址不能超过100个字符")
private String sourceWebsite;
}

View File

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

View File

@ -1,14 +1,13 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/** /**
* @author huise23 * @author huise23
* @date 2025/07/21 21:13 * @date 2025/07/21 21:13
@ -33,8 +32,8 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("合同编号") @ApiModelProperty("合同编号")
private String code; private String code;
@ApiModelProperty("项目id") @ApiModelProperty("项目名称")
private String projectId; private String projectName;
@ApiModelProperty("业务员id") @ApiModelProperty("业务员id")
private String salespersonId; private String salespersonId;
@ -42,9 +41,6 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("部门id") @ApiModelProperty("部门id")
private String departmentId; private String departmentId;
@ApiModelProperty("签订日期")
private Date signDate;
@ApiModelProperty("期限") @ApiModelProperty("期限")
private String duration; private String duration;
@ -54,9 +50,6 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("产品或服务") @ApiModelProperty("产品或服务")
private String productService; private String productService;
@ApiModelProperty("付款日期/交付日期")
private Date paymentDate;
@ApiModelProperty("付款地址/交付地址") @ApiModelProperty("付款地址/交付地址")
private String paymentAddress; private String paymentAddress;
@ -72,5 +65,8 @@ public class ContractListReq implements Serializable {
@ApiModelProperty("合同状态") @ApiModelProperty("合同状态")
private String contractStatus; private String contractStatus;
@ApiModelProperty("合同内容")
private String contractText;
} }

View File

@ -1,21 +1,14 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serial;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dite.znpt.util.ValidationGroup; import java.io.Serial;
import javax.validation.constraints.NotBlank; import java.io.Serializable;
import javax.validation.constraints.NotNull; import java.math.BigDecimal;
import javax.validation.constraints.Size; import java.util.Date;
/** /**
* @author huise23 * @author huise23
* @date 2025/07/21 21:13 * @date 2025/07/21 21:13
@ -38,8 +31,8 @@ public class ContractReq implements Serializable {
@ApiModelProperty("合同编号") @ApiModelProperty("合同编号")
private String code; private String code;
@ApiModelProperty("项目id") @ApiModelProperty("项目名称")
private String projectId; private String projectName;
@ApiModelProperty("业务员id") @ApiModelProperty("业务员id")
private String salespersonId; private String salespersonId;
@ -62,6 +55,9 @@ public class ContractReq implements Serializable {
@ApiModelProperty("付款日期/交付日期") @ApiModelProperty("付款日期/交付日期")
private Date paymentDate; private Date paymentDate;
@ApiModelProperty("履约时间期限")
private Date performanceDeadline;
@ApiModelProperty("付款地址/交付地址") @ApiModelProperty("付款地址/交付地址")
private String paymentAddress; private String paymentAddress;
@ -76,5 +72,8 @@ public class ContractReq implements Serializable {
@ApiModelProperty("合同状态") @ApiModelProperty("合同状态")
private String contractStatus; private String contractStatus;
@ApiModelProperty("合同内容")
private String contractText;
} }

View File

@ -1,15 +1,12 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import java.math.BigDecimal; import com.dite.znpt.domain.entity.ContractEntity;
import java.util.Date;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import com.dite.znpt.domain.entity.ContractEntity;
import java.math.BigDecimal;
/** /**
* @author huise23 * @author huise23
@ -21,9 +18,6 @@ import com.dite.znpt.domain.entity.ContractEntity;
@ApiModel("合同响应实体") @ApiModel("合同响应实体")
public class ContractResp extends ContractEntity { public class ContractResp extends ContractEntity {
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("业务员姓名") @ApiModelProperty("业务员姓名")
private String salespersonName; private String salespersonName;
@ -35,5 +29,8 @@ public class ContractResp extends ContractEntity {
@ApiModelProperty("已收款金额") @ApiModelProperty("已收款金额")
private BigDecimal receivedAmount; private BigDecimal receivedAmount;
@ApiModelProperty("合同状态名称")
private String contractStatusLabel;
} }

View File

@ -0,0 +1,57 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/1/8/周三 17:45
* @description 设备审批列表查询请求VO
*/
@Data
@ApiModel(value="EquipmentApprovalListReq对象", description="设备审批列表查询请求")
public class EquipmentApprovalListReq implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("申请人")
private String applicantName;
@ApiModelProperty("业务类型PROCUREMENT-采购BORROW-借用RETURN-归还")
private String businessType;
@ApiModelProperty("审批状态")
private String approvalStatus;
@ApiModelProperty("申请时间开始")
private String applyTimeStart;
@ApiModelProperty("申请时间结束")
private String applyTimeEnd;
@ApiModelProperty("审批时间开始")
private String approvalTimeStart;
@ApiModelProperty("审批时间结束")
private String approvalTimeEnd;
@ApiModelProperty("当前页码")
private Integer page;
@ApiModelProperty("当前页码 - 与前端保持一致")
private Integer pageNum;
@ApiModelProperty("每页大小")
private Integer pageSize;
@ApiModelProperty("排序字段")
private String orderBy;
@ApiModelProperty("排序方向")
private String orderDirection;
}

View File

@ -0,0 +1,33 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/1/8/周三 17:35
* @description 设备审批请求VO
*/
@Data
@ApiModel(value="EquipmentApprovalReq对象", description="设备审批请求")
public class EquipmentApprovalReq implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("审批意见")
private String approvalComment;
@ApiModelProperty("审批结果APPROVED-通过REJECTED-拒绝")
@NotBlank(message = "审批结果不能为空")
private String approvalResult;
@ApiModelProperty("审批人")
private String approverName;
@ApiModelProperty("审批人ID")
private String approverId;
}

View File

@ -0,0 +1,86 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author Bear.G
* @date 2025/1/8/周三 17:40
* @description 设备审批响应VO
*/
@Data
@ApiModel(value="EquipmentApprovalResp对象", description="设备审批响应")
public class EquipmentApprovalResp implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("审批ID")
private String approvalId;
@ApiModelProperty("设备ID")
private String equipmentId;
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("设备类型")
private String equipmentType;
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("采购价格")
private BigDecimal purchasePrice;
@ApiModelProperty("总价")
private BigDecimal totalPrice;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("申请人")
private String applicantName;
@ApiModelProperty("申请人ID")
private String applicantId;
@ApiModelProperty("申请时间")
private LocalDateTime applyTime;
@ApiModelProperty("申请原因")
private String applyReason;
@ApiModelProperty("业务类型PROCUREMENT-采购BORROW-借用RETURN-归还")
private String businessType;
@ApiModelProperty("审批状态")
private String approvalStatus;
@ApiModelProperty("审批人")
private String approverName;
@ApiModelProperty("审批人ID")
private String approverId;
@ApiModelProperty("审批时间")
private LocalDateTime approvalTime;
@ApiModelProperty("审批意见")
private String approvalComment;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
}

View File

@ -6,6 +6,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* @author Bear.G * @author Bear.G
@ -26,4 +27,154 @@ public class EquipmentListReq implements Serializable {
@ApiModelProperty("设备状态0-空闲中1-使用3-保养中4-维修中5-已报废") @ApiModelProperty("设备状态0-空闲中1-使用3-保养中4-维修中5-已报废")
private String equipmentStatus; private String equipmentStatus;
@ApiModelProperty("设备序列号")
private String equipmentSn;
@ApiModelProperty("资产编号")
private String assetCode;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("位置状态")
private String locationStatus;
@ApiModelProperty("健康状态")
private String healthStatus;
@ApiModelProperty("负责人")
private String responsiblePerson;
@ApiModelProperty("使用状态0-空闲中1-使用中")
private String useStatus;
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("配置规格/参数")
private String specification;
@ApiModelProperty("设备当前物理位置")
private String physicalLocation;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("采购订单号")
private String purchaseOrder;
@ApiModelProperty("维护人员")
private String maintenancePerson;
@ApiModelProperty("次户号")
private String accountNumber;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("单价")
private java.math.BigDecimal unitPrice;
@ApiModelProperty("总价")
private java.math.BigDecimal totalPrice;
@ApiModelProperty("盘点依据")
private String inventoryBasis;
@ApiModelProperty("动态记录")
private String dynamicRecord;
@ApiModelProperty("库存条码")
private String inventoryBarcode;
@ApiModelProperty("资产备注")
private String assetRemark;
@ApiModelProperty("使用部门/人")
private String usingDepartment;
@ApiModelProperty("发票")
private String invoice;
@ApiModelProperty("条码")
private String barcode;
@ApiModelProperty("导入人")
private String importer;
@ApiModelProperty("采购时间开始")
private LocalDateTime purchaseTimeStart;
@ApiModelProperty("采购时间结束")
private LocalDateTime purchaseTimeEnd;
@ApiModelProperty("入库时间开始")
private LocalDateTime inStockTimeStart;
@ApiModelProperty("入库时间结束")
private LocalDateTime inStockTimeEnd;
@ApiModelProperty("启用时间开始")
private LocalDateTime activationTimeStart;
@ApiModelProperty("启用时间结束")
private LocalDateTime activationTimeEnd;
@ApiModelProperty("预计报废时间开始")
private LocalDateTime expectedScrapTimeStart;
@ApiModelProperty("预计报废时间结束")
private LocalDateTime expectedScrapTimeEnd;
@ApiModelProperty("保修截止日期开始")
private LocalDateTime warrantyExpireDateStart;
@ApiModelProperty("保修截止日期结束")
private LocalDateTime warrantyExpireDateEnd;
@ApiModelProperty("上次维护日期开始")
private LocalDateTime lastMaintenanceDateStart;
@ApiModelProperty("上次维护日期结束")
private LocalDateTime lastMaintenanceDateEnd;
@ApiModelProperty("下次维护日期开始")
private LocalDateTime nextMaintenanceDateStart;
@ApiModelProperty("下次维护日期结束")
private LocalDateTime nextMaintenanceDateEnd;
@ApiModelProperty("创建时间开始")
private LocalDateTime createTimeStart;
@ApiModelProperty("创建时间结束")
private LocalDateTime createTimeEnd;
@ApiModelProperty("更新时间开始")
private LocalDateTime updateTimeStart;
@ApiModelProperty("更新时间结束")
private LocalDateTime updateTimeEnd;
@ApiModelProperty("当前页码")
private Integer pageNum;
@ApiModelProperty("每页大小")
private Integer pageSize;
@ApiModelProperty("排序字段")
private String orderBy;
@ApiModelProperty("排序方向")
private String orderDirection;
@ApiModelProperty("页码")
private Integer page;
} }

View File

@ -0,0 +1,70 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* @author Bear.G
* @date 2025/1/8/周三 18:00
* @description 设备采购申请请求VO
*/
@Data
@ApiModel(value = "EquipmentProcurementApplyReq", description = "设备采购申请请求")
public class EquipmentProcurementApplyReq {
@ApiModelProperty("设备ID")
@NotBlank(message = "设备ID不能为空")
private String equipmentId;
@ApiModelProperty("设备名称")
@NotBlank(message = "设备名称不能为空")
private String equipmentName;
@ApiModelProperty("设备类型")
@NotBlank(message = "设备类型不能为空")
private String equipmentType;
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("预算金额")
@NotNull(message = "预算金额不能为空")
private BigDecimal budgetAmount;
@ApiModelProperty("数量")
@NotNull(message = "数量不能为空")
private Integer quantity;
@ApiModelProperty("紧急程度LOW-低NORMAL-普通HIGH-高URGENT-紧急")
@NotBlank(message = "紧急程度不能为空")
private String urgencyLevel;
@ApiModelProperty("申请原因")
@NotBlank(message = "申请原因不能为空")
private String applyReason;
@ApiModelProperty("技术要求")
private String technicalRequirements;
@ApiModelProperty("业务合理性说明")
private String businessJustification;
@ApiModelProperty("预期交付日期")
private LocalDate expectedDeliveryDate;
@ApiModelProperty("采购类型NEW_PURCHASE-新采购REPLACEMENT-更换UPGRADE-升级")
@NotBlank(message = "采购类型不能为空")
private String procurementType;
}

View File

@ -8,6 +8,8 @@ import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* @author Bear.G * @author Bear.G
@ -22,7 +24,7 @@ public class EquipmentReq implements Serializable {
@ApiModelProperty("设备名称") @ApiModelProperty("设备名称")
@NotBlank(message = "设备名称不能为空") @NotBlank(message = "设备名称不能为空")
@Size(max = 100, message = "设备名称长度不能超过100个字") @Size(max = 200, message = "设备名称长度不能超过200个字")
private String equipmentName; private String equipmentName;
@ApiModelProperty("设备类型, 枚举:EquipmentTypeEnum") @ApiModelProperty("设备类型, 枚举:EquipmentTypeEnum")
@ -31,11 +33,204 @@ public class EquipmentReq implements Serializable {
@ApiModelProperty("设备型号") @ApiModelProperty("设备型号")
@NotBlank(message = "设备型号不能为空") @NotBlank(message = "设备型号不能为空")
@Size(max = 50, message = "设备型号长度不能超过50个字") @Size(max = 200, message = "设备型号长度不能超过200个字")
private String equipmentModel; private String equipmentModel;
@ApiModelProperty("设备SN") @ApiModelProperty("设备SN")
@NotBlank(message = "设备SN不能为空") @NotBlank(message = "设备SN不能为空")
@Size(max = 50, message = "设备SN长度不能超过50个字") @Size(max = 100, message = "设备SN长度不能超过100个字")
private String equipmentSn; private String equipmentSn;
@ApiModelProperty("资产编号")
@Size(max = 50, message = "资产编号长度不能超过50个字")
private String assetCode;
@ApiModelProperty("品牌")
@Size(max = 100, message = "品牌长度不能超过100个字")
private String brand;
@ApiModelProperty("配置规格/参数")
@Size(max = 500, message = "配置规格长度不能超过500个字")
private String specification;
@ApiModelProperty("设备状态枚举EquipmentStatusEnum")
private String equipmentStatus;
@ApiModelProperty("使用状态0-空闲中1-使用中")
private String useStatus;
@ApiModelProperty("位置状态")
private String locationStatus;
@ApiModelProperty("设备当前物理位置")
@Size(max = 200, message = "物理位置长度不能超过200个字")
private String physicalLocation;
@ApiModelProperty("负责人")
@Size(max = 100, message = "负责人长度不能超过100个字")
private String responsiblePerson;
@ApiModelProperty("健康状态")
private String healthStatus;
@ApiModelProperty("采购时间")
private LocalDateTime purchaseTime;
@ApiModelProperty("入库时间")
private LocalDateTime inStockTime;
@ApiModelProperty("启用时间")
private LocalDateTime activationTime;
@ApiModelProperty("预计报废时间")
private LocalDateTime expectedScrapTime;
@ApiModelProperty("实际报废时间")
private LocalDateTime actualScrapTime;
@ApiModelProperty("状态变更时间")
private LocalDateTime statusChangeTime;
@ApiModelProperty("采购订单")
@Size(max = 100, message = "采购订单长度不能超过100个字")
private String purchaseOrder;
@ApiModelProperty("供应商名称")
@Size(max = 200, message = "供应商名称长度不能超过200个字")
private String supplierName;
// 移除采购价格字段使用单价和总价替代
// @ApiModelProperty("采购价格")
// private BigDecimal purchasePrice;
@ApiModelProperty("当前净值")
private BigDecimal currentNetValue;
@ApiModelProperty("折旧方法")
private String depreciationMethod;
@ApiModelProperty("折旧年限")
private Integer depreciationYears;
@ApiModelProperty("残值")
private BigDecimal salvageValue;
@ApiModelProperty("保修截止日期")
private LocalDateTime warrantyExpireDate;
@ApiModelProperty("上次维护日期")
private LocalDateTime lastMaintenanceDate;
@ApiModelProperty("下次维护日期")
private LocalDateTime nextMaintenanceDate;
@ApiModelProperty("维护人员")
@Size(max = 100, message = "维护人员长度不能超过100个字")
private String maintenancePerson;
@ApiModelProperty("库存条码")
@Size(max = 100, message = "库存条码长度不能超过100个字")
private String inventoryBarcode;
@ApiModelProperty("资产备注")
@Size(max = 1000, message = "资产备注长度不能超过1000个字")
private String assetRemark;
@ApiModelProperty("次户号")
private String accountNumber;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("单价")
private BigDecimal unitPrice;
@ApiModelProperty("总价")
private BigDecimal totalPrice;
// 移除备用状态字段使用现有的 location_status 字段
// @ApiModelProperty("备用状态")
// private String spareStatus;
@ApiModelProperty("盘点依据")
private String inventoryBasis;
@ApiModelProperty("动态记录")
private String dynamicRecord;
// 移除认证状态字段使用现有的 health_status 字段
// @ApiModelProperty("认证状态")
// private String certificationStatus;
@ApiModelProperty("使用部门/人")
@Size(max = 200, message = "使用部门/人长度不能超过200个字")
private String usingDepartment;
@ApiModelProperty("领用时间")
private LocalDateTime borrowingTime;
@ApiModelProperty("归还时间")
private LocalDateTime returnTime;
@ApiModelProperty("出库时间")
private LocalDateTime outStockTime;
@ApiModelProperty("总使用时间")
@Size(max = 100, message = "总使用时间长度不能超过100个字")
private String totalUsageTime;
@ApiModelProperty("折旧率")
private BigDecimal depreciationRate;
@ApiModelProperty("折旧方法说明")
@Size(max = 500, message = "折旧方法说明长度不能超过500个字")
private String depreciationMethodDesc;
@ApiModelProperty("发票")
@Size(max = 100, message = "发票长度不能超过100个字")
private String invoice;
@ApiModelProperty("发票状态")
@Size(max = 50, message = "发票状态长度不能超过50个字")
private String invoiceStatus;
@ApiModelProperty("附件")
@Size(max = 500, message = "附件长度不能超过500个字")
private String attachments;
@ApiModelProperty("照片")
@Size(max = 500, message = "照片长度不能超过500个字")
private String photos;
@ApiModelProperty("条码")
@Size(max = 100, message = "条码长度不能超过100个字")
private String barcode;
@ApiModelProperty("导入人")
@Size(max = 100, message = "导入人长度不能超过100个字")
private String importer;
@ApiModelProperty("盘库时间/状态1")
@Size(max = 100, message = "盘库时间/状态1长度不能超过100个字")
private String inventoryTimeStatus1;
@ApiModelProperty("盘库时间/状态2")
@Size(max = 100, message = "盘库时间/状态2长度不能超过100个字")
private String inventoryTimeStatus2;
@ApiModelProperty("盘库时间/状态3")
@Size(max = 100, message = "盘库时间/状态3长度不能超过100个字")
private String inventoryTimeStatus3;
@ApiModelProperty("盘点时间/状态1")
@Size(max = 100, message = "盘点时间/状态1长度不能超过100个字")
private String inventoryCheckTimeStatus1;
@ApiModelProperty("盘点时间/状态2")
@Size(max = 100, message = "盘点时间/状态2长度不能超过100个字")
private String inventoryCheckTimeStatus2;
@ApiModelProperty("盘点时间/状态3")
@Size(max = 100, message = "盘点时间/状态3长度不能超过100个字")
private String inventoryCheckTimeStatus3;
} }

View File

@ -1,11 +1,14 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* @author Bear.G * @author Bear.G
@ -21,10 +24,13 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("设备ID") @ApiModelProperty("设备ID")
private String equipmentId; private String equipmentId;
@ApiModelProperty("资产编号")
private String assetCode;
@ApiModelProperty("设备名称") @ApiModelProperty("设备名称")
private String equipmentName; private String equipmentName;
@ApiModelProperty("设备类型") @ApiModelProperty("类型")
private String equipmentType; private String equipmentType;
@ApiModelProperty("设备类型描述") @ApiModelProperty("设备类型描述")
@ -36,6 +42,12 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("设备SN") @ApiModelProperty("设备SN")
private String equipmentSn; private String equipmentSn;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("配置规格/参数")
private String specification;
@ApiModelProperty("设备状态, 枚举:EquipmentStatusEnum") @ApiModelProperty("设备状态, 枚举:EquipmentStatusEnum")
private String equipmentStatus; private String equipmentStatus;
@ -45,6 +57,195 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("设备使用状态0-空闲中1-使用中") @ApiModelProperty("设备使用状态0-空闲中1-使用中")
private String useStatus; private String useStatus;
@ApiModelProperty("位置状态")
private String locationStatus;
@ApiModelProperty("位置状态描述")
private String locationStatusLabel;
@ApiModelProperty("设备当前物理位置")
private String physicalLocation;
@ApiModelProperty("负责人")
private String responsiblePerson;
@ApiModelProperty("健康状态")
private String healthStatus;
@ApiModelProperty("健康状态描述")
private String healthStatusLabel;
@ApiModelProperty("采购时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime purchaseTime;
@ApiModelProperty("入库时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime inStockTime;
@ApiModelProperty("启用时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime activationTime;
@ApiModelProperty("预计报废时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime expectedScrapTime;
@ApiModelProperty("实际报废时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime actualScrapTime;
@ApiModelProperty("状态变更时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime statusChangeTime;
@ApiModelProperty("采购订单")
private String purchaseOrder;
@ApiModelProperty("供应商名称")
private String supplierName;
// 移除采购价格字段使用单价和总价替代
// @ApiModelProperty("采购价格")
// private BigDecimal purchasePrice;
@ApiModelProperty("当前净值")
private BigDecimal currentNetValue;
@ApiModelProperty("折旧方法")
private String depreciationMethod;
@ApiModelProperty("折旧年限")
private Integer depreciationYears;
@ApiModelProperty("残值")
private BigDecimal salvageValue;
@ApiModelProperty("保修截止日期")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime warrantyExpireDate;
@ApiModelProperty("上次维护日期")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime lastMaintenanceDate;
@ApiModelProperty("下次维护日期")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime nextMaintenanceDate;
@ApiModelProperty("维护人员")
private String maintenancePerson;
@ApiModelProperty("库存条码")
private String inventoryBarcode;
@ApiModelProperty("资产备注")
private String assetRemark;
@ApiModelProperty("次户号")
private String accountNumber;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("单价")
private BigDecimal unitPrice;
@ApiModelProperty("总价")
private BigDecimal totalPrice;
@ApiModelProperty("采购状态NOT_STARTED-未开始PENDING_APPROVAL-待审批APPROVED-已通过REJECTED-已拒绝COMPLETED-已完成")
private String procurementStatus;
@ApiModelProperty("收货状态NOT_RECEIVED-未收货PARTIALLY_RECEIVED-部分收货RECEIVED-已收货")
private String receiptStatus;
@ApiModelProperty("支付状态NOT_PAID-未支付PARTIALLY_PAID-部分支付PAID-已支付")
private String paymentStatus;
@ApiModelProperty("审批状态PENDING-待审批APPROVED-已通过REJECTED-已拒绝")
private String approvalStatus;
// 移除备用状态字段使用现有的 location_status 字段
// @ApiModelProperty("备用状态")
// private String spareStatus;
// @ApiModelProperty("备用状态描述")
// private String spareStatusLabel;
@ApiModelProperty("盘点依据")
private String inventoryBasis;
@ApiModelProperty("动态记录")
private String dynamicRecord;
// 移除认证状态字段使用现有的 health_status 字段
// @ApiModelProperty("认证状态")
// private String certificationStatus;
// @ApiModelProperty("认证状态描述")
// private String certificationStatusLabel;
@ApiModelProperty("使用部门/人")
private String usingDepartment;
@ApiModelProperty("领用时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime borrowingTime;
@ApiModelProperty("归还时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime returnTime;
@ApiModelProperty("出库时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime outStockTime;
@ApiModelProperty("总使用时间")
private String totalUsageTime;
@ApiModelProperty("折旧率")
private BigDecimal depreciationRate;
@ApiModelProperty("折旧方法说明")
private String depreciationMethodDesc;
@ApiModelProperty("发票")
private String invoice;
@ApiModelProperty("发票状态")
private String invoiceStatus;
@ApiModelProperty("附件")
private String attachments;
@ApiModelProperty("照片")
private String photos;
@ApiModelProperty("条码")
private String barcode;
@ApiModelProperty("导入人")
private String importer;
@ApiModelProperty("盘库时间/状态1")
private String inventoryTimeStatus1;
@ApiModelProperty("盘库时间/状态2")
private String inventoryTimeStatus2;
@ApiModelProperty("盘库时间/状态3")
private String inventoryTimeStatus3;
@ApiModelProperty("盘点时间/状态1")
private String inventoryCheckTimeStatus1;
@ApiModelProperty("盘点时间/状态2")
private String inventoryCheckTimeStatus2;
@ApiModelProperty("盘点时间/状态3")
private String inventoryCheckTimeStatus3;
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private String projectId; private String projectId;
@ -56,4 +257,12 @@ public class EquipmentResp implements Serializable {
@ApiModelProperty("使用人") @ApiModelProperty("使用人")
private String name; private String name;
@ApiModelProperty("创建时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime createTime;
@ApiModelProperty("更新时间")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime updateTime;
} }

View File

@ -0,0 +1,45 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
/**
* 甘特图查询请求类
*/
@Data
@ApiModel(value = "GanttChartReq", description = "甘特图查询请求")
public class GanttChartReq {
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("任务组ID")
private String taskGroupId;
@ApiModelProperty("任务状态")
private Integer status;
@ApiModelProperty("负责人ID")
private String mainUserId;
@ApiModelProperty("开始时间范围-开始")
private LocalDate startDateFrom;
@ApiModelProperty("开始时间范围-结束")
private LocalDate startDateTo;
@ApiModelProperty("结束时间范围-开始")
private LocalDate endDateFrom;
@ApiModelProperty("结束时间范围-结束")
private LocalDate endDateTo;
@ApiModelProperty("是否包含已完成任务")
private Boolean includeCompleted = true;
@ApiModelProperty("是否只显示逾期任务")
private Boolean overdueOnly = false;
}

View File

@ -0,0 +1,91 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.util.List;
/**
* 甘特图数据响应类
*/
@Data
@ApiModel(value = "GanttChartResp", description = "甘特图数据响应")
public class GanttChartResp {
@ApiModelProperty("任务ID")
private String taskId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务编号")
private String taskCode;
@ApiModelProperty("上级任务ID")
private String parentTaskId;
@ApiModelProperty("任务组ID")
private String taskGroupId;
@ApiModelProperty("任务组名称")
private String taskGroupName;
@ApiModelProperty("计划开始时间")
private LocalDate planStartDate;
@ApiModelProperty("计划结束时间")
private LocalDate planEndDate;
@ApiModelProperty("实际开始时间")
private LocalDate actualStartDate;
@ApiModelProperty("实际结束时间")
private LocalDate actualEndDate;
@ApiModelProperty("任务状态0未开始1进行中2已结束")
private Integer status;
@ApiModelProperty("任务状态描述")
private String statusDesc;
@ApiModelProperty("是否逾期0未逾期1已逾期")
private Integer overdueStatus;
@ApiModelProperty("任务负责人ID")
private String mainUserId;
@ApiModelProperty("任务负责人姓名")
private String mainUserName;
@ApiModelProperty("任务参与人")
private String userIds;
@ApiModelProperty("任务参与人姓名列表")
private List<String> participantNames;
@ApiModelProperty("进度百分比")
private Integer progress;
@ApiModelProperty("任务层级")
private Integer level;
@ApiModelProperty("任务在时间轴上的位置(天数)")
private Integer position;
@ApiModelProperty("任务持续时间(天数)")
private Integer duration;
@ApiModelProperty("子任务列表")
private List<GanttChartResp> children;
@ApiModelProperty("任务备注")
private String remark;
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("项目名称")
private String projectName;
}

View File

@ -106,4 +106,8 @@ public class ImageListResp implements Serializable {
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private String projectId; private String projectId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("上传时间")
private LocalDateTime createTime;
} }

View File

@ -1,11 +1,13 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@ -60,4 +62,8 @@ public class ImageResp implements Serializable {
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private String projectId; private String projectId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("上传时间")
private LocalDateTime createTime;
} }

View File

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

View File

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

View File

@ -0,0 +1,29 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author Bear.G
* @date 2025/8/6/周三 14:37
* @description
*/
@Data
@ApiModel("项目预算信息列表请求实体")
public class PostListReq implements Serializable {
@Serial
private static final long serialVersionUID = -3911963210474319099L;
@ApiModelProperty("岗位名称")
private String postName;
@ApiModelProperty("部门id")
private String deptId;
@ApiModelProperty("是否包含部门子节点")
private Boolean includeDeptChildren;
}

View File

@ -1,5 +1,6 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dite.znpt.util.ValidationGroup; import com.dite.znpt.util.ValidationGroup;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -21,6 +22,10 @@ public class PostReq implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -149328762675637911L; private static final long serialVersionUID = -149328762675637911L;
@ApiModelProperty("部门id")
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "部门id不能为空")
private String deptId;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "岗位名称不能为空") @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "岗位名称不能为空")
@Size(max = 30, groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "岗位名称长度不能超过30个字符") @Size(max = 30, groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "岗位名称长度不能超过30个字符")
@ApiModelProperty("岗位名称") @ApiModelProperty("岗位名称")
@ -29,9 +34,24 @@ public class PostReq implements Serializable {
@ApiModelProperty("显示顺序") @ApiModelProperty("显示顺序")
private Integer postSort; private Integer postSort;
@ApiModelProperty("状态0正常 1停用)") @ApiModelProperty("状态0停用 1正常")
private Integer status; private Integer status;
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remark; private String remark;
@ApiModelProperty("岗位说明")
private String statement;
@ApiModelProperty("岗位任务")
private String responsibilitiesTask;
@ApiModelProperty("岗位任职资格")
private String qualifications;
@ApiModelProperty("岗位工作条件")
private String workingConditions;
@ApiModelProperty("岗位薪资")
private Double salary;
} }

View File

@ -1,5 +1,6 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -7,6 +8,7 @@ import lombok.Data;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
/** /**
* @author Bear.G * @author Bear.G
@ -22,6 +24,12 @@ public class PostResp implements Serializable {
@ApiModelProperty("岗位id") @ApiModelProperty("岗位id")
private String postId; private String postId;
@ApiModelProperty("部门id")
private String deptId;
@ApiModelProperty("部门名称")
private String deptName;
@ApiModelProperty("岗位名称") @ApiModelProperty("岗位名称")
private String postName; private String postName;
@ -35,4 +43,25 @@ public class PostResp implements Serializable {
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remark; private String remark;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
@ApiModelProperty("岗位说明")
private String statement;
@ApiModelProperty("岗位任务")
private String responsibilitiesTask;
@ApiModelProperty("岗位任职资格")
private String qualifications;
@ApiModelProperty("岗位工作条件")
private String workingConditions;
@ApiModelProperty("岗位薪资")
private Double salary;
} }

View File

@ -0,0 +1,57 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
@Data
@ApiModel("项目预算信息详情")
public class ProjectBudgetInfoDetailResp implements Serializable {
@Serial
private static final long serialVersionUID = 766154886845694269L;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目预算")
private Double projectBudget;
@ApiModelProperty("人工成本")
private Double laborCost;
@ApiModelProperty("设备摊销")
private Double equipmentAmortization;
@ApiModelProperty("奖金预提")
private Double bonusProvision;
@ApiModelProperty("交通食宿")
private Double transAccomMeals;
@ApiModelProperty("其他杂费")
private Double othersCost;
@ApiModelProperty("已用人工成本")
private Double useLaborCost;
@ApiModelProperty("已用设备摊销")
private Double useEquipmentAmortization;
@ApiModelProperty("已用奖金预提")
private Double useBonusProvision;
@ApiModelProperty("已用交通食宿")
private Double useTransAccomMeals;
@ApiModelProperty("已用其他杂费")
private Double useOthersCost;
@ApiModelProperty("剩余预算")
private Double restBudget;
}

View File

@ -0,0 +1,37 @@
package com.dite.znpt.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* @author huise23
* @date 2025/07/17 21:58
* @Description: 项目预算信息表导入请求类
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="ProjectBudgetInfo导入请求对象", description="项目预算信息表")
public class ProjectBudgetInfoImportReq implements Serializable {
@Serial
private static final long serialVersionUID = 580212651388155611L;
@ExcelProperty(value = "项目Id")
private String projectId;
@ExcelProperty(value = "预算名称")
private String budgetName;
@ExcelProperty(value = "预算花费金额")
private Double budgetAmount;
@ExcelProperty(value = "预算说明")
private String budgetDesc;
@ExcelProperty(value = "附件")
private String attach;
}

View File

@ -22,7 +22,7 @@ public class ProjectBudgetInfoListReq implements Serializable {
@ApiModelProperty("查询关键字") @ApiModelProperty("查询关键字")
private String keyword; private String keyword;
@ApiModelProperty("项目预算信息Id") @ApiModelProperty("项目预算Id")
private String budgetId; private String budgetId;
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
@ -31,14 +31,10 @@ public class ProjectBudgetInfoListReq implements Serializable {
@ApiModelProperty("预算名称") @ApiModelProperty("预算名称")
private String budgetName; private String budgetName;
@ApiModelProperty("预算类型") @ApiModelProperty("预算花费金额")
private String budgetType;
@ApiModelProperty("预算金额(万元)")
private Double budgetAmount; private Double budgetAmount;
@ApiModelProperty("预算说明") @ApiModelProperty("预算说明")
private String budgetDesc; private String budgetDesc;
} }

View File

@ -2,6 +2,7 @@ package com.dite.znpt.domain.vo;
import com.dite.znpt.domain.entity.ProjectBudgetInfoEntity; import com.dite.znpt.domain.entity.ProjectBudgetInfoEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -14,6 +15,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel("项目预算信息列表响应实体") @ApiModel("项目预算信息列表响应实体")
public class ProjectBudgetInfoListResp extends ProjectBudgetInfoEntity { public class ProjectBudgetInfoListResp extends ProjectBudgetInfoEntity {
@ApiModelProperty("项目名称")
private String projectName;
} }

View File

@ -26,16 +26,13 @@ public class ProjectBudgetInfoReq implements Serializable {
@ApiModelProperty("预算名称") @ApiModelProperty("预算名称")
private String budgetName; private String budgetName;
@ApiModelProperty("预算类型") @ApiModelProperty("预算花费金额")
private String budgetType;
@ApiModelProperty("预算金额(万元)")
private Double budgetAmount; private Double budgetAmount;
@ApiModelProperty("预算说明") @ApiModelProperty("预算说明")
private String budgetDesc; private String budgetDesc;
@ApiModelProperty("附件id") @ApiModelProperty("附件")
private String attachId; private String attach;
} }

View File

@ -15,8 +15,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel("项目预算信息响应实体") @ApiModel("项目预算信息响应实体")
public class ProjectBudgetInfoResp extends ProjectBudgetInfoEntity { public class ProjectBudgetInfoResp extends ProjectBudgetInfoEntity {
@ApiModelProperty("项目名称")
@ApiModelProperty("预算类型描述") private String projectName;
private String budgetTypeDesc;
} }

View File

@ -0,0 +1,197 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目详情响应VO
*/
@Data
@ApiModel(value="ProjectDetailResp对象", description="项目详情响应")
public class ProjectDetailResp {
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目封面")
private String coverUrl;
@ApiModelProperty("风场名称")
private String farmName;
@ApiModelProperty("风场地址")
private String farmAddress;
@ApiModelProperty("委托单位")
private String client;
@ApiModelProperty("委托单位联系人")
private String clientContact;
@ApiModelProperty("委托单位联系电话")
private String clientPhone;
@ApiModelProperty("检查单位")
private String inspectionUnit;
@ApiModelProperty("检查单位联系人")
private String inspectionContact;
@ApiModelProperty("检查单位联系电话")
private String inspectionPhone;
@ApiModelProperty("项目规模")
private String scale;
@ApiModelProperty("总工期(天数)")
private Integer duration;
@ApiModelProperty("风机型号")
private String turbineModel;
@ApiModelProperty("项目状态")
private Integer status;
@ApiModelProperty("项目状态描述")
private String statusLabel;
@ApiModelProperty("开始时间")
private LocalDate startDate;
@ApiModelProperty("结束时间")
private LocalDate endDate;
@ApiModelProperty("计划开始时间")
private LocalDate plannedStartDate;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("更新时间")
private String updateTime;
// 新增字段 - 对应前端ProjectCard接口
@ApiModelProperty("项目预算(万元)")
private BigDecimal budget;
@ApiModelProperty("项目经理")
private String manager;
@ApiModelProperty("团队规模")
private Integer teamSize;
@ApiModelProperty("准备进度百分比")
private Integer preparationProgress;
@ApiModelProperty("项目进度百分比")
private Integer progress;
// 项目人员信息从新关联表获取
@ApiModelProperty("项目人员列表")
private List<ProjectMemberResp> projectMembers;
// 项目机组信息
@ApiModelProperty("项目机组列表")
private List<TurbineInfo> turbines;
// 项目任务信息
@ApiModelProperty("项目任务列表")
private List<TaskInfo> tasks;
// 项目预算信息
@ApiModelProperty("项目预算列表")
private List<BudgetInfo> budgets;
// 项目日报信息
@ApiModelProperty("项目日报列表")
private List<DailyReportInfo> dailyReports;
@Data
@ApiModel(value="TurbineInfo对象", description="机组信息")
public static class TurbineInfo {
@ApiModelProperty("机组ID")
private String turbineId;
@ApiModelProperty("机组名称")
private String turbineName;
@ApiModelProperty("机组编码")
private String turbineCode;
@ApiModelProperty("机组状态")
private Integer status;
@ApiModelProperty("机组状态描述")
private String statusLabel;
}
@Data
@ApiModel(value="TaskInfo对象", description="任务信息")
public static class TaskInfo {
@ApiModelProperty("任务ID")
private String taskId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("任务状态")
private Integer status;
@ApiModelProperty("任务状态描述")
private String statusLabel;
@ApiModelProperty("计划开始时间")
private LocalDate planStartDate;
@ApiModelProperty("计划结束时间")
private LocalDate planEndDate;
@ApiModelProperty("实际开始时间")
private LocalDate actualStartDate;
@ApiModelProperty("实际结束时间")
private LocalDate actualEndDate;
}
@Data
@ApiModel(value="BudgetInfo对象", description="预算信息")
public static class BudgetInfo {
@ApiModelProperty("预算ID")
private String budgetId;
@ApiModelProperty("预算名称")
private String budgetName;
@ApiModelProperty("预算金额(万元)")
private Double budgetAmount;
@ApiModelProperty("预算说明")
private String budgetDesc;
}
@Data
@ApiModel(value="DailyReportInfo对象", description="日报信息")
public static class DailyReportInfo {
@ApiModelProperty("日报ID")
private String reportId;
@ApiModelProperty("日报日期")
private LocalDate reportDate;
@ApiModelProperty("日报提交人")
private String submitUserName;
@ApiModelProperty("创建时间")
private String createTime;
}
}

View File

@ -0,0 +1,44 @@
package com.dite.znpt.domain.vo;
import com.dite.znpt.util.ValidationGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDate;
@Data
@ApiModel("项目初始化任务请求参数")
public class ProjectInitTaskReq {
@ApiModelProperty("任务名称")
private String taskName;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目任务编号不能为空")
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "项目任务编号长度不能超过100字符")
@ApiModelProperty("项目任务编号")
private String taskCode;
@NotNull(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "计划开始时间不能为空")
@ApiModelProperty("计划开始时间")
private LocalDate planStartDate;
@NotNull(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "计划结束时间不能为空")
@ApiModelProperty("计划结束时间")
private LocalDate planEndDate;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "任务组id不能为空")
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 32, message = "任务组id长度不能超过32字符")
@ApiModelProperty("任务组id")
private String taskGroupId;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "任务负责人id不能为空")
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 100, message = "任务负责人id长度不能超过100字符")
@ApiModelProperty("任务负责人id")
private String mainUserId;
@ApiModelProperty("任务规模")
private Integer scales;
}

View File

@ -0,0 +1,182 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目看板数据响应VO
*/
@Data
@ApiModel(value="ProjectKanbanDataResp对象", description="项目看板数据响应")
public class ProjectKanbanDataResp {
@ApiModelProperty("未开工项目列表")
private List<ProjectKanbanItem> pendingProjects;
@ApiModelProperty("筹备中项目列表")
private List<ProjectKanbanItem> preparingProjects;
@ApiModelProperty("开工中项目列表")
private List<ProjectKanbanItem> inProgressProjects;
@ApiModelProperty("暂停中项目列表")
private List<ProjectKanbanItem> suspendedProjects;
@ApiModelProperty("已完工项目列表")
private List<ProjectKanbanItem> completedProjects;
@ApiModelProperty("验收中项目列表")
private List<ProjectKanbanItem> acceptanceProjects;
@ApiModelProperty("回款中项目列表")
private List<ProjectKanbanItem> collectionProjects;
@ApiModelProperty("已结算项目列表")
private List<ProjectKanbanItem> settledProjects;
@Data
@ApiModel(value="ProjectKanbanItem对象", description="项目看板项目项")
public static class ProjectKanbanItem {
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目封面")
private String coverUrl;
@ApiModelProperty("风场名称")
private String farmName;
@ApiModelProperty("风场地址")
private String farmAddress;
@ApiModelProperty("项目规模")
private String scale;
@ApiModelProperty("总工期(天数)")
private Integer duration;
@ApiModelProperty("风机型号")
private String turbineModel;
@ApiModelProperty("项目状态")
private Integer status;
@ApiModelProperty("项目状态描述")
private String statusLabel;
@ApiModelProperty("开始时间")
private LocalDate startDate;
@ApiModelProperty("结束时间")
private LocalDate endDate;
@ApiModelProperty("计划开始时间")
private LocalDate plannedStartDate;
@ApiModelProperty("项目经理")
private String projectManagerName;
@ApiModelProperty("安全员")
private String safetyOfficerName;
@ApiModelProperty("质量员")
private String qualityOfficerName;
@ApiModelProperty("施工组长")
private String constructionTeamLeaderName;
@ApiModelProperty("施工人员")
private String constructorNames;
@ApiModelProperty("机组数量")
private Long turbineCount;
@ApiModelProperty("任务数量")
private Long taskCount;
@ApiModelProperty("已完成任务数量")
private Long completedTaskCount;
@ApiModelProperty("项目进度百分比")
private Integer progressPercentage;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("更新时间")
private String updateTime;
// 新增字段 - 对应前端ProjectCard接口
@ApiModelProperty("项目预算(万元)")
private BigDecimal budget;
@ApiModelProperty("项目经理")
private String manager;
@ApiModelProperty("团队规模")
private Integer teamSize;
@ApiModelProperty("准备进度百分比")
private Integer preparationProgress;
@ApiModelProperty("项目进度百分比")
private Integer progress;
@ApiModelProperty("团队成员列表")
private List<TeamMemberResp> teamMembers;
@Data
@ApiModel(value="TeamMemberResp对象", description="团队成员响应")
public static class TeamMemberResp {
@ApiModelProperty("成员ID")
private String memberId;
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("用户姓名")
private String userName;
@ApiModelProperty("用户账号")
private String userAccount;
@ApiModelProperty("用户头像")
private String userAvatar;
@ApiModelProperty("角色类型")
private String roleType;
@ApiModelProperty("角色类型描述")
private String roleTypeDesc;
@ApiModelProperty("岗位代码")
private String jobCode;
@ApiModelProperty("岗位代码描述")
private String jobCodeDesc;
@ApiModelProperty("岗位描述")
private String jobDesc;
@ApiModelProperty("加入时间")
private LocalDate joinDate;
@ApiModelProperty("离开时间")
private LocalDate leaveDate;
@ApiModelProperty("状态")
private String status;
}
}
}

View File

@ -0,0 +1,90 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目看板统计数据响应VO
*/
@Data
@ApiModel(value="ProjectKanbanStatsResp对象", description="项目看板统计数据响应")
public class ProjectKanbanStatsResp {
@ApiModelProperty("总项目数")
private Long totalProjectsCount;
@ApiModelProperty("待施工项目数")
private Long pendingProjectCount;
@ApiModelProperty("筹备中项目数")
private Long preparingProjectCount;
@ApiModelProperty("开工中项目数")
private Long inProgressProjectCount;
@ApiModelProperty("暂停中项目数")
private Long suspendedProjectCount;
@ApiModelProperty("已完工项目数")
private Long completedProjectCount;
@ApiModelProperty("验收中项目数")
private Long acceptanceProjectCount;
@ApiModelProperty("回款中项目数")
private Long collectionProjectCount;
@ApiModelProperty("已结算项目数")
private Long settledProjectCount;
@ApiModelProperty("总机组数")
private Long totalTurbineCount;
@ApiModelProperty("待施工机组数")
private Long pendingTurbineCount;
@ApiModelProperty("施工中机组数")
private Long inProgressTurbineCount;
@ApiModelProperty("已完工机组数")
private Long completedTurbineCount;
@ApiModelProperty("已审核机组数")
private Long auditedTurbineCount;
@ApiModelProperty("已验收机组数")
private Long acceptedTurbineCount;
@ApiModelProperty("总任务数")
private Long totalTaskCount;
@ApiModelProperty("未开始任务数")
private Long pendingTaskCount;
@ApiModelProperty("进行中任务数")
private Long inProgressTaskCount;
@ApiModelProperty("已完成任务数")
private Long completedTaskCount;
@ApiModelProperty("总人员数")
private Long totalMemberCount;
@ApiModelProperty("项目经理数")
private Long projectManagerCount;
@ApiModelProperty("安全员数")
private Long safetyOfficerCount;
@ApiModelProperty("质量员数")
private Long qualityOfficerCount;
@ApiModelProperty("施工人员数")
private Long constructorCount;
@ApiModelProperty("施工组长数")
private Long teamLeaderCount;
}

View File

@ -1,7 +1,5 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -23,6 +21,12 @@ public class ProjectListReq implements Serializable {
@ApiModelProperty("项目名称") @ApiModelProperty("项目名称")
private String projectName; private String projectName;
@ApiModelProperty(value = "项目来源")
private String projectOrigin;
@ApiModelProperty(value = "项目预算")
private Integer projectBudget;
@ApiModelProperty("风场名称") @ApiModelProperty("风场名称")
private String farmName; private String farmName;

View File

@ -1,10 +1,5 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -12,7 +7,6 @@ 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.LocalDate;
import java.time.LocalDateTime;
/** /**
* @Author: gaoxiong * @Author: gaoxiong
@ -31,6 +25,12 @@ public class ProjectListResp implements Serializable {
@ApiModelProperty("项目名称") @ApiModelProperty("项目名称")
private String projectName; private String projectName;
@ApiModelProperty(value = "项目来源")
private String projectOrigin;
@ApiModelProperty(value = "项目预算")
private Integer projectBudget;
@ApiModelProperty("风场名称") @ApiModelProperty("风场名称")
private String farmName; private String farmName;

View File

@ -0,0 +1,105 @@
package com.dite.znpt.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目人员响应VO
*/
@Data
@ApiModel(value="ProjectMemberResp对象", description="项目人员响应")
public class ProjectMemberResp {
@ApiModelProperty("关联ID")
private String memberId;
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("机组ID")
private String turbineId;
@ApiModelProperty("机组名称")
private String turbineName;
@ApiModelProperty("任务组ID")
private String taskGroupId;
@ApiModelProperty("任务组名称")
private String taskGroupName;
@ApiModelProperty("任务ID")
private String taskId;
@ApiModelProperty("任务名称")
private String taskName;
@ApiModelProperty("用户ID")
private String userId;
// ========================== 前端需要的字段 ==========================
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("联系电话")
private String phone;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("项目岗位")
private String position;
@ApiModelProperty("状态")
private String status;
@ApiModelProperty("技能标签")
private String skills;
@ApiModelProperty("入职日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate joinDate;
@ApiModelProperty("备注")
private String remark;
// ========================== 保留的原有字段用于内部处理 ==========================
@ApiModelProperty("用户账号")
private String userAccount;
@ApiModelProperty("用户头像")
private String userAvatar;
@ApiModelProperty("角色类型")
private String roleType;
@ApiModelProperty("角色类型描述")
private String roleTypeDesc;
@ApiModelProperty("岗位代码")
private String jobCode;
@ApiModelProperty("岗位代码描述")
private String jobCodeDesc;
@ApiModelProperty("岗位描述")
private String jobDesc;
@ApiModelProperty("离开时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate leaveDate;
@ApiModelProperty("状态描述")
private String statusDesc;
}

View File

@ -1,6 +1,6 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.dite.znpt.domain.entity.ProjectTaskEntity;
import com.dite.znpt.util.ValidationGroup; import com.dite.znpt.util.ValidationGroup;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -11,6 +11,7 @@ import javax.validation.constraints.Size;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* @Author: gaoxiong * @Author: gaoxiong
@ -28,6 +29,13 @@ public class ProjectReq implements Serializable {
@ApiModelProperty("项目id") @ApiModelProperty("项目id")
private String projectId; private String projectId;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目来源不能为空")
@ApiModelProperty("项目来源")
private String projectOrigin;
@ApiModelProperty("项目预算")
private Integer projectBudget;
@NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目名称不能为空") @NotBlank(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, message = "项目名称不能为空")
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "项目名称长度不能超过50字符") @Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 50, message = "项目名称长度不能超过50字符")
@ApiModelProperty("项目名称") @ApiModelProperty("项目名称")
@ -70,9 +78,8 @@ public class ProjectReq implements Serializable {
@ApiModelProperty("检查单位联系电话") @ApiModelProperty("检查单位联系电话")
private String inspectionPhone; private String inspectionPhone;
@Size(groups = {ValidationGroup.Insert.class, ValidationGroup.Update.class}, max = 20, message = "项目规模长度不能超过20字符")
@ApiModelProperty("项目规模") @ApiModelProperty("项目规模")
private String scale; private Integer scale;
@ApiModelProperty("总工期,单位天") @ApiModelProperty("总工期,单位天")
private Integer duration; private Integer duration;
@ -105,4 +112,22 @@ public class ProjectReq implements Serializable {
@ApiModelProperty(value = "结束时间") @ApiModelProperty(value = "结束时间")
private LocalDate endDate; private LocalDate endDate;
@ApiModelProperty("人工成本")
private Double laborCost;
@ApiModelProperty("设备摊销")
private Double equipmentAmortization;
@ApiModelProperty("奖金预提")
private Double bonusProvision;
@ApiModelProperty("交通食宿")
private Double transAccomMeals;
@ApiModelProperty("其他杂费")
private Double othersCost;
@ApiModelProperty("项目初始任务")
private List<ProjectInitTaskReq> tasks;
} }

View File

@ -1,19 +1,12 @@
package com.dite.znpt.domain.vo; package com.dite.znpt.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import com.dite.znpt.domain.entity.ProjectEntity;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.util.List;
/** /**
* @author huise23 * @author huise23
@ -27,6 +20,15 @@ public class ProjectResp extends ProjectReq implements Serializable {
@Serial @Serial
private static final long serialVersionUID = -1883901559600186726L; private static final long serialVersionUID = -1883901559600186726L;
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("项目来源")
private String projectOrigin;
@ApiModelProperty("项目预算")
private Integer projectBudget;
@ApiModelProperty("施工人员") @ApiModelProperty("施工人员")
private String constructorName; private String constructorName;
@ -44,5 +46,8 @@ public class ProjectResp extends ProjectReq implements Serializable {
@ApiModelProperty("状态0待施工1施工中2已完工3已审核4已验收") @ApiModelProperty("状态0待施工1施工中2已完工3已审核4已验收")
private String statusLabel; private String statusLabel;
@ApiModelProperty("任务列表")
private List<ProjectTaskResp> taskList;
} }

View File

@ -0,0 +1,23 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("项目任务详情响应实体")
public class ProjectTasksDetailResp {
private List<ProjectTaskResp> list;
@ApiModelProperty("项目名称")
private String projectName;
@ApiModelProperty("项目任务总数")
private Integer total;
@ApiModelProperty("已完成任务数")
private Integer finished;
}

View File

@ -0,0 +1,160 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* 收货请求参数扩展版包含完整设备信息
*
* @author system
* @date 2025-01-08
*/
@Data
@ApiModel(value = "收货请求参数", description = "收货请求参数,包含收货信息和设备信息")
public class ReceiptRequest {
@ApiModelProperty("设备序列号(收货时自动生成)")
private String equipmentSn;
@ApiModelProperty("库存条码(收货时自动生成)")
private String inventoryBarcode;
// 收货特有信息
@NotBlank(message = "收货时间不能为空")
@ApiModelProperty("收货时间")
private String receiptTime;
@NotBlank(message = "收货人不能为空")
@ApiModelProperty("收货人")
private String receiptPerson;
@NotNull(message = "收货数量不能为空")
@ApiModelProperty("收货数量")
private Integer receiptQuantity;
@ApiModelProperty("收货备注")
private String receiptRemark;
@NotBlank(message = "外观检查结果不能为空")
@ApiModelProperty("外观检查结果")
private String appearanceCheck;
@NotBlank(message = "功能测试结果不能为空")
@ApiModelProperty("功能测试结果")
private String functionTest;
@NotBlank(message = "包装完整性不能为空")
@ApiModelProperty("包装完整性")
private String packageIntegrity;
@NotBlank(message = "配件完整性不能为空")
@ApiModelProperty("配件完整性")
private String accessoryIntegrity;
@NotBlank(message = "检查结果不能为空")
@ApiModelProperty("检查结果")
private String checkResult;
@ApiModelProperty("检查备注")
private String checkRemark;
@NotBlank(message = "入库位置不能为空")
@ApiModelProperty("入库位置")
private String storageLocation;
@NotBlank(message = "库管员不能为空")
@ApiModelProperty("库管员")
private String storageManager;
// 设备基本信息从采购数据继承
@ApiModelProperty("设备名称")
private String equipmentName;
@ApiModelProperty("设备型号")
private String equipmentModel;
@ApiModelProperty("设备类型")
private String equipmentType;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("配置规格/参数")
private String specification;
@ApiModelProperty("资产编号")
private String assetCode;
// 采购信息从采购数据继承
@ApiModelProperty("采购订单号")
private String purchaseOrder;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("采购价格")
private BigDecimal purchasePrice;
@ApiModelProperty("采购时间")
private String purchaseTime;
@ApiModelProperty("数量")
private Integer quantity;
@ApiModelProperty("单价")
private BigDecimal unitPrice;
@ApiModelProperty("总价")
private BigDecimal totalPrice;
// 入库信息
@ApiModelProperty("入库时间")
private String inStockTime;
@ApiModelProperty("物理位置")
private String physicalLocation;
@ApiModelProperty("位置状态")
private String locationStatus;
@ApiModelProperty("负责人")
private String responsiblePerson;
// 状态信息
@ApiModelProperty("设备状态")
private String equipmentStatus;
@ApiModelProperty("使用状态")
private String useStatus;
@ApiModelProperty("健康状态")
private String healthStatus;
@ApiModelProperty("收货状态")
private String receiptStatus;
// 其他管理信息
@ApiModelProperty("折旧方法")
private String depreciationMethod;
@ApiModelProperty("折旧年限")
private Integer depreciationYears;
@ApiModelProperty("残值")
private BigDecimal salvageValue;
@ApiModelProperty("当前净值")
private BigDecimal currentNetValue;
// 系统字段
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("更新时间")
private String updateTime;
}

View File

@ -0,0 +1,39 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangna
* @date 2025/08/05
* @Description: 团队成员查询参数支持筛选分页搜索
*/
@Data
@ApiModel(value="TeamMemberQuery对象", description="团队成员查询参数")
public class TeamMemberQuery {
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("姓名搜索")
private String name;
@ApiModelProperty("岗位筛选")
private String position;
@ApiModelProperty("状态筛选")
private String status;
@ApiModelProperty("当前页码")
private Integer pageNum = 1;
@ApiModelProperty("每页大小")
private Integer pageSize = 10;
@ApiModelProperty("排序列")
private String orderByColumn;
@ApiModelProperty("排序方向")
private String isAsc = "asc";
}

View File

@ -0,0 +1,60 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @author wangna
* @date 2025/08/05
* @Description: 团队成员请求类用于创建和更新
*/
@Data
@ApiModel(value="TeamMemberReq对象", description="团队成员请求类")
public class TeamMemberReq implements Serializable {
@NotBlank(message = "项目ID不能为空")
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("机组ID可选")
private String turbineId;
@ApiModelProperty("任务组ID可选")
private String taskGroupId;
@ApiModelProperty("任务ID可选")
private String taskId;
@NotBlank(message = "用户ID不能为空")
@ApiModelProperty("用户ID")
private String userId;
@NotBlank(message = "角色类型不能为空")
@ApiModelProperty("项目角色类型PROJECT_MANAGER-项目经理SAFETY_OFFICER-安全员QUALITY_OFFICER-质量员CONSTRUCTOR-施工人员TEAM_LEADER-施工组长")
private String roleType;
@ApiModelProperty("具体岗位代码GROUND_SERVICE-地勤DRIVER-司机ASCENDING-登高等)")
private String jobCode;
@ApiModelProperty("岗位描述")
private String jobDesc;
@NotNull(message = "加入时间不能为空")
@ApiModelProperty("加入时间")
private LocalDate joinDate;
@ApiModelProperty("离开时间")
private LocalDate leaveDate;
@ApiModelProperty("状态ACTIVE-在职INACTIVE-离职PENDING-待入职")
private String status = "ACTIVE";
@ApiModelProperty("备注")
private String remark;
}

View File

@ -0,0 +1,60 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
/**
* @author wangna
* @date 2025/08/05
* @Description: 团队成员更新请求类用于更新操作移除必填验证
*/
@Data
@ApiModel(value="TeamMemberUpdateReq对象", description="团队成员更新请求类")
public class TeamMemberUpdateReq implements Serializable {
@ApiModelProperty("项目ID")
private String projectId;
@ApiModelProperty("机组ID可选")
private String turbineId;
@ApiModelProperty("任务组ID可选")
private String taskGroupId;
@ApiModelProperty("任务ID可选")
private String taskId;
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("项目角色类型PROJECT_MANAGER-项目经理SAFETY_OFFICER-安全员QUALITY_OFFICER-质量员CONSTRUCTOR-施工人员TEAM_LEADER-施工组长")
private String roleType;
@ApiModelProperty("具体岗位代码GROUND_SERVICE-地勤DRIVER-司机ASCENDING-登高等)")
private String jobCode;
@ApiModelProperty("岗位描述")
private String jobDesc;
@ApiModelProperty("加入时间")
private LocalDate joinDate;
@ApiModelProperty("离开时间")
private LocalDate leaveDate;
@ApiModelProperty("状态ACTIVE-在职INACTIVE-离职PENDING-待入职")
private String status = "ACTIVE";
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("用户电话")
private String phone;
@ApiModelProperty("用户邮箱")
private String email;
}

View File

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

View File

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

View File

@ -0,0 +1,29 @@
package com.dite.znpt.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* @author hedechao
* @date 2025/8/8 09:10
* @Description:
*/
@Data
@ApiModel("视频列表查询实体")
public class VideoReq implements Serializable {
@Serial
private static final long serialVersionUID = 771014582625089979L;
@ApiModelProperty("项目id")
private String projectId;
@ApiModelProperty("视频类型")
private String[] type;
@ApiModelProperty("机组id")
private String turbineId;
@ApiModelProperty("是否已审核0未审核1已审核")
private Boolean State;
}

View File

@ -20,6 +20,9 @@ public enum AttachBusinessTypeEnum {
REPORT("report", "报告"), REPORT("report", "报告"),
PROJECT_BUDGE("project_budge", "预算文件"), PROJECT_BUDGE("project_budge", "预算文件"),
PROJECT_DAILY_REPORT("project_daily_report", "项目日报文件"), PROJECT_DAILY_REPORT("project_daily_report", "项目日报文件"),
BIDDING_INFO("bidding_info", "招标信息"),
TENDER_INFO("tender_info", "投标信息"),
OUTBID_INFO("outbid_info", "中标信息"),
; ;
private final String code; private final String code;
private final String desc; private final String desc;

View File

@ -0,0 +1,54 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Bear.G
* @date 2025/5/27/周二 15:33
* @description
*/
@Getter
public enum ContractStatusEnum {
UN_APPROVAL("UN_APPROVAL", "待审批"),
UN_SETTLED("UN_SETTLED", "待结算"),
UN_PAY("UN_PAY", "待收款"),
COMPLETE("COMPLETE", "已完成"),
;
private final String code;
private final String desc;
ContractStatusEnum(String code, String desc){
this.code = code;
this.desc = desc;
}
public static ContractStatusEnum getByCode(String code){
for (ContractStatusEnum e : ContractStatusEnum.values() ) {
if(e.code.equals(code)){
return e;
}
}
return null;
}
public static String getDescByCode(String code){
ContractStatusEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll(){
List<JSONObject> list = new ArrayList<>(ContractStatusEnum.values().length);
for (ContractStatusEnum e : ContractStatusEnum.values() ) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(e.code, e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,53 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/31/周四 15:30
* @description 设备健康状态枚举
*/
@Getter
public enum HealthStatusEnum {
EXCELLENT("excellent", "优秀"),
GOOD("good", "良好"),
NORMAL("normal", "一般"),
POOR("poor", "较差"),
BAD("bad", "");
private final String code;
private final String desc;
HealthStatusEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static HealthStatusEnum getByCode(String code) {
for (HealthStatusEnum e : HealthStatusEnum.values()) {
if (e.code.equals(code)) {
return e;
}
}
return null;
}
public static String getDescByCode(String code) {
HealthStatusEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll() {
List<JSONObject> list = new ArrayList<>(HealthStatusEnum.values().length);
for (HealthStatusEnum e : HealthStatusEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(e.code, e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,55 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/31/周四 15:30
* @description 设备位置状态枚举
*/
@Getter
public enum LocationStatusEnum {
IN_STOCK("in_stock", "库存中"),
ALLOCATED("allocated", "已分配"),
REPAIR("repair", "维修中"),
SCRAP("scrap", "待报废"),
SCRAPPED("scrapped", "已报废"),
BORROWED("borrowed", "外借中"),
LOST("lost", "丢失");
private final String code;
private final String desc;
LocationStatusEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static LocationStatusEnum getByCode(String code) {
for (LocationStatusEnum e : LocationStatusEnum.values()) {
if (e.code.equals(code)) {
return e;
}
}
return null;
}
public static String getDescByCode(String code) {
LocationStatusEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll() {
List<JSONObject> list = new ArrayList<>(LocationStatusEnum.values().length);
for (LocationStatusEnum e : LocationStatusEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(e.code, e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,52 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
/**
* 支付状态枚举
*
* @author system
* @date 2025-01-08
*/
@Getter
public enum PaymentStatusEnum {
NOT_PAID("NOT_PAID", "未支付"),
PARTIALLY_PAID("PARTIALLY_PAID", "部分支付"),
PAID("PAID", "已支付");
private final String code;
private final String desc;
PaymentStatusEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static PaymentStatusEnum getByCode(String code) {
for (PaymentStatusEnum e : PaymentStatusEnum.values()) {
if (e.code.equals(code)) {
return e;
}
}
return null;
}
public static String getDescByCode(String code) {
PaymentStatusEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll() {
List<JSONObject> list = new ArrayList<>(PaymentStatusEnum.values().length);
for (PaymentStatusEnum e : PaymentStatusEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(e.code, e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,72 @@
package com.dite.znpt.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目岗位代码枚举
*/
@Getter
@AllArgsConstructor
public enum ProjectJobCodeEnum {
// 地勤相关岗位
GROUND_SERVICE("GROUND_SERVICE", "地勤"),
GROUND_SERVICE_LEADER("GROUND_SERVICE_LEADER", "地勤组长"),
// 司机相关岗位
DRIVER("DRIVER", "司机"),
DRIVER_LEADER("DRIVER_LEADER", "司机组长"),
// 登高相关岗位
ASCENDING("ASCENDING", "登高"),
ASCENDING_LEADER("ASCENDING_LEADER", "登高组长"),
// 防雷相关岗位
ANTI_THUNDER("ANTI_THUNDER", "防雷"),
ANTI_THUNDER_LEADER("ANTI_THUNDER_LEADER", "防雷组长"),
// 外部工作相关岗位
OUT_WORK("OUT_WORK", "外部工作"),
OUT_WORK_LEADER("OUT_WORK_LEADER", "外部工作组长"),
// 管理岗位
PROJECT_MANAGER("PROJECT_MANAGER", "项目经理"),
SAFETY_MANAGER("SAFETY_MANAGER", "安全经理"),
QUALITY_MANAGER("QUALITY_MANAGER", "质量经理"),
SITE_MANAGER("SITE_MANAGER", "现场经理"),
// 其他岗位
TECHNICIAN("TECHNICIAN", "技术员"),
SUPERVISOR("SUPERVISOR", "监理"),
COORDINATOR("COORDINATOR", "协调员");
private final String code;
private final String desc;
/**
* 根据代码获取描述
*/
public static String getDescByCode(String code) {
for (ProjectJobCodeEnum jobCode : values()) {
if (jobCode.getCode().equals(code)) {
return jobCode.getDesc();
}
}
return "";
}
/**
* 根据代码获取枚举
*/
public static ProjectJobCodeEnum getByCode(String code) {
for (ProjectJobCodeEnum jobCode : values()) {
if (jobCode.getCode().equals(code)) {
return jobCode;
}
}
return null;
}
}

View File

@ -0,0 +1,53 @@
package com.dite.znpt.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目角色类型枚举
*/
@Getter
@AllArgsConstructor
public enum ProjectRoleTypeEnum {
PROJECT_MANAGER("PROJECT_MANAGER", "项目经理"),
SAFETY_OFFICER("SAFETY_OFFICER", "安全员"),
QUALITY_OFFICER("QUALITY_OFFICER", "质量员"),
CONSTRUCTOR("CONSTRUCTOR", "施工人员"),
TEAM_LEADER("TEAM_LEADER", "施工组长"),
SENIOR_PROJECT_MANAGER("SENIOR_PROJECT_MANAGER", "大项目经理"),
REMOTE_ADVISOR("REMOTE_ADVISOR", "项目远程顾问"),
EXTERNAL_COLLABORATOR("EXTERNAL_COLLABORATOR", "外部协作者"),
FINANCIAL_MANAGER("FINANCIAL_MANAGER", "财务经理"),
BUSINESS_MANAGER("BUSINESS_MANAGER", "商务经理"),
SITE_MANAGER("SITE_MANAGER", "现场经理");
private final String code;
private final String desc;
/**
* 根据代码获取描述
*/
public static String getDescByCode(String code) {
for (ProjectRoleTypeEnum roleType : values()) {
if (roleType.getCode().equals(code)) {
return roleType.getDesc();
}
}
return "";
}
/**
* 根据代码获取枚举
*/
public static ProjectRoleTypeEnum getByCode(String code) {
for (ProjectRoleTypeEnum roleType : values()) {
if (roleType.getCode().equals(code)) {
return roleType;
}
}
return null;
}
}

View File

@ -15,11 +15,14 @@ import java.util.List;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum ProjectStatusEnum { public enum ProjectStatusEnum {
PENDING(0, "待施工"), PENDING(0, "未开工"),
IN_PROGRESS(1, "施工中"), PREPARING(1, "筹备中"),
COMPLETED(2, "已完工"), IN_PROGRESS(2, "开工中"),
AUDITED(3, "已审核"), SUSPENDED(3, "暂停中"),
ACCEPTED(4, "已验收"); COMPLETED(4, "已完工"),
IN_ACCEPTANCE(5, "验收中"),
IN_COLLECTION(6, "回款中"),
SETTLED(7, "已结算");
private final int code; private final int code;
private final String desc; private final String desc;

View File

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

View File

@ -0,0 +1,52 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
/**
* 收货状态枚举
*
* @author system
* @date 2025-01-08
*/
@Getter
public enum ReceiptStatusEnum {
NOT_RECEIVED("NOT_RECEIVED", "未收货"),
PARTIALLY_RECEIVED("PARTIALLY_RECEIVED", "部分收货"),
RECEIVED("RECEIVED", "已收货");
private final String code;
private final String desc;
ReceiptStatusEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static ReceiptStatusEnum getByCode(String code) {
for (ReceiptStatusEnum e : ReceiptStatusEnum.values()) {
if (e.code.equals(code)) {
return e;
}
}
return null;
}
public static String getDescByCode(String code) {
ReceiptStatusEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll() {
List<JSONObject> list = new ArrayList<>(ReceiptStatusEnum.values().length);
for (ReceiptStatusEnum e : ReceiptStatusEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(e.code, e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,45 @@
package com.dite.znpt.enums;
import cn.hutool.json.JSONObject;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
@Getter
public enum VideoMonitorEnum {
CLEARANCE("clearance","净空监测"),
DEFORMATION("deformation","形变监测");
private final String code;
private final String desc;
VideoMonitorEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static VideoMonitorEnum getByCode(String code) {
for (VideoMonitorEnum e : VideoMonitorEnum.values()) {
if (e.code.equals(code)) {
return e;
}
}
return null;
}
public static String getDescByCode(String code) {
VideoMonitorEnum e = getByCode(code);
return null == e ? null : e.desc;
}
public static List<JSONObject> listAll() {
List<JSONObject> list = new ArrayList<>(UserStatusEnum.values().length);
for (VideoMonitorEnum e : VideoMonitorEnum.values()) {
JSONObject jsonObject = new JSONObject();
jsonObject.set(e.code, e.desc);
list.add(jsonObject);
}
return list;
}
}

View File

@ -0,0 +1,18 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.BiddingInfoEntity;
import com.dite.znpt.domain.vo.BiddingInfoResp;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:06
* @description
*/
public interface BiddingInfoMapper extends BaseMapper<BiddingInfoEntity> {
List<BiddingInfoResp> listBiddingInfoResp(@Param("projectName") String projectName);
}

View File

@ -0,0 +1,50 @@
package com.dite.znpt.mapper;
import com.dite.znpt.domain.entity.BusinessDataFileEntity;
import com.dite.znpt.domain.entity.BusinessDataEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@ApiOperation("商务资料文件对象")
@Mapper
public interface BusinessDataFileMapper {
// 新增文件预览方法
// public List<BusinessDataFileEntity> List(@Param("folderId") Long folderId, @Param("fileName") String fileName);
public List<BusinessDataFileEntity> List(
@Param("folderId") Long folderId,
@Param("fileName") String fileName,
@Param("sortField") String sortField,
@Param("sortOrder") String sortOrder);
void delete(@Param("fileId") Long fileId,
@Param("folderId") Long folderId);
void add(BusinessDataFileEntity businessDataFileEntity);
String getPath(Long fileId);
// 在接口中添加重命名方法
void reName(@Param("fileId") Long fileId,
@Param("newFileName") String newFileName,
@Param("newFilePath") String newFilePath);
// // 批量更新文件路径
// void updateFilePathByFolderId(
// @Param("folderId") Long folderId,
// @Param("newFolderPath") String newFolderPath,
// @Param("separator") String separator);
// 批量更新子文件夹下文件的路径
void updateSubFilePaths(@Param("oldParentPath1") String oldParentPath1,
@Param("newParentPath1") String newParentPath1,
@Param("oldParentPath2") String oldParentPath2
);
}

View File

@ -0,0 +1,40 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.injector.methods.SelectList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.BusinessDataEntity;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDateTime;
import java.util.List;
@ApiOperation("商务资料文件夹对象")
@Mapper
public interface BusinessDataMapper {
public String getPath(Long parentId);
public List<BusinessDataEntity> List();
void insert(BusinessDataEntity businessDataEntity);
void delete(Long folderId);
void reName(BusinessDataEntity businessDataEntity);
public List<BusinessDataEntity> ListWithCondition(@Param("folderName") String folderName);
// 批量更新子文件夹路径
void updateSubFolderPaths(@Param("oldParentPath1") String oldParentPath,
@Param("newParentPath1") String newParentPath,
@Param("processedOldParentPath") String processedOldParentPath,
@Param("processedNewParentPath") String processedNewParentPath,
@Param("folderId") Long folderId
);
}

View File

@ -0,0 +1,11 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.ExpenseTypeEntity;
import org.mapstruct.Mapper;
import java.util.List;
public interface ExpenseTypeMapper extends BaseMapper<ExpenseTypeEntity> {
List<ExpenseTypeEntity> search(String key);
}

View File

@ -0,0 +1,19 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.OutbidInfoEntity;
import com.dite.znpt.domain.vo.OutbidInfoResp;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:11
* @description
*/
public interface OutbidInfoMapper extends BaseMapper<OutbidInfoEntity> {
List<OutbidInfoResp> listOutbidInfoResp(@Param("projectName") String projectName);
OutbidInfoResp getOutbidInfoResp(@Param("outbidInfoId") String outbidInfoId);
}

View File

@ -2,6 +2,10 @@ package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.PostEntity; import com.dite.znpt.domain.entity.PostEntity;
import com.dite.znpt.domain.vo.PostListReq;
import com.dite.znpt.domain.vo.PostResp;
import java.util.List;
/** /**
* @author Bear.G * @author Bear.G
@ -9,4 +13,6 @@ import com.dite.znpt.domain.entity.PostEntity;
* @description * @description
*/ */
public interface PostMapper extends BaseMapper<PostEntity> { public interface PostMapper extends BaseMapper<PostEntity> {
List<PostResp> selectPostResp(PostListReq req);
} }

View File

@ -0,0 +1,23 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.ProjectMemberEntity;
import com.dite.znpt.domain.vo.ProjectMemberResp;
import com.dite.znpt.domain.vo.TeamMemberQuery;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author wangna
* @date 2025/08/05
* @Description: 项目人员关联表Mapper接口
*/
@Mapper
public interface ProjectMemberMapper extends BaseMapper<ProjectMemberEntity> {
/**
* 获取项目团队成员列表支持筛选分页搜索
*/
List<ProjectMemberResp> queryTeamMembers(TeamMemberQuery query);
}

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.ProjectTaskEntity; import com.dite.znpt.domain.entity.ProjectTaskEntity;
import com.dite.znpt.domain.vo.ProjectTaskListReq; import com.dite.znpt.domain.vo.ProjectTaskListReq;
import com.dite.znpt.domain.vo.ProjectTaskResp; import com.dite.znpt.domain.vo.ProjectTaskResp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -13,6 +14,7 @@ import java.util.List;
* @date 2025/06/24 16:44 * @date 2025/06/24 16:44
* @Description: 项目任务信息表数据库访问层 * @Description: 项目任务信息表数据库访问层
*/ */
@Mapper
public interface ProjectTaskMapper extends BaseMapper<ProjectTaskEntity> { public interface ProjectTaskMapper extends BaseMapper<ProjectTaskEntity> {
List<ProjectTaskResp> queryBySelective(ProjectTaskListReq projectTaskReq); List<ProjectTaskResp> queryBySelective(ProjectTaskListReq projectTaskReq);

View File

@ -18,7 +18,7 @@ public interface RegulationTypeMapper extends BaseMapper<RegulationTypeEntity> {
* 分页查询制度类型列表包含创建人姓名 * 分页查询制度类型列表包含创建人姓名
* @param page 分页参数 * @param page 分页参数
* @param typeName 类型名称 * @param typeName 类型名称
* @param status 状态 * @param status 是否启用1-启用0-禁用
* @param remark 备注 * @param remark 备注
* @return 分页结果 * @return 分页结果
*/ */

View File

@ -0,0 +1,20 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.TenderInfoEntity;
import com.dite.znpt.domain.vo.TenderInfoResp;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
/**
* @author Bear.G
* @date 2025/7/28/周一 16:08
* @description
*/
public interface TenderInfoMapper extends BaseMapper<TenderInfoEntity> {
List<TenderInfoResp> listTenderInfoResp(@Param("projectName") String projectName);
TenderInfoResp getTenderInfoResp(@Param("tenderInfoId") String tenderInfoId);
}

View File

@ -0,0 +1,12 @@
package com.dite.znpt.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.VideoMonitorEntity;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface VideoMonitorEntityMapper extends BaseMapper<VideoMonitorEntity> {
List<VideoMonitorEntity> selectAllByProjectIdAndPartId(@Param("projectId") String projectId, @Param("partId") String partId);
int batchInsert(@Param("list") List<VideoMonitorEntity> list);
}

View File

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

View File

@ -0,0 +1,51 @@
package com.dite.znpt.service;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.entity.BusinessDataFileEntity;
import com.dite.znpt.domain.page.PageBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
@ApiOperation("商务资料文件service")
@Service
public interface BusinessDataFileService {
// @ApiOperation("分页查询文件")
// PageBean pageSelect(Integer page, Integer pageSize, Long folderId, String fileName);
@ApiOperation("分页查询文件")
PageBean pageSelect(Integer page, Integer pageSize, Long folderId, String fileName, String sortField, String sortOrder);
@ApiOperation("删除文件")
Result delete(@RequestParam(value = "fileId", required = false) Long fileId,@RequestParam(value = "foldelId", required = false) Long folderId);
@ApiOperation("增加数据库文件信息")
void add(BusinessDataFileEntity businessDataFileEntity);
@ApiOperation("获取文件路径")
String getPath(Long fileId);
@ApiOperation("删除文件")
// 在接口中添加重命名方法
Result reName(Long fileId, String newFileName);
@ApiOperation("下载文件")
void upload(Long fileId, HttpServletResponse response);
@ApiOperation("上传文件")
Result addfile(MultipartFile file, Long folderId);
@ApiOperation("预览文件")
void preview(Long fileId, HttpServletResponse response);
// @ApiOperation("批量更新文件路径")
// public void updateFilePathByFolderId(Long folderId, String newFolderPath);
@ApiOperation("批量更新子文件夹下文件的路径")
void updateSubFilePaths(String oldParentPath, String newParentPath);
}

View File

@ -0,0 +1,20 @@
package com.dite.znpt.service;
import com.dite.znpt.domain.Result;
import com.dite.znpt.domain.page.PageBean;
import io.swagger.annotations.ApiOperation;
import javax.servlet.http.HttpServletResponse;
@ApiOperation("商务资料文件夹service")
public interface BusinessDataService {
PageBean pageSelect(Integer page, Integer pageSize, String folderName);
Result createFolder(String folderName, Long parentId);
String getPath(Long parentId);
Result delete(Long folderId);
Result reName(Long folderId, String newName);
void updateSubFolderPaths(String oldParentPath1, String newParentPath1, Long folderId);
}

View File

@ -0,0 +1,30 @@
//package com.dite.znpt.service;
//
//import org.springframework.stereotype.Service;
//
//@Service
//public interface EmailService {
// /**
// * 发送邮箱验证码
// * @param email
// * @param code
// * @return
// */
// public boolean sendVerificationCode(String email, String code);
//
// /**
// * 生成验证码
// * @param email
// * @return
// */
// public String generateCode(String email);
//
// /**
// * 验证邮箱验证码
// * @param email
// * @param code
// * @return
// */
// public boolean verifyCode(String email, String code);
//
//}

View File

@ -0,0 +1,60 @@
package com.dite.znpt.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dite.znpt.domain.vo.EquipmentApprovalListReq;
import com.dite.znpt.domain.vo.EquipmentApprovalReq;
import com.dite.znpt.domain.vo.EquipmentApprovalResp;
import com.dite.znpt.domain.vo.EquipmentProcurementApplyReq;
/**
* @author Bear.G
* @date 2025/1/8/周三 17:50
* @description 设备审批服务接口
*/
public interface EquipmentApprovalService {
/**
* 分页查询待审批的设备采购申请
*/
IPage<EquipmentApprovalResp> getPendingApprovals(EquipmentApprovalListReq req);
/**
* 分页查询已审批的设备采购申请
*/
IPage<EquipmentApprovalResp> getApprovedApprovals(EquipmentApprovalListReq req);
/**
* 审批通过
*/
void approve(String approvalId, EquipmentApprovalReq req);
/**
* 审批拒绝
*/
void reject(String approvalId, EquipmentApprovalReq req);
/**
* 获取审批详情
*/
EquipmentApprovalResp getApprovalDetail(String approvalId);
/**
* 获取审批统计信息
*/
Object getApprovalStats();
/**
* 提交采购申请
*/
void submitProcurementApplication(EquipmentProcurementApplyReq req);
/**
* 获取我的采购申请
*/
IPage<EquipmentApprovalResp> getMyProcurementApplications(EquipmentApprovalListReq req);
/**
* 撤回采购申请
*/
void withdrawProcurementApplication(String approvalId);
}

View File

@ -1,24 +1,96 @@
package com.dite.znpt.service; package com.dite.znpt.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.dite.znpt.domain.entity.EquipmentEntity; import com.dite.znpt.domain.entity.EquipmentEntity;
import com.dite.znpt.domain.vo.EquipmentListReq; import com.dite.znpt.domain.vo.EquipmentListReq;
import com.dite.znpt.domain.vo.EquipmentReq; import com.dite.znpt.domain.vo.EquipmentReq;
import com.dite.znpt.domain.vo.EquipmentResp; import com.dite.znpt.domain.vo.EquipmentResp;
import com.dite.znpt.domain.vo.EquipmentUseRecordReq; import com.dite.znpt.domain.vo.ReceiptRequest;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 设备服务接口
* @author Bear.G * @author Bear.G
* @date 2025/7/23/周三 17:39 * @date 2025/7/23/周三 17:39
* @description * @description
*/ */
public interface EquipmentService extends IService<EquipmentEntity> { public interface EquipmentService extends IService<EquipmentEntity> {
List<EquipmentResp> page(EquipmentListReq req);
List<EquipmentResp> list(EquipmentListReq req); /**
* 分页查询设备信息
*/
IPage<EquipmentResp> page(EquipmentListReq req);
/**
* 查询设备详情
*/
EquipmentResp detail(String equipmentId); EquipmentResp detail(String equipmentId);
/**
* 新增设备
*/
void save(EquipmentReq req); void save(EquipmentReq req);
/**
* 修改设备
*/
void update(String equipmentId, EquipmentReq req); void update(String equipmentId, EquipmentReq req);
/**
* 删除设备
*/
void deleteById(String equipmentId); void deleteById(String equipmentId);
/**
* 批量删除设备
*/
void batchDelete(List<String> equipmentIds);
/**
* 获取采购统计信息
*/
Object getProcurementStats();
/**
* 确认收货并自动入库
*/
void receiveGoodsAndStockIn(String equipmentId, ReceiptRequest req);
/**
* 导出采购记录
*/
byte[] exportProcurement(EquipmentListReq req);
/**
* 分页查询设备采购记录
*/
IPage<EquipmentResp> procurementPage(EquipmentListReq req);
/**
* 新增设备采购记录
*/
void saveProcurement(EquipmentReq req);
/**
* 修改设备采购记录
*/
void updateProcurement(String equipmentId, EquipmentReq req);
/**
* 分页查询设备盘库记录
*/
IPage<EquipmentResp> inventoryPage(EquipmentListReq req);
/**
* 执行设备盘库
*/
void executeInventory(String equipmentId, String inventoryResult, String remark);
/**
* 批量执行设备盘库
*/
void batchExecuteInventory(List<String> equipmentIds, String inventoryResult, String remark);
} }

Some files were not shown because too many files have changed in this diff Show More