From 90215340615c6943464019ccf16fe7d02ee17d55 Mon Sep 17 00:00:00 2001 From: wangqian <1406304305@qq.com> Date: Thu, 20 Nov 2025 10:01:42 +0800 Subject: [PATCH] 派单及人机材功能迁移 --- urbanops-module-garden/pom.xml | 5 +++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/AssignTasksController.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksPageReqVO.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksRespVO.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksSaveReqVO.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/AssignTasksInfoController.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoPageReqVO.java | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoRespVO.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoSaveReqVO.java | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/DepartmentCostController.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostRespVO.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostSaveReqVO.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/MechanicalCostController.java | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostPageReqVO.java | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostRespVO.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/MechanicalDepreciationController.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationPageReqVO.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationRespVO.java | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationSaveReqVO.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostPageReqVO.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostRespVO.java | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java | 41 +++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java | 39 +++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasks/AssignTasksDO.java | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasksinfo/AssignTasksInfoDO.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/departmentcost/DepartmentCostDO.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicaldepreciation/MechanicalDepreciationDO.java | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/personalcost/PersonalCostDO.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasks/AssignTasksMapper.java | 36 ++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasksinfo/AssignTasksInfoMapper.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java | 35 +++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java | 42 ++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicaldepreciation/MechanicalDepreciationMapper.java | 37 +++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java | 35 +++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java | 42 ++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java | 33 +++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java | 16 ++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/CostFeeConstants.java | 22 ++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksService.java | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoService.java | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostService.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostServiceImpl.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostService.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationService.java | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostService.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostService.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/resources/mapper/assigntasksinfo/AssignTasksInfoMapper.xml | 26 ++++++++++++++++++++++++++ urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml | 12 ++++++++++++ urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml | 12 ++++++++++++ urbanops-module-garden/src/main/resources/mapper/mechanicaldepreciation/MechanicalDepreciationMapper.xml | 12 ++++++++++++ urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml | 12 ++++++++++++ urbanops-module-garden/src/main/resources/mapper/rentalmechanicalcost/RentalMechanicalCostMapper.xml | 12 ++++++++++++ urbanops-module-garden/src/main/resources/mapper/teambizdomainrel/TeamBizdomainRelMapper.xml | 12 ++++++++++++ urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml | 12 ++++++++++++ 76 files changed, 5248 insertions(+), 0 deletions(-) create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/AssignTasksController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/AssignTasksInfoController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/DepartmentCostController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/MechanicalCostController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/MechanicalDepreciationController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasks/AssignTasksDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasksinfo/AssignTasksInfoDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/departmentcost/DepartmentCostDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicaldepreciation/MechanicalDepreciationDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/personalcost/PersonalCostDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasks/AssignTasksMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasksinfo/AssignTasksInfoMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicaldepreciation/MechanicalDepreciationMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/CostFeeConstants.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java create mode 100644 urbanops-module-garden/src/main/resources/mapper/assigntasksinfo/AssignTasksInfoMapper.xml create mode 100644 urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml create mode 100644 urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml create mode 100644 urbanops-module-garden/src/main/resources/mapper/mechanicaldepreciation/MechanicalDepreciationMapper.xml create mode 100644 urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml create mode 100644 urbanops-module-garden/src/main/resources/mapper/rentalmechanicalcost/RentalMechanicalCostMapper.xml create mode 100644 urbanops-module-garden/src/main/resources/mapper/teambizdomainrel/TeamBizdomainRelMapper.xml create mode 100644 urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml diff --git a/urbanops-module-garden/pom.xml b/urbanops-module-garden/pom.xml index a539397..975424e 100644 --- a/urbanops-module-garden/pom.xml +++ b/urbanops-module-garden/pom.xml @@ -114,6 +114,11 @@ tika-core + + com.zteits.boot + urbanops-module-system + ${revision} + diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/AssignTasksController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/AssignTasksController.java new file mode 100644 index 0000000..09f53c1 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/AssignTasksController.java @@ -0,0 +1,112 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasks; + +import jakarta.annotation.security.PermitAll; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasks.AssignTasksDO; +import com.zteits.urbanops.module.garden.service.assigntasks.AssignTasksService; + +@Tag(name = "管理后台 - 派单任务主表(记录派单任务基本信息)") +@RestController +@RequestMapping("/garden/assign-tasks") +@Validated +public class AssignTasksController { + + @Resource + private AssignTasksService assignTasksService; + + @PostMapping("/create") + @Operation(summary = "创建派单任务主表(记录派单任务基本信息)") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:create')") + public CommonResult createAssignTasks(@Valid @RequestBody AssignTasksSaveReqVO createReqVO) { + return success(assignTasksService.createAssignTasks(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新派单任务主表(记录派单任务基本信息)") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:update')") + public CommonResult updateAssignTasks(@Valid @RequestBody AssignTasksSaveReqVO updateReqVO) { + assignTasksService.updateAssignTasks(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除派单任务主表(记录派单任务基本信息)") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:delete')") + public CommonResult deleteAssignTasks(@RequestParam("id") Long id) { + assignTasksService.deleteAssignTasks(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除派单任务主表(记录派单任务基本信息)") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:delete')") + public CommonResult deleteAssignTasksList(@RequestParam("ids") List ids) { + assignTasksService.deleteAssignTasksListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得派单任务主表(记录派单任务基本信息)") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:query')") + public CommonResult getAssignTasks(@RequestParam("id") Long id) { + AssignTasksDO assignTasks = assignTasksService.getAssignTasks(id); + return success(BeanUtils.toBean(assignTasks, AssignTasksRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得派单任务主表(记录派单任务基本信息)分页") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:query')") + public CommonResult> getAssignTasksPage(@Valid AssignTasksPageReqVO pageReqVO) { + PageResult pageResult = assignTasksService.getAssignTasksPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AssignTasksRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出派单任务主表(记录派单任务基本信息) Excel") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportAssignTasksExcel(@Valid AssignTasksPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = assignTasksService.getAssignTasksPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "派单任务主表(记录派单任务基本信息).xls", "数据", AssignTasksRespVO.class, + BeanUtils.toBean(list, AssignTasksRespVO.class)); + } + + @Operation(summary = "定时任务处理超时" ) + @PostMapping(value= "/tasksOutTimeAuto") + @PermitAll + public CommonResult tasksOutTimeAuto() { + return success(assignTasksService.tasksOutTimeAuto()); + } +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksPageReqVO.java new file mode 100644 index 0000000..c236f27 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksPageReqVO.java @@ -0,0 +1,49 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 派单任务主表(记录派单任务基本信息)分页 Request VO") +@Data +public class AssignTasksPageReqVO extends PageParam { + + @Schema(description = "任务名称", example = "张三") + private String taskName; + + @Schema(description = "任务类型(关联数据字典,如:日常巡检、紧急维修等)", example = "1") + private String taskType; + + @Schema(description = "任务截止时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] deadline; + + @Schema(description = "派单模板文件路径(如:任务详情模板、填报表格等)") + private String templateFile; + + @Schema(description = "任务整体完成状态(0:未完成,1:已完成;所有关联单位均完成时自动更新为1)") + private Integer parentFinish; + + @Schema(description = "整体完成时间(仅当parent_finish=1时有值)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] finishTime; + + @Schema(description = "任务备注(如:特殊要求、注意事项等)") + private String note; + + @Schema(description = "创建人(关联用户ID,任务派发人)") + private String creator; + + @Schema(description = "任务创建时间(派单时间)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "修改人(关联用户ID,最后修改人)") + private String updater; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksRespVO.java new file mode 100644 index 0000000..e8f3384 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksRespVO.java @@ -0,0 +1,60 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 派单任务主表(记录派单任务基本信息) Response VO") +@Data +@ExcelIgnoreUnannotated +public class AssignTasksRespVO { + + @Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3654") + @ExcelProperty("自增ID") + private Long id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("任务名称") + private String taskName; + + @Schema(description = "任务类型(关联数据字典,如:日常巡检、紧急维修等)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("任务类型(关联数据字典,如:日常巡检、紧急维修等)") + private String taskType; + + @Schema(description = "任务截止时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("任务截止时间") + private LocalDateTime deadline; + + @Schema(description = "派单模板文件路径(如:任务详情模板、填报表格等)") + @ExcelProperty("派单模板文件路径(如:任务详情模板、填报表格等)") + private String templateFile; + + @Schema(description = "任务整体完成状态(0:未完成,1:已完成;所有关联单位均完成时自动更新为1)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("任务整体完成状态(0:未完成,1:已完成;所有关联单位均完成时自动更新为1)") + private Integer parentFinish; + + @Schema(description = "整体完成时间(仅当parent_finish=1时有值)") + @ExcelProperty("整体完成时间(仅当parent_finish=1时有值)") + private LocalDateTime finishTime; + + @Schema(description = "任务备注(如:特殊要求、注意事项等)") + @ExcelProperty("任务备注(如:特殊要求、注意事项等)") + private String note; + + @Schema(description = "创建人(关联用户ID,任务派发人)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建人(关联用户ID,任务派发人)") + private String creator; + + @Schema(description = "任务创建时间(派单时间)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("任务创建时间(派单时间)") + private LocalDateTime createTime; + + @Schema(description = "修改人(关联用户ID,最后修改人)") + @ExcelProperty("修改人(关联用户ID,最后修改人)") + private String updater; + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksSaveReqVO.java new file mode 100644 index 0000000..ab964e6 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasks/vo/AssignTasksSaveReqVO.java @@ -0,0 +1,52 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 派单任务主表(记录派单任务基本信息)新增/修改 Request VO") +@Data +public class AssignTasksSaveReqVO { + + @Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3654") + private Long id; + + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "任务名称不能为空") + private String taskName; + + @Schema(description = "任务类型(关联数据字典,如:日常巡检、紧急维修等)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "任务类型(关联数据字典,如:日常巡检、紧急维修等)不能为空") + private String taskType; + + @Schema(description = "任务截止时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "任务截止时间不能为空") + private LocalDateTime deadline; + + @Schema(description = "派单模板文件路径(如:任务详情模板、填报表格等)") + private String templateFile; + + @Schema(description = "任务整体完成状态(0:未完成,1:已完成;所有关联单位均完成时自动更新为1)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotNull(message = "任务整体完成状态(0:未完成,1:已完成;所有关联单位均完成时自动更新为1)不能为空") + private Integer parentFinish; + + @Schema(description = "整体完成时间(仅当parent_finish=1时有值)") + private LocalDateTime finishTime; + + @Schema(description = "任务备注(如:特殊要求、注意事项等)") + private String note; + + @Schema(description = "创建人(关联用户ID,任务派发人)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "创建人(关联用户ID,任务派发人)不能为空") + private String creator; + + @Schema(description = "修改人(关联用户ID,最后修改人)") + private String updater; + + /*单位集合*/ + private String[] companyIds; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/AssignTasksInfoController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/AssignTasksInfoController.java new file mode 100644 index 0000000..e50aa90 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/AssignTasksInfoController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO; +import com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTasksInfoService; + +@Tag(name = "管理后台 - 派单任务-单位关联表(记录单位接收派单后的执行详情)") +@RestController +@RequestMapping("/garden/assign-tasks-info") +@Validated +public class AssignTasksInfoController { + + @Resource + private AssignTasksInfoService assignTasksInfoService; + + @PostMapping("/create") + @Operation(summary = "创建派单任务-单位关联表(记录单位接收派单后的执行详情)") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:create')") + public CommonResult createAssignTasksInfo(@Valid @RequestBody AssignTasksInfoSaveReqVO createReqVO) { + return success(assignTasksInfoService.createAssignTasksInfo(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新派单任务-单位关联表(记录单位接收派单后的执行详情)") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:update')") + public CommonResult updateAssignTasksInfo(@Valid @RequestBody AssignTasksInfoSaveReqVO updateReqVO) { + assignTasksInfoService.updateAssignTasksInfo(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除派单任务-单位关联表(记录单位接收派单后的执行详情)") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:delete')") + public CommonResult deleteAssignTasksInfo(@RequestParam("id") Long id) { + assignTasksInfoService.deleteAssignTasksInfo(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除派单任务-单位关联表(记录单位接收派单后的执行详情)") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:delete')") + public CommonResult deleteAssignTasksInfoList(@RequestParam("ids") List ids) { + assignTasksInfoService.deleteAssignTasksInfoListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得派单任务-单位关联表(记录单位接收派单后的执行详情)") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:query')") + public CommonResult getAssignTasksInfo(@RequestParam("id") Long id) { + AssignTasksInfoDO assignTasksInfo = assignTasksInfoService.getAssignTasksInfo(id); + return success(BeanUtils.toBean(assignTasksInfo, AssignTasksInfoRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得派单任务-单位关联表(记录单位接收派单后的执行详情)分页") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:query')") + public CommonResult> getAssignTasksInfoPage(@Valid AssignTasksInfoPageReqVO pageReqVO) { + PageResult pageResult = assignTasksInfoService.getAssignTasksInfoPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AssignTasksInfoRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出派单任务-单位关联表(记录单位接收派单后的执行详情) Excel") + @PreAuthorize("@ss.hasPermission('garden:assign-tasks-info:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportAssignTasksInfoExcel(@Valid AssignTasksInfoPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = assignTasksInfoService.getAssignTasksInfoPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "派单任务-单位关联表(记录单位接收派单后的执行详情).xls", "数据", AssignTasksInfoRespVO.class, + BeanUtils.toBean(list, AssignTasksInfoRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoPageReqVO.java new file mode 100644 index 0000000..9c7e538 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoPageReqVO.java @@ -0,0 +1,86 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 派单任务-单位关联表(记录单位接收派单后的执行详情)分页 Request VO") +@Data +public class AssignTasksInfoPageReqVO extends PageParam { + + @Schema(description = "关联派单任务主表ID(外键,关联td_assign_tasks.id)", example = "1875") + private Long taskId; + + @Schema(description = "单位ID(关联单位表主键)", example = "11926") + private String companyId; + + @Schema(description = "单位ID(关联单位表主键)", example = "张三") + private String companyName; + + @Schema(description = "填报人ID(单位指定的任务负责人)", example = "28216") + private String writePersonId; + + @Schema(description = "填报人姓名") + private String writePerson; + + @Schema(description = "填报人手机号") + private String writePersonPhone; + + @Schema(description = "填报时间(仅当finish=1时有值)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] writeTime; + + @Schema(description = "单位任务完成状态(0:未完成,1:已完成)") + private Integer finish; + + @Schema(description = "是否超期(0:未超期,1:超期;NULL:未到截止时间)") + private Integer isOverdue; + + @Schema(description = "单位提交的任务文件路径(如:填报表格、现场照片等)") + private String dataFile; + + @Schema(description = "催缴次数(未完成时的提醒次数)") + private Integer rushNum; + + @Schema(description = "新任务标记(0:未读,1:已读)") + private Integer newFlag; + + @Schema(description = "已读时间(仅当new_flag=1时有值)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] newFlagTime; + + @Schema(description = "驳回备注(当finish=2时,说明驳回原因)", example = "你说的对") + private String rejectRemark; + + @Schema(description = "单位任务确认状态(已确认/未确认,单位接收任务后需确认)") + private String confirm; + + @Schema(description = "确认时间(单位确认接收任务的时间)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] confirmTime; + + @Schema(description = "创建人(关联用户ID,将任务派给该单位的操作人)") + private String creator; + + @Schema(description = "关联记录创建时间(派单给单位的时间)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "修改人(关联用户ID,最后修改该记录的操作人)") + private String updater; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "是否打回0:正常 1:打回") + private Integer isReject; + + @Schema(description = "0:正常1:停用", example = "1") + private Integer status; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoRespVO.java new file mode 100644 index 0000000..d2c0d2a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoRespVO.java @@ -0,0 +1,107 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 派单任务-单位关联表(记录单位接收派单后的执行详情) Response VO") +@Data +@ExcelIgnoreUnannotated +public class AssignTasksInfoRespVO { + + @Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12148") + @ExcelProperty("自增ID") + private Long id; + + @Schema(description = "关联派单任务主表ID(外键,关联td_assign_tasks.id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1875") + @ExcelProperty("关联派单任务主表ID(外键,关联td_assign_tasks.id)") + private Long taskId; + + @Schema(description = "单位ID(关联单位表主键)", requiredMode = Schema.RequiredMode.REQUIRED, example = "11926") + @ExcelProperty("单位ID(关联单位表主键)") + private String companyId; + + @Schema(description = "单位ID(关联单位表主键)", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("单位ID(关联单位表主键)") + private String companyName; + + @Schema(description = "填报人ID(单位指定的任务负责人)", example = "28216") + @ExcelProperty("填报人ID(单位指定的任务负责人)") + private String writePersonId; + + @Schema(description = "填报人姓名") + @ExcelProperty("填报人姓名") + private String writePerson; + + @Schema(description = "填报人手机号") + @ExcelProperty("填报人手机号") + private String writePersonPhone; + + @Schema(description = "填报时间(仅当finish=1时有值)") + @ExcelProperty("填报时间(仅当finish=1时有值)") + private LocalDateTime writeTime; + + @Schema(description = "单位任务完成状态(0:未完成,1:已完成)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("单位任务完成状态(0:未完成,1:已完成)") + private Integer finish; + + @Schema(description = "是否超期(0:未超期,1:超期;NULL:未到截止时间)") + @ExcelProperty("是否超期(0:未超期,1:超期;NULL:未到截止时间)") + private Integer isOverdue; + + @Schema(description = "单位提交的任务文件路径(如:填报表格、现场照片等)") + @ExcelProperty("单位提交的任务文件路径(如:填报表格、现场照片等)") + private String dataFile; + + @Schema(description = "催缴次数(未完成时的提醒次数)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("催缴次数(未完成时的提醒次数)") + private Integer rushNum; + + @Schema(description = "新任务标记(0:未读,1:已读)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("新任务标记(0:未读,1:已读)") + private Integer newFlag; + + @Schema(description = "已读时间(仅当new_flag=1时有值)") + @ExcelProperty("已读时间(仅当new_flag=1时有值)") + private LocalDateTime newFlagTime; + + @Schema(description = "驳回备注(当finish=2时,说明驳回原因)", example = "你说的对") + @ExcelProperty("驳回备注(当finish=2时,说明驳回原因)") + private String rejectRemark; + + @Schema(description = "单位任务确认状态(已确认/未确认,单位接收任务后需确认)") + @ExcelProperty("单位任务确认状态(已确认/未确认,单位接收任务后需确认)") + private String confirm; + + @Schema(description = "确认时间(单位确认接收任务的时间)") + @ExcelProperty("确认时间(单位确认接收任务的时间)") + private LocalDateTime confirmTime; + + @Schema(description = "创建人(关联用户ID,将任务派给该单位的操作人)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建人(关联用户ID,将任务派给该单位的操作人)") + private String creator; + + @Schema(description = "关联记录创建时间(派单给单位的时间)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("关联记录创建时间(派单给单位的时间)") + private LocalDateTime createTime; + + @Schema(description = "修改人(关联用户ID,最后修改该记录的操作人)") + @ExcelProperty("修改人(关联用户ID,最后修改该记录的操作人)") + private String updater; + + @Schema(description = "备注", example = "你猜") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "是否打回0:正常 1:打回") + @ExcelProperty("是否打回0:正常 1:打回") + private Integer isReject; + + @Schema(description = "0:正常1:停用", example = "1") + @ExcelProperty("0:正常1:停用") + private Integer status; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoSaveReqVO.java new file mode 100644 index 0000000..f637d25 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/assigntasksinfo/vo/AssignTasksInfoSaveReqVO.java @@ -0,0 +1,87 @@ +package com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 派单任务-单位关联表(记录单位接收派单后的执行详情)新增/修改 Request VO") +@Data +public class AssignTasksInfoSaveReqVO { + + @Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12148") + private Long id; + + @Schema(description = "关联派单任务主表ID(外键,关联td_assign_tasks.id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1875") + @NotNull(message = "关联派单任务主表ID(外键,关联td_assign_tasks.id)不能为空") + private Long taskId; + + @Schema(description = "单位ID(关联单位表主键)", requiredMode = Schema.RequiredMode.REQUIRED, example = "11926") + @NotEmpty(message = "单位ID(关联单位表主键)不能为空") + private String companyId; + + @Schema(description = "单位ID(关联单位表主键)", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "单位ID(关联单位表主键)不能为空") + private String companyName; + + @Schema(description = "填报人ID(单位指定的任务负责人)", example = "28216") + private String writePersonId; + + @Schema(description = "填报人姓名") + private String writePerson; + + @Schema(description = "填报人手机号") + private String writePersonPhone; + + @Schema(description = "填报时间(仅当finish=1时有值)") + private LocalDateTime writeTime; + + @Schema(description = "单位任务完成状态(0:未完成,1:已完成)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotNull(message = "单位任务完成状态(0:未完成,1:已完成)不能为空") + private Integer finish; + + @Schema(description = "是否超期(0:未超期,1:超期;NULL:未到截止时间)") + private Integer isOverdue; + + @Schema(description = "单位提交的任务文件路径(如:填报表格、现场照片等)") + private String dataFile; + + @Schema(description = "催缴次数(未完成时的提醒次数)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "催缴次数(未完成时的提醒次数)不能为空") + private Integer rushNum; + + @Schema(description = "新任务标记(0:未读,1:已读)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "新任务标记(0:未读,1:已读)不能为空") + private Integer newFlag; + + @Schema(description = "已读时间(仅当new_flag=1时有值)") + private LocalDateTime newFlagTime; + + @Schema(description = "驳回备注(当finish=2时,说明驳回原因)", example = "你说的对") + private String rejectRemark; + + @Schema(description = "单位任务确认状态(已确认/未确认,单位接收任务后需确认)") + private String confirm; + + @Schema(description = "确认时间(单位确认接收任务的时间)") + private LocalDateTime confirmTime; + + @Schema(description = "创建人(关联用户ID,将任务派给该单位的操作人)", requiredMode = Schema.RequiredMode.REQUIRED) + //@NotEmpty(message = "创建人(关联用户ID,将任务派给该单位的操作人)不能为空") + private String creator; + + @Schema(description = "修改人(关联用户ID,最后修改该记录的操作人)") + private String updater; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "是否打回0:正常 1:打回") + private Integer isReject; + + @Schema(description = "0:正常1:停用", example = "1") + private Integer status; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/DepartmentCostController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/DepartmentCostController.java new file mode 100644 index 0000000..0c5ee00 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/DepartmentCostController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.departmentcost; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import com.zteits.urbanops.module.garden.service.departmentcost.DepartmentCostService; + +@Tag(name = "管理后台 - 部门费用录入") +@RestController +@RequestMapping("/garden/department-cost") +@Validated +public class DepartmentCostController { + + @Resource + private DepartmentCostService departmentCostService; + + @PostMapping("/create") + @Operation(summary = "创建部门费用录入") + @PreAuthorize("@ss.hasPermission('garden:department-cost:create')") + public CommonResult createDepartmentCost(@Valid @RequestBody DepartmentCostSaveReqVO createReqVO) { + return success(departmentCostService.createDepartmentCost(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新部门费用录入") + @PreAuthorize("@ss.hasPermission('garden:department-cost:update')") + public CommonResult updateDepartmentCost(@Valid @RequestBody DepartmentCostSaveReqVO updateReqVO) { + departmentCostService.updateDepartmentCost(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除部门费用录入") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:department-cost:delete')") + public CommonResult deleteDepartmentCost(@RequestParam("id") Long id) { + departmentCostService.deleteDepartmentCost(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除部门费用录入") + @PreAuthorize("@ss.hasPermission('garden:department-cost:delete')") + public CommonResult deleteDepartmentCostList(@RequestParam("ids") List ids) { + departmentCostService.deleteDepartmentCostListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得部门费用录入") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:department-cost:query')") + public CommonResult getDepartmentCost(@RequestParam("id") Long id) { + DepartmentCostDO departmentCost = departmentCostService.getDepartmentCost(id); + return success(BeanUtils.toBean(departmentCost, DepartmentCostRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得部门费用录入分页") + @PreAuthorize("@ss.hasPermission('garden:department-cost:query')") + public CommonResult> getDepartmentCostPage(@Valid DepartmentCostPageReqVO pageReqVO) { + PageResult pageResult = departmentCostService.getDepartmentCostPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DepartmentCostRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出部门费用录入 Excel") + @PreAuthorize("@ss.hasPermission('garden:department-cost:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportDepartmentCostExcel(@Valid DepartmentCostPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = departmentCostService.getDepartmentCostPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "部门费用录入.xls", "数据", DepartmentCostRespVO.class, + BeanUtils.toBean(list, DepartmentCostRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java new file mode 100644 index 0000000..5698e34 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java @@ -0,0 +1,48 @@ +package com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 部门费用录入分页 Request VO") +@Data +public class DepartmentCostPageReqVO extends PageParam { + + @Schema(description = "工资年月(如202506)") + private String salaryMonth; + + @Schema(description = "费用名称", example = "张三") + private String expenseName; + + @Schema(description = "部门名称", example = "芋艿") + private String departmentName; + + @Schema(description = "人员数量", example = "20926") + private Integer personCount; + + @Schema(description = "部门总额") + private BigDecimal deptTotalCost; + + @Schema(description = "归属公司", example = "赵六") + private String companyName; + + @Schema(description = "归属公司ID", example = "7417") + private String companyId; + + @Schema(description = "部门id", example = "11454") + private Long deptId; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostRespVO.java new file mode 100644 index 0000000..ec00c87 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostRespVO.java @@ -0,0 +1,60 @@ +package com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 部门费用录入 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DepartmentCostRespVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10037") + @ExcelProperty("记录ID,自增主键") + private Long id; + + @Schema(description = "工资年月(如202506)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工资年月(如202506)") + private String salaryMonth; + + @Schema(description = "费用名称", example = "张三") + @ExcelProperty("费用名称") + private String expenseName; + + @Schema(description = "部门名称", example = "芋艿") + @ExcelProperty("部门名称") + private String departmentName; + + @Schema(description = "人员数量", example = "20926") + @ExcelProperty("人员数量") + private Integer personCount; + + @Schema(description = "部门总额", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("部门总额") + private BigDecimal deptTotalCost; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("归属公司") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7417") + @ExcelProperty("归属公司ID") + private String companyId; + + @Schema(description = "部门id", example = "11454") + @ExcelProperty("部门id") + private Long deptId; + + @Schema(description = "备注", example = "你猜") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostSaveReqVO.java new file mode 100644 index 0000000..115ae4f --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostSaveReqVO.java @@ -0,0 +1,47 @@ +package com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 部门费用录入新增/修改 Request VO") +@Data +public class DepartmentCostSaveReqVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "10037") + private Long id; + + @Schema(description = "工资年月(如202506)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工资年月(如202506)不能为空") + private String salaryMonth; + + @Schema(description = "费用名称", example = "张三") + private String expenseName; + + @Schema(description = "部门名称", example = "芋艿") + private String departmentName; + + @Schema(description = "人员数量", example = "20926") + private Integer personCount; + + @Schema(description = "部门总额", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "部门总额不能为空") + private BigDecimal deptTotalCost; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "归属公司不能为空") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7417") + @NotEmpty(message = "归属公司ID不能为空") + private String companyId; + + @Schema(description = "部门id", example = "11454") + private Long deptId; + + @Schema(description = "备注", example = "你猜") + private String remark; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/MechanicalCostController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/MechanicalCostController.java new file mode 100644 index 0000000..0972a21 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/MechanicalCostController.java @@ -0,0 +1,128 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicalcost; + +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostRespVO; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; +import java.util.stream.Collectors; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost.MechanicalCostDO; +import com.zteits.urbanops.module.garden.service.mechanicalcost.MechanicalCostService; + +@Tag(name = "管理后台 - 自有机械费用录入") +@RestController +@RequestMapping("/garden/mechanical-cost") +@Validated +public class MechanicalCostController { + + @Resource + private MechanicalCostService mechanicalCostService; + + @Resource + TeamBizdomainRelService teamBizdomainRelService; + + @PostMapping("/create") + @Operation(summary = "创建自有机械费用录入") + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:create')") + public CommonResult createMechanicalCost(@Valid @RequestBody MechanicalCostSaveReqVO createReqVO) { + return success(mechanicalCostService.createMechanicalCost(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新自有机械费用录入") + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:update')") + public CommonResult updateMechanicalCost(@Valid @RequestBody MechanicalCostSaveReqVO updateReqVO) { + mechanicalCostService.updateMechanicalCost(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除自有机械费用录入") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:delete')") + public CommonResult deleteMechanicalCost(@RequestParam("id") Long id) { + mechanicalCostService.deleteMechanicalCost(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除自有机械费用录入") + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:delete')") + public CommonResult deleteMechanicalCostList(@RequestParam("ids") List ids) { + mechanicalCostService.deleteMechanicalCostListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得自有机械费用录入") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:query')") + public CommonResult getMechanicalCost(@RequestParam("id") Long id) { + MechanicalCostDO mechanicalCost = mechanicalCostService.getMechanicalCost(id); + + //add by wq 20251119 前端返回集合 + MechanicalCostRespVO mechanicalCostRespVO = null; + if (mechanicalCost != null) { + mechanicalCostRespVO = BeanUtils.toBean(mechanicalCost, MechanicalCostRespVO.class); + + List teamBizdomainRelList = teamBizdomainRelService.getTeamBizdomainRelList(mechanicalCost.getId(), CostFeeConstants.COSTFEE_MECHANICAL); + mechanicalCostRespVO.setTeamIds(teamBizdomainRelList); + // 提取团队ID列表(使用Stream简化循环) + List teamIdList = teamBizdomainRelList.stream() + .map(TeamBizdomainRelDO::getTeamId) // 提取teamId + .filter(Objects::nonNull) // 过滤null值(可选,根据业务需要) + .collect(Collectors.toList()); + mechanicalCostRespVO.setTeamIdList(teamIdList); + } + //add by wq 20251119 前端返回集合 + return success(mechanicalCostRespVO); + } + + @GetMapping("/page") + @Operation(summary = "获得自有机械费用录入分页") + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:query')") + public CommonResult> getMechanicalCostPage(@Valid MechanicalCostPageReqVO pageReqVO) { + PageResult pageResult = mechanicalCostService.getMechanicalCostPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MechanicalCostRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出自有机械费用录入 Excel") + @PreAuthorize("@ss.hasPermission('garden:mechanical-cost:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMechanicalCostExcel(@Valid MechanicalCostPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = mechanicalCostService.getMechanicalCostPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "自有机械费用录入.xls", "数据", MechanicalCostRespVO.class, + BeanUtils.toBean(list, MechanicalCostRespVO.class)); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostPageReqVO.java new file mode 100644 index 0000000..95bd969 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostPageReqVO.java @@ -0,0 +1,80 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 自有机械费用录入分页 Request VO") +@Data +public class MechanicalCostPageReqVO extends PageParam { + + @Schema(description = "机械类型", example = "1") + private String mechType; + + @Schema(description = "机械编号") + private String mechCode; + + @Schema(description = "机械名称", example = "王五") + private String mechName; + + @Schema(description = "机械类别(如工具类)") + private String mechCategory; + + @Schema(description = "单价", example = "3767") + private BigDecimal unitPrice; + + @Schema(description = "数量") + private Integer quantity; + + @Schema(description = "车牌号") + private String licensePlate; + + @Schema(description = "车辆类别(如汽油、纯电新能源等)") + private String vehicleCategory; + + @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") + private String vehicleType; + + @Schema(description = "开始使用时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] startUseTime; + + @Schema(description = "使用年限") + private Long serviceLife; + + @Schema(description = "结束使用时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] endUseTime; + + @Schema(description = "归属公司", example = "张三") + private String companyName; + + @Schema(description = "归属公司ID", example = "5463") + private String companyId; + + @Schema(description = "部门id", example = "13645") + private Long deptId; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @ExcelProperty("班组") + private List teamIds; + + private List teamIdList; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostRespVO.java new file mode 100644 index 0000000..48fe662 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostRespVO.java @@ -0,0 +1,96 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo; + +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 自有机械费用录入 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MechanicalCostRespVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20133") + @ExcelProperty("记录ID,自增主键") + private Long id; + + @Schema(description = "机械类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("机械类型") + private String mechType; + + @Schema(description = "机械编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("机械编号") + private String mechCode; + + @Schema(description = "机械名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("机械名称") + private String mechName; + + @Schema(description = "机械类别(如工具类)") + @ExcelProperty("机械类别(如工具类)") + private String mechCategory; + + @Schema(description = "单价", requiredMode = Schema.RequiredMode.REQUIRED, example = "3767") + @ExcelProperty("单价") + private BigDecimal unitPrice; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("数量") + private Integer quantity; + + @Schema(description = "车牌号") + @ExcelProperty("车牌号") + private String licensePlate; + + @Schema(description = "车辆类别(如汽油、纯电新能源等)") + @ExcelProperty("车辆类别(如汽油、纯电新能源等)") + private String vehicleCategory; + + @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") + @ExcelProperty("车辆类型(如大型客车、轻型栏板货车等)") + private String vehicleType; + + @Schema(description = "开始使用时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("开始使用时间") + private LocalDate startUseTime; + + @Schema(description = "使用年限") + @ExcelProperty("使用年限") + private Long serviceLife; + + @Schema(description = "结束使用时间") + @ExcelProperty("结束使用时间") + private LocalDate endUseTime; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("归属公司") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5463") + @ExcelProperty("归属公司ID") + private String companyId; + + @Schema(description = "部门id", example = "13645") + @ExcelProperty("部门id") + private Long deptId; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("班组") + private List teamIds; + + private List teamIdList; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java new file mode 100644 index 0000000..465c029 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicalcost/vo/MechanicalCostSaveReqVO.java @@ -0,0 +1,81 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 自有机械费用录入新增/修改 Request VO") +@Data +public class MechanicalCostSaveReqVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20133") + private Long id; + + @Schema(description = "机械类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "机械类型不能为空") + private String mechType; + + @Schema(description = "机械编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "机械编号不能为空") + private String mechCode; + + @Schema(description = "机械名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "机械名称不能为空") + private String mechName; + + @Schema(description = "机械类别(如工具类)") + private String mechCategory; + + @Schema(description = "单价", requiredMode = Schema.RequiredMode.REQUIRED, example = "3767") + @NotNull(message = "单价不能为空") + private BigDecimal unitPrice; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数量不能为空") + private Integer quantity; + + @Schema(description = "车牌号") + private String licensePlate; + + @Schema(description = "车辆类别(如汽油、纯电新能源等)") + private String vehicleCategory; + + @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") + private String vehicleType; + + @Schema(description = "开始使用时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "开始使用时间不能为空") + private LocalDate startUseTime; + + @Schema(description = "使用年限") + private Long serviceLife; + + @Schema(description = "结束使用时间") + private LocalDate endUseTime; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "归属公司不能为空") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5463") + @NotEmpty(message = "归属公司ID不能为空") + private String companyId; + + @Schema(description = "部门id", example = "13645") + private Long deptId; + + @Schema(description = "备注", example = "随便") + private String remark; + + @ExcelProperty("班组") + private List teamIds; + + private List teamIdList; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/MechanicalDepreciationController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/MechanicalDepreciationController.java new file mode 100644 index 0000000..a034f2c --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/MechanicalDepreciationController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation.MechanicalDepreciationDO; +import com.zteits.urbanops.module.garden.service.mechanicaldepreciation.MechanicalDepreciationService; + +@Tag(name = "管理后台 - 自有机械折旧子") +@RestController +@RequestMapping("/garden/mechanical-depreciation") +@Validated +public class MechanicalDepreciationController { + + @Resource + private MechanicalDepreciationService mechanicalDepreciationService; + + @PostMapping("/create") + @Operation(summary = "创建自有机械折旧子") + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:create')") + public CommonResult createMechanicalDepreciation(@Valid @RequestBody MechanicalDepreciationSaveReqVO createReqVO) { + return success(mechanicalDepreciationService.createMechanicalDepreciation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新自有机械折旧子") + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:update')") + public CommonResult updateMechanicalDepreciation(@Valid @RequestBody MechanicalDepreciationSaveReqVO updateReqVO) { + mechanicalDepreciationService.updateMechanicalDepreciation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除自有机械折旧子") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:delete')") + public CommonResult deleteMechanicalDepreciation(@RequestParam("id") Long id) { + mechanicalDepreciationService.deleteMechanicalDepreciation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除自有机械折旧子") + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:delete')") + public CommonResult deleteMechanicalDepreciationList(@RequestParam("ids") List ids) { + mechanicalDepreciationService.deleteMechanicalDepreciationListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得自有机械折旧子") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:query')") + public CommonResult getMechanicalDepreciation(@RequestParam("id") Long id) { + MechanicalDepreciationDO mechanicalDepreciation = mechanicalDepreciationService.getMechanicalDepreciation(id); + return success(BeanUtils.toBean(mechanicalDepreciation, MechanicalDepreciationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得自有机械折旧子分页") + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:query')") + public CommonResult> getMechanicalDepreciationPage(@Valid MechanicalDepreciationPageReqVO pageReqVO) { + PageResult pageResult = mechanicalDepreciationService.getMechanicalDepreciationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MechanicalDepreciationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出自有机械折旧子 Excel") + @PreAuthorize("@ss.hasPermission('garden:mechanical-depreciation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMechanicalDepreciationExcel(@Valid MechanicalDepreciationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = mechanicalDepreciationService.getMechanicalDepreciationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "自有机械折旧子.xls", "数据", MechanicalDepreciationRespVO.class, + BeanUtils.toBean(list, MechanicalDepreciationRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationPageReqVO.java new file mode 100644 index 0000000..27ea59a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationPageReqVO.java @@ -0,0 +1,54 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 自有机械折旧子分页 Request VO") +@Data +public class MechanicalDepreciationPageReqVO extends PageParam { + + @Schema(description = "关联的机械ID(对应td_mechanical_cost的id)", example = "27435") + private Long mechId; + + @Schema(description = "折旧期间(格式:YYYY-MM)") + private String depreciationPeriod; + + @Schema(description = "原值") + private BigDecimal originalValue; + + @Schema(description = "预估净值(原值-预估净值=需要折旧总额)") + private BigDecimal netValue; + + @Schema(description = "本期折旧额") + private BigDecimal depreciationAmount; + + @Schema(description = "累计折旧") + private BigDecimal accumulatedDepreciation; + + @Schema(description = "折旧方法(如直线法)") + private String depreciationMethod; + + @Schema(description = "残值率(%)") + private BigDecimal residualRate; + + @Schema(description = "使用年限") + private Integer serviceLife; + + @Schema(description = "剩余折旧期数") + private Integer remainingPeriods; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationRespVO.java new file mode 100644 index 0000000..c9556d4 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationRespVO.java @@ -0,0 +1,68 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 自有机械折旧子 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MechanicalDepreciationRespVO { + + @Schema(description = "折旧记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8218") + @ExcelProperty("折旧记录ID,自增主键") + private Long id; + + @Schema(description = "关联的机械ID(对应td_mechanical_cost的id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "27435") + @ExcelProperty("关联的机械ID(对应td_mechanical_cost的id)") + private Long mechId; + + @Schema(description = "折旧期间(格式:YYYY-MM)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("折旧期间(格式:YYYY-MM)") + private String depreciationPeriod; + + @Schema(description = "原值", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("原值") + private BigDecimal originalValue; + + @Schema(description = "预估净值(原值-预估净值=需要折旧总额)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("预估净值(原值-预估净值=需要折旧总额)") + private BigDecimal netValue; + + @Schema(description = "本期折旧额", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("本期折旧额") + private BigDecimal depreciationAmount; + + @Schema(description = "累计折旧", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("累计折旧") + private BigDecimal accumulatedDepreciation; + + @Schema(description = "折旧方法(如直线法)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("折旧方法(如直线法)") + private String depreciationMethod; + + @Schema(description = "残值率(%)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("残值率(%)") + private BigDecimal residualRate; + + @Schema(description = "使用年限", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("使用年限") + private Integer serviceLife; + + @Schema(description = "剩余折旧期数", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("剩余折旧期数") + private Integer remainingPeriods; + + @Schema(description = "备注", example = "你猜") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationSaveReqVO.java new file mode 100644 index 0000000..93b7d80 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/mechanicaldepreciation/vo/MechanicalDepreciationSaveReqVO.java @@ -0,0 +1,59 @@ +package com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 自有机械折旧子新增/修改 Request VO") +@Data +public class MechanicalDepreciationSaveReqVO { + + @Schema(description = "折旧记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8218") + private Long id; + + @Schema(description = "关联的机械ID(对应td_mechanical_cost的id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "27435") + @NotNull(message = "关联的机械ID(对应td_mechanical_cost的id)不能为空") + private Long mechId; + + @Schema(description = "折旧期间(格式:YYYY-MM)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "折旧期间(格式:YYYY-MM)不能为空") + private String depreciationPeriod; + + @Schema(description = "原值", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "原值不能为空") + private BigDecimal originalValue; + + @Schema(description = "预估净值(原值-预估净值=需要折旧总额)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "预估净值(原值-预估净值=需要折旧总额)不能为空") + private BigDecimal netValue; + + @Schema(description = "本期折旧额", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "本期折旧额不能为空") + private BigDecimal depreciationAmount; + + @Schema(description = "累计折旧", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "累计折旧不能为空") + private BigDecimal accumulatedDepreciation; + + @Schema(description = "折旧方法(如直线法)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "折旧方法(如直线法)不能为空") + private String depreciationMethod; + + @Schema(description = "残值率(%)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "残值率(%)不能为空") + private BigDecimal residualRate; + + @Schema(description = "使用年限", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "使用年限不能为空") + private Integer serviceLife; + + @Schema(description = "剩余折旧期数", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "剩余折旧期数不能为空") + private Integer remainingPeriods; + + @Schema(description = "备注", example = "你猜") + private String remark; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java new file mode 100644 index 0000000..4691b28 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/PersonalCostController.java @@ -0,0 +1,124 @@ +package com.zteits.urbanops.module.garden.controller.admin.personalcost; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostRespVO; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import com.zteits.urbanops.module.garden.service.personalcost.PersonalCostService; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 人员费用录入 - 个人费用") +@RestController +@RequestMapping("/garden/personal-cost") +@Validated +public class PersonalCostController { + + @Resource + private PersonalCostService personalCostService; + @Resource + TeamBizdomainRelService teamBizdomainRelService; + + @PostMapping("/create") + @Operation(summary = "创建人员费用录入 - 个人费用") + @PreAuthorize("@ss.hasPermission('garden:personal-cost:create')") + public CommonResult createPersonalCost(@Valid @RequestBody PersonalCostSaveReqVO createReqVO) { + return success(personalCostService.createPersonalCost(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新人员费用录入 - 个人费用") + @PreAuthorize("@ss.hasPermission('garden:personal-cost:update')") + public CommonResult updatePersonalCost(@Valid @RequestBody PersonalCostSaveReqVO updateReqVO) { + personalCostService.updatePersonalCost(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除人员费用录入 - 个人费用") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:personal-cost:delete')") + public CommonResult deletePersonalCost(@RequestParam("id") Long id) { + personalCostService.deletePersonalCost(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除人员费用录入 - 个人费用") + @PreAuthorize("@ss.hasPermission('garden:personal-cost:delete')") + public CommonResult deletePersonalCostList(@RequestParam("ids") List ids) { + personalCostService.deletePersonalCostListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得人员费用录入 - 个人费用") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:personal-cost:query')") + public CommonResult getPersonalCost(@RequestParam("id") Long id) { + PersonalCostDO personalCost = personalCostService.getPersonalCost(id); + //add by wq 20251119 前端返回集合 + PersonalCostRespVO personalCostRespVO = null; + if (personalCost != null) { + personalCostRespVO = BeanUtils.toBean(personalCost, PersonalCostRespVO.class); + + List teamBizdomainRelList = teamBizdomainRelService.getTeamBizdomainRelList(personalCost.getId(), CostFeeConstants.COSTFEE_PERSONAL); + personalCostRespVO.setTeamIds(teamBizdomainRelList); + // 提取团队ID列表(使用Stream简化循环) + List teamIdList = teamBizdomainRelList.stream() + .map(TeamBizdomainRelDO::getTeamId) // 提取teamId + .filter(Objects::nonNull) // 过滤null值(可选,根据业务需要) + .collect(Collectors.toList()); + personalCostRespVO.setTeamIdList(teamIdList); + } + //add by wq 20251119 前端返回集合 + return success(personalCostRespVO); + } + + @GetMapping("/page") + @Operation(summary = "获得人员费用录入 - 个人费用分页") + @PreAuthorize("@ss.hasPermission('garden:personal-cost:query')") + public CommonResult> getPersonalCostPage(@Valid PersonalCostPageReqVO pageReqVO) { + PageResult pageResult = personalCostService.getPersonalCostPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PersonalCostRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出人员费用录入 - 个人费用 Excel") + @PreAuthorize("@ss.hasPermission('garden:personal-cost:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPersonalCostExcel(@Valid PersonalCostPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = personalCostService.getPersonalCostPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "人员费用录入 - 个人费用.xls", "数据", PersonalCostRespVO.class, + BeanUtils.toBean(list, PersonalCostRespVO.class)); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostPageReqVO.java new file mode 100644 index 0000000..345bc8b --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostPageReqVO.java @@ -0,0 +1,48 @@ +package com.zteits.urbanops.module.garden.controller.admin.personalcost.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 人员费用录入 - 个人费用分页 Request VO") +@Data +public class PersonalCostPageReqVO extends PageParam { + + @Schema(description = "工资年月(如202506)") + private String salaryMonth; + + @Schema(description = "姓名", example = "张三") + private String name; + + @Schema(description = "工资金额") + private BigDecimal salaryAmount; + + @Schema(description = "岗位名称", example = "李四") + private String postName; + + @Schema(description = "岗位类别(如正式员工、外包员工等)") + private String postCategory; + + @Schema(description = "归属公司", example = "芋艿") + private String companyName; + + @Schema(description = "归属公司ID", example = "28850") + private String companyId; + + @Schema(description = "部门id", example = "18461") + private Long deptId; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostRespVO.java new file mode 100644 index 0000000..58419d1 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostRespVO.java @@ -0,0 +1,67 @@ +package com.zteits.urbanops.module.garden.controller.admin.personalcost.vo; + +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 人员费用录入 - 个人费用 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PersonalCostRespVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14090") + @ExcelProperty("记录ID,自增主键") + private Long id; + + @Schema(description = "工资年月(如202506)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工资年月(如202506)") + private String salaryMonth; + + @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("姓名") + private String name; + + @Schema(description = "工资金额", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工资金额") + private BigDecimal salaryAmount; + + @Schema(description = "岗位名称", example = "李四") + @ExcelProperty("岗位名称") + private String postName; + + @Schema(description = "岗位类别(如正式员工、外包员工等)") + @ExcelProperty("岗位类别(如正式员工、外包员工等)") + private String postCategory; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("归属公司") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28850") + @ExcelProperty("归属公司ID") + private String companyId; + + @Schema(description = "部门id", example = "18461") + @ExcelProperty("部门id") + private Long deptId; + + @Schema(description = "备注", example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("班组") + private List teamIds; + + private List teamIdList; + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java new file mode 100644 index 0000000..1899a55 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/personalcost/vo/PersonalCostSaveReqVO.java @@ -0,0 +1,52 @@ +package com.zteits.urbanops.module.garden.controller.admin.personalcost.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 人员费用录入 - 个人费用新增/修改 Request VO") +@Data +public class PersonalCostSaveReqVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14090") + private Long id; + + @Schema(description = "工资年月(如202506)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工资年月(如202506)不能为空") + private String salaryMonth; + + @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "姓名不能为空") + private String name; + + @Schema(description = "工资金额", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "工资金额不能为空") + private BigDecimal salaryAmount; + + @Schema(description = "岗位名称", example = "李四") + private String postName; + + @Schema(description = "岗位类别(如正式员工、外包员工等)") + private String postCategory; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "归属公司不能为空") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "28850") + @NotEmpty(message = "归属公司ID不能为空") + private String companyId; + + @Schema(description = "部门id", example = "18461") + private Long deptId; + + @Schema(description = "备注", example = "随便") + private String remark; + + @ExcelProperty("班组") + private List teamIds; +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java new file mode 100644 index 0000000..c4255e7 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/RentalMechanicalCostController.java @@ -0,0 +1,120 @@ +package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost; + +import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.MechanicalCostRespVO; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; +import java.util.stream.Collectors; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; +import com.zteits.urbanops.module.garden.service.rentalmechanicalcost.RentalMechanicalCostService; + +@Tag(name = "管理后台 - 租赁机械费用录入") +@RestController +@RequestMapping("/garden/rental-mechanical-cost") +@Validated +public class RentalMechanicalCostController { + + @Resource + private RentalMechanicalCostService rentalMechanicalCostService; + @Resource + TeamBizdomainRelService teamBizdomainRelService; + @PostMapping("/create") + @Operation(summary = "创建租赁机械费用录入") + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:create')") + public CommonResult createRentalMechanicalCost(@Valid @RequestBody RentalMechanicalCostSaveReqVO createReqVO) { + return success(rentalMechanicalCostService.createRentalMechanicalCost(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新租赁机械费用录入") + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:update')") + public CommonResult updateRentalMechanicalCost(@Valid @RequestBody RentalMechanicalCostSaveReqVO updateReqVO) { + rentalMechanicalCostService.updateRentalMechanicalCost(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除租赁机械费用录入") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:delete')") + public CommonResult deleteRentalMechanicalCost(@RequestParam("id") Long id) { + rentalMechanicalCostService.deleteRentalMechanicalCost(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除租赁机械费用录入") + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:delete')") + public CommonResult deleteRentalMechanicalCostList(@RequestParam("ids") List ids) { + rentalMechanicalCostService.deleteRentalMechanicalCostListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得租赁机械费用录入") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:query')") + public CommonResult getRentalMechanicalCost(@RequestParam("id") Long id) { + RentalMechanicalCostDO rentalMechanicalCost = rentalMechanicalCostService.getRentalMechanicalCost(id); + + //add by wq 20251119 前端返回集合 + RentalMechanicalCostRespVO mechanicalCostRespVO = null; + if (rentalMechanicalCost != null) { + mechanicalCostRespVO = BeanUtils.toBean(rentalMechanicalCost, RentalMechanicalCostRespVO.class); + + List teamBizdomainRelList = teamBizdomainRelService.getTeamBizdomainRelList(rentalMechanicalCost.getId(), CostFeeConstants.COSTFEE_RENTALMECHANICAL); + mechanicalCostRespVO.setTeamIds(teamBizdomainRelList); + } + //add by wq 20251119 前端返回集合 + return success(mechanicalCostRespVO); + } + + @GetMapping("/page") + @Operation(summary = "获得租赁机械费用录入分页") + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:query')") + public CommonResult> getRentalMechanicalCostPage(@Valid RentalMechanicalCostPageReqVO pageReqVO) { + PageResult pageResult = rentalMechanicalCostService.getRentalMechanicalCostPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RentalMechanicalCostRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出租赁机械费用录入 Excel") + @PreAuthorize("@ss.hasPermission('garden:rental-mechanical-cost:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRentalMechanicalCostExcel(@Valid RentalMechanicalCostPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = rentalMechanicalCostService.getRentalMechanicalCostPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "租赁机械费用录入.xls", "数据", RentalMechanicalCostRespVO.class, + BeanUtils.toBean(list, RentalMechanicalCostRespVO.class)); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java new file mode 100644 index 0000000..74e6b38 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java @@ -0,0 +1,75 @@ +package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 租赁机械费用录入分页 Request VO") +@Data +public class RentalMechanicalCostPageReqVO extends PageParam { + + @Schema(description = "机械名称", example = "张三") + private String mechName; + + @Schema(description = "机械类型", example = "2") + private String mechType; + + @Schema(description = "租赁总价格", example = "316") + private BigDecimal rentalTotalPrice; + + @Schema(description = "数量") + private Integer quantity; + + @Schema(description = "车牌号") + private String licensePlate; + + @Schema(description = "车辆类别(如汽油、纯电新能源等)") + private String vehicleCategory; + + @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") + private String vehicleType; + + @Schema(description = "开始使用时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] startUseTime; + + @Schema(description = "使用时长(天)") + private Integer useDuration; + + @Schema(description = "结束使用时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDate[] endUseTime; + + @Schema(description = "归属公司", example = "李四") + private String companyName; + + @Schema(description = "归属公司ID", example = "25530") + private String companyId; + + @Schema(description = "部门id", example = "25446") + private Long deptId; + + @Schema(description = "道路ID数组(多选)") + private String roadIds; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @ExcelProperty("班组") + private List teamIds; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java new file mode 100644 index 0000000..3434731 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostRespVO.java @@ -0,0 +1,90 @@ +package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; + +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 租赁机械费用录入 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RentalMechanicalCostRespVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9115") + @ExcelProperty("记录ID,自增主键") + private Long id; + + @Schema(description = "机械名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("机械名称") + private String mechName; + + @Schema(description = "机械类型", example = "2") + @ExcelProperty("机械类型") + private String mechType; + + @Schema(description = "租赁总价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "316") + @ExcelProperty("租赁总价格") + private BigDecimal rentalTotalPrice; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("数量") + private Integer quantity; + + @Schema(description = "车牌号") + @ExcelProperty("车牌号") + private String licensePlate; + + @Schema(description = "车辆类别(如汽油、纯电新能源等)") + @ExcelProperty("车辆类别(如汽油、纯电新能源等)") + private String vehicleCategory; + + @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") + @ExcelProperty("车辆类型(如大型客车、轻型栏板货车等)") + private String vehicleType; + + @Schema(description = "开始使用时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("开始使用时间") + private LocalDate startUseTime; + + @Schema(description = "使用时长(天)") + @ExcelProperty("使用时长(天)") + private Integer useDuration; + + @Schema(description = "结束使用时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("结束使用时间") + private LocalDate endUseTime; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @ExcelProperty("归属公司") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25530") + @ExcelProperty("归属公司ID") + private String companyId; + + @Schema(description = "部门id", example = "25446") + @ExcelProperty("部门id") + private Long deptId; + + @Schema(description = "道路ID数组(多选)") + @ExcelProperty("道路ID数组(多选)") + private String roadIds; + + @Schema(description = "备注", example = "你说的对") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("班组") + private List teamIds; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java new file mode 100644 index 0000000..2e05481 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java @@ -0,0 +1,73 @@ +package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; + +import cn.idev.excel.annotation.ExcelProperty; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 租赁机械费用录入新增/修改 Request VO") +@Data +public class RentalMechanicalCostSaveReqVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9115") + private Long id; + + @Schema(description = "机械名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "机械名称不能为空") + private String mechName; + + @Schema(description = "机械类型", example = "2") + private String mechType; + + @Schema(description = "租赁总价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "316") + @NotNull(message = "租赁总价格不能为空") + private BigDecimal rentalTotalPrice; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数量不能为空") + private Integer quantity; + + @Schema(description = "车牌号") + private String licensePlate; + + @Schema(description = "车辆类别(如汽油、纯电新能源等)") + private String vehicleCategory; + + @Schema(description = "车辆类型(如大型客车、轻型栏板货车等)", example = "2") + private String vehicleType; + + @Schema(description = "开始使用时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "开始使用时间不能为空") + private LocalDate startUseTime; + + @Schema(description = "使用时长(天)") + private Integer useDuration; + + @Schema(description = "结束使用时间", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "结束使用时间不能为空") + private LocalDate endUseTime; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @NotEmpty(message = "归属公司不能为空") + private String companyName; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25530") + @NotEmpty(message = "归属公司ID不能为空") + private String companyId; + + @Schema(description = "部门id", example = "25446") + private Long deptId; + + @Schema(description = "道路ID数组(多选)") + private String roadIds; + + @Schema(description = "备注", example = "你说的对") + private String remark; + @ExcelProperty("班组") + private List teamIds; +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java new file mode 100644 index 0000000..5831cf0 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/TeamBizdomainRelController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; + +@Tag(name = "管理后台 - 班组关联") +@RestController +@RequestMapping("/garden/team-bizdomain-rel") +@Validated +public class TeamBizdomainRelController { + + @Resource + private TeamBizdomainRelService teamBizdomainRelService; + + @PostMapping("/create") + @Operation(summary = "创建班组关联") + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:create')") + public CommonResult createTeamBizdomainRel(@Valid @RequestBody TeamBizdomainRelSaveReqVO createReqVO) { + return success(teamBizdomainRelService.createTeamBizdomainRel(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新班组关联") + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:update')") + public CommonResult updateTeamBizdomainRel(@Valid @RequestBody TeamBizdomainRelSaveReqVO updateReqVO) { + teamBizdomainRelService.updateTeamBizdomainRel(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除班组关联") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:delete')") + public CommonResult deleteTeamBizdomainRel(@RequestParam("id") Long id) { + teamBizdomainRelService.deleteTeamBizdomainRel(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除班组关联") + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:delete')") + public CommonResult deleteTeamBizdomainRelList(@RequestParam("ids") List ids) { + teamBizdomainRelService.deleteTeamBizdomainRelListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得班组关联") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:query')") + public CommonResult getTeamBizdomainRel(@RequestParam("id") Long id) { + TeamBizdomainRelDO teamBizdomainRel = teamBizdomainRelService.getTeamBizdomainRel(id); + return success(BeanUtils.toBean(teamBizdomainRel, TeamBizdomainRelRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得班组关联分页") + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:query')") + public CommonResult> getTeamBizdomainRelPage(@Valid TeamBizdomainRelPageReqVO pageReqVO) { + PageResult pageResult = teamBizdomainRelService.getTeamBizdomainRelPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, TeamBizdomainRelRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出班组关联 Excel") + @PreAuthorize("@ss.hasPermission('garden:team-bizdomain-rel:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportTeamBizdomainRelExcel(@Valid TeamBizdomainRelPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = teamBizdomainRelService.getTeamBizdomainRelPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "班组关联.xls", "数据", TeamBizdomainRelRespVO.class, + BeanUtils.toBean(list, TeamBizdomainRelRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java new file mode 100644 index 0000000..81118db --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelPageReqVO.java @@ -0,0 +1,41 @@ +package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 班组关联分页 Request VO") +@Data +public class TeamBizdomainRelPageReqVO extends PageParam { + + @Schema(description = "业务表主键", example = "4740") + private String busiId; + + @Schema(description = "班组编码", example = "27533") + private String teamId; + + @Schema(description = "班组名称", example = "王五") + private String teamName; + + @Schema(description = "班组名称") + private Long weight; + + @Schema(description = "归属公司", example = "张三") + private String companyName; + + @Schema(description = "归属公司ID", example = "29798") + private String companyId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "业务类型", example = "1") + private String busiType; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java new file mode 100644 index 0000000..6768b91 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelRespVO.java @@ -0,0 +1,51 @@ +package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 班组关联 Response VO") +@Data +@ExcelIgnoreUnannotated +public class TeamBizdomainRelRespVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14177") + @ExcelProperty("记录ID,自增主键") + private Long id; + + @Schema(description = "业务表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4740") + @ExcelProperty("业务表主键") + private String busiId; + + @Schema(description = "班组编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "27533") + @ExcelProperty("班组编码") + private String teamId; + + @Schema(description = "班组名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("班组名称") + private String teamName; + + @Schema(description = "班组名称") + @ExcelProperty("班组名称") + private Long weight; + + @Schema(description = "归属公司", example = "张三") + @ExcelProperty("归属公司") + private String companyName; + + @Schema(description = "归属公司ID", example = "29798") + @ExcelProperty("归属公司ID") + private String companyId; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "业务类型", example = "1") + @ExcelProperty("业务类型") + private String busiType; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java new file mode 100644 index 0000000..f4f5eb8 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/teambizdomainrel/vo/TeamBizdomainRelSaveReqVO.java @@ -0,0 +1,39 @@ +package com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 班组关联新增/修改 Request VO") +@Data +public class TeamBizdomainRelSaveReqVO { + + @Schema(description = "记录ID,自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14177") + private Long id; + + @Schema(description = "业务表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4740") + @NotEmpty(message = "业务表主键不能为空") + private String busiId; + + @Schema(description = "班组编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "27533") + @NotEmpty(message = "班组编码不能为空") + private String teamId; + + @Schema(description = "班组名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "班组名称不能为空") + private String teamName; + + @Schema(description = "班组名称") + private Long weight; + + @Schema(description = "归属公司", example = "张三") + private String companyName; + + @Schema(description = "归属公司ID", example = "29798") + private String companyId; + + @Schema(description = "业务类型", example = "1") + private String busiType; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasks/AssignTasksDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasks/AssignTasksDO.java new file mode 100644 index 0000000..2f1cabb --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasks/AssignTasksDO.java @@ -0,0 +1,68 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.assigntasks; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; + +import java.io.Serializable; +import java.util.*; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; +/** + * 派单任务主表(记录派单任务基本信息) DO + * + * @author 超级管理员 + */ +@TableName("garden_assign_tasks") +@KeySequence("garden_assign_tasks_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AssignTasksDO extends BaseDO { + + /** + * 自增ID + */ + @TableId + private Long id; + /** + * 任务名称 + */ + private String taskName; + /** + * 任务类型(关联数据字典,如:日常巡检、紧急维修等) + */ + private String taskType; + /** + * 任务截止时间 + */ + private LocalDateTime deadline; + /** + * 派单模板文件路径(如:任务详情模板、填报表格等) + */ + private String templateFile; + /** + * 任务整体完成状态(0:未完成,1:已完成;所有关联单位均完成时自动更新为1) + */ + private Integer parentFinish; + /** + * 整体完成时间(仅当parent_finish=1时有值) + */ + private LocalDateTime finishTime; + /** + * 任务备注(如:特殊要求、注意事项等) + */ + private String note; + + + @Data + public static class TemplateFileDO implements Serializable { + private String url; + private String name; + private String fileServerUrl; + } +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasksinfo/AssignTasksInfoDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasksinfo/AssignTasksInfoDO.java new file mode 100644 index 0000000..e60ac39 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/assigntasksinfo/AssignTasksInfoDO.java @@ -0,0 +1,109 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo; + +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 派单任务-单位关联表(记录单位接收派单后的执行详情) DO + * + * @author 超级管理员 + */ +@TableName("garden_assign_tasks_info") +@KeySequence("garden_assign_tasks_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AssignTasksInfoDO extends BaseDO { + + /** + * 自增ID + */ + @TableId + private Long id; + /** + * 关联派单任务主表ID(外键,关联td_assign_tasks.id) + */ + private Long taskId; + /** + * 单位ID(关联单位表主键) + */ + private String companyId; + /** + * 单位ID(关联单位表主键) + */ + private String companyName; + /** + * 填报人ID(单位指定的任务负责人) + */ + private String writePersonId; + /** + * 填报人姓名 + */ + private String writePerson; + /** + * 填报人手机号 + */ + private String writePersonPhone; + /** + * 填报时间(仅当finish=1时有值) + */ + private LocalDateTime writeTime; + /** + * 单位任务完成状态(0:未完成,1:已完成) + */ + private Integer finish; + /** + * 是否超期(0:未超期,1:超期;NULL:未到截止时间) + */ + private Integer isOverdue; + /** + * 单位提交的任务文件路径(如:填报表格、现场照片等) + */ + @TableField(typeHandler = JacksonTypeHandler.class) + private List dataFile; + /** + * 催缴次数(未完成时的提醒次数) + */ + private Integer rushNum; + /** + * 新任务标记(0:未读,1:已读) + */ + private Integer newFlag; + /** + * 已读时间(仅当new_flag=1时有值) + */ + private LocalDateTime newFlagTime; + /** + * 驳回备注(当finish=2时,说明驳回原因) + */ + private String rejectRemark; + /** + * 单位任务确认状态(已确认/未确认,单位接收任务后需确认) + */ + private String confirm; + /** + * 确认时间(单位确认接收任务的时间) + */ + private LocalDateTime confirmTime; + + /** + * 备注 + */ + private String remark; + /** + * 是否打回0:正常 1:打回 + */ + private Integer isReject; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/departmentcost/DepartmentCostDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/departmentcost/DepartmentCostDO.java new file mode 100644 index 0000000..f16118f --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/departmentcost/DepartmentCostDO.java @@ -0,0 +1,69 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.departmentcost; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 部门费用录入 DO + * + * @author 超级管理员 + */ +@TableName("garden_department_cost") +@KeySequence("garden_department_cost_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DepartmentCostDO extends BaseDO { + + /** + * 记录ID,自增主键 + */ + @TableId + private Long id; + /** + * 工资年月(如202506) + */ + private String salaryMonth; + /** + * 费用名称 + */ + private String expenseName; + /** + * 部门名称 + */ + private String departmentName; + /** + * 人员数量 + */ + private Integer personCount; + /** + * 部门总额 + */ + private BigDecimal deptTotalCost; + /** + * 归属公司 + */ + private String companyName; + /** + * 归属公司ID + */ + private String companyId; + /** + * 部门id + */ + private Long deptId; + /** + * 备注 + */ + private String remark; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java new file mode 100644 index 0000000..77eec8a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java @@ -0,0 +1,99 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 自有机械费用录入 DO + * + * @author 超级管理员 + */ +@TableName("garden_mechanical_cost") +@KeySequence("garden_mechanical_cost_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MechanicalCostDO extends BaseDO { + + /** + * 记录ID,自增主键 + */ + @TableId + private Long id; + /** + * 机械类型 + */ + private String mechType; + /** + * 机械编号 + */ + private String mechCode; + /** + * 机械名称 + */ + private String mechName; + /** + * 机械类别(如工具类) + */ + private String mechCategory; + /** + * 单价 + */ + private BigDecimal unitPrice; + /** + * 数量 + */ + private Integer quantity; + /** + * 车牌号 + */ + private String licensePlate; + /** + * 车辆类别(如汽油、纯电新能源等) + */ + private String vehicleCategory; + /** + * 车辆类型(如大型客车、轻型栏板货车等) + */ + private String vehicleType; + /** + * 开始使用时间 + */ + private LocalDate startUseTime; + /** + * 使用年限 + */ + private Long serviceLife; + /** + * 结束使用时间 + */ + private LocalDate endUseTime; + /** + * 归属公司 + */ + private String companyName; + /** + * 归属公司ID + */ + private String companyId; + /** + * 部门id + */ + private Long deptId; + /** + * 备注 + */ + private String remark; + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicaldepreciation/MechanicalDepreciationDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicaldepreciation/MechanicalDepreciationDO.java new file mode 100644 index 0000000..5bf1329 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicaldepreciation/MechanicalDepreciationDO.java @@ -0,0 +1,81 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 自有机械折旧子 DO + * + * @author 超级管理员 + */ +@TableName("garden_mechanical_depreciation") +@KeySequence("garden_mechanical_depreciation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MechanicalDepreciationDO extends BaseDO { + + /** + * 折旧记录ID,自增主键 + */ + @TableId + private Long id; + /** + * 关联的机械ID(对应td_mechanical_cost的id) + */ + private Long mechId; + /** + * 折旧期间(格式:YYYY-MM) + */ + private String depreciationPeriod; + /** + * 原值 + */ + private BigDecimal originalValue; + /** + * 预估净值(原值-预估净值=需要折旧总额) + */ + private BigDecimal netValue; + /** + * 本期折旧额 + */ + private BigDecimal depreciationAmount; + /** + * 累计折旧 + */ + private BigDecimal accumulatedDepreciation; + /** + * 折旧方法(如直线法) + */ + private String depreciationMethod; + /** + * 残值率(%) + */ + private BigDecimal residualRate; + /** + * 使用年限 + */ + private Integer serviceLife; + /** + * 剩余折旧期数 + */ + private Integer remainingPeriods; + /** + * 备注 + */ + private String remark; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/personalcost/PersonalCostDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/personalcost/PersonalCostDO.java new file mode 100644 index 0000000..a42e53e --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/personalcost/PersonalCostDO.java @@ -0,0 +1,69 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.personalcost; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 人员费用录入 - 个人费用 DO + * + * @author 超级管理员 + */ +@TableName("garden_personal_cost") +@KeySequence("garden_personal_cost_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PersonalCostDO extends BaseDO { + + /** + * 记录ID,自增主键 + */ + @TableId + private Long id; + /** + * 工资年月(如202506) + */ + private String salaryMonth; + /** + * 姓名 + */ + private String name; + /** + * 工资金额 + */ + private BigDecimal salaryAmount; + /** + * 岗位名称 + */ + private String postName; + /** + * 岗位类别(如正式员工、外包员工等) + */ + private String postCategory; + /** + * 归属公司 + */ + private String companyName; + /** + * 归属公司ID + */ + private String companyId; + /** + * 部门id + */ + private Long deptId; + /** + * 备注 + */ + private String remark; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java new file mode 100644 index 0000000..5d9b4da --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/rentalmechanicalcost/RentalMechanicalCostDO.java @@ -0,0 +1,99 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost; + +import lombok.*; + +import java.time.LocalDate; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 租赁机械费用录入 DO + * + * @author 超级管理员 + */ +@TableName("garden_rental_mechanical_cost") +@KeySequence("garden_rental_mechanical_cost_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RentalMechanicalCostDO extends BaseDO { + + /** + * 记录ID,自增主键 + */ + @TableId + private Long id; + /** + * 机械名称 + */ + private String mechName; + /** + * 机械类型 + */ + private String mechType; + /** + * 租赁总价格 + */ + private BigDecimal rentalTotalPrice; + /** + * 数量 + */ + private Integer quantity; + /** + * 车牌号 + */ + private String licensePlate; + /** + * 车辆类别(如汽油、纯电新能源等) + */ + private String vehicleCategory; + /** + * 车辆类型(如大型客车、轻型栏板货车等) + */ + private String vehicleType; + /** + * 开始使用时间 + */ + private LocalDate startUseTime; + /** + * 使用时长(天) + */ + private Integer useDuration; + /** + * 结束使用时间 + */ + private LocalDate endUseTime; + /** + * 归属公司 + */ + private String companyName; + /** + * 归属公司ID + */ + private String companyId; + /** + * 部门id + */ + private Long deptId; + /** + * 班组ID数组(多选) + */ + private String teamIds; + /** + * 道路ID数组(多选) + */ + private String roadIds; + /** + * 备注 + */ + private String remark; + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java new file mode 100644 index 0000000..7d9b2e8 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/teambizdomainrel/TeamBizdomainRelDO.java @@ -0,0 +1,60 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 班组关联 DO + * + * @author 超级管理员 + */ +@TableName("garden_team_bizdomain_rel") +@KeySequence("garden_team_bizdomain_rel_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TeamBizdomainRelDO extends BaseDO { + + /** + * 记录ID,自增主键 + */ + @TableId + private Long id; + /** + * 业务表主键 + */ + private String busiId; + /** + * 班组编码 + */ + private String teamId; + /** + * 班组名称 + */ + private String teamName; + /** + * 班组名称 + */ + private Long weight; + /** + * 归属公司 + */ + private String companyName; + /** + * 归属公司ID + */ + private String companyId; + /** + * 业务类型 + */ + private String busiType; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasks/AssignTasksMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasks/AssignTasksMapper.java new file mode 100644 index 0000000..93b735a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasks/AssignTasksMapper.java @@ -0,0 +1,36 @@ +package com.zteits.urbanops.module.garden.dal.mysql.assigntasks; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasks.AssignTasksDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.*; + +/** + * 派单任务主表(记录派单任务基本信息) Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface AssignTasksMapper extends BaseMapperX { + + default PageResult selectPage(AssignTasksPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(AssignTasksDO::getTaskName, reqVO.getTaskName()) + .eqIfPresent(AssignTasksDO::getTaskType, reqVO.getTaskType()) + .eqIfPresent(AssignTasksDO::getDeadline, reqVO.getDeadline()) + .eqIfPresent(AssignTasksDO::getTemplateFile, reqVO.getTemplateFile()) + .eqIfPresent(AssignTasksDO::getParentFinish, reqVO.getParentFinish()) + .betweenIfPresent(AssignTasksDO::getFinishTime, reqVO.getFinishTime()) + .eqIfPresent(AssignTasksDO::getNote, reqVO.getNote()) + .eqIfPresent(AssignTasksDO::getCreator, reqVO.getCreator()) + .betweenIfPresent(AssignTasksDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(AssignTasksDO::getUpdater, reqVO.getUpdater()) + .betweenIfPresent(AssignTasksDO::getDeadline, reqVO.getDeadline()) + .orderByDesc(AssignTasksDO::getId)); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasksinfo/AssignTasksInfoMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasksinfo/AssignTasksInfoMapper.java new file mode 100644 index 0000000..5f3219d --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/assigntasksinfo/AssignTasksInfoMapper.java @@ -0,0 +1,59 @@ +package com.zteits.urbanops.module.garden.dal.mysql.assigntasksinfo; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.*; +import org.apache.ibatis.annotations.Param; + +/** + * 派单任务-单位关联表(记录单位接收派单后的执行详情) Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface AssignTasksInfoMapper extends BaseMapperX { + + default PageResult selectPage(AssignTasksInfoPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(AssignTasksInfoDO::getTaskId, reqVO.getTaskId()) + .eqIfPresent(AssignTasksInfoDO::getCompanyId, reqVO.getCompanyId()) + .likeIfPresent(AssignTasksInfoDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(AssignTasksInfoDO::getWritePersonId, reqVO.getWritePersonId()) + .eqIfPresent(AssignTasksInfoDO::getWritePerson, reqVO.getWritePerson()) + .eqIfPresent(AssignTasksInfoDO::getWritePersonPhone, reqVO.getWritePersonPhone()) + .betweenIfPresent(AssignTasksInfoDO::getWriteTime, reqVO.getWriteTime()) + .eqIfPresent(AssignTasksInfoDO::getFinish, reqVO.getFinish()) + .eqIfPresent(AssignTasksInfoDO::getIsOverdue, reqVO.getIsOverdue()) + .eqIfPresent(AssignTasksInfoDO::getDataFile, reqVO.getDataFile()) + .eqIfPresent(AssignTasksInfoDO::getRushNum, reqVO.getRushNum()) + .eqIfPresent(AssignTasksInfoDO::getNewFlag, reqVO.getNewFlag()) + .betweenIfPresent(AssignTasksInfoDO::getNewFlagTime, reqVO.getNewFlagTime()) + .eqIfPresent(AssignTasksInfoDO::getRejectRemark, reqVO.getRejectRemark()) + .eqIfPresent(AssignTasksInfoDO::getConfirm, reqVO.getConfirm()) + .betweenIfPresent(AssignTasksInfoDO::getConfirmTime, reqVO.getConfirmTime()) + .eqIfPresent(AssignTasksInfoDO::getCreator, reqVO.getCreator()) + .betweenIfPresent(AssignTasksInfoDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(AssignTasksInfoDO::getUpdater, reqVO.getUpdater()) + .eqIfPresent(AssignTasksInfoDO::getRemark, reqVO.getRemark()) + .eqIfPresent(AssignTasksInfoDO::getIsReject, reqVO.getIsReject()) + .orderByDesc(AssignTasksInfoDO::getId)); + } + + /** + * 删除派单任务-单位关联(记录单位接收派单后的执行详情) + * + * @param ids 派单任务-单位关联(记录单位接收派单后的执行详情)ID + * @return 结果 + */ + public int deleteAssignTaskInfoByTaskId(List ids); + + /** + * 批量更新“是否超时”字段 + */ + public int batchUpdateIsOverdue(@Param("list") List taskInfoList); +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java new file mode 100644 index 0000000..de8b67c --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java @@ -0,0 +1,35 @@ +package com.zteits.urbanops.module.garden.dal.mysql.departmentcost; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.*; + +/** + * 部门费用录入 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface DepartmentCostMapper extends BaseMapperX { + + default PageResult selectPage(DepartmentCostPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DepartmentCostDO::getSalaryMonth, reqVO.getSalaryMonth()) + .likeIfPresent(DepartmentCostDO::getExpenseName, reqVO.getExpenseName()) + .likeIfPresent(DepartmentCostDO::getDepartmentName, reqVO.getDepartmentName()) + .eqIfPresent(DepartmentCostDO::getPersonCount, reqVO.getPersonCount()) + .eqIfPresent(DepartmentCostDO::getDeptTotalCost, reqVO.getDeptTotalCost()) + .likeIfPresent(DepartmentCostDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(DepartmentCostDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(DepartmentCostDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(DepartmentCostDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(DepartmentCostDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DepartmentCostDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java new file mode 100644 index 0000000..5106799 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicalcost/MechanicalCostMapper.java @@ -0,0 +1,42 @@ +package com.zteits.urbanops.module.garden.dal.mysql.mechanicalcost; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost.MechanicalCostDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.*; + +/** + * 自有机械费用录入 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface MechanicalCostMapper extends BaseMapperX { + + default PageResult selectPage(MechanicalCostPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MechanicalCostDO::getMechType, reqVO.getMechType()) + .eqIfPresent(MechanicalCostDO::getMechCode, reqVO.getMechCode()) + .likeIfPresent(MechanicalCostDO::getMechName, reqVO.getMechName()) + .eqIfPresent(MechanicalCostDO::getMechCategory, reqVO.getMechCategory()) + .eqIfPresent(MechanicalCostDO::getUnitPrice, reqVO.getUnitPrice()) + .eqIfPresent(MechanicalCostDO::getQuantity, reqVO.getQuantity()) + .eqIfPresent(MechanicalCostDO::getLicensePlate, reqVO.getLicensePlate()) + .eqIfPresent(MechanicalCostDO::getVehicleCategory, reqVO.getVehicleCategory()) + .eqIfPresent(MechanicalCostDO::getVehicleType, reqVO.getVehicleType()) + .betweenIfPresent(MechanicalCostDO::getStartUseTime, reqVO.getStartUseTime()) + .eqIfPresent(MechanicalCostDO::getServiceLife, reqVO.getServiceLife()) + .betweenIfPresent(MechanicalCostDO::getEndUseTime, reqVO.getEndUseTime()) + .likeIfPresent(MechanicalCostDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(MechanicalCostDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(MechanicalCostDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(MechanicalCostDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MechanicalCostDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MechanicalCostDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicaldepreciation/MechanicalDepreciationMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicaldepreciation/MechanicalDepreciationMapper.java new file mode 100644 index 0000000..86fc7ec --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/mechanicaldepreciation/MechanicalDepreciationMapper.java @@ -0,0 +1,37 @@ +package com.zteits.urbanops.module.garden.dal.mysql.mechanicaldepreciation; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation.MechanicalDepreciationDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.*; + +/** + * 自有机械折旧子 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface MechanicalDepreciationMapper extends BaseMapperX { + + default PageResult selectPage(MechanicalDepreciationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MechanicalDepreciationDO::getMechId, reqVO.getMechId()) + .eqIfPresent(MechanicalDepreciationDO::getDepreciationPeriod, reqVO.getDepreciationPeriod()) + .eqIfPresent(MechanicalDepreciationDO::getOriginalValue, reqVO.getOriginalValue()) + .eqIfPresent(MechanicalDepreciationDO::getNetValue, reqVO.getNetValue()) + .eqIfPresent(MechanicalDepreciationDO::getDepreciationAmount, reqVO.getDepreciationAmount()) + .eqIfPresent(MechanicalDepreciationDO::getAccumulatedDepreciation, reqVO.getAccumulatedDepreciation()) + .eqIfPresent(MechanicalDepreciationDO::getDepreciationMethod, reqVO.getDepreciationMethod()) + .eqIfPresent(MechanicalDepreciationDO::getResidualRate, reqVO.getResidualRate()) + .eqIfPresent(MechanicalDepreciationDO::getServiceLife, reqVO.getServiceLife()) + .eqIfPresent(MechanicalDepreciationDO::getRemainingPeriods, reqVO.getRemainingPeriods()) + .eqIfPresent(MechanicalDepreciationDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MechanicalDepreciationDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MechanicalDepreciationDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java new file mode 100644 index 0000000..155b9d2 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/personalcost/PersonalCostMapper.java @@ -0,0 +1,35 @@ +package com.zteits.urbanops.module.garden.dal.mysql.personalcost; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.*; + +/** + * 人员费用录入 - 个人费用 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface PersonalCostMapper extends BaseMapperX { + + default PageResult selectPage(PersonalCostPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PersonalCostDO::getSalaryMonth, reqVO.getSalaryMonth()) + .likeIfPresent(PersonalCostDO::getName, reqVO.getName()) + .eqIfPresent(PersonalCostDO::getSalaryAmount, reqVO.getSalaryAmount()) + .likeIfPresent(PersonalCostDO::getPostName, reqVO.getPostName()) + .eqIfPresent(PersonalCostDO::getPostCategory, reqVO.getPostCategory()) + .likeIfPresent(PersonalCostDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(PersonalCostDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(PersonalCostDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(PersonalCostDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(PersonalCostDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(PersonalCostDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java new file mode 100644 index 0000000..84ec663 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java @@ -0,0 +1,42 @@ +package com.zteits.urbanops.module.garden.dal.mysql.rentalmechanicalcost; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.*; + +/** + * 租赁机械费用录入 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface RentalMechanicalCostMapper extends BaseMapperX { + + default PageResult selectPage(RentalMechanicalCostPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(RentalMechanicalCostDO::getMechName, reqVO.getMechName()) + .eqIfPresent(RentalMechanicalCostDO::getMechType, reqVO.getMechType()) + .eqIfPresent(RentalMechanicalCostDO::getRentalTotalPrice, reqVO.getRentalTotalPrice()) + .eqIfPresent(RentalMechanicalCostDO::getQuantity, reqVO.getQuantity()) + .eqIfPresent(RentalMechanicalCostDO::getLicensePlate, reqVO.getLicensePlate()) + .eqIfPresent(RentalMechanicalCostDO::getVehicleCategory, reqVO.getVehicleCategory()) + .eqIfPresent(RentalMechanicalCostDO::getVehicleType, reqVO.getVehicleType()) + .betweenIfPresent(RentalMechanicalCostDO::getStartUseTime, reqVO.getStartUseTime()) + .eqIfPresent(RentalMechanicalCostDO::getUseDuration, reqVO.getUseDuration()) + .betweenIfPresent(RentalMechanicalCostDO::getEndUseTime, reqVO.getEndUseTime()) + .likeIfPresent(RentalMechanicalCostDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(RentalMechanicalCostDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(RentalMechanicalCostDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(RentalMechanicalCostDO::getTeamIds, reqVO.getTeamIds()) + .eqIfPresent(RentalMechanicalCostDO::getRoadIds, reqVO.getRoadIds()) + .eqIfPresent(RentalMechanicalCostDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(RentalMechanicalCostDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RentalMechanicalCostDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java new file mode 100644 index 0000000..b7e57e0 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/teambizdomainrel/TeamBizdomainRelMapper.java @@ -0,0 +1,33 @@ +package com.zteits.urbanops.module.garden.dal.mysql.teambizdomainrel; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; + +/** + * 班组关联 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface TeamBizdomainRelMapper extends BaseMapperX { + + default PageResult selectPage(TeamBizdomainRelPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(TeamBizdomainRelDO::getBusiId, reqVO.getBusiId()) + .eqIfPresent(TeamBizdomainRelDO::getTeamId, reqVO.getTeamId()) + .likeIfPresent(TeamBizdomainRelDO::getTeamName, reqVO.getTeamName()) + .eqIfPresent(TeamBizdomainRelDO::getWeight, reqVO.getWeight()) + .likeIfPresent(TeamBizdomainRelDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(TeamBizdomainRelDO::getCompanyId, reqVO.getCompanyId()) + .betweenIfPresent(TeamBizdomainRelDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(TeamBizdomainRelDO::getBusiType, reqVO.getBusiType()) + .orderByDesc(TeamBizdomainRelDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java new file mode 100644 index 0000000..1393246 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java @@ -0,0 +1,16 @@ +package com.zteits.urbanops.module.garden.enums; + +/** + * @Classname AssignTasksConstants + * @Description 派单静态数据 + * @Date 2025/11/16 16:43 + * @Created by wangqian + */ +public class AssignTasksConstants { + + /*初始状态*/ + public static final Integer ASSIGN_TASK_FINISH_0 = 0; + /* 完成*/ + public static final Integer ASSIGN_TASK_FINISH_1 = 1; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/CostFeeConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/CostFeeConstants.java new file mode 100644 index 0000000..7bc6aa7 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/CostFeeConstants.java @@ -0,0 +1,22 @@ +package com.zteits.urbanops.module.garden.enums; + +/** + * @Classname CostFeeConstants + * @Description 人机材 + * @Date 2025/11/19 20:42 + * @Created by wangqian + */ +public class CostFeeConstants { + + public static final String COSTFEE_WATER = "costFree_water"; + + public static final String COSTFEE_PERSONAL = "costFree_presonal"; + + public static final String COSTFEE_DEPARTMENT = "costFee_department"; + + public static final String COSTFEE_GARDENWASTE = "costFee_gardenWaste"; + + public static final String COSTFEE_MECHANICAL = "costFee_mechanical"; + + public static final String COSTFEE_RENTALMECHANICAL = "costFee_rentalmechanical"; +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..8496aa3 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java @@ -0,0 +1,53 @@ +package com.zteits.urbanops.module.garden.enums; + + +import com.zteits.urbanops.framework.common.exception.ErrorCode; + +/** + * ERP 错误码枚举类 + *

+ * erp 系统,使用 1-100-000-000 段 + */ +public interface ErrorCodeConstants { + + // ========== server 派单 1-100-001-000 ========== + ErrorCode ASSIGN_TASKS_NOT_EXISTS = new ErrorCode(1-100-001-000, "派单任务主表(记录派单任务基本信息)不存在"); + + ErrorCode ASSIGN_TASKS_NOT_EXISTS_001 = new ErrorCode(1-100-001-001, "派单任务主表(记录派单任务基本信息)不存在"); + ErrorCode ASSIGN_TASKS_NOT_EXISTS_002 = new ErrorCode(1-100-001-002, "未全部完成,不能确认"); + + ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS = new ErrorCode(1-100-002-000, "派发单位不能为空"); + + ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_100 = new ErrorCode(1-100-002-100, "用户未登录"); + + ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_001 = new ErrorCode(1-100-002-001, "派发单位不能为空"); + + ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_002 = new ErrorCode(1-100-002-002, "派单已完成,不允许删除"); + + ErrorCode ASSIGN_TASKS_INFO_NOT_EXISTS_003 = new ErrorCode(1-100-002-003, "更新派单任务失败:任务ID不能为空"); + + // ========== 人机材料 1-100-003-000========== + + ErrorCode COST_FEE_NOT_EXISTS = new ErrorCode(1-100-003-000, "费用已录入"); + + // ========== 部门费用费用 1-100-005-000========== + ErrorCode DEPARTMENT_COST_NOT_EXISTS_01 = new ErrorCode(1-100-003-001, "部门费用为空"); + + // ========== 人员费用 1-100-005-000========== + ErrorCode PERSONAL_COST_NOT_EXISTS = new ErrorCode(1-100-004-000, "人员费用为空"); + + ErrorCode PERSONAL_COST_NOT_EXISTS_001 = new ErrorCode(1-100-004-001, "参数错误"); + + // ========== 自有机械材料 1-100-005-000========== + ErrorCode MECHANICAL_COST_NOT_EXISTS = new ErrorCode(1-100-005-000, "费用已录入"); + ErrorCode MECHANICAL_COST_NOT_EXISTS_001 = new ErrorCode(1-100-006-001, "参数错误"); + + // ========== 自有机械折旧 1-100-006-000========== + ErrorCode MECHANICAL_DEPRECIATION_NOT_EXISTS_001 = new ErrorCode(1-100-006-001, "参数错误"); + + + // ========== 租赁机械 1-100-007-000========== + ErrorCode RENTAL_MECHANICAL_COST_NOT_EXISTS = new ErrorCode(1-100-007-000, "费用已录入"); + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksService.java new file mode 100644 index 0000000..35af3bf --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksService.java @@ -0,0 +1,80 @@ +package com.zteits.urbanops.module.garden.service.assigntasks; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasks.AssignTasksDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 派单任务主表(记录派单任务基本信息) Service 接口 + * + * @author 超级管理员 + */ +public interface AssignTasksService { + + /** + * 创建派单任务主表(记录派单任务基本信息) + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAssignTasks(@Valid AssignTasksSaveReqVO createReqVO); + + /** + * 更新派单任务主表(记录派单任务基本信息) + * + * @param updateReqVO 更新信息 + */ + void updateAssignTasks(@Valid AssignTasksSaveReqVO updateReqVO); + + /** + * 删除派单任务主表(记录派单任务基本信息) + * + * @param id 编号 + */ + void deleteAssignTasks(Long id); + + /** + * 批量删除派单任务主表(记录派单任务基本信息) + * + * @param ids 编号 + */ + void deleteAssignTasksListByIds(List ids); + + /** + * 获得派单任务主表(记录派单任务基本信息) + * + * @param id 编号 + * @return 派单任务主表(记录派单任务基本信息) + */ + AssignTasksDO getAssignTasks(Long id); + + /** + * 获得派单任务主表(记录派单任务基本信息)分页 + * + * @param pageReqVO 分页查询 + * @return 派单任务主表(记录派单任务基本信息)分页 + */ + PageResult getAssignTasksPage(AssignTasksPageReqVO pageReqVO); + + /** + * @Author wangqian + * @Description + * @Date 2025/11/17 23:02 + * @Param id + * @Return int + */ + public int confirmAssignTasksById(Long id); + + /** + * @Author wangqian + * @Description 超时定时任务处理 + * @Date 2025/11/17 23:02 + * @Param + * @Return int + */ + public int tasksOutTimeAuto(); + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java new file mode 100644 index 0000000..8bfbcc7 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java @@ -0,0 +1,202 @@ +package com.zteits.urbanops.module.garden.service.assigntasks; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.AssignTasksPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.assigntasks.vo.AssignTasksSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasks.AssignTasksDO; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO; +import com.zteits.urbanops.module.garden.dal.mysql.assigntasks.AssignTasksMapper; +import com.zteits.urbanops.module.garden.dal.mysql.assigntasksinfo.AssignTasksInfoMapper; +import com.zteits.urbanops.module.garden.enums.AssignTasksConstants; +import com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTasksInfoService; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.annotation.Validated; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 派单任务主表(记录派单任务基本信息) Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +@Slf4j +public class AssignTasksServiceImpl implements AssignTasksService { + + @Resource + private AssignTasksMapper assignTasksMapper; + + @Resource + private AssignTasksInfoMapper assiAssignTasksInfoMapper; + + @Resource + private AssignTasksInfoService assignTasksInfoService; + + + @Transactional(rollbackFor = Exception.class) + @Override + public Long createAssignTasks(AssignTasksSaveReqVO createReqVO) { + // 插入 + AssignTasksDO assignTasks = BeanUtils.toBean(createReqVO, AssignTasksDO.class); + assignTasksMapper.insert(assignTasks); + //保存单位明细 + String[] originalCompanyIds = createReqVO.getCompanyIds(); + if (originalCompanyIds == null || originalCompanyIds.length == 0) { + throw exception(ASSIGN_TASKS_NOT_EXISTS_001); + } + assignTasksInfoService.saveAssignTasksInfos(createReqVO.getCompanyIds(), assignTasks.getId()); + //保存单位明细 + + // 返回 + return assignTasks.getId(); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void updateAssignTasks(AssignTasksSaveReqVO updateReqVO) { + // 校验存在 + validateAssignTasksExists(updateReqVO.getId()); + // 更新 + AssignTasksDO updateObj = BeanUtils.toBean(updateReqVO, AssignTasksDO.class); + assignTasksMapper.updateById(updateObj); + + // add by wq 20251116 + String[] originalCompanyIds = updateReqVO.getCompanyIds(); + if (originalCompanyIds == null || originalCompanyIds.length == 0) { + throw exception(ASSIGN_TASKS_NOT_EXISTS_001); + } + + assignTasksInfoService.updateAssignTasksInfos(updateReqVO.getCompanyIds(), updateObj.getId()); + } + + @Override + public void deleteAssignTasks(Long id) { + // 校验存在 + validateAssignTasksExists(id); + // 删除 + assignTasksMapper.deleteById(id); + } + + @Override + @Transactional + public void deleteAssignTasksListByIds(List ids) { + // 删除 + assignTasksMapper.deleteByIds(ids); + //删除关联的明细 + assiAssignTasksInfoMapper.deleteAssignTaskInfoByTaskId(ids); + } + + + private void validateAssignTasksExists(Long id) { + if (assignTasksMapper.selectById(id) == null) { + throw exception(ASSIGN_TASKS_NOT_EXISTS); + } + } + + @Override + public AssignTasksDO getAssignTasks(Long id) { + return assignTasksMapper.selectById(id); + } + + @Override + public PageResult getAssignTasksPage(AssignTasksPageReqVO pageReqVO) { + return assignTasksMapper.selectPage(pageReqVO); + } + + + @Override + public int confirmAssignTasksById(Long id) { + // 获得用户基本信息 + AssignTasksDO assignTasks = assignTasksMapper.selectById(id); + + List assignTaskInfoList = assiAssignTasksInfoMapper.selectList(AssignTasksInfoDO::getTaskId,assignTasks.getId()); + boolean allSubTaskFinished = assignTaskInfoList.stream() + .allMatch(subTask -> 1 == subTask.getFinish()); + + //所有都完成反馈 + if(allSubTaskFinished) { + assignTasks.setParentFinish(AssignTasksConstants.ASSIGN_TASK_FINISH_1); + assignTasks.setFinishTime(LocalDateTime.now()); + assignTasks.setUpdateTime(LocalDateTime.now()); + assignTasks.setUpdater(String.valueOf(getLoginUserId())); + assignTasksMapper.updateById(assignTasks); + } else { + throw exception(ASSIGN_TASKS_NOT_EXISTS_002); + } + return 1; + } + + @Override + public int tasksOutTimeAuto() { + //查询未完成的派单 + // 1. 初始化统计变量:记录更新成功的超时记录数 + int updatedCount = 0; + LocalDateTime now = LocalDateTime.now(); // 提前获取当前时间(同一批处理时间一致) + log.info("开始处理超时派单,当前时间:{}", now); + + try { + // 2. 查询所有“未完成的派单”(parentFinish=0) + List assignTasks = assignTasksMapper.selectList(AssignTasksDO::getParentFinish,0); + + if (CollectionUtils.isEmpty(assignTasks)) { + log.info("无未完成的派单,无需处理"); + return 0; + } + + List timeoutTaskInfos = new ArrayList<>(); + + for (AssignTasksDO assignTasksDO : assignTasks) { + //查询所有符合条件的派单详情(taskId in 列表 + finish=0) + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(AssignTasksInfoDO::getFinish, 0); + queryWrapper.eq(AssignTasksInfoDO::getTaskId, assignTasksDO.getId()); + queryWrapper.eq(AssignTasksInfoDO::getIsOverdue, 0); + List taskInfoList = assiAssignTasksInfoMapper.selectList(queryWrapper); + if (CollectionUtils.isEmpty(taskInfoList)) { + log.info("未找到未完成的派单详情,无需处理"); + return 0; + } + + // 4. 筛选“已超时”的派单详情(截止时间 < 当前时间) + for (AssignTasksInfoDO taskInfo : taskInfoList) { + // 4.1 转换:将数据库的Date + LocalDateTime deadline = assignTasks.get(0).getDeadline(); + // 4.2 比较:截止时间早于当前时间 → 超时 + if (deadline.isBefore(now)) { + taskInfo.setIsOverdue(1); // 标记为超时 + timeoutTaskInfos.add(taskInfo); + } + } + } + + if (CollectionUtils.isEmpty(timeoutTaskInfos)) { + log.info("无超时的派单详情,无需更新"); + return 0; + } + + // 5. 优化:批量更新 + updatedCount = assiAssignTasksInfoMapper.batchUpdateIsOverdue(timeoutTaskInfos); + log.info("派单超时处理完成,共筛选出{}条超时记录,成功更新{}条", timeoutTaskInfos.size(), updatedCount); + + } catch (Exception e) { + log.error("处理超时派单时发生异常", e); + } + log.info("派单任务超时处理 end"+ LocalDateTime.now()); + return updatedCount; + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoService.java new file mode 100644 index 0000000..f2eeeec --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoService.java @@ -0,0 +1,74 @@ +package com.zteits.urbanops.module.garden.service.assigntasksinfo; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 派单任务-单位关联表(记录单位接收派单后的执行详情) Service 接口 + * + * @author 超级管理员 + */ +public interface AssignTasksInfoService { + + /** + * 创建派单任务-单位关联表(记录单位接收派单后的执行详情) + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAssignTasksInfo(@Valid AssignTasksInfoSaveReqVO createReqVO); + + /** + * 更新派单任务-单位关联表(记录单位接收派单后的执行详情) + * + * @param updateReqVO 更新信息 + */ + void updateAssignTasksInfo(@Valid AssignTasksInfoSaveReqVO updateReqVO); + + /** + * 删除派单任务-单位关联表(记录单位接收派单后的执行详情) + * + * @param id 编号 + */ + void deleteAssignTasksInfo(Long id); + + /** + * 批量删除派单任务-单位关联表(记录单位接收派单后的执行详情) + * + * @param ids 编号 + */ + void deleteAssignTasksInfoListByIds(List ids); + + /** + * 获得派单任务-单位关联表(记录单位接收派单后的执行详情) + * + * @param id 编号 + * @return 派单任务-单位关联表(记录单位接收派单后的执行详情) + */ + AssignTasksInfoDO getAssignTasksInfo(Long id); + + /** + * 获得派单任务-单位关联表(记录单位接收派单后的执行详情)分页 + * + * @param pageReqVO 分页查询 + * @return 派单任务-单位关联表(记录单位接收派单后的执行详情)分页 + */ + PageResult getAssignTasksInfoPage(AssignTasksInfoPageReqVO pageReqVO); + + /** + * @Author wangqian + * @Description 同步保存单位派单详情 + * @Date 2025/11/16 17:07 + * @Param companyIds + * @param taskId + * @Return java.lang.Long + */ + public void saveAssignTasksInfos(String[] companyIds, Long taskId); + + public void updateAssignTasksInfos(String[] companyIds, Long taskId); + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java new file mode 100644 index 0000000..9bf2a0c --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java @@ -0,0 +1,174 @@ +package com.zteits.urbanops.module.garden.service.assigntasksinfo; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.assigntasksinfo.vo.AssignTasksInfoSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.assigntasksinfo.AssignTasksInfoDO; +import com.zteits.urbanops.module.garden.dal.mysql.assigntasksinfo.AssignTasksInfoMapper; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import java.util.stream.Collectors; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 派单任务-单位关联表(记录单位接收派单后的执行详情) Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +@Slf4j +public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { + + @Resource + private AssignTasksInfoMapper assignTasksInfoMapper; + + @Override + public Long createAssignTasksInfo(AssignTasksInfoSaveReqVO createReqVO) { + // 插入 + AssignTasksInfoDO assignTasksInfo = BeanUtils.toBean(createReqVO, AssignTasksInfoDO.class); + assignTasksInfoMapper.insert(assignTasksInfo); + + // 返回 + return assignTasksInfo.getId(); + } + + @Override + public void updateAssignTasksInfo(AssignTasksInfoSaveReqVO updateReqVO) { + // 校验存在 + validateAssignTasksInfoExists(updateReqVO.getId()); + // 更新 + AssignTasksInfoDO updateObj = BeanUtils.toBean(updateReqVO, AssignTasksInfoDO.class); + assignTasksInfoMapper.updateById(updateObj); + } + + @Override + public void deleteAssignTasksInfo(Long id) { + // 校验存在 + validateAssignTasksInfoExists(id); + // 删除 + assignTasksInfoMapper.deleteById(id); + } + + @Override + public void deleteAssignTasksInfoListByIds(List ids) { + // 删除 + assignTasksInfoMapper.deleteByIds(ids); + } + + + private void validateAssignTasksInfoExists(Long id) { + if (assignTasksInfoMapper.selectById(id) == null) { + throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS); + } + } + + @Override + public AssignTasksInfoDO getAssignTasksInfo(Long id) { + return assignTasksInfoMapper.selectById(id); + } + + @Override + public PageResult getAssignTasksInfoPage(AssignTasksInfoPageReqVO pageReqVO) { + return assignTasksInfoMapper.selectPage(pageReqVO); + } + + @Override + public void saveAssignTasksInfos(String[] companyIds, Long taskId) { + // 获得用户基本信息 + String userId = String.valueOf(getLoginUserId()); + if (companyIds != null && companyIds.length > 0) { + for (String companyId : companyIds) { + AssignTasksInfoSaveReqVO assignTaskInfo = new AssignTasksInfoSaveReqVO(); + assignTaskInfo.setCompanyId(companyId); + //assignTaskInfo.setCompanyName(CompanyConstant.getCompanyName(Long.parseLong(companyId))); + assignTaskInfo.setTaskId(taskId); + assignTaskInfo.setUpdater(userId); + AssignTasksInfoDO assignTasksInfo = BeanUtils.toBean(assignTaskInfo, AssignTasksInfoDO.class); + + assignTasksInfoMapper.insert(assignTasksInfo); + } + } + } + + @Override + public void updateAssignTasksInfos(String[] companyIds, Long taskId) { + // 1. 日志与入参校验(提前拦截无效参数) + log.info("开始更新派单任务的公司关联信息 | 任务ID:{},目标公司ID列表:{}", + taskId, Arrays.toString(companyIds)); + + if (taskId == null) { + log.error("更新派单任务失败:任务ID不能为空"); + throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS_003); // 假设 PARAM_ERROR 是通用参数错误码,需替换为实际枚举 + } + + // 2. 获取当前登录用户(校验用户有效性) + Long loginUserId = getLoginUserId(); + + // 3. 预处理目标公司ID列表(避免重复转换,处理null场景) + List targetCompanyIdStrs = Optional.ofNullable(companyIds) + .map(Arrays::asList) + .orElse(Collections.emptyList()) + .stream() + .filter(StringUtils::isNotBlank) // 过滤空字符串(避免无效数据) + .distinct() // 去重:避免重复添加同一公司 + .collect(Collectors.toList()); + + // 4. 查询该任务下已关联的派单记录 + List existingAssignTaskInfos = assignTasksInfoMapper + .selectList(AssignTasksInfoDO::getTaskId, taskId); + log.info("当前任务已关联的派单记录数:{}", existingAssignTaskInfos.size()); + + // 4.1 提取已关联的公司ID(String类型,用于后续判断) + List existingCompanyIdStrs = existingAssignTaskInfos.stream() + .map(info -> String.valueOf(info.getCompanyId())) // 统一转为String,避免类型不匹配 + .collect(Collectors.toList()); + + // 5. 处理需要删除的派单记录(不在目标列表中且未读的记录) + List needDeleteIds = new ArrayList<>(); + for (AssignTasksInfoDO existingTask : existingAssignTaskInfos) { + String existingCompanyIdStr = String.valueOf(existingTask.getCompanyId()); + // 目标列表不包含当前公司ID → 需要删除 + if (!targetCompanyIdStrs.contains(existingCompanyIdStr)) { + // 已读状态(finish=1)不允许删除 + if (Objects.equals(existingTask.getFinish(), 1)) { + log.error("删除派单失败:任务已读不允许删除 | 派单ID:{},公司ID:{}", + existingTask.getId(), existingCompanyIdStr); + throw exception(ASSIGN_TASKS_INFO_NOT_EXISTS_002); // 建议修改异常码语义为“已读任务不允许删除” + } + needDeleteIds.add(existingTask.getId()); + } + } + + // 5.1 批量删除(减少数据库交互) + if (!needDeleteIds.isEmpty()) { + this.deleteAssignTasksInfoListByIds(needDeleteIds); + log.info("批量删除派单记录成功 | 删除ID列表:{}", needDeleteIds); + } + + // 6. 处理需要新增的派单记录(目标列表中不存在于已关联列表的公司) + for (String targetCompanyId : targetCompanyIdStrs) { + if (!existingCompanyIdStrs.contains(targetCompanyId)) { + // 直接构建DO对象(跳过VO转换,减少开销) + AssignTasksInfoSaveReqVO assignTaskInfo = new AssignTasksInfoSaveReqVO(); + assignTaskInfo.setCompanyId(targetCompanyId); + //assignTaskInfo.setCompanyName(CompanyConstant.getCompanyName(Long.parseLong(companyId))); + assignTaskInfo.setTaskId(taskId); + assignTaskInfo.setCreator(String.valueOf(loginUserId)); + AssignTasksInfoDO assignTasksInfo = BeanUtils.toBean(assignTaskInfo, AssignTasksInfoDO.class); + + assignTasksInfoMapper.insert(assignTasksInfo); + + } + } + } +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostService.java new file mode 100644 index 0000000..9adf9bd --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.departmentcost; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 部门费用录入 Service 接口 + * + * @author 超级管理员 + */ +public interface DepartmentCostService { + + /** + * 创建部门费用录入 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDepartmentCost(@Valid DepartmentCostSaveReqVO createReqVO); + + /** + * 更新部门费用录入 + * + * @param updateReqVO 更新信息 + */ + void updateDepartmentCost(@Valid DepartmentCostSaveReqVO updateReqVO); + + /** + * 删除部门费用录入 + * + * @param id 编号 + */ + void deleteDepartmentCost(Long id); + + /** + * 批量删除部门费用录入 + * + * @param ids 编号 + */ + void deleteDepartmentCostListByIds(List ids); + + /** + * 获得部门费用录入 + * + * @param id 编号 + * @return 部门费用录入 + */ + DepartmentCostDO getDepartmentCost(Long id); + + /** + * 获得部门费用录入分页 + * + * @param pageReqVO 分页查询 + * @return 部门费用录入分页 + */ + PageResult getDepartmentCostPage(DepartmentCostPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostServiceImpl.java new file mode 100644 index 0000000..212ae04 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/departmentcost/DepartmentCostServiceImpl.java @@ -0,0 +1,107 @@ +package com.zteits.urbanops.module.garden.service.departmentcost; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.DepartmentCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.DepartmentCostSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import com.zteits.urbanops.module.garden.dal.mysql.departmentcost.DepartmentCostMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.annotation.Validated; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + + +import java.util.List; + +/** + * 部门费用录入 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class DepartmentCostServiceImpl implements DepartmentCostService { + + @Resource + private DepartmentCostMapper departmentCostMapper; + + @Override + public Long createDepartmentCost(DepartmentCostSaveReqVO createReqVO) { + // 插入 + DepartmentCostDO departmentCost = BeanUtils.toBean(createReqVO, DepartmentCostDO.class); + + // add bt wq 20251119 插入增加校验 + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(DepartmentCostDO::getSalaryMonth, departmentCost.getSalaryMonth()); + queryWrapper.eq(DepartmentCostDO::getExpenseName, departmentCost.getExpenseName()); + queryWrapper.eq(DepartmentCostDO::getCompanyId, departmentCost.getCompanyId()); + List list = departmentCostMapper.selectList(queryWrapper); + if (!CollectionUtils.isEmpty(list)) { + throw exception(COST_FEE_NOT_EXISTS); + } + // add bt wq 20251119 插入增加校验 + + departmentCostMapper.insert(departmentCost); + + // 返回 + return departmentCost.getId(); + } + + @Override + public void updateDepartmentCost(DepartmentCostSaveReqVO updateReqVO) { + // 校验存在 + validateDepartmentCostExists(updateReqVO.getId()); + // 更新 + DepartmentCostDO updateObj = BeanUtils.toBean(updateReqVO, DepartmentCostDO.class); + + // add bt wq 20251119 插入增加校验 + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(DepartmentCostDO::getSalaryMonth, updateObj.getSalaryMonth()); + queryWrapper.eq(DepartmentCostDO::getExpenseName, updateObj.getExpenseName()); + queryWrapper.eq(DepartmentCostDO::getCompanyId, updateObj.getCompanyId()); + List list = departmentCostMapper.selectList(queryWrapper); + if (!CollectionUtils.isEmpty(list)) { + throw exception(COST_FEE_NOT_EXISTS); + } + // add bt wq 20251119 插入增加校验 + departmentCostMapper.updateById(updateObj); + } + + @Override + public void deleteDepartmentCost(Long id) { + // 校验存在 + validateDepartmentCostExists(id); + // 删除 + departmentCostMapper.deleteById(id); + } + + @Override + public void deleteDepartmentCostListByIds(List ids) { + // 删除 + departmentCostMapper.deleteByIds(ids); + } + + + private void validateDepartmentCostExists(Long id) { + if (departmentCostMapper.selectById(id) == null) { + throw exception(DEPARTMENT_COST_NOT_EXISTS_01); + } + } + + @Override + public DepartmentCostDO getDepartmentCost(Long id) { + return departmentCostMapper.selectById(id); + } + + @Override + public PageResult getDepartmentCostPage(DepartmentCostPageReqVO pageReqVO) { + return departmentCostMapper.selectPage(pageReqVO); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostService.java new file mode 100644 index 0000000..852d15c --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.mechanicalcost; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost.MechanicalCostDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 自有机械费用录入 Service 接口 + * + * @author 超级管理员 + */ +public interface MechanicalCostService { + + /** + * 创建自有机械费用录入 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMechanicalCost(@Valid MechanicalCostSaveReqVO createReqVO); + + /** + * 更新自有机械费用录入 + * + * @param updateReqVO 更新信息 + */ + void updateMechanicalCost(@Valid MechanicalCostSaveReqVO updateReqVO); + + /** + * 删除自有机械费用录入 + * + * @param id 编号 + */ + void deleteMechanicalCost(Long id); + + /** + * 批量删除自有机械费用录入 + * + * @param ids 编号 + */ + void deleteMechanicalCostListByIds(List ids); + + /** + * 获得自有机械费用录入 + * + * @param id 编号 + * @return 自有机械费用录入 + */ + MechanicalCostDO getMechanicalCost(Long id); + + /** + * 获得自有机械费用录入分页 + * + * @param pageReqVO 分页查询 + * @return 自有机械费用录入分页 + */ + PageResult getMechanicalCostPage(MechanicalCostPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java new file mode 100644 index 0000000..eb6d000 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicalcost/MechanicalCostServiceImpl.java @@ -0,0 +1,117 @@ +package com.zteits.urbanops.module.garden.service.mechanicalcost; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.MechanicalCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.mechanicalcost.vo.MechanicalCostSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicalcost.MechanicalCostDO; +import com.zteits.urbanops.module.garden.dal.mysql.mechanicalcost.MechanicalCostMapper; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import com.zteits.urbanops.module.garden.service.mechanicaldepreciation.MechanicalDepreciationService; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; +import jakarta.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.MECHANICAL_COST_NOT_EXISTS; + + +/** + * 自有机械费用录入 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class MechanicalCostServiceImpl implements MechanicalCostService { + + @Resource + private MechanicalCostMapper mechanicalCostMapper; + @Resource + private TeamBizdomainRelService teamBizdomainRelService; + @Resource + private MechanicalDepreciationService mechanicalDepreciationService; + + @Override + public Long createMechanicalCost(MechanicalCostSaveReqVO createReqVO) { + // 插入 + MechanicalCostDO mechanicalCost = BeanUtils.toBean(createReqVO, MechanicalCostDO.class); + mechanicalCostMapper.insert(mechanicalCost); + //add by wq 保存班组信息关联表 + teamBizdomainRelService.saveTeamBizdomainRel(createReqVO.getTeamIds(), mechanicalCost.getId(), mechanicalCost.getCompanyId(), mechanicalCost.getCompanyName(), CostFeeConstants.COSTFEE_MECHANICAL); + //add by wq 保存班组信息关联表 + + // 返回 + return mechanicalCost.getId(); + } + + @Override + public void updateMechanicalCost(MechanicalCostSaveReqVO updateReqVO) { + // 校验存在 + validateMechanicalCostExists(updateReqVO.getId()); + // 更新 + MechanicalCostDO updateObj = BeanUtils.toBean(updateReqVO, MechanicalCostDO.class); + mechanicalCostMapper.updateById(updateObj); + + //add by wq 保存班组信息关联表 + teamBizdomainRelService.deleteTeamBizdomainRel(updateObj.getId(), CostFeeConstants.COSTFEE_MECHANICAL); + teamBizdomainRelService.saveTeamBizdomainRel(updateReqVO.getTeamIds(), updateObj.getId(), updateObj.getCompanyId(), updateObj.getCompanyName(), CostFeeConstants.COSTFEE_MECHANICAL); + //add by wq 保存班组信息关联表 + } + + @Override + @Transactional + public void deleteMechanicalCost(Long id) { + // 校验存在 + validateMechanicalCostExists(id); + // 删除 + mechanicalCostMapper.deleteById(id); + + //add by wq 删除班组信息关联表 + teamBizdomainRelService.deleteTeamBizdomainRel(id, CostFeeConstants.COSTFEE_MECHANICAL); + // //删除折旧 + mechanicalDepreciationService.deleteMechanicalDepreciationByMechId(id); + //add by wq 删除班组信息关联表 + } + + @Override + public void deleteMechanicalCostListByIds(List ids) { + // 删除 + mechanicalCostMapper.deleteByIds(ids); + //add by wq 删除班组信息关联表 + if(CollectionUtils.isNotEmpty(ids)) { + for (Long id : ids) { + //批量删除 + teamBizdomainRelService.deleteTeamBizdomainRel(id, CostFeeConstants.COSTFEE_MECHANICAL); + //删除折旧 + mechanicalDepreciationService.deleteMechanicalDepreciationByMechId(id); + } + } + //add by wq 删除班组信息关联表 + + } + + + private void validateMechanicalCostExists(Long id) { + if (mechanicalCostMapper.selectById(id) == null) { + throw exception(MECHANICAL_COST_NOT_EXISTS); + } + } + + @Override + public MechanicalCostDO getMechanicalCost(Long id) { + return mechanicalCostMapper.selectById(id); + } + + @Override + public PageResult getMechanicalCostPage(MechanicalCostPageReqVO pageReqVO) { + return mechanicalCostMapper.selectPage(pageReqVO); + } + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationService.java new file mode 100644 index 0000000..b1be38d --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationService.java @@ -0,0 +1,70 @@ +package com.zteits.urbanops.module.garden.service.mechanicaldepreciation; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation.MechanicalDepreciationDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 自有机械折旧子 Service 接口 + * + * @author 超级管理员 + */ +public interface MechanicalDepreciationService { + + /** + * 创建自有机械折旧子 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMechanicalDepreciation(@Valid MechanicalDepreciationSaveReqVO createReqVO); + + /** + * 更新自有机械折旧子 + * + * @param updateReqVO 更新信息 + */ + void updateMechanicalDepreciation(@Valid MechanicalDepreciationSaveReqVO updateReqVO); + + /** + * 删除自有机械折旧子 + * + * @param id 编号 + */ + void deleteMechanicalDepreciation(Long id); + + /** + * 批量删除自有机械折旧子 + * + * @param ids 编号 + */ + void deleteMechanicalDepreciationListByIds(List ids); + + /** + * 获得自有机械折旧子 + * + * @param id 编号 + * @return 自有机械折旧子 + */ + MechanicalDepreciationDO getMechanicalDepreciation(Long id); + + /** + * 获得自有机械折旧子分页 + * + * @param pageReqVO 分页查询 + * @return 自有机械折旧子分页 + */ + PageResult getMechanicalDepreciationPage(MechanicalDepreciationPageReqVO pageReqVO); + + + /** + * 删除自有机械折旧 + * + * @param mechId 编号 + */ + void deleteMechanicalDepreciationByMechId(Long mechId); + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java new file mode 100644 index 0000000..e3c11db --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/mechanicaldepreciation/MechanicalDepreciationServiceImpl.java @@ -0,0 +1,99 @@ +package com.zteits.urbanops.module.garden.service.mechanicaldepreciation; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zteits.urbanops.module.garden.controller.admin.mechanicaldepreciation.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.mechanicaldepreciation.MechanicalDepreciationDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import com.zteits.urbanops.module.garden.dal.mysql.mechanicaldepreciation.MechanicalDepreciationMapper; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 自有机械折旧子 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class MechanicalDepreciationServiceImpl implements MechanicalDepreciationService { + + @Resource + private MechanicalDepreciationMapper mechanicalDepreciationMapper; + + @Override + public Long createMechanicalDepreciation(MechanicalDepreciationSaveReqVO createReqVO) { + // 插入 + MechanicalDepreciationDO mechanicalDepreciation = BeanUtils.toBean(createReqVO, MechanicalDepreciationDO.class); + mechanicalDepreciationMapper.insert(mechanicalDepreciation); + + // 返回 + return mechanicalDepreciation.getId(); + } + + @Override + public void updateMechanicalDepreciation(MechanicalDepreciationSaveReqVO updateReqVO) { + // 校验存在 + validateMechanicalDepreciationExists(updateReqVO.getId()); + // 更新 + MechanicalDepreciationDO updateObj = BeanUtils.toBean(updateReqVO, MechanicalDepreciationDO.class); + mechanicalDepreciationMapper.updateById(updateObj); + } + + @Override + public void deleteMechanicalDepreciation(Long id) { + // 校验存在 + validateMechanicalDepreciationExists(id); + // 删除 + mechanicalDepreciationMapper.deleteById(id); + } + + @Override + public void deleteMechanicalDepreciationListByIds(List ids) { + // 删除 + mechanicalDepreciationMapper.deleteByIds(ids); + } + + + private void validateMechanicalDepreciationExists(Long id) { + if (mechanicalDepreciationMapper.selectById(id) == null) { + throw exception(MECHANICAL_DEPRECIATION_NOT_EXISTS); + } + } + + @Override + public MechanicalDepreciationDO getMechanicalDepreciation(Long id) { + return mechanicalDepreciationMapper.selectById(id); + } + + @Override + public PageResult getMechanicalDepreciationPage(MechanicalDepreciationPageReqVO pageReqVO) { + return mechanicalDepreciationMapper.selectPage(pageReqVO); + } + + @Override + public void deleteMechanicalDepreciationByMechId(Long mechId) { + if (mechId == null) { + throw exception(MECHANICAL_DEPRECIATION_NOT_EXISTS_001); + } + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(MechanicalDepreciationDO::getMechId, String.valueOf(mechId)); + mechanicalDepreciationMapper.delete(queryWrapper); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostService.java new file mode 100644 index 0000000..8e17110 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.personalcost; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 人员费用录入 - 个人费用 Service 接口 + * + * @author 超级管理员 + */ +public interface PersonalCostService { + + /** + * 创建人员费用录入 - 个人费用 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPersonalCost(@Valid PersonalCostSaveReqVO createReqVO); + + /** + * 更新人员费用录入 - 个人费用 + * + * @param updateReqVO 更新信息 + */ + void updatePersonalCost(@Valid PersonalCostSaveReqVO updateReqVO); + + /** + * 删除人员费用录入 - 个人费用 + * + * @param id 编号 + */ + void deletePersonalCost(Long id); + + /** + * 批量删除人员费用录入 - 个人费用 + * + * @param ids 编号 + */ + void deletePersonalCostListByIds(List ids); + + /** + * 获得人员费用录入 - 个人费用 + * + * @param id 编号 + * @return 人员费用录入 - 个人费用 + */ + PersonalCostDO getPersonalCost(Long id); + + /** + * 获得人员费用录入 - 个人费用分页 + * + * @param pageReqVO 分页查询 + * @return 人员费用录入 - 个人费用分页 + */ + PageResult getPersonalCostPage(PersonalCostPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java new file mode 100644 index 0000000..284c283 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java @@ -0,0 +1,115 @@ +package com.zteits.urbanops.module.garden.service.personalcost; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.module.garden.dal.mysql.personalcost.PersonalCostMapper; +import com.zteits.urbanops.module.garden.dal.mysql.teambizdomainrel.TeamBizdomainRelMapper; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; +import jakarta.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PERSONAL_COST_NOT_EXISTS; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PERSONAL_COST_NOT_EXISTS_001; + +/** + * 人员费用录入 - 个人费用 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class PersonalCostServiceImpl implements PersonalCostService { + + @Resource + private PersonalCostMapper personalCostMapper; + @Resource + TeamBizdomainRelService teamBizdomainRelService; + + @Override + @Transactional + public Long createPersonalCost(PersonalCostSaveReqVO createReqVO) { + // 插入 + PersonalCostDO personalCost = BeanUtils.toBean(createReqVO, PersonalCostDO.class); + personalCostMapper.insert(personalCost); + + //add by wq 保存班组信息关联表 + teamBizdomainRelService.saveTeamBizdomainRel(createReqVO.getTeamIds(), personalCost.getId(), personalCost.getCompanyId(), personalCost.getCompanyName(), CostFeeConstants.COSTFEE_PERSONAL); + //add by wq 保存班组信息关联表 + + // 返回 + return personalCost.getId(); + } + + @Override + @Transactional + public void updatePersonalCost(PersonalCostSaveReqVO updateReqVO) { + // 校验存在 + validatePersonalCostExists(updateReqVO.getId()); + // 更新 + PersonalCostDO updateObj = BeanUtils.toBean(updateReqVO, PersonalCostDO.class); + personalCostMapper.updateById(updateObj); + + //add by wq 保存班组信息关联表 + teamBizdomainRelService.deleteTeamBizdomainRel(updateObj.getId(), CostFeeConstants.COSTFEE_PERSONAL); + teamBizdomainRelService.saveTeamBizdomainRel(updateReqVO.getTeamIds(), updateObj.getId(), updateObj.getCompanyId(), updateObj.getCompanyName(), CostFeeConstants.COSTFEE_PERSONAL); + + //add by wq 保存班组信息关联表 + } + + @Override + public void deletePersonalCost(Long id) { + // 校验存在 + validatePersonalCostExists(id); + // 删除 + personalCostMapper.deleteById(id); + // add by wq 删除 + teamBizdomainRelService.deleteTeamBizdomainRel(id, CostFeeConstants.COSTFEE_PERSONAL); + // add by wq 删除 + } + + @Override + public void deletePersonalCostListByIds(List ids) { + // 删除 + personalCostMapper.deleteByIds(ids); + // add by wq 删除 + if(ids.size() > 0) { + for (Long id : ids) { + teamBizdomainRelService.deleteTeamBizdomainRel(id, CostFeeConstants.COSTFEE_PERSONAL); + } + } + // add by wq 删除 + } + + + private void validatePersonalCostExists(Long id) { + if (personalCostMapper.selectById(id) == null) { + throw exception(PERSONAL_COST_NOT_EXISTS); + } + } + + @Override + public PersonalCostDO getPersonalCost(Long id) { + return personalCostMapper.selectById(id); + } + + @Override + public PageResult getPersonalCostPage(PersonalCostPageReqVO pageReqVO) { + return personalCostMapper.selectPage(pageReqVO); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostService.java new file mode 100644 index 0000000..09a8dc5 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.rentalmechanicalcost; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 租赁机械费用录入 Service 接口 + * + * @author 超级管理员 + */ +public interface RentalMechanicalCostService { + + /** + * 创建租赁机械费用录入 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createRentalMechanicalCost(@Valid RentalMechanicalCostSaveReqVO createReqVO); + + /** + * 更新租赁机械费用录入 + * + * @param updateReqVO 更新信息 + */ + void updateRentalMechanicalCost(@Valid RentalMechanicalCostSaveReqVO updateReqVO); + + /** + * 删除租赁机械费用录入 + * + * @param id 编号 + */ + void deleteRentalMechanicalCost(Long id); + + /** + * 批量删除租赁机械费用录入 + * + * @param ids 编号 + */ + void deleteRentalMechanicalCostListByIds(List ids); + + /** + * 获得租赁机械费用录入 + * + * @param id 编号 + * @return 租赁机械费用录入 + */ + RentalMechanicalCostDO getRentalMechanicalCost(Long id); + + /** + * 获得租赁机械费用录入分页 + * + * @param pageReqVO 分页查询 + * @return 租赁机械费用录入分页 + */ + PageResult getRentalMechanicalCostPage(RentalMechanicalCostPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java new file mode 100644 index 0000000..d007d7e --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/rentalmechanicalcost/RentalMechanicalCostServiceImpl.java @@ -0,0 +1,108 @@ +package com.zteits.urbanops.module.garden.service.rentalmechanicalcost; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; +import com.zteits.urbanops.module.garden.dal.mysql.rentalmechanicalcost.RentalMechanicalCostMapper; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import com.zteits.urbanops.module.garden.service.teambizdomainrel.TeamBizdomainRelService; +import jakarta.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 租赁机械费用录入 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class RentalMechanicalCostServiceImpl implements RentalMechanicalCostService { + + @Resource + private RentalMechanicalCostMapper rentalMechanicalCostMapper; + + @Resource + private TeamBizdomainRelService teamBizdomainRelService; + + @Override + public Long createRentalMechanicalCost(RentalMechanicalCostSaveReqVO createReqVO) { + // 插入 + RentalMechanicalCostDO rentalMechanicalCost = BeanUtils.toBean(createReqVO, RentalMechanicalCostDO.class); + rentalMechanicalCostMapper.insert(rentalMechanicalCost); + + //add by wq 保存班组信息关联表 + teamBizdomainRelService.saveTeamBizdomainRel(createReqVO.getTeamIds(), rentalMechanicalCost.getId(), rentalMechanicalCost.getCompanyId(), rentalMechanicalCost.getCompanyName(), CostFeeConstants.COSTFEE_RENTALMECHANICAL); + //add by wq 保存班组信息关联表 + // 返回 + return rentalMechanicalCost.getId(); + } + + @Override + public void updateRentalMechanicalCost(RentalMechanicalCostSaveReqVO updateReqVO) { + // 校验存在 + validateRentalMechanicalCostExists(updateReqVO.getId()); + // 更新 + RentalMechanicalCostDO updateObj = BeanUtils.toBean(updateReqVO, RentalMechanicalCostDO.class); + rentalMechanicalCostMapper.updateById(updateObj); + + //add by wq 保存班组信息关联表 + teamBizdomainRelService.deleteTeamBizdomainRel(updateObj.getId(), CostFeeConstants.COSTFEE_RENTALMECHANICAL); + teamBizdomainRelService.saveTeamBizdomainRel(updateReqVO.getTeamIds(), updateObj.getId(), updateObj.getCompanyId(), updateObj.getCompanyName(), CostFeeConstants.COSTFEE_RENTALMECHANICAL); + //add by wq 保存班组信息关联表 + } + + @Override + public void deleteRentalMechanicalCost(Long id) { + // 校验存在 + validateRentalMechanicalCostExists(id); + // 删除 + rentalMechanicalCostMapper.deleteById(id); + + //add by wq 删除班组信息关联表 + teamBizdomainRelService.deleteTeamBizdomainRel(id, CostFeeConstants.COSTFEE_RENTALMECHANICAL); + //add by wq 删除班组信息关联表 + } + + @Override + public void deleteRentalMechanicalCostListByIds(List ids) { + // 删除 + rentalMechanicalCostMapper.deleteByIds(ids); + + //add by wq 删除班组信息关联表 + if(CollectionUtils.isNotEmpty(ids)) { + for (Long id : ids) { + //批量删除 + teamBizdomainRelService.deleteTeamBizdomainRel(id, CostFeeConstants.COSTFEE_MECHANICAL); + } + } + //add by wq 删除班组信息关联表 + } + + + private void validateRentalMechanicalCostExists(Long id) { + if (rentalMechanicalCostMapper.selectById(id) == null) { + throw exception(RENTAL_MECHANICAL_COST_NOT_EXISTS); + } + } + + @Override + public RentalMechanicalCostDO getRentalMechanicalCost(Long id) { + return rentalMechanicalCostMapper.selectById(id); + } + + @Override + public PageResult getRentalMechanicalCostPage(RentalMechanicalCostPageReqVO pageReqVO) { + return rentalMechanicalCostMapper.selectPage(pageReqVO); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java new file mode 100644 index 0000000..7ac5537 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelService.java @@ -0,0 +1,77 @@ +package com.zteits.urbanops.module.garden.service.teambizdomainrel; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 班组关联 Service 接口 + * + * @author 超级管理员 + */ +public interface TeamBizdomainRelService { + + /** + * 创建班组关联 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTeamBizdomainRel(@Valid TeamBizdomainRelSaveReqVO createReqVO); + + /** + * 更新班组关联 + * + * @param updateReqVO 更新信息 + */ + void updateTeamBizdomainRel(@Valid TeamBizdomainRelSaveReqVO updateReqVO); + + /** + * 删除班组关联 + * + * @param id 编号 + */ + void deleteTeamBizdomainRel(Long id); + + /** + * 批量删除班组关联 + * + * @param ids 编号 + */ + void deleteTeamBizdomainRelListByIds(List ids); + + /** + * 获得班组关联 + * + * @param id 编号 + * @return 班组关联 + */ + TeamBizdomainRelDO getTeamBizdomainRel(Long id); + + /** + * 获得班组关联分页 + * + * @param pageReqVO 分页查询 + * @return 班组关联分页 + */ + PageResult getTeamBizdomainRelPage(TeamBizdomainRelPageReqVO pageReqVO); + + /** + * @Author wangqian + * @Description 获取费用关联信息 + * @Date 2025/11/19 20:47 + * @Param busiId + * @param busiType + * @Return java.util.List + */ + public List getTeamBizdomainRelList(Long busiId, String busiType); + + public void saveTeamBizdomainRel(List teamList, Long busiId, String companyId, String companyName ,String busiType) ; + + public void deleteTeamBizdomainRel(Long id, String busiType); + + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java new file mode 100644 index 0000000..ee8d7d7 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/teambizdomainrel/TeamBizdomainRelServiceImpl.java @@ -0,0 +1,128 @@ +package com.zteits.urbanops.module.garden.service.teambizdomainrel; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.zteits.urbanops.module.garden.enums.CostFeeConstants; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zteits.urbanops.module.garden.controller.admin.teambizdomainrel.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.teambizdomainrel.TeamBizdomainRelDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import com.zteits.urbanops.module.garden.dal.mysql.teambizdomainrel.TeamBizdomainRelMapper; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 班组关联 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class TeamBizdomainRelServiceImpl implements TeamBizdomainRelService { + + @Resource + private TeamBizdomainRelMapper teamBizdomainRelMapper; + + @Override + public Long createTeamBizdomainRel(TeamBizdomainRelSaveReqVO createReqVO) { + // 插入 + TeamBizdomainRelDO teamBizdomainRel = BeanUtils.toBean(createReqVO, TeamBizdomainRelDO.class); + teamBizdomainRelMapper.insert(teamBizdomainRel); + + // 返回 + return teamBizdomainRel.getId(); + } + + @Override + public void updateTeamBizdomainRel(TeamBizdomainRelSaveReqVO updateReqVO) { + // 校验存在 + validateTeamBizdomainRelExists(updateReqVO.getId()); + // 更新 + TeamBizdomainRelDO updateObj = BeanUtils.toBean(updateReqVO, TeamBizdomainRelDO.class); + teamBizdomainRelMapper.updateById(updateObj); + } + + @Override + public void deleteTeamBizdomainRel(Long id) { + // 校验存在 + validateTeamBizdomainRelExists(id); + // 删除 + teamBizdomainRelMapper.deleteById(id); + } + + @Override + public void deleteTeamBizdomainRelListByIds(List ids) { + // 删除 + teamBizdomainRelMapper.deleteByIds(ids); + } + + + private void validateTeamBizdomainRelExists(Long id) { + if (teamBizdomainRelMapper.selectById(id) == null) { + //throw exception(TEAM_BIZDOMAIN_REL_NOT_EXISTS); + } + } + + @Override + public TeamBizdomainRelDO getTeamBizdomainRel(Long id) { + return teamBizdomainRelMapper.selectById(id); + } + + @Override + public PageResult getTeamBizdomainRelPage(TeamBizdomainRelPageReqVO pageReqVO) { + return teamBizdomainRelMapper.selectPage(pageReqVO); + } + + public List getTeamBizdomainRelList(Long busiId, String busiType) { + if (busiId == null && StringUtils.isEmpty(busiType)) { + throw exception(MECHANICAL_COST_NOT_EXISTS_001); + } + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(TeamBizdomainRelDO::getBusiId, busiId); + queryWrapper.eq(TeamBizdomainRelDO::getBusiType, busiType); + return teamBizdomainRelMapper.selectList(queryWrapper); + } + + @Override + public void saveTeamBizdomainRel(List teamList, Long busiId, String companyId, String companyName ,String busiType) { + if (CollectionUtils.isNotEmpty(teamList)) { + for (TeamBizdomainRelDO team : teamList) { + if (team != null && StringUtils.isNotEmpty(team.getTeamId())) { + TeamBizdomainRelDO teamBizdomainRel = new TeamBizdomainRelDO(); + teamBizdomainRel.setBusiId(String.valueOf(busiId)); + teamBizdomainRel.setCompanyId(companyId); + teamBizdomainRel.setCompanyName(companyName); + teamBizdomainRel.setTeamName(team.getTeamName()); + teamBizdomainRel.setTeamId(team.getTeamId()); + teamBizdomainRel.setBusiType(busiType); + teamBizdomainRelMapper.insert(teamBizdomainRel); + } + } + } + } + + @Override + public void deleteTeamBizdomainRel(Long id, String busiType ) { + if (id == null && StringUtils.isEmpty(busiType)) { + throw exception(MECHANICAL_COST_NOT_EXISTS_001); + } + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(TeamBizdomainRelDO::getBusiId, String.valueOf(id)); + queryWrapper.eq(TeamBizdomainRelDO::getBusiType, busiType); + teamBizdomainRelMapper.delete(queryWrapper); + } +} diff --git a/urbanops-module-garden/src/main/resources/mapper/assigntasksinfo/AssignTasksInfoMapper.xml b/urbanops-module-garden/src/main/resources/mapper/assigntasksinfo/AssignTasksInfoMapper.xml new file mode 100644 index 0000000..fb27f19 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/assigntasksinfo/AssignTasksInfoMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + update td_assign_task_info set status= 1 where task_id in + + #{item.id} + + + + + + update td_assign_task_info + set is_overdue = 1, + update_time = now() + where id in + + #{item.id} + + and finish = 0 + + + diff --git a/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml new file mode 100644 index 0000000..9cab3b3 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/departmentcost/DepartmentCostMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml new file mode 100644 index 0000000..3116180 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/mechanicaldepreciation/MechanicalDepreciationMapper.xml b/urbanops-module-garden/src/main/resources/mapper/mechanicaldepreciation/MechanicalDepreciationMapper.xml new file mode 100644 index 0000000..dd16e2a --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/mechanicaldepreciation/MechanicalDepreciationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml new file mode 100644 index 0000000..34ac586 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/personalcost/PersonalCostMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/rentalmechanicalcost/RentalMechanicalCostMapper.xml b/urbanops-module-garden/src/main/resources/mapper/rentalmechanicalcost/RentalMechanicalCostMapper.xml new file mode 100644 index 0000000..8cd4b10 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/rentalmechanicalcost/RentalMechanicalCostMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/teambizdomainrel/TeamBizdomainRelMapper.xml b/urbanops-module-garden/src/main/resources/mapper/teambizdomainrel/TeamBizdomainRelMapper.xml new file mode 100644 index 0000000..caf230d --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/teambizdomainrel/TeamBizdomainRelMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml b/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml new file mode 100644 index 0000000..3116180 --- /dev/null +++ b/urbanops-module-gloabl/src/main/resources/mapper/mechanicalcost/MechanicalCostMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file -- libgit2 0.21.4